@apache-arrow/esnext-cjs
Advanced tools
Comparing version 0.0.3 to 0.0.4
@@ -18,9 +18,10 @@ // Licensed to the Apache Software Foundation (ASF) under one | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const vector_1 = require("./vectors/vector"); | ||
const struct_1 = require("./vectors/struct"); | ||
const dictionary_1 = require("./vectors/dictionary"); | ||
const list_1 = require("./vectors/list"); | ||
const typed_1 = require("./vectors/typed"); | ||
const vector_1 = require("./vector/vector"); | ||
const struct_1 = require("./vector/struct"); | ||
const dictionary_1 = require("./vector/dictionary"); | ||
const list_1 = require("./vector/list"); | ||
const typed_1 = require("./vector/typed"); | ||
exports.vectors = { | ||
Vector: vector_1.Vector, | ||
BitVector: typed_1.BitVector, | ||
ListVector: list_1.ListVector, | ||
@@ -42,3 +43,2 @@ Utf8Vector: list_1.Utf8Vector, | ||
StructVector: struct_1.StructVector, | ||
ValidityVector: typed_1.ValidityVector, | ||
DictionaryVector: dictionary_1.DictionaryVector, | ||
@@ -54,2 +54,3 @@ FixedSizeListVector: list_1.FixedSizeListVector, | ||
Arrow['vectors']['Vector'] = vector_1.Vector; | ||
Arrow['vectors']['BitVector'] = typed_1.BitVector; | ||
Arrow['vectors']['ListVector'] = list_1.ListVector; | ||
@@ -70,3 +71,2 @@ Arrow['vectors']['Utf8Vector'] = list_1.Utf8Vector; | ||
Arrow['vectors']['StructVector'] = struct_1.StructVector; | ||
Arrow['vectors']['ValidityVector'] = typed_1.ValidityVector; | ||
Arrow['vectors']['DictionaryVector'] = dictionary_1.DictionaryVector; | ||
@@ -79,2 +79,2 @@ Arrow['vectors']['FixedSizeListVector'] = list_1.FixedSizeListVector; | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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SyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLHFCQUFjLENBQUM7UUFDbkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLHFCQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsc0JBQWUsQ0FBQztRQUNyRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyw2QkFBaUIsQ0FBQztRQUN6RCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMscUJBQXFCLENBQUMsR0FBRywwQkFBb0IsQ0FBQztJQUNuRSxDQUFDO0FBQ0wsQ0FBQztBQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBMEIsQ0FBQztBQUN4QywwQkFBMEIiLCJmaWxlIjoiQXJyb3cuaW50ZXJuYWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgVmVjdG9yIGFzIFZlY3Rvcl8gfSBmcm9tICcuL3ZlY3RvcnMvdmVjdG9yJztcbmltcG9ydCB7IFN0cnVjdFZlY3RvciBhcyBTdHJ1Y3RWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL3N0cnVjdCc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5VmVjdG9yIGFzIERpY3Rpb25hcnlWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgTGlzdFZlY3RvciBhcyBMaXN0VmVjdG9yXywgVXRmOFZlY3RvciBhcyBVdGY4VmVjdG9yXywgRml4ZWRTaXplTGlzdFZlY3RvciBhcyBGaXhlZFNpemVMaXN0VmVjdG9yXyB9IGZyb20gJy4vdmVjdG9ycy9saXN0JztcbmltcG9ydCB7XG4gICAgVHlwZWRWZWN0b3IgYXMgVHlwZWRWZWN0b3JfLCBWYWxpZGl0eVZlY3RvciBhcyBWYWxpZGl0eVZlY3Rvcl8sXG4gICAgRGF0ZVZlY3RvciBhcyBEYXRlVmVjdG9yXywgSW5kZXhWZWN0b3IgYXMgSW5kZXhWZWN0b3JfLFxuICAgIEludDhWZWN0b3IgYXMgSW50OFZlY3Rvcl8sIEludDE2VmVjdG9yIGFzIEludDE2VmVjdG9yXyxcbiAgICBJbnQzMlZlY3RvciBhcyBJbnQzMlZlY3Rvcl8sIEludDY0VmVjdG9yIGFzIEludDY0VmVjdG9yXyxcbiAgICBVaW50OFZlY3RvciBhcyBVaW50OFZlY3Rvcl8sIFVpbnQxNlZlY3RvciBhcyBVaW50MTZWZWN0b3JfLFxuICAgIFVpbnQzMlZlY3RvciBhcyBVaW50MzJWZWN0b3JfLCBVaW50NjRWZWN0b3IgYXMgVWludDY0VmVjdG9yXyxcbiAgICBGbG9hdDMyVmVjdG9yIGFzIEZsb2F0MzJWZWN0b3JfLCBGbG9hdDY0VmVjdG9yIGFzIEZsb2F0NjRWZWN0b3JfLFxufSBmcm9tICcuL3ZlY3RvcnMvdHlwZWQnO1xuXG5leHBvcnQgY29uc3QgdmVjdG9ycyA9IHtcbiAgICBWZWN0b3I6IFZlY3Rvcl8sXG4gICAgTGlzdFZlY3RvcjogTGlzdFZlY3Rvcl8sXG4gICAgVXRmOFZlY3RvcjogVXRmOFZlY3Rvcl8sXG4gICAgRGF0ZVZlY3RvcjogRGF0ZVZlY3Rvcl8sXG4gICAgSW5kZXhWZWN0b3I6IEluZGV4VmVjdG9yXyxcbiAgICBUeXBlZFZlY3RvcjogVHlwZWRWZWN0b3JfLFxuICAgIEludDhWZWN0b3I6IEludDhWZWN0b3JfLFxuICAgIEludDE2VmVjdG9yOiBJbnQxNlZlY3Rvcl8sXG4gICAgSW50MzJWZWN0b3I6IEludDMyVmVjdG9yXyxcbiAgICBJbnQ2NFZlY3RvcjogSW50NjRWZWN0b3JfLFxuICAgIFVpbnQ4VmVjdG9yOiBVaW50OFZlY3Rvcl8sXG4gICAgVWludDE2VmVjdG9yOiBVaW50MTZWZWN0b3JfLFxuICAgIFVpbnQzMlZlY3RvcjogVWludDMyVmVjdG9yXyxcbiAgICBVaW50NjRWZWN0b3I6IFVpbnQ2NFZlY3Rvcl8sXG4gICAgRmxvYXQzMlZlY3RvcjogRmxvYXQzMlZlY3Rvcl8sXG4gICAgRmxvYXQ2NFZlY3RvcjogRmxvYXQ2NFZlY3Rvcl8sXG4gICAgU3RydWN0VmVjdG9yOiBTdHJ1Y3RWZWN0b3JfLFxuICAgIFZhbGlkaXR5VmVjdG9yOiBWYWxpZGl0eVZlY3Rvcl8sXG4gICAgRGljdGlvbmFyeVZlY3RvcjogRGljdGlvbmFyeVZlY3Rvcl8sXG4gICAgRml4ZWRTaXplTGlzdFZlY3RvcjogRml4ZWRTaXplTGlzdFZlY3Rvcl8sXG59O1xuXG5leHBvcnQgbmFtZXNwYWNlIHZlY3RvcnMge1xuICAgIGV4cG9ydCB0eXBlIFZlY3RvcjxUPiA9ICBWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIExpc3RWZWN0b3I8VD4gPSAgTGlzdFZlY3Rvcl88VD47XG4gICAgZXhwb3J0IHR5cGUgVXRmOFZlY3RvciA9ICBVdGY4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBEYXRlVmVjdG9yID0gIERhdGVWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEluZGV4VmVjdG9yID0gIEluZGV4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQ4VmVjdG9yID0gIEludDhWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEludDE2VmVjdG9yID0gIEludDE2VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQzMlZlY3RvciA9ICBJbnQzMlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgSW50NjRWZWN0b3IgPSAgSW50NjRWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIFVpbnQ4VmVjdG9yID0gIFVpbnQ4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50MTZWZWN0b3IgPSAgVWludDE2VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50MzJWZWN0b3IgPSAgVWludDMyVmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50NjRWZWN0b3IgPSAgVWludDY0VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBGbG9hdDMyVmVjdG9yID0gIEZsb2F0MzJWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEZsb2F0NjRWZWN0b3IgPSAgRmxvYXQ2NFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgU3RydWN0VmVjdG9yID0gIFN0cnVjdFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVmFsaWRpdHlWZWN0b3IgPSAgVmFsaWRpdHlWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIERpY3Rpb25hcnlWZWN0b3I8VD4gPSAgRGljdGlvbmFyeVZlY3Rvcl88VD47XG4gICAgZXhwb3J0IHR5cGUgRml4ZWRTaXplTGlzdFZlY3RvcjxUPiA9ICBGaXhlZFNpemVMaXN0VmVjdG9yXzxUPjtcbiAgICBleHBvcnQgdHlwZSBUeXBlZFZlY3RvcjxULCBUQXJyYXk+ID0gIFR5cGVkVmVjdG9yXzxULCBUQXJyYXk+O1xufVxuXG4vKiBUaGVzZSBleHBvcnRzIGFyZSBuZWVkZWQgZm9yIHRoZSBjbG9zdXJlIHVtZCB0YXJnZXRzICovXG50cnkge1xuICAgIGNvbnN0IEFycm93ID0gZXZhbCgnZXhwb3J0cycpO1xuICAgIGlmICh0eXBlb2YgQXJyb3cgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIHN0cmluZyBpbmRleGVycyB0ZWxsIGNsb3N1cmUgY29tcGlsZXIgbm90IHRvIHJlbmFtZSB0aGVzZSBwcm9wZXJ0aWVzXG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ10gPSB7fTtcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVmVjdG9yJ10gPSBWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydMaXN0VmVjdG9yJ10gPSBMaXN0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVXRmOFZlY3RvciddID0gVXRmOFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0RhdGVWZWN0b3InXSA9IERhdGVWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydJbmRleFZlY3RvciddID0gSW5kZXhWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydJbnQ4VmVjdG9yJ10gPSBJbnQ4VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50MTZWZWN0b3InXSA9IEludDE2VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50MzJWZWN0b3InXSA9IEludDMyVmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50NjRWZWN0b3InXSA9IEludDY0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVWludDhWZWN0b3InXSA9IFVpbnQ4VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVWludDE2VmVjdG9yJ10gPSBVaW50MTZWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydVaW50MzJWZWN0b3InXSA9IFVpbnQzMlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQ2NFZlY3RvciddID0gVWludDY0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnRmxvYXQzMlZlY3RvciddID0gRmxvYXQzMlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0Zsb2F0NjRWZWN0b3InXSA9IEZsb2F0NjRWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydTdHJ1Y3RWZWN0b3InXSA9IFN0cnVjdFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1ZhbGlkaXR5VmVjdG9yJ10gPSBWYWxpZGl0eVZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0RpY3Rpb25hcnlWZWN0b3InXSA9IERpY3Rpb25hcnlWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydGaXhlZFNpemVMaXN0VmVjdG9yJ10gPSBGaXhlZFNpemVMaXN0VmVjdG9yXztcbiAgICB9XG59IGNhdGNoIChlKSB7IC8qIG5vdCB0aGUgVU1EIGJ1bmRsZSAqLyB9XG4vKiogZW5kIGNsb3N1cmUgZXhwb3J0cyAqL1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LmludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjs7QUFFckIsNENBQW9EO0FBQ3BELDRDQUFnRTtBQUNoRSxvREFBNEU7QUFDNUUsd0NBQWtJO0FBQ2xJLDBDQVF3QjtBQUVYLFFBQUEsT0FBTyxHQUFHO0lBQ25CLE1BQU0sRUFBRSxlQUFPO0lBQ2YsU0FBUyxFQUFFLGlCQUFVO0lBQ3JCLFVBQVUsRUFBRSxpQkFBVztJQUN2QixVQUFVLEVBQUUsaUJBQVc7SUFDdkIsVUFBVSxFQUFFLGtCQUFXO0lBQ3ZCLFdBQVcsRUFBRSxtQkFBWTtJQUN6QixXQUFXLEVBQUUsbUJBQVk7SUFDekIsVUFBVSxFQUFFLGtCQUFXO0lBQ3ZCLFdBQVcsRUFBRSxtQkFBWTtJQUN6QixXQUFXLEVBQUUsbUJBQVk7SUFDekIsV0FBVyxFQUFFLG1CQUFZO0lBQ3pCLFdBQVcsRUFBRSxtQkFBWTtJQUN6QixZQUFZLEVBQUUsb0JBQWE7SUFDM0IsWUFBWSxFQUFFLG9CQUFhO0lBQzNCLFlBQVksRUFBRSxvQkFBYTtJQUMzQixhQUFhLEVBQUUscUJBQWM7SUFDN0IsYUFBYSxFQUFFLHFCQUFjO0lBQzdCLFlBQVksRUFBRSxxQkFBYTtJQUMzQixnQkFBZ0IsRUFBRSw2QkFBaUI7SUFDbkMsbUJBQW1CLEVBQUUsMEJBQW9CO0NBQzVDLENBQUM7QUF5QkYsMERBQTBEO0FBQzFELElBQUksQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVCLHVFQUF1RTtRQUN2RSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxlQUFPLENBQUM7UUFDckMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLGlCQUFVLENBQUM7UUFDM0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLGlCQUFXLENBQUM7UUFDN0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLGlCQUFXLENBQUM7UUFDN0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLGtCQUFXLENBQUM7UUFDN0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLG1CQUFZLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLGtCQUFXLENBQUM7UUFDN0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLG1CQUFZLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLG1CQUFZLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLG1CQUFZLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLG1CQUFZLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLG9CQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLG9CQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLG9CQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLHFCQUFjLENBQUM7UUFDbkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLHFCQUFjLENBQUM7UUFDbkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLHFCQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsNkJBQWlCLENBQUM7UUFDekQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsMEJBQW9CLENBQUM7SUFDbkUsQ0FBQztBQUNMLENBQUM7QUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQTBCLENBQUM7QUFDeEMsMEJBQTBCIiwiZmlsZSI6IkFycm93LmludGVybmFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IFZlY3RvciBhcyBWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3IvdmVjdG9yJztcbmltcG9ydCB7IFN0cnVjdFZlY3RvciBhcyBTdHJ1Y3RWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3Ivc3RydWN0JztcbmltcG9ydCB7IERpY3Rpb25hcnlWZWN0b3IgYXMgRGljdGlvbmFyeVZlY3Rvcl8gfSBmcm9tICcuL3ZlY3Rvci9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IExpc3RWZWN0b3IgYXMgTGlzdFZlY3Rvcl8sIFV0ZjhWZWN0b3IgYXMgVXRmOFZlY3Rvcl8sIEZpeGVkU2l6ZUxpc3RWZWN0b3IgYXMgRml4ZWRTaXplTGlzdFZlY3Rvcl8gfSBmcm9tICcuL3ZlY3Rvci9saXN0JztcbmltcG9ydCB7XG4gICAgVHlwZWRWZWN0b3IgYXMgVHlwZWRWZWN0b3JfLCBCaXRWZWN0b3IgYXMgQml0VmVjdG9yXyxcbiAgICBEYXRlVmVjdG9yIGFzIERhdGVWZWN0b3JfLCBJbmRleFZlY3RvciBhcyBJbmRleFZlY3Rvcl8sXG4gICAgSW50OFZlY3RvciBhcyBJbnQ4VmVjdG9yXywgSW50MTZWZWN0b3IgYXMgSW50MTZWZWN0b3JfLFxuICAgIEludDMyVmVjdG9yIGFzIEludDMyVmVjdG9yXywgSW50NjRWZWN0b3IgYXMgSW50NjRWZWN0b3JfLFxuICAgIFVpbnQ4VmVjdG9yIGFzIFVpbnQ4VmVjdG9yXywgVWludDE2VmVjdG9yIGFzIFVpbnQxNlZlY3Rvcl8sXG4gICAgVWludDMyVmVjdG9yIGFzIFVpbnQzMlZlY3Rvcl8sIFVpbnQ2NFZlY3RvciBhcyBVaW50NjRWZWN0b3JfLFxuICAgIEZsb2F0MzJWZWN0b3IgYXMgRmxvYXQzMlZlY3Rvcl8sIEZsb2F0NjRWZWN0b3IgYXMgRmxvYXQ2NFZlY3Rvcl8sXG59IGZyb20gJy4vdmVjdG9yL3R5cGVkJztcblxuZXhwb3J0IGNvbnN0IHZlY3RvcnMgPSB7XG4gICAgVmVjdG9yOiBWZWN0b3JfLFxuICAgIEJpdFZlY3RvcjogQml0VmVjdG9yXyxcbiAgICBMaXN0VmVjdG9yOiBMaXN0VmVjdG9yXyxcbiAgICBVdGY4VmVjdG9yOiBVdGY4VmVjdG9yXyxcbiAgICBEYXRlVmVjdG9yOiBEYXRlVmVjdG9yXyxcbiAgICBJbmRleFZlY3RvcjogSW5kZXhWZWN0b3JfLFxuICAgIFR5cGVkVmVjdG9yOiBUeXBlZFZlY3Rvcl8sXG4gICAgSW50OFZlY3RvcjogSW50OFZlY3Rvcl8sXG4gICAgSW50MTZWZWN0b3I6IEludDE2VmVjdG9yXyxcbiAgICBJbnQzMlZlY3RvcjogSW50MzJWZWN0b3JfLFxuICAgIEludDY0VmVjdG9yOiBJbnQ2NFZlY3Rvcl8sXG4gICAgVWludDhWZWN0b3I6IFVpbnQ4VmVjdG9yXyxcbiAgICBVaW50MTZWZWN0b3I6IFVpbnQxNlZlY3Rvcl8sXG4gICAgVWludDMyVmVjdG9yOiBVaW50MzJWZWN0b3JfLFxuICAgIFVpbnQ2NFZlY3RvcjogVWludDY0VmVjdG9yXyxcbiAgICBGbG9hdDMyVmVjdG9yOiBGbG9hdDMyVmVjdG9yXyxcbiAgICBGbG9hdDY0VmVjdG9yOiBGbG9hdDY0VmVjdG9yXyxcbiAgICBTdHJ1Y3RWZWN0b3I6IFN0cnVjdFZlY3Rvcl8sXG4gICAgRGljdGlvbmFyeVZlY3RvcjogRGljdGlvbmFyeVZlY3Rvcl8sXG4gICAgRml4ZWRTaXplTGlzdFZlY3RvcjogRml4ZWRTaXplTGlzdFZlY3Rvcl8sXG59O1xuXG5leHBvcnQgbmFtZXNwYWNlIHZlY3RvcnMge1xuICAgIGV4cG9ydCB0eXBlIFZlY3RvcjxUPiA9ICBWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIEJpdFZlY3RvciA9ICBCaXRWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIExpc3RWZWN0b3I8VD4gPSAgTGlzdFZlY3Rvcl88VD47XG4gICAgZXhwb3J0IHR5cGUgVXRmOFZlY3RvciA9ICBVdGY4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBEYXRlVmVjdG9yID0gIERhdGVWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEluZGV4VmVjdG9yID0gIEluZGV4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQ4VmVjdG9yID0gIEludDhWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEludDE2VmVjdG9yID0gIEludDE2VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQzMlZlY3RvciA9ICBJbnQzMlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgSW50NjRWZWN0b3IgPSAgSW50NjRWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIFVpbnQ4VmVjdG9yID0gIFVpbnQ4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50MTZWZWN0b3IgPSAgVWludDE2VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50MzJWZWN0b3IgPSAgVWludDMyVmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50NjRWZWN0b3IgPSAgVWludDY0VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBGbG9hdDMyVmVjdG9yID0gIEZsb2F0MzJWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEZsb2F0NjRWZWN0b3IgPSAgRmxvYXQ2NFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgU3RydWN0VmVjdG9yID0gIFN0cnVjdFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgRGljdGlvbmFyeVZlY3RvcjxUPiA9ICBEaWN0aW9uYXJ5VmVjdG9yXzxUPjtcbiAgICBleHBvcnQgdHlwZSBGaXhlZFNpemVMaXN0VmVjdG9yPFQ+ID0gIEZpeGVkU2l6ZUxpc3RWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIFR5cGVkVmVjdG9yPFQsIFRBcnJheT4gPSAgVHlwZWRWZWN0b3JfPFQsIFRBcnJheT47XG59XG5cbi8qIFRoZXNlIGV4cG9ydHMgYXJlIG5lZWRlZCBmb3IgdGhlIGNsb3N1cmUgdW1kIHRhcmdldHMgKi9cbnRyeSB7XG4gICAgY29uc3QgQXJyb3cgPSBldmFsKCdleHBvcnRzJyk7XG4gICAgaWYgKHR5cGVvZiBBcnJvdyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gc3RyaW5nIGluZGV4ZXJzIHRlbGwgY2xvc3VyZSBjb21waWxlciBub3QgdG8gcmVuYW1lIHRoZXNlIHByb3BlcnRpZXNcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXSA9IHt9O1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydWZWN0b3InXSA9IFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0JpdFZlY3RvciddID0gQml0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnTGlzdFZlY3RvciddID0gTGlzdFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1V0ZjhWZWN0b3InXSA9IFV0ZjhWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydEYXRlVmVjdG9yJ10gPSBEYXRlVmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW5kZXhWZWN0b3InXSA9IEluZGV4VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50OFZlY3RvciddID0gSW50OFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDE2VmVjdG9yJ10gPSBJbnQxNlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDMyVmVjdG9yJ10gPSBJbnQzMlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDY0VmVjdG9yJ10gPSBJbnQ2NFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQ4VmVjdG9yJ10gPSBVaW50OFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQxNlZlY3RvciddID0gVWludDE2VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVWludDMyVmVjdG9yJ10gPSBVaW50MzJWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydVaW50NjRWZWN0b3InXSA9IFVpbnQ2NFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0Zsb2F0MzJWZWN0b3InXSA9IEZsb2F0MzJWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydGbG9hdDY0VmVjdG9yJ10gPSBGbG9hdDY0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnU3RydWN0VmVjdG9yJ10gPSBTdHJ1Y3RWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydEaWN0aW9uYXJ5VmVjdG9yJ10gPSBEaWN0aW9uYXJ5VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnRml4ZWRTaXplTGlzdFZlY3RvciddID0gRml4ZWRTaXplTGlzdFZlY3Rvcl87XG4gICAgfVxufSBjYXRjaCAoZSkgeyAvKiBub3QgdGhlIFVNRCBidW5kbGUgKi8gfVxuLyoqIGVuZCBjbG9zdXJlIGV4cG9ydHMgKi9cbiJdfQ== |
@@ -6,4 +6,4 @@ # Change Log | ||
<a name="0.0.3"></a> | ||
## 0.0.3 (2017-08-16) | ||
<a name="0.0.4"></a> | ||
## 0.0.4 (2017-08-23) | ||
@@ -13,4 +13,4 @@ | ||
<a name="0.0.2"></a> | ||
## 0.0.2 (2017-08-15) | ||
<a name="0.0.3"></a> | ||
## 0.0.3 (2017-08-16) | ||
@@ -17,0 +17,0 @@ |
{ | ||
"main": "Arrow.js", | ||
"typings": "Arrow.d.ts", | ||
"name": "@apache-arrow/esnext-cjs", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "Apache's columnar in-memory data format for big data analytics", | ||
@@ -16,3 +17,2 @@ "author": "Graphistry, Inc.", | ||
], | ||
"typings": "./types/Arrow.d.ts", | ||
"repository": { | ||
@@ -19,0 +19,0 @@ "type": "git", |
@@ -77,2 +77,2 @@ // Licensed to the Apache Software Foundation (ASF) under one | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xGLENBQUM7WUFDRCxNQUFNLE9BQU8sQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFwQkQsa0NBb0JDO0FBRUQsc0JBQXNCLEtBQW9DO0lBQ3RELElBQUksR0FBRyxHQUFlLEtBQVksSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVCLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDMUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJmaWxlIjoicmVhZGVyL2Fycm93LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcblxuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgcmVhZFN0cmVhbSB9IGZyb20gJy4vc3RyZWFtJztcbmltcG9ydCB7IHJlYWRWZWN0b3IgfSBmcm9tICcuL3ZlY3Rvcic7XG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL3ZlY3Rvcic7XG5pbXBvcnQgeyByZWFkRGljdGlvbmFyaWVzIH0gZnJvbSAnLi9kaWN0aW9uYXJ5JztcblxuaW1wb3J0IEJ5dGVCdWZmZXIgPSBmbGF0YnVmZmVycy5CeXRlQnVmZmVyO1xuZXhwb3J0IGltcG9ydCBTY2hlbWEgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5TY2hlbWE7XG5leHBvcnQgaW1wb3J0IFJlY29yZEJhdGNoID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlJlY29yZEJhdGNoO1xuZXhwb3J0IHR5cGUgRGljdGlvbmFyaWVzID0geyBbazogc3RyaW5nXTogVmVjdG9yPGFueT4gfTtcbmV4cG9ydCB0eXBlIEl0ZXJhdG9yU3RhdGUgPSB7IG5vZGVJbmRleDogbnVtYmVyOyBidWZmZXJJbmRleDogbnVtYmVyIH07XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZFJlY29yZHMoLi4uYnl0ZXM6IEJ5dGVCdWZmZXJbXSkge1xuICAgIHRyeSB7XG4gICAgICAgIHlpZWxkKiByZWFkRmlsZSguLi5ieXRlcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgeWllbGQqIHJlYWRTdHJlYW0oLi4uYnl0ZXMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJyb3cgYnVmZmVyJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZEJ1ZmZlcnMoLi4uYnl0ZXM6IEFycmF5PFVpbnQ4QXJyYXkgfCBCdWZmZXIgfCBzdHJpbmc+KSB7XG4gICAgY29uc3QgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMgPSB7fTtcbiAgICBjb25zdCBieXRlQnVmZmVycyA9IGJ5dGVzLm1hcCh0b0J5dGVCdWZmZXIpO1xuICAgIGZvciAobGV0IHsgc2NoZW1hLCBiYXRjaCB9IG9mIHJlYWRSZWNvcmRzKC4uLmJ5dGVCdWZmZXJzKSkge1xuICAgICAgICBsZXQgdmVjdG9yczogVmVjdG9yPGFueT5bXSA9IFtdO1xuICAgICAgICBsZXQgc3RhdGUgPSB7IG5vZGVJbmRleDogMCwgYnVmZmVySW5kZXg6IDAgfTtcbiAgICAgICAgbGV0IGluZGV4ID0gLTEsIGZpZWxkc0xlbmd0aCA9IHNjaGVtYS5maWVsZHNMZW5ndGgoKTtcbiAgICAgICAgaWYgKGJhdGNoLmlkKSB7XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGZpZWxkc0xlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IFtpZCwgdmVjdG9yXSBvZiByZWFkRGljdGlvbmFyaWVzKHNjaGVtYS5maWVsZHMoaW5kZXgpLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzW2lkXSA9IGRpY3Rpb25hcmllc1tpZF0gJiYgZGljdGlvbmFyaWVzW2lkXS5jb25jYXQodmVjdG9yKSB8fCB2ZWN0b3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBmaWVsZHNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2ZWN0b3JzW2luZGV4XSA9IHJlYWRWZWN0b3Ioc2NoZW1hLmZpZWxkcyhpbmRleCksIGJhdGNoLCBzdGF0ZSwgZGljdGlvbmFyaWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHZlY3RvcnM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvQnl0ZUJ1ZmZlcihieXRlcz86IFVpbnQ4QXJyYXkgfCBCdWZmZXIgfCBzdHJpbmcpIHtcbiAgICBsZXQgYXJyOiBVaW50OEFycmF5ID0gYnl0ZXMgYXMgYW55IHx8IG5ldyBVaW50OEFycmF5KDApO1xuICAgIGlmICh0eXBlb2YgYnl0ZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGFyciA9IG5ldyBVaW50OEFycmF5KGJ5dGVzLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGJ5dGVzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGFycltpXSA9IGJ5dGVzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBCeXRlQnVmZmVyKGFycik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQnl0ZUJ1ZmZlcihhcnIpO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xGLENBQUM7WUFDRCxNQUFNLE9BQU8sQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFwQkQsa0NBb0JDO0FBRUQsc0JBQXNCLEtBQW9DO0lBQ3RELElBQUksR0FBRyxHQUFlLEtBQVksSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVCLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDMUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJmaWxlIjoicmVhZGVyL2Fycm93LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcblxuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgcmVhZFN0cmVhbSB9IGZyb20gJy4vc3RyZWFtJztcbmltcG9ydCB7IHJlYWRWZWN0b3IgfSBmcm9tICcuL3ZlY3Rvcic7XG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3IvdmVjdG9yJztcbmltcG9ydCB7IHJlYWREaWN0aW9uYXJpZXMgfSBmcm9tICcuL2RpY3Rpb25hcnknO1xuXG5pbXBvcnQgQnl0ZUJ1ZmZlciA9IGZsYXRidWZmZXJzLkJ5dGVCdWZmZXI7XG5leHBvcnQgaW1wb3J0IFNjaGVtYSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlNjaGVtYTtcbmV4cG9ydCBpbXBvcnQgUmVjb3JkQmF0Y2ggPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuUmVjb3JkQmF0Y2g7XG5leHBvcnQgdHlwZSBEaWN0aW9uYXJpZXMgPSB7IFtrOiBzdHJpbmddOiBWZWN0b3I8YW55PiB9O1xuZXhwb3J0IHR5cGUgSXRlcmF0b3JTdGF0ZSA9IHsgbm9kZUluZGV4OiBudW1iZXI7IGJ1ZmZlckluZGV4OiBudW1iZXIgfTtcblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkUmVjb3JkcyguLi5ieXRlczogQnl0ZUJ1ZmZlcltdKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgeWllbGQqIHJlYWRGaWxlKC4uLmJ5dGVzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB5aWVsZCogcmVhZFN0cmVhbSguLi5ieXRlcyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcnJvdyBidWZmZXInKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkQnVmZmVycyguLi5ieXRlczogQXJyYXk8VWludDhBcnJheSB8IEJ1ZmZlciB8IHN0cmluZz4pIHtcbiAgICBjb25zdCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcyA9IHt9O1xuICAgIGNvbnN0IGJ5dGVCdWZmZXJzID0gYnl0ZXMubWFwKHRvQnl0ZUJ1ZmZlcik7XG4gICAgZm9yIChsZXQgeyBzY2hlbWEsIGJhdGNoIH0gb2YgcmVhZFJlY29yZHMoLi4uYnl0ZUJ1ZmZlcnMpKSB7XG4gICAgICAgIGxldCB2ZWN0b3JzOiBWZWN0b3I8YW55PltdID0gW107XG4gICAgICAgIGxldCBzdGF0ZSA9IHsgbm9kZUluZGV4OiAwLCBidWZmZXJJbmRleDogMCB9O1xuICAgICAgICBsZXQgaW5kZXggPSAtMSwgZmllbGRzTGVuZ3RoID0gc2NoZW1hLmZpZWxkc0xlbmd0aCgpO1xuICAgICAgICBpZiAoYmF0Y2guaWQpIHtcbiAgICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgZmllbGRzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgW2lkLCB2ZWN0b3JdIG9mIHJlYWREaWN0aW9uYXJpZXMoc2NoZW1hLmZpZWxkcyhpbmRleCksIGJhdGNoLCBzdGF0ZSwgZGljdGlvbmFyaWVzKSkge1xuICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJpZXNbaWRdID0gZGljdGlvbmFyaWVzW2lkXSAmJiBkaWN0aW9uYXJpZXNbaWRdLmNvbmNhdCh2ZWN0b3IpIHx8IHZlY3RvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGZpZWxkc0xlbmd0aCkge1xuICAgICAgICAgICAgICAgIHZlY3RvcnNbaW5kZXhdID0gcmVhZFZlY3RvcihzY2hlbWEuZmllbGRzKGluZGV4KSwgYmF0Y2gsIHN0YXRlLCBkaWN0aW9uYXJpZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgdmVjdG9ycztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gdG9CeXRlQnVmZmVyKGJ5dGVzPzogVWludDhBcnJheSB8IEJ1ZmZlciB8IHN0cmluZykge1xuICAgIGxldCBhcnI6IFVpbnQ4QXJyYXkgPSBieXRlcyBhcyBhbnkgfHwgbmV3IFVpbnQ4QXJyYXkoMCk7XG4gICAgaWYgKHR5cGVvZiBieXRlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMubGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gYnl0ZXMubGVuZ3RoOyArK2kgPCBuOykge1xuICAgICAgICAgICAgYXJyW2ldID0gYnl0ZXMuY2hhckNvZGVBdChpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEJ5dGVCdWZmZXIoYXJyKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBCeXRlQnVmZmVyKGFycik7XG59XG4iXX0= |
@@ -19,6 +19,6 @@ // Licensed to the Apache Software Foundation (ASF) under one | ||
const Schema_ = require("../format/Schema"); | ||
const struct_1 = require("../vectors/struct"); | ||
const dictionary_1 = require("../vectors/dictionary"); | ||
const list_1 = require("../vectors/list"); | ||
const typed_1 = require("../vectors/typed"); | ||
const struct_1 = require("../vector/struct"); | ||
const dictionary_1 = require("../vector/dictionary"); | ||
const list_1 = require("../vector/list"); | ||
const typed_1 = require("../vector/typed"); | ||
var Int = Schema_.org.apache.arrow.flatbuf.Int; | ||
@@ -173,2 +173,2 @@ var Type = Schema_.org.apache.arrow.flatbuf.Type; | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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LENBQUM7SUFDeEcsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxVQUFVO1VBQ3JELE1BQU07VUFDTixVQUFVLEdBQUcsVUFBVSxDQUM1QixHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCwwQkFBMEIsUUFBZ0IsRUFBRSxNQUFhO0lBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDIiwiZmlsZSI6InJlYWRlci92ZWN0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgTWVzc2FnZUJhdGNoIH0gZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvdmVjdG9yJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgeyBTdHJ1Y3RWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL3N0cnVjdCc7XG5pbXBvcnQgeyBJdGVyYXRvclN0YXRlLCBEaWN0aW9uYXJpZXMgfSBmcm9tICcuL2Fycm93JztcbmltcG9ydCB7IERpY3Rpb25hcnlWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgVXRmOFZlY3RvciwgTGlzdFZlY3RvciwgRml4ZWRTaXplTGlzdFZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvbGlzdCc7XG5pbXBvcnQge1xuICAgIFR5cGVkQXJyYXksIFR5cGVkQXJyYXlDdG9yLCBJbnRBcnJheSwgRmxvYXRBcnJheSxcbiAgICBJbnQ4VmVjdG9yLCBJbnQxNlZlY3RvciwgSW50MzJWZWN0b3IsIEludDY0VmVjdG9yLFxuICAgIFVpbnQ4VmVjdG9yLCBVaW50MTZWZWN0b3IsIFVpbnQzMlZlY3RvciwgVWludDY0VmVjdG9yLFxuICAgIEZsb2F0MzJWZWN0b3IsIEZsb2F0NjRWZWN0b3IsIEluZGV4VmVjdG9yLCBEYXRlVmVjdG9yLFxufSBmcm9tICcuLi92ZWN0b3JzL3R5cGVkJztcblxuaW1wb3J0IEludCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkludDtcbmltcG9ydCBUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVHlwZTtcbmltcG9ydCBGaWVsZCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpZWxkO1xuaW1wb3J0IFByZWNpc2lvbiA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlByZWNpc2lvbjtcbmltcG9ydCBWZWN0b3JUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVmVjdG9yVHlwZTtcbmltcG9ydCBGaXhlZFNpemVMaXN0ID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRml4ZWRTaXplTGlzdDtcbmltcG9ydCBGbG9hdGluZ1BvaW50ID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRmxvYXRpbmdQb2ludDtcbmltcG9ydCBEaWN0aW9uYXJ5RW5jb2RpbmcgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5EaWN0aW9uYXJ5RW5jb2Rpbmc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgc3RhdGU6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgcmV0dXJuIHJlYWREaWN0aW9uYXJ5VmVjdG9yKGZpZWxkLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcykgfHxcbiAgICAgICAgICAgICAgICByZWFkVHlwZWRWZWN0b3IoZmllbGQsIGJhdGNoLCBzdGF0ZSwgZGljdGlvbmFyaWVzKTtcbn1cblxuZnVuY3Rpb24gcmVhZFR5cGVkVmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IHR5cGVUeXBlID0gZmllbGQudHlwZVR5cGUoKSwgcmVhZFR5cGVkID0gdHlwZWRWZWN0b3JSZWFkZXJzW3R5cGVUeXBlXTtcbiAgICBpZiAoIXJlYWRUeXBlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB2ZWN0b3IgbmFtZSBcIicgKyBUeXBlW3R5cGVUeXBlXSArICdcIiB0eXBlIFwiJyArIHR5cGVUeXBlICsgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiByZWFkVHlwZWQoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbn1cblxuZnVuY3Rpb24gcmVhZERpY3Rpb25hcnlWZWN0b3IoZmllbGQ6IEZpZWxkLCBiYXRjaDogTWVzc2FnZUJhdGNoLCBpdGVyYXRvcjogSXRlcmF0b3JTdGF0ZSwgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgZW5jb2Rpbmc6IERpY3Rpb25hcnlFbmNvZGluZztcbiAgICBpZiAoZGljdGlvbmFyaWVzICYmIChlbmNvZGluZyA9IGZpZWxkLmRpY3Rpb25hcnkoKSkpIHtcbiAgICAgICAgbGV0IGlkID0gZW5jb2RpbmcuaWQoKS50b0Zsb2F0NjQoKS50b1N0cmluZygpO1xuICAgICAgICBsZXQgaW5kZXggPSByZWFkSW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIG51bGwsXG4gICAgICAgICAgICAvKiBhIGRpY3Rpb25hcnkgaW5kZXggZGVmYXVsdHMgdG8gc2lnbmVkIDMyIGJpdCBpbnQgaWYgdW5zcGVjaWZpZWQgKi9cbiAgICAgICAgICAgIGVuY29kaW5nLmluZGV4VHlwZSgpIHx8IHsgYml0V2lkdGg6ICgpID0+IDMyLCBpc1NpZ25lZDogKCkgPT4gdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIERpY3Rpb25hcnlWZWN0b3IuY3JlYXRlKGZpZWxkLCBpbmRleC5sZW5ndGgsIGluZGV4LCBkaWN0aW9uYXJpZXNbaWRdKTtcbiAgICB9XG59XG5cbmNvbnN0IEludFZpZXdzICAgID0gW0ludDhBcnJheSwgICAgSW50MTZBcnJheSwgICBJbnQzMkFycmF5LCAgIEludDMyQXJyYXkgIF07XG5jb25zdCBJbnQzMlZpZXdzICA9IFtJbnQzMkFycmF5LCAgIEludDMyQXJyYXksICAgSW50MzJBcnJheSwgICBJbnQzMkFycmF5ICBdO1xuY29uc3QgVWludFZpZXdzICAgPSBbVWludDhBcnJheSwgICBVaW50MTZBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXkgXTtcbmNvbnN0IFVpbnQ4Vmlld3MgID0gW1VpbnQ4QXJyYXksICAgVWludDhBcnJheSwgICBVaW50OEFycmF5LCAgIFVpbnQ4QXJyYXkgIF07XG5jb25zdCBVaW50MzJWaWV3cyA9IFtVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXksICBVaW50MzJBcnJheSBdO1xuY29uc3QgRmxvYXRWaWV3cyAgPSBbSW50OEFycmF5LCAgICBJbnQxNkFycmF5LCAgIEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFycmF5XTtcblxuY29uc3QgY3JlYXRlSW50RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBJbnRWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVVaW50RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlRGF0ZURhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDMyVmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlRmxvYXREYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIEZsb2F0Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlTmVzdGVkRGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50MzJWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVWYWxpZGl0eURhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDhWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVVdGY4RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50OFZpZXdzLCBJbnQzMlZpZXdzKTtcblxuY29uc3QgZmxvYXRWZWN0b3JzID0ge1xuICAgIFtQcmVjaXNpb24uU0lOR0xFXTogRmxvYXQzMlZlY3RvcixcbiAgICBbUHJlY2lzaW9uLkRPVUJMRV06IEZsb2F0NjRWZWN0b3Jcbn07XG5jb25zdCBpbnRWZWN0b3JzID0gW1xuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50OFZlY3RvciwgICAvKiBzaWduZWQgKi8gSW50OFZlY3RvciBdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50MTZWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50MTZWZWN0b3JdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50MzJWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50MzJWZWN0b3JdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50NjRWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50NjRWZWN0b3JdXG5dO1xuXG5mdW5jdGlvbiByZWFkSW50VmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzLCBmaWVsZFR5cGU/OiBGaWVsZFR5cGUpIHtcbiAgICBsZXQgdHlwZSA9IChmaWVsZFR5cGUgfHwgZmllbGQudHlwZShuZXcgSW50KCkpKTtcbiAgICByZXR1cm4gdHlwZS5pc1NpZ25lZCgpID9cbiAgICAgICAgcmVhZF9JbnRWZWN0b3IoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzLCB0eXBlKSA6XG4gICAgICAgIHJlYWRVaW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcywgdHlwZSk7XG59XG5cbmNvbnN0IHJlYWRfSW50VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxudW1iZXIsIEludEFycmF5PihjcmVhdGVJbnREYXRhVmlld3MsIGNyZWF0ZUludFZlY3Rvcik7XG5jb25zdCByZWFkVWludFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBJbnRBcnJheT4oY3JlYXRlVWludERhdGFWaWV3cywgY3JlYXRlSW50VmVjdG9yKTtcbmZ1bmN0aW9uIGNyZWF0ZUludFZlY3RvcihmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykge1xuICAgIGxldCB0eXBlID0gZmllbGRUeXBlIHx8IGZpZWxkLnR5cGUobmV3IEludCgpKSwgYml0V2lkdGggPSB0eXBlLmJpdFdpZHRoKCk7XG4gICAgbGV0IFZlY3RvciA9IHZhbHVlRm9yQml0V2lkdGgoYml0V2lkdGgsIGludFZlY3RvcnMpWyt0eXBlLmlzU2lnbmVkKCldO1xuICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCBkYXRhIHx8IG9mZnNldHMpO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gc28gdGhpcyBpcyBraW5kYSBzdHJhbmdlIPCfkYY6XG4gICAgLy8gVGhlIGRpY3Rpb25hcnkgZW5jb2RlZCB2ZWN0b3JzIEkgZ2VuZXJhdGVkIGZyb20gc2FtcGxlIG1hcGQtY29yZSBxdWVyaWVzIGhhdmUgdGhlIGluZGljaWVzJyBkYXRhIGJ1ZmZlcnNcbiAgICAvLyB0YWdnZWQgYXMgVmVjdG9yVHlwZS5PRkZTRVQgKDApIGluIHRoZSBmaWVsZCBtZXRhZGF0YS4gVGhlIGN1cnJlbnQgVFMgaW1wbCBpZ25vcmVzIGJ1ZmZlcnMnIGxheW91dCB0eXBlLFxuICAgIC8vIGFuZCBhc3N1bWVzIHRoZSBzZWNvbmQgYnVmZmVyIGlzIHRoZSBkYXRhIGZvciBhIE51bGxhYmxlSW50VmVjdG9yLiBTaW5jZSB3ZSd2ZSBiZWVuIHN0cmljdGVyIGFib3V0IGVuZm9yY2luZ1xuICAgIC8vIHRoZSBBcnJvdyBzcGVjIHdoaWxlIHBhcnNpbmcsIHRoZSBJbnRWZWN0b3IncyBkYXRhIGJ1ZmZlciByZWFkcyBlbXB0eSBpbiB0aGlzIGNhc2UuIElmIHNvLCBmYWxsYmFjayB0byB1c2luZ1xuICAgIC8vIHRoZSBvZmZzZXRzIGJ1ZmZlciBhcyB0aGUgZGF0YSwgc2luY2UgSW50VmVjdG9ycyBkb24ndCBoYXZlIG9mZnNldHMuXG59XG5cbmNvbnN0IHJlYWRGbG9hdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBGbG9hdEFycmF5PihcbiAgICBjcmVhdGVGbG9hdERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IHR5cGUgPSBmaWVsZC50eXBlKG5ldyBGbG9hdGluZ1BvaW50KCkpO1xuICAgICAgICBsZXQgVmVjdG9yID0gZmxvYXRWZWN0b3JzW3R5cGUucHJlY2lzaW9uKCldO1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgZGF0YSk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZERhdGVWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PERhdGUsIFVpbnQzMkFycmF5PihcbiAgICBjcmVhdGVEYXRlRGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICByZXR1cm4gRGF0ZVZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksIGRhdGEpO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRVdGY4VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxzdHJpbmcsIFVpbnQ4QXJyYXk+KFxuICAgIGNyZWF0ZVV0ZjhEYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCBvZmZzZXRzQWRqdXN0ZWQgPSBuZXcgSW50MzJBcnJheShvZmZzZXRzLmJ1ZmZlciwgb2Zmc2V0cy5ieXRlT2Zmc2V0LCBsZW5ndGggKyAxKTtcbiAgICAgICAgcmV0dXJuIFV0ZjhWZWN0b3IuY3JlYXRlKFxuICAgICAgICAgICAgZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksXG4gICAgICAgICAgICBVaW50OFZlY3Rvci5jcmVhdGUoZmllbGQsIGRhdGEubGVuZ3RoLCBudWxsLCBkYXRhKSxcbiAgICAgICAgICAgIEluZGV4VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoICsgMSwgbnVsbCwgb2Zmc2V0c0FkanVzdGVkKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRMaXN0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxhbnlbXSwgVWludDMyQXJyYXk+KFxuICAgIGNyZWF0ZU5lc3RlZERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IG9mZnNldHNBZGp1c3RlZCA9IG5ldyBJbnQzMkFycmF5KG9mZnNldHMuYnVmZmVyLCBvZmZzZXRzLmJ5dGVPZmZzZXQsIGxlbmd0aCArIDEpO1xuICAgICAgICByZXR1cm4gTGlzdFZlY3Rvci5jcmVhdGUoXG4gICAgICAgICAgICBmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSxcbiAgICAgICAgICAgIHJlYWRWZWN0b3IoZmllbGQuY2hpbGRyZW4oMCksIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSxcbiAgICAgICAgICAgIEluZGV4VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoICsgMSwgbnVsbCwgb2Zmc2V0c0FkanVzdGVkKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRGaXhlZFNpemVMaXN0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxhbnlbXSwgVWludDMyQXJyYXk+KFxuICAgIGNyZWF0ZU5lc3RlZERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IHNpemUgPSBmaWVsZC50eXBlKG5ldyBGaXhlZFNpemVMaXN0KCkpLmxpc3RTaXplKCk7XG4gICAgICAgIHJldHVybiBGaXhlZFNpemVMaXN0VmVjdG9yLmNyZWF0ZShcbiAgICAgICAgICAgIGZpZWxkLCBsZW5ndGgsIHNpemUsIHZhbGlkaXR5LFxuICAgICAgICAgICAgcmVhZFZlY3RvcihmaWVsZC5jaGlsZHJlbigwKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpXG4gICAgICAgICk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZFN0cnVjdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8YW55W10sIEFycmF5TGlrZTxhbnk+PihcbiAgICBjcmVhdGVOZXN0ZWREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCB2ZWN0b3JzOiBWZWN0b3I8YW55PltdID0gW107XG4gICAgICAgIGl0ZXJhdG9yLmJ1ZmZlckluZGV4IC09IGZpZWxkLm51bGxhYmxlKCkgPyAwIDogZmllbGQubGF5b3V0TGVuZ3RoKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZpZWxkLmNoaWxkcmVuTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgICAgICB2ZWN0b3JzW2ldID0gcmVhZFZlY3RvcihmaWVsZC5jaGlsZHJlbihpKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTdHJ1Y3RWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCAuLi52ZWN0b3JzKTtcbiAgICB9XG4pO1xuXG5jb25zdCB0eXBlZFZlY3RvclJlYWRlcnMgPSB7XG4gICAgW1R5cGUuSW50XTogcmVhZEludFZlY3RvcixcbiAgICBbVHlwZS5EYXRlXTogcmVhZERhdGVWZWN0b3IsXG4gICAgW1R5cGUuTGlzdF06IHJlYWRMaXN0VmVjdG9yLFxuICAgIFtUeXBlLlV0ZjhdOiByZWFkVXRmOFZlY3RvcixcbiAgICBbVHlwZS5TdHJ1Y3RfXTogcmVhZFN0cnVjdFZlY3RvcixcbiAgICBbVHlwZS5GbG9hdGluZ1BvaW50XTogcmVhZEZsb2F0VmVjdG9yLFxuICAgIFtUeXBlLkZpeGVkU2l6ZUxpc3RdOiByZWFkRml4ZWRTaXplTGlzdFZlY3Rvcixcbn07XG5cbnR5cGUgRmllbGRUeXBlID0geyBiaXRXaWR0aCgpOiBudW1iZXI7IGlzU2lnbmVkKCk6IGJvb2xlYW4gfTtcbnR5cGUgZGF0YVZpZXdGYWN0b3J5PFYgPSBUeXBlZEFycmF5PiA9IChiYXRjaDogTWVzc2FnZUJhdGNoLCB0eXBlOiBWZWN0b3JUeXBlLCBiaXRXaWR0aDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IFY7XG50eXBlIHZlY3RvckZhY3Rvcnk8VExpc3QsIFYgPSBWZWN0b3I8YW55Pj4gPSAoZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFRMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxzOiBVaW50OEFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHM6IFR5cGVkQXJyYXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRUeXBlOiBGaWVsZFR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bms6IE1lc3NhZ2VCYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYWJsZTogSXRlcmF0b3JTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykgPT4gVjtcblxuZnVuY3Rpb24gcmVhZFZlY3RvckxheW91dDxULCBUTGlzdD4oY3JlYXRlRGF0YVZpZXc6IGRhdGFWaWV3RmFjdG9yeTxUTGlzdD4sIGNyZWF0ZVZlY3RvcjogdmVjdG9yRmFjdG9yeTxUTGlzdCwgVmVjdG9yPFQ+Pikge1xuICAgIHJldHVybiBmdW5jdGlvbiByZWFkTGF5b3V0KFxuICAgICAgICAgICAgZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgY2h1bms6IE1lc3NhZ2VCYXRjaCxcbiAgICAgICAgICAgIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLFxuICAgICAgICAgICAgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMsXG4gICAgICAgICAgICBpbnRlZ2VyRmllbGRUeXBlPzogRmllbGRUeXBlXG4gICAgKSB7XG4gICAgICAgIGxldCBiYXRjaCA9IGNodW5rLmRhdGE7XG4gICAgICAgIGxldCBsYXlvdXRMZW5ndGggPSBmaWVsZC5sYXlvdXRMZW5ndGgoKTtcbiAgICAgICAgbGV0IG5vZGUgPSBiYXRjaC5ub2RlcyhpdGVyYXRvci5ub2RlSW5kZXgrKyk7XG4gICAgICAgIGxldCBkYXRhOiBUTGlzdCwgb2Zmc2V0czogYW55LCB2YWxpZGl0eTogVWludDhBcnJheTtcbiAgICAgICAgbGV0IHR5cGUsIGJpdFdpZHRoLCBidWZmZXJMZW5ndGgsIG5vZGVMZW5ndGggPSBub2RlLmxlbmd0aCgpLmxvdztcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xOyArK2kgPCBsYXlvdXRMZW5ndGg7KSB7XG4gICAgICAgICAgICBsZXQgbGF5b3V0ID0gZmllbGQubGF5b3V0KGkpO1xuICAgICAgICAgICAgbGV0IGJ1ZmZlciA9IGJhdGNoLmJ1ZmZlcnMoaXRlcmF0b3IuYnVmZmVySW5kZXgrKyk7XG4gICAgICAgICAgICBpZiAoKHR5cGUgPSBsYXlvdXQudHlwZSgpKSA9PT0gVmVjdG9yVHlwZS5UWVBFIHx8XG4gICAgICAgICAgICAgICAgKGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgoKS5sb3cpIDw9IDAgIHx8XG4gICAgICAgICAgICAgICAgKGJpdFdpZHRoID0gbGF5b3V0LmJpdFdpZHRoKCkpIDw9IDApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVmVjdG9yVHlwZS5EQVRBKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGNyZWF0ZURhdGFWaWV3KGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgYnVmZmVyTGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVmVjdG9yVHlwZS5PRkZTRVQpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXRzID0gY3JlYXRlRGF0YVZpZXcoY2h1bmssIHR5cGUsIGJpdFdpZHRoLCBidWZmZXIub2Zmc2V0KCkubG93LCBidWZmZXJMZW5ndGgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLm51bGxDb3VudCgpLmxvdyA+IDApIHtcbiAgICAgICAgICAgICAgICB2YWxpZGl0eSA9IGNyZWF0ZVZhbGlkaXR5RGF0YVZpZXdzKGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgbm9kZUxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWF0ZVZlY3RvcihmaWVsZCwgbm9kZUxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGludGVnZXJGaWVsZFR5cGUsIGNodW5rLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEYXRhVmlldyhcbiAgICBkYXRhVmlld3M6IFR5cGVkQXJyYXlDdG9yPGFueT5bXSwgb2Zmc2V0Vmlld3M6IFR5cGVkQXJyYXlDdG9yPGFueT5bXSB8IG51bGwsXG4gICAgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgdHlwZTogVmVjdG9yVHlwZSwgYml0V2lkdGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyXG4pIHtcbiAgICBjb25zdCBidWZmZXIgPSBiYXRjaC5ieXRlcy5idWZmZXI7XG4gICAgY29uc3QgYnl0ZUxlbmd0aCA9IGJ1ZmZlci5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IGJ5dGVPZmZzZXQgPSBiYXRjaC5vZmZzZXQgKyBvZmZzZXQ7XG4gICAgY29uc3QgRGF0YVZpZXdUeXBlID0gdmFsdWVGb3JCaXRXaWR0aChiaXRXaWR0aCwgdHlwZSA9PT0gVmVjdG9yVHlwZS5PRkZTRVQgJiYgb2Zmc2V0Vmlld3MgfHwgZGF0YVZpZXdzKTtcbiAgICBjb25zdCBkYXRhVmlld0xlbmd0aCA9ICgoYnl0ZU9mZnNldCArIGxlbmd0aCkgPD0gYnl0ZUxlbmd0aFxuICAgICAgICA/IGxlbmd0aFxuICAgICAgICA6IGJ5dGVMZW5ndGggLSBieXRlT2Zmc2V0XG4gICAgKSAvIERhdGFWaWV3VHlwZVsnQllURVNfUEVSX0VMRU1FTlQnXTtcbiAgICByZXR1cm4gbmV3IERhdGFWaWV3VHlwZShidWZmZXIsIGJ5dGVPZmZzZXQsIGRhdGFWaWV3TGVuZ3RoKTtcbn1cblxuZnVuY3Rpb24gdmFsdWVGb3JCaXRXaWR0aChiaXRXaWR0aDogbnVtYmVyLCB2YWx1ZXM6IGFueVtdKSB7XG4gICAgcmV0dXJuIHZhbHVlc1tiaXRXaWR0aCA+PiA0XSB8fCB2YWx1ZXNbM107XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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LENBQUM7SUFDeEcsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxVQUFVO1VBQ3JELE1BQU07VUFDTixVQUFVLEdBQUcsVUFBVSxDQUM1QixHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCwwQkFBMEIsUUFBZ0IsRUFBRSxNQUFhO0lBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDIiwiZmlsZSI6InJlYWRlci92ZWN0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgTWVzc2FnZUJhdGNoIH0gZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4uL3ZlY3Rvci92ZWN0b3InO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCB7IFN0cnVjdFZlY3RvciB9IGZyb20gJy4uL3ZlY3Rvci9zdHJ1Y3QnO1xuaW1wb3J0IHsgSXRlcmF0b3JTdGF0ZSwgRGljdGlvbmFyaWVzIH0gZnJvbSAnLi9hcnJvdyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5VmVjdG9yIH0gZnJvbSAnLi4vdmVjdG9yL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgVXRmOFZlY3RvciwgTGlzdFZlY3RvciwgRml4ZWRTaXplTGlzdFZlY3RvciB9IGZyb20gJy4uL3ZlY3Rvci9saXN0JztcbmltcG9ydCB7XG4gICAgVHlwZWRBcnJheSwgVHlwZWRBcnJheUN0b3IsIEludEFycmF5LCBGbG9hdEFycmF5LFxuICAgIEludDhWZWN0b3IsIEludDE2VmVjdG9yLCBJbnQzMlZlY3RvciwgSW50NjRWZWN0b3IsXG4gICAgVWludDhWZWN0b3IsIFVpbnQxNlZlY3RvciwgVWludDMyVmVjdG9yLCBVaW50NjRWZWN0b3IsXG4gICAgRmxvYXQzMlZlY3RvciwgRmxvYXQ2NFZlY3RvciwgSW5kZXhWZWN0b3IsIERhdGVWZWN0b3IsXG59IGZyb20gJy4uL3ZlY3Rvci90eXBlZCc7XG5cbmltcG9ydCBJbnQgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5JbnQ7XG5pbXBvcnQgVHlwZSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlR5cGU7XG5pbXBvcnQgRmllbGQgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5GaWVsZDtcbmltcG9ydCBQcmVjaXNpb24gPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5QcmVjaXNpb247XG5pbXBvcnQgVmVjdG9yVHlwZSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlZlY3RvclR5cGU7XG5pbXBvcnQgRml4ZWRTaXplTGlzdCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpeGVkU2l6ZUxpc3Q7XG5pbXBvcnQgRmxvYXRpbmdQb2ludCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZsb2F0aW5nUG9pbnQ7XG5pbXBvcnQgRGljdGlvbmFyeUVuY29kaW5nID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRGljdGlvbmFyeUVuY29kaW5nO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFZlY3RvcihmaWVsZDogRmllbGQsIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIHN0YXRlOiBJdGVyYXRvclN0YXRlLCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykge1xuICAgIHJldHVybiByZWFkRGljdGlvbmFyeVZlY3RvcihmaWVsZCwgYmF0Y2gsIHN0YXRlLCBkaWN0aW9uYXJpZXMpIHx8XG4gICAgICAgICAgICAgICAgcmVhZFR5cGVkVmVjdG9yKGZpZWxkLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcyk7XG59XG5cbmZ1bmN0aW9uIHJlYWRUeXBlZFZlY3RvcihmaWVsZDogRmllbGQsIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykge1xuICAgIGxldCB0eXBlVHlwZSA9IGZpZWxkLnR5cGVUeXBlKCksIHJlYWRUeXBlZCA9IHR5cGVkVmVjdG9yUmVhZGVyc1t0eXBlVHlwZV07XG4gICAgaWYgKCFyZWFkVHlwZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgdmVjdG9yIG5hbWUgXCInICsgVHlwZVt0eXBlVHlwZV0gKyAnXCIgdHlwZSBcIicgKyB0eXBlVHlwZSArICdcIicpO1xuICAgIH1cbiAgICByZXR1cm4gcmVhZFR5cGVkKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyk7XG59XG5cbmZ1bmN0aW9uIHJlYWREaWN0aW9uYXJ5VmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IGVuY29kaW5nOiBEaWN0aW9uYXJ5RW5jb2Rpbmc7XG4gICAgaWYgKGRpY3Rpb25hcmllcyAmJiAoZW5jb2RpbmcgPSBmaWVsZC5kaWN0aW9uYXJ5KCkpKSB7XG4gICAgICAgIGxldCBpZCA9IGVuY29kaW5nLmlkKCkudG9GbG9hdDY0KCkudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IGluZGV4ID0gcmVhZEludFZlY3RvcihmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBudWxsLFxuICAgICAgICAgICAgLyogYSBkaWN0aW9uYXJ5IGluZGV4IGRlZmF1bHRzIHRvIHNpZ25lZCAzMiBiaXQgaW50IGlmIHVuc3BlY2lmaWVkICovXG4gICAgICAgICAgICBlbmNvZGluZy5pbmRleFR5cGUoKSB8fCB7IGJpdFdpZHRoOiAoKSA9PiAzMiwgaXNTaWduZWQ6ICgpID0+IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBEaWN0aW9uYXJ5VmVjdG9yLmNyZWF0ZShmaWVsZCwgaW5kZXgubGVuZ3RoLCBpbmRleCwgZGljdGlvbmFyaWVzW2lkXSk7XG4gICAgfVxufVxuXG5jb25zdCBJbnRWaWV3cyAgICA9IFtJbnQ4QXJyYXksICAgIEludDE2QXJyYXksICAgSW50MzJBcnJheSwgICBJbnQzMkFycmF5ICBdO1xuY29uc3QgSW50MzJWaWV3cyAgPSBbSW50MzJBcnJheSwgICBJbnQzMkFycmF5LCAgIEludDMyQXJyYXksICAgSW50MzJBcnJheSAgXTtcbmNvbnN0IFVpbnRWaWV3cyAgID0gW1VpbnQ4QXJyYXksICAgVWludDE2QXJyYXksICBVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5IF07XG5jb25zdCBVaW50OFZpZXdzICA9IFtVaW50OEFycmF5LCAgIFVpbnQ4QXJyYXksICAgVWludDhBcnJheSwgICBVaW50OEFycmF5ICBdO1xuY29uc3QgVWludDMyVmlld3MgPSBbVWludDMyQXJyYXksICBVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXkgXTtcbmNvbnN0IEZsb2F0Vmlld3MgID0gW0ludDhBcnJheSwgICAgSW50MTZBcnJheSwgICBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07XG5cbmNvbnN0IGNyZWF0ZUludERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgSW50Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlVWludERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludFZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZURhdGVEYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIFVpbnQzMlZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZUZsb2F0RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBGbG9hdFZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZU5lc3RlZERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDMyVmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlVmFsaWRpdHlEYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIFVpbnQ4Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlVXRmOERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDhWaWV3cywgSW50MzJWaWV3cyk7XG5cbmNvbnN0IGZsb2F0VmVjdG9ycyA9IHtcbiAgICBbUHJlY2lzaW9uLlNJTkdMRV06IEZsb2F0MzJWZWN0b3IsXG4gICAgW1ByZWNpc2lvbi5ET1VCTEVdOiBGbG9hdDY0VmVjdG9yXG59O1xuY29uc3QgaW50VmVjdG9ycyA9IFtcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDhWZWN0b3IsICAgLyogc2lnbmVkICovIEludDhWZWN0b3IgXSxcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDE2VmVjdG9yLCAgLyogc2lnbmVkICovIEludDE2VmVjdG9yXSxcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDMyVmVjdG9yLCAgLyogc2lnbmVkICovIEludDMyVmVjdG9yXSxcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDY0VmVjdG9yLCAgLyogc2lnbmVkICovIEludDY0VmVjdG9yXVxuXTtcblxuZnVuY3Rpb24gcmVhZEludFZlY3RvcihmaWVsZDogRmllbGQsIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcywgZmllbGRUeXBlPzogRmllbGRUeXBlKSB7XG4gICAgbGV0IHR5cGUgPSAoZmllbGRUeXBlIHx8IGZpZWxkLnR5cGUobmV3IEludCgpKSk7XG4gICAgcmV0dXJuIHR5cGUuaXNTaWduZWQoKSA/XG4gICAgICAgIHJlYWRfSW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcywgdHlwZSkgOlxuICAgICAgICByZWFkVWludFZlY3RvcihmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMsIHR5cGUpO1xufVxuXG5jb25zdCByZWFkX0ludFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBJbnRBcnJheT4oY3JlYXRlSW50RGF0YVZpZXdzLCBjcmVhdGVJbnRWZWN0b3IpO1xuY29uc3QgcmVhZFVpbnRWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PG51bWJlciwgSW50QXJyYXk+KGNyZWF0ZVVpbnREYXRhVmlld3MsIGNyZWF0ZUludFZlY3Rvcik7XG5mdW5jdGlvbiBjcmVhdGVJbnRWZWN0b3IoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgdHlwZSA9IGZpZWxkVHlwZSB8fCBmaWVsZC50eXBlKG5ldyBJbnQoKSksIGJpdFdpZHRoID0gdHlwZS5iaXRXaWR0aCgpO1xuICAgIGxldCBWZWN0b3IgPSB2YWx1ZUZvckJpdFdpZHRoKGJpdFdpZHRoLCBpbnRWZWN0b3JzKVsrdHlwZS5pc1NpZ25lZCgpXTtcbiAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgZGF0YSB8fCBvZmZzZXRzKTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHNvIHRoaXMgaXMga2luZGEgc3RyYW5nZSDwn5GGOlxuICAgIC8vIFRoZSBkaWN0aW9uYXJ5IGVuY29kZWQgdmVjdG9ycyBJIGdlbmVyYXRlZCBmcm9tIHNhbXBsZSBtYXBkLWNvcmUgcXVlcmllcyBoYXZlIHRoZSBpbmRpY2llcycgZGF0YSBidWZmZXJzXG4gICAgLy8gdGFnZ2VkIGFzIFZlY3RvclR5cGUuT0ZGU0VUICgwKSBpbiB0aGUgZmllbGQgbWV0YWRhdGEuIFRoZSBjdXJyZW50IFRTIGltcGwgaWdub3JlcyBidWZmZXJzJyBsYXlvdXQgdHlwZSxcbiAgICAvLyBhbmQgYXNzdW1lcyB0aGUgc2Vjb25kIGJ1ZmZlciBpcyB0aGUgZGF0YSBmb3IgYSBOdWxsYWJsZUludFZlY3Rvci4gU2luY2Ugd2UndmUgYmVlbiBzdHJpY3RlciBhYm91dCBlbmZvcmNpbmdcbiAgICAvLyB0aGUgQXJyb3cgc3BlYyB3aGlsZSBwYXJzaW5nLCB0aGUgSW50VmVjdG9yJ3MgZGF0YSBidWZmZXIgcmVhZHMgZW1wdHkgaW4gdGhpcyBjYXNlLiBJZiBzbywgZmFsbGJhY2sgdG8gdXNpbmdcbiAgICAvLyB0aGUgb2Zmc2V0cyBidWZmZXIgYXMgdGhlIGRhdGEsIHNpbmNlIEludFZlY3RvcnMgZG9uJ3QgaGF2ZSBvZmZzZXRzLlxufVxuXG5jb25zdCByZWFkRmxvYXRWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PG51bWJlciwgRmxvYXRBcnJheT4oXG4gICAgY3JlYXRlRmxvYXREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCB0eXBlID0gZmllbGQudHlwZShuZXcgRmxvYXRpbmdQb2ludCgpKTtcbiAgICAgICAgbGV0IFZlY3RvciA9IGZsb2F0VmVjdG9yc1t0eXBlLnByZWNpc2lvbigpXTtcbiAgICAgICAgcmV0dXJuIFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksIGRhdGEpO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWREYXRlVmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxEYXRlLCBVaW50MzJBcnJheT4oXG4gICAgY3JlYXRlRGF0ZURhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgcmV0dXJuIERhdGVWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCBkYXRhKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkVXRmOFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8c3RyaW5nLCBVaW50OEFycmF5PihcbiAgICBjcmVhdGVVdGY4RGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICBsZXQgb2Zmc2V0c0FkanVzdGVkID0gbmV3IEludDMyQXJyYXkob2Zmc2V0cy5idWZmZXIsIG9mZnNldHMuYnl0ZU9mZnNldCwgbGVuZ3RoICsgMSk7XG4gICAgICAgIHJldHVybiBVdGY4VmVjdG9yLmNyZWF0ZShcbiAgICAgICAgICAgIGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LFxuICAgICAgICAgICAgVWludDhWZWN0b3IuY3JlYXRlKGZpZWxkLCBkYXRhLmxlbmd0aCwgbnVsbCwgZGF0YSksXG4gICAgICAgICAgICBJbmRleFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCArIDEsIG51bGwsIG9mZnNldHNBZGp1c3RlZClcbiAgICAgICAgKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkTGlzdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8YW55W10sIFVpbnQzMkFycmF5PihcbiAgICBjcmVhdGVOZXN0ZWREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCBvZmZzZXRzQWRqdXN0ZWQgPSBuZXcgSW50MzJBcnJheShvZmZzZXRzLmJ1ZmZlciwgb2Zmc2V0cy5ieXRlT2Zmc2V0LCBsZW5ndGggKyAxKTtcbiAgICAgICAgcmV0dXJuIExpc3RWZWN0b3IuY3JlYXRlKFxuICAgICAgICAgICAgZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksXG4gICAgICAgICAgICByZWFkVmVjdG9yKGZpZWxkLmNoaWxkcmVuKDApLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyksXG4gICAgICAgICAgICBJbmRleFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCArIDEsIG51bGwsIG9mZnNldHNBZGp1c3RlZClcbiAgICAgICAgKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkRml4ZWRTaXplTGlzdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8YW55W10sIFVpbnQzMkFycmF5PihcbiAgICBjcmVhdGVOZXN0ZWREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCBzaXplID0gZmllbGQudHlwZShuZXcgRml4ZWRTaXplTGlzdCgpKS5saXN0U2l6ZSgpO1xuICAgICAgICByZXR1cm4gRml4ZWRTaXplTGlzdFZlY3Rvci5jcmVhdGUoXG4gICAgICAgICAgICBmaWVsZCwgbGVuZ3RoLCBzaXplLCB2YWxpZGl0eSxcbiAgICAgICAgICAgIHJlYWRWZWN0b3IoZmllbGQuY2hpbGRyZW4oMCksIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRTdHJ1Y3RWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PGFueVtdLCBBcnJheUxpa2U8YW55Pj4oXG4gICAgY3JlYXRlTmVzdGVkRGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICBsZXQgdmVjdG9yczogVmVjdG9yPGFueT5bXSA9IFtdO1xuICAgICAgICBpdGVyYXRvci5idWZmZXJJbmRleCAtPSBmaWVsZC5udWxsYWJsZSgpID8gMCA6IGZpZWxkLmxheW91dExlbmd0aCgpO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBmaWVsZC5jaGlsZHJlbkxlbmd0aCgpOyArK2kgPCBuOykge1xuICAgICAgICAgICAgdmVjdG9yc1tpXSA9IHJlYWRWZWN0b3IoZmllbGQuY2hpbGRyZW4oaSksIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RydWN0VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgLi4udmVjdG9ycyk7XG4gICAgfVxuKTtcblxuY29uc3QgdHlwZWRWZWN0b3JSZWFkZXJzID0ge1xuICAgIFtUeXBlLkludF06IHJlYWRJbnRWZWN0b3IsXG4gICAgW1R5cGUuRGF0ZV06IHJlYWREYXRlVmVjdG9yLFxuICAgIFtUeXBlLkxpc3RdOiByZWFkTGlzdFZlY3RvcixcbiAgICBbVHlwZS5VdGY4XTogcmVhZFV0ZjhWZWN0b3IsXG4gICAgW1R5cGUuU3RydWN0X106IHJlYWRTdHJ1Y3RWZWN0b3IsXG4gICAgW1R5cGUuRmxvYXRpbmdQb2ludF06IHJlYWRGbG9hdFZlY3RvcixcbiAgICBbVHlwZS5GaXhlZFNpemVMaXN0XTogcmVhZEZpeGVkU2l6ZUxpc3RWZWN0b3IsXG59O1xuXG50eXBlIEZpZWxkVHlwZSA9IHsgYml0V2lkdGgoKTogbnVtYmVyOyBpc1NpZ25lZCgpOiBib29sZWFuIH07XG50eXBlIGRhdGFWaWV3RmFjdG9yeTxWID0gVHlwZWRBcnJheT4gPSAoYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgdHlwZTogVmVjdG9yVHlwZSwgYml0V2lkdGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKSA9PiBWO1xudHlwZSB2ZWN0b3JGYWN0b3J5PFRMaXN0LCBWID0gVmVjdG9yPGFueT4+ID0gKGZpZWxkOiBGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBUTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsczogVWludDhBcnJheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzOiBUeXBlZEFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogRmllbGRUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rOiBNZXNzYWdlQmF0Y2gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmFibGU6IEl0ZXJhdG9yU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpID0+IFY7XG5cbmZ1bmN0aW9uIHJlYWRWZWN0b3JMYXlvdXQ8VCwgVExpc3Q+KGNyZWF0ZURhdGFWaWV3OiBkYXRhVmlld0ZhY3Rvcnk8VExpc3Q+LCBjcmVhdGVWZWN0b3I6IHZlY3RvckZhY3Rvcnk8VExpc3QsIFZlY3RvcjxUPj4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gcmVhZExheW91dChcbiAgICAgICAgICAgIGZpZWxkOiBGaWVsZCxcbiAgICAgICAgICAgIGNodW5rOiBNZXNzYWdlQmF0Y2gsXG4gICAgICAgICAgICBpdGVyYXRvcjogSXRlcmF0b3JTdGF0ZSxcbiAgICAgICAgICAgIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzLFxuICAgICAgICAgICAgaW50ZWdlckZpZWxkVHlwZT86IEZpZWxkVHlwZVxuICAgICkge1xuICAgICAgICBsZXQgYmF0Y2ggPSBjaHVuay5kYXRhO1xuICAgICAgICBsZXQgbGF5b3V0TGVuZ3RoID0gZmllbGQubGF5b3V0TGVuZ3RoKCk7XG4gICAgICAgIGxldCBub2RlID0gYmF0Y2gubm9kZXMoaXRlcmF0b3Iubm9kZUluZGV4KyspO1xuICAgICAgICBsZXQgZGF0YTogVExpc3QsIG9mZnNldHM6IGFueSwgdmFsaWRpdHk6IFVpbnQ4QXJyYXk7XG4gICAgICAgIGxldCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyTGVuZ3RoLCBub2RlTGVuZ3RoID0gbm9kZS5sZW5ndGgoKS5sb3c7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMTsgKytpIDwgbGF5b3V0TGVuZ3RoOykge1xuICAgICAgICAgICAgbGV0IGxheW91dCA9IGZpZWxkLmxheW91dChpKTtcbiAgICAgICAgICAgIGxldCBidWZmZXIgPSBiYXRjaC5idWZmZXJzKGl0ZXJhdG9yLmJ1ZmZlckluZGV4KyspO1xuICAgICAgICAgICAgaWYgKCh0eXBlID0gbGF5b3V0LnR5cGUoKSkgPT09IFZlY3RvclR5cGUuVFlQRSB8fFxuICAgICAgICAgICAgICAgIChidWZmZXJMZW5ndGggPSBidWZmZXIubGVuZ3RoKCkubG93KSA8PSAwICB8fFxuICAgICAgICAgICAgICAgIChiaXRXaWR0aCA9IGxheW91dC5iaXRXaWR0aCgpKSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFZlY3RvclR5cGUuREFUQSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBjcmVhdGVEYXRhVmlldyhjaHVuaywgdHlwZSwgYml0V2lkdGgsIGJ1ZmZlci5vZmZzZXQoKS5sb3csIGJ1ZmZlckxlbmd0aCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFZlY3RvclR5cGUuT0ZGU0VUKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0cyA9IGNyZWF0ZURhdGFWaWV3KGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgYnVmZmVyTGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS5udWxsQ291bnQoKS5sb3cgPiAwKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRpdHkgPSBjcmVhdGVWYWxpZGl0eURhdGFWaWV3cyhjaHVuaywgdHlwZSwgYml0V2lkdGgsIGJ1ZmZlci5vZmZzZXQoKS5sb3csIG5vZGVMZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjcmVhdGVWZWN0b3IoZmllbGQsIG5vZGVMZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBpbnRlZ2VyRmllbGRUeXBlLCBjaHVuaywgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyk7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGF0YVZpZXcoXG4gICAgZGF0YVZpZXdzOiBUeXBlZEFycmF5Q3Rvcjxhbnk+W10sIG9mZnNldFZpZXdzOiBUeXBlZEFycmF5Q3Rvcjxhbnk+W10gfCBudWxsLFxuICAgIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIHR5cGU6IFZlY3RvclR5cGUsIGJpdFdpZHRoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlclxuKSB7XG4gICAgY29uc3QgYnVmZmVyID0gYmF0Y2guYnl0ZXMuYnVmZmVyO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBidWZmZXIuYnl0ZUxlbmd0aDtcbiAgICBjb25zdCBieXRlT2Zmc2V0ID0gYmF0Y2gub2Zmc2V0ICsgb2Zmc2V0O1xuICAgIGNvbnN0IERhdGFWaWV3VHlwZSA9IHZhbHVlRm9yQml0V2lkdGgoYml0V2lkdGgsIHR5cGUgPT09IFZlY3RvclR5cGUuT0ZGU0VUICYmIG9mZnNldFZpZXdzIHx8IGRhdGFWaWV3cyk7XG4gICAgY29uc3QgZGF0YVZpZXdMZW5ndGggPSAoKGJ5dGVPZmZzZXQgKyBsZW5ndGgpIDw9IGJ5dGVMZW5ndGhcbiAgICAgICAgPyBsZW5ndGhcbiAgICAgICAgOiBieXRlTGVuZ3RoIC0gYnl0ZU9mZnNldFxuICAgICkgLyBEYXRhVmlld1R5cGVbJ0JZVEVTX1BFUl9FTEVNRU5UJ107XG4gICAgcmV0dXJuIG5ldyBEYXRhVmlld1R5cGUoYnVmZmVyLCBieXRlT2Zmc2V0LCBkYXRhVmlld0xlbmd0aCk7XG59XG5cbmZ1bmN0aW9uIHZhbHVlRm9yQml0V2lkdGgoYml0V2lkdGg6IG51bWJlciwgdmFsdWVzOiBhbnlbXSkge1xuICAgIHJldHVybiB2YWx1ZXNbYml0V2lkdGggPj4gNF0gfHwgdmFsdWVzWzNdO1xufVxuIl19 |
@@ -20,5 +20,6 @@ <!--- | ||
# [Apache Arrow](https://github.com/apache/arrow) in JS | ||
[![Build Status](https://travis-ci.org/graphistry/arrow.svg?branch=master)](https://travis-ci.org/graphistry/arrow) | ||
# [Apache Arrow](https://github.com/apache/arrow) in JS | ||
Loading big native dataframes in JavaScript is finally awesome. `apache-arrow` provides an easy, modern, and efficient zero-copy JS interface to parse, iterate, and access [Apache Arrow](https://github.com/apache/arrow) columnar data on CPUs (GPU support via [GoAI](http://gpuopenanalytics.com/) is occurring in parallel). | ||
@@ -31,5 +32,7 @@ | ||
## install | ||
`npm install apache-arrow` | ||
# What's Arrow? | ||
Apache Arrow is a columnar memory layout specification for encoding vectors and table-like containers of flat and nested data. The Arrow spec aligns columnar data in memory to maximize caches and take advantage of the latest SIMD (Single input multiple data) and GPU operations on modern processors. | ||
@@ -40,2 +43,3 @@ | ||
# Related Projects | ||
* [Apache Arrow](https://github.com/apache/arrow) -- Arrow columnar format | ||
@@ -48,2 +52,3 @@ * [GoAI](http://gpuopenanalytics.com/) -- Arrow standard extensions for GPUs | ||
## Get a table from an Arrow file on disk | ||
```es6 | ||
@@ -69,2 +74,3 @@ import { readFileSync } from 'fs'; | ||
## Create a Table when the Arrow file is split across buffers | ||
```es6 | ||
@@ -92,2 +98,3 @@ import { readFileSync } from 'fs'; | ||
## Columns are what you'd expect | ||
```es6 | ||
@@ -94,0 +101,0 @@ import { readFileSync } from 'fs'; |
@@ -19,3 +19,3 @@ // Licensed to the Apache Software Foundation (ASF) under one | ||
const arrow_1 = require("./reader/arrow"); | ||
const vector_1 = require("./vectors/vector"); | ||
const vector_1 = require("./vector/vector"); | ||
class Table { | ||
@@ -127,2 +127,2 @@ static from(...bytes) { | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUM7QUFDNUksQ0FBQyIsImZpbGUiOiJ0YWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyByZWFkQnVmZmVycyB9IGZyb20gJy4vcmVhZGVyL2Fycm93JztcbmltcG9ydCB7IFZlY3Rvciwgc2xpY2VUb1JhbmdlQXJncyB9IGZyb20gJy4vdmVjdG9ycy92ZWN0b3InO1xuXG5leHBvcnQgY2xhc3MgVGFibGUgaW1wbGVtZW50cyBJdGVyYWJsZTxNYXA8c3RyaW5nLCBhbnk+PiB7XG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuICAgIHByb3RlY3RlZCBfY29sdW1uczogVmVjdG9yPGFueT5bXTtcbiAgICBwcm90ZWN0ZWQgX2NvbHVtbnNNYXA6IHsgW2s6IHN0cmluZ106IFZlY3Rvcjxhbnk+IH07XG4gICAgc3RhdGljIGZyb20oLi4uYnl0ZXM6IEFycmF5PFVpbnQ4QXJyYXkgfCBCdWZmZXIgfCBzdHJpbmc+KSB7XG4gICAgICAgIGxldCBjb2x1bW5zOiBWZWN0b3I8YW55PltdO1xuICAgICAgICBmb3IgKGxldCB2ZWN0b3JzIG9mIHJlYWRCdWZmZXJzKC4uLmJ5dGVzKSkge1xuICAgICAgICAgICAgY29sdW1ucyA9ICFjb2x1bW5zID8gdmVjdG9ycyA6IGNvbHVtbnMubWFwKCh2LCBpKSA9PiB2LmNvbmNhdCh2ZWN0b3JzW2ldKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZShjb2x1bW5zKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoY29sdW1uczogVmVjdG9yPGFueT5bXSkge1xuICAgICAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucyB8fCBbXTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSBNYXRoLm1heCguLi50aGlzLl9jb2x1bW5zLm1hcCgodikgPT4gdi5sZW5ndGgpKTtcbiAgICAgICAgdGhpcy5fY29sdW1uc01hcCA9IHRoaXMuX2NvbHVtbnMucmVkdWNlKChtYXAsIHZlYykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChtYXBbdmVjLm5hbWVdID0gdmVjKSAmJiBtYXAgfHwgbWFwO1xuICAgICAgICB9LCA8YW55PiB7fSk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgZm9yIChsZXQgY29scyA9IHRoaXMuX2NvbHVtbnMsIGkgPSAtMSwgbiA9IHRoaXMubGVuZ3RoOyArK2kgPCBuOykge1xuICAgICAgICAgICAgeWllbGQgcm93QXNNYXAoaSwgY29scyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnJvd3Moc3RhcnRSb3c/OiBudW1iZXIgfCBib29sZWFuLCBlbmRSb3c/OiBudW1iZXIgfCBib29sZWFuLCBjb21wYWN0PzogYm9vbGVhbikge1xuICAgICAgICBsZXQgc3RhcnQgPSBzdGFydFJvdyBhcyBudW1iZXIsIGVuZCA9IGVuZFJvdyBhcyBudW1iZXI7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RhcnRSb3cgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgY29tcGFjdCA9IHN0YXJ0Um93O1xuICAgICAgICAgICAgc3RhcnQgPSBlbmQ7XG4gICAgICAgICAgICBlbmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVuZFJvdyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBjb21wYWN0ID0gZW5kUm93O1xuICAgICAgICAgICAgZW5kID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGxldCByb3dJbmRleCA9IC0xLCB7IGxlbmd0aCB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgW3Jvd09mZnNldCwgcm93c1RvdGFsXSA9IHNsaWNlVG9SYW5nZUFyZ3MobGVuZ3RoLCBzdGFydCwgZW5kKTtcbiAgICAgICAgd2hpbGUgKCsrcm93SW5kZXggPCByb3dzVG90YWwpIHtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuZ2V0Um93KChyb3dJbmRleCArIHJvd09mZnNldCkgJSBsZW5ndGgsIGNvbXBhY3QpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpjb2xzKHN0YXJ0Q29sPzogbnVtYmVyLCBlbmRDb2w/OiBudW1iZXIpIHtcbiAgICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5fY29sdW1ucy5zbGljZShzdGFydENvbCwgZW5kQ29sKSkge1xuICAgICAgICAgICAgeWllbGQgY29sdW1uO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldFJvdyhyb3dJbmRleDogbnVtYmVyLCBjb21wYWN0PzogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gKGNvbXBhY3QgJiYgcm93QXNBcnJheSB8fCByb3dBc09iamVjdCkocm93SW5kZXgsIHRoaXMuX2NvbHVtbnMpO1xuICAgIH1cbiAgICBnZXRDZWxsKGNvbHVtbk5hbWU6IHN0cmluZywgcm93SW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW4oY29sdW1uTmFtZSkuZ2V0KHJvd0luZGV4KTtcbiAgICB9XG4gICAgZ2V0Q2VsbEF0KGNvbHVtbkluZGV4OiBudW1iZXIsIHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uQXQoY29sdW1uSW5kZXgpLmdldChyb3dJbmRleCk7XG4gICAgfVxuICAgIGdldENvbHVtbjxUID0gYW55Pihjb2x1bW5OYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNNYXBbY29sdW1uTmFtZV0gYXMgVmVjdG9yPFQ+O1xuICAgIH1cbiAgICBnZXRDb2x1bW5BdDxUID0gYW55Pihjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zW2NvbHVtbkluZGV4XSBhcyBWZWN0b3I8VD47XG4gICAgfVxuICAgIHRvU3RyaW5nKHsgaW5kZXggPSBmYWxzZSB9ID0ge30pIHtcbiAgICAgICAgY29uc3QgeyBsZW5ndGggfSA9IHRoaXM7XG4gICAgICAgIGlmIChsZW5ndGggPD0gMCkgeyByZXR1cm4gJyc7IH1cbiAgICAgICAgY29uc3QgbWF4Q29sdW1uV2lkdGhzID0gW107XG4gICAgICAgIGNvbnN0IHJvd3MgPSBuZXcgQXJyYXkobGVuZ3RoICsgMSk7XG4gICAgICAgIHJvd3NbMF0gPSB0aGlzLl9jb2x1bW5zLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgICAgICAgaW5kZXggJiYgcm93c1swXS51bnNoaWZ0KCdJbmRleCcpO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSByb3dzLmxlbmd0aCAtIDE7ICsraSA8IG47KSB7XG4gICAgICAgICAgICByb3dzW2kgKyAxXSA9IHRoaXMuZ2V0Um93KGksIHRydWUpO1xuICAgICAgICAgICAgaW5kZXggJiYgcm93c1tpICsgMV0udW5zaGlmdChpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQYXNzIG9uZSB0byBjb252ZXJ0IHRvIHN0cmluZ3MgYW5kIGNvdW50IG1heCBjb2x1bW4gd2lkdGhzXG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IHJvd3MubGVuZ3RoOyArK2kgPCBuOykge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gcm93c1tpXTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAtMSwgayA9IHJvdy5sZW5ndGg7ICsraiA8IGs7KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gcm93W2pdID0gYCR7cm93W2pdfWA7XG4gICAgICAgICAgICAgICAgbWF4Q29sdW1uV2lkdGhzW2pdID0gIW1heENvbHVtbldpZHRoc1tqXVxuICAgICAgICAgICAgICAgICAgICA/IHZhbC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgOiBNYXRoLm1heChtYXhDb2x1bW5XaWR0aHNbal0sIHZhbC5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFBhc3MgdHdvIHRvIHBhZCBlYWNoIG9uZSB0byBtYXggY29sdW1uIHdpZHRoXG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IHJvd3MubGVuZ3RoOyArK2kgPCBuOykge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gcm93c1tpXTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAtMSwgayA9IHJvdy5sZW5ndGg7ICsraiA8IGs7KSB7XG4gICAgICAgICAgICAgICAgcm93W2pdID0gbGVmdFBhZChyb3dbal0sICcgJywgbWF4Q29sdW1uV2lkdGhzW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvd3NbaV0gPSByb3cuam9pbignLCAnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm93cy5qb2luKCdcXG4nKTtcbiAgICB9XG59XG5cblRhYmxlLnByb3RvdHlwZS5sZW5ndGggPSAwO1xuXG5mdW5jdGlvbiBsZWZ0UGFkKHN0ciwgZmlsbCwgbikge1xuICAgIHJldHVybiAobmV3IEFycmF5KG4gKyAxKS5qb2luKGZpbGwpICsgc3RyKS5zbGljZSgtMSAqIG4pO1xufVxuXG5mdW5jdGlvbiByb3dBc01hcChyb3c6IG51bWJlciwgY29sdW1uczogVmVjdG9yPGFueT5bXSkge1xuICAgIHJldHVybiBjb2x1bW5zLnJlZHVjZSgobWFwLCB2ZWN0b3IpID0+IG1hcC5zZXQodmVjdG9yLm5hbWUsIHZlY3Rvci5nZXQocm93KSksIG5ldyBNYXAoKSk7XG59XG5cbmZ1bmN0aW9uIHJvd0FzT2JqZWN0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoKHJvdywgdmVjdG9yKSA9PiAocm93W3ZlY3Rvci5uYW1lXSA9IHZlY3Rvci5nZXQocm93SW5kZXgpKSAmJiByb3cgfHwgcm93LCBPYmplY3QuY3JlYXRlKG51bGwpKTtcbn1cblxuZnVuY3Rpb24gcm93QXNBcnJheShyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKChyb3csIHZlY3RvciwgY29sdW1uSW5kZXgpID0+IChyb3dbY29sdW1uSW5kZXhdID0gdmVjdG9yLmdldChyb3dJbmRleCkpICYmIHJvdyB8fCByb3csIG5ldyBBcnJheShjb2x1bW5zLmxlbmd0aCkpO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUM7QUFDNUksQ0FBQyIsImZpbGUiOiJ0YWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyByZWFkQnVmZmVycyB9IGZyb20gJy4vcmVhZGVyL2Fycm93JztcbmltcG9ydCB7IFZlY3Rvciwgc2xpY2VUb1JhbmdlQXJncyB9IGZyb20gJy4vdmVjdG9yL3ZlY3Rvcic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZSBpbXBsZW1lbnRzIEl0ZXJhYmxlPE1hcDxzdHJpbmcsIGFueT4+IHtcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIF9jb2x1bW5zOiBWZWN0b3I8YW55PltdO1xuICAgIHByb3RlY3RlZCBfY29sdW1uc01hcDogeyBbazogc3RyaW5nXTogVmVjdG9yPGFueT4gfTtcbiAgICBzdGF0aWMgZnJvbSguLi5ieXRlczogQXJyYXk8VWludDhBcnJheSB8IEJ1ZmZlciB8IHN0cmluZz4pIHtcbiAgICAgICAgbGV0IGNvbHVtbnM6IFZlY3Rvcjxhbnk+W107XG4gICAgICAgIGZvciAobGV0IHZlY3RvcnMgb2YgcmVhZEJ1ZmZlcnMoLi4uYnl0ZXMpKSB7XG4gICAgICAgICAgICBjb2x1bW5zID0gIWNvbHVtbnMgPyB2ZWN0b3JzIDogY29sdW1ucy5tYXAoKHYsIGkpID0+IHYuY29uY2F0KHZlY3RvcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFRhYmxlKGNvbHVtbnMpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSBjb2x1bW5zIHx8IFtdO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWF4KC4uLnRoaXMuX2NvbHVtbnMubWFwKCh2KSA9PiB2Lmxlbmd0aCkpO1xuICAgICAgICB0aGlzLl9jb2x1bW5zTWFwID0gdGhpcy5fY29sdW1ucy5yZWR1Y2UoKG1hcCwgdmVjKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKG1hcFt2ZWMubmFtZV0gPSB2ZWMpICYmIG1hcCB8fCBtYXA7XG4gICAgICAgIH0sIDxhbnk+IHt9KTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBmb3IgKGxldCBjb2xzID0gdGhpcy5fY29sdW1ucywgaSA9IC0xLCBuID0gdGhpcy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICB5aWVsZCByb3dBc01hcChpLCBjb2xzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqcm93cyhzdGFydFJvdz86IG51bWJlciB8IGJvb2xlYW4sIGVuZFJvdz86IG51bWJlciB8IGJvb2xlYW4sIGNvbXBhY3Q/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBzdGFydCA9IHN0YXJ0Um93IGFzIG51bWJlciwgZW5kID0gZW5kUm93IGFzIG51bWJlcjtcbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFJvdyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBjb21wYWN0ID0gc3RhcnRSb3c7XG4gICAgICAgICAgICBzdGFydCA9IGVuZDtcbiAgICAgICAgICAgIGVuZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZW5kUm93ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGNvbXBhY3QgPSBlbmRSb3c7XG4gICAgICAgICAgICBlbmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJvd0luZGV4ID0gLTEsIHsgbGVuZ3RoIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBbcm93T2Zmc2V0LCByb3dzVG90YWxdID0gc2xpY2VUb1JhbmdlQXJncyhsZW5ndGgsIHN0YXJ0LCBlbmQpO1xuICAgICAgICB3aGlsZSAoKytyb3dJbmRleCA8IHJvd3NUb3RhbCkge1xuICAgICAgICAgICAgeWllbGQgdGhpcy5nZXRSb3coKHJvd0luZGV4ICsgcm93T2Zmc2V0KSAlIGxlbmd0aCwgY29tcGFjdCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmNvbHMoc3RhcnRDb2w/OiBudW1iZXIsIGVuZENvbD86IG51bWJlcikge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLl9jb2x1bW5zLnNsaWNlKHN0YXJ0Q29sLCBlbmRDb2wpKSB7XG4gICAgICAgICAgICB5aWVsZCBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0Um93KHJvd0luZGV4OiBudW1iZXIsIGNvbXBhY3Q/OiBib29sZWFuKSB7XG4gICAgICAgIHJldHVybiAoY29tcGFjdCAmJiByb3dBc0FycmF5IHx8IHJvd0FzT2JqZWN0KShyb3dJbmRleCwgdGhpcy5fY29sdW1ucyk7XG4gICAgfVxuICAgIGdldENlbGwoY29sdW1uTmFtZTogc3RyaW5nLCByb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbihjb2x1bW5OYW1lKS5nZXQocm93SW5kZXgpO1xuICAgIH1cbiAgICBnZXRDZWxsQXQoY29sdW1uSW5kZXg6IG51bWJlciwgcm93SW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5BdChjb2x1bW5JbmRleCkuZ2V0KHJvd0luZGV4KTtcbiAgICB9XG4gICAgZ2V0Q29sdW1uPFQgPSBhbnk+KGNvbHVtbk5hbWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uc01hcFtjb2x1bW5OYW1lXSBhcyBWZWN0b3I8VD47XG4gICAgfVxuICAgIGdldENvbHVtbkF0PFQgPSBhbnk+KGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNbY29sdW1uSW5kZXhdIGFzIFZlY3RvcjxUPjtcbiAgICB9XG4gICAgdG9TdHJpbmcoeyBpbmRleCA9IGZhbHNlIH0gPSB7fSkge1xuICAgICAgICBjb25zdCB7IGxlbmd0aCB9ID0gdGhpcztcbiAgICAgICAgaWYgKGxlbmd0aCA8PSAwKSB7IHJldHVybiAnJzsgfVxuICAgICAgICBjb25zdCBtYXhDb2x1bW5XaWR0aHMgPSBbXTtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheShsZW5ndGggKyAxKTtcbiAgICAgICAgcm93c1swXSA9IHRoaXMuX2NvbHVtbnMubWFwKChjKSA9PiBjLm5hbWUpO1xuICAgICAgICBpbmRleCAmJiByb3dzWzBdLnVuc2hpZnQoJ0luZGV4Jyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IHJvd3MubGVuZ3RoIC0gMTsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIHJvd3NbaSArIDFdID0gdGhpcy5nZXRSb3coaSwgdHJ1ZSk7XG4gICAgICAgICAgICBpbmRleCAmJiByb3dzW2kgKyAxXS51bnNoaWZ0KGkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFBhc3Mgb25lIHRvIGNvbnZlcnQgdG8gc3RyaW5ncyBhbmQgY291bnQgbWF4IGNvbHVtbiB3aWR0aHNcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gcm93cy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IC0xLCBrID0gcm93Lmxlbmd0aDsgKytqIDwgazspIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSByb3dbal0gPSBgJHtyb3dbal19YDtcbiAgICAgICAgICAgICAgICBtYXhDb2x1bW5XaWR0aHNbal0gPSAhbWF4Q29sdW1uV2lkdGhzW2pdXG4gICAgICAgICAgICAgICAgICAgID8gdmFsLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWF4KG1heENvbHVtbldpZHRoc1tqXSwgdmFsLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFzcyB0d28gdG8gcGFkIGVhY2ggb25lIHRvIG1heCBjb2x1bW4gd2lkdGhcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gcm93cy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IC0xLCBrID0gcm93Lmxlbmd0aDsgKytqIDwgazspIHtcbiAgICAgICAgICAgICAgICByb3dbal0gPSBsZWZ0UGFkKHJvd1tqXSwgJyAnLCBtYXhDb2x1bW5XaWR0aHNbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93c1tpXSA9IHJvdy5qb2luKCcsICcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dzLmpvaW4oJ1xcbicpO1xuICAgIH1cbn1cblxuVGFibGUucHJvdG90eXBlLmxlbmd0aCA9IDA7XG5cbmZ1bmN0aW9uIGxlZnRQYWQoc3RyLCBmaWxsLCBuKSB7XG4gICAgcmV0dXJuIChuZXcgQXJyYXkobiArIDEpLmpvaW4oZmlsbCkgKyBzdHIpLnNsaWNlKC0xICogbik7XG59XG5cbmZ1bmN0aW9uIHJvd0FzTWFwKHJvdzogbnVtYmVyLCBjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKChtYXAsIHZlY3RvcikgPT4gbWFwLnNldCh2ZWN0b3IubmFtZSwgdmVjdG9yLmdldChyb3cpKSwgbmV3IE1hcCgpKTtcbn1cblxuZnVuY3Rpb24gcm93QXNPYmplY3Qocm93SW5kZXg6IG51bWJlciwgY29sdW1uczogVmVjdG9yPGFueT5bXSkge1xuICAgIHJldHVybiBjb2x1bW5zLnJlZHVjZSgocm93LCB2ZWN0b3IpID0+IChyb3dbdmVjdG9yLm5hbWVdID0gdmVjdG9yLmdldChyb3dJbmRleCkpICYmIHJvdyB8fCByb3csIE9iamVjdC5jcmVhdGUobnVsbCkpO1xufVxuXG5mdW5jdGlvbiByb3dBc0FycmF5KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoKHJvdywgdmVjdG9yLCBjb2x1bW5JbmRleCkgPT4gKHJvd1tjb2x1bW5JbmRleF0gPSB2ZWN0b3IuZ2V0KHJvd0luZGV4KSkgJiYgcm93IHx8IHJvdywgbmV3IEFycmF5KGNvbHVtbnMubGVuZ3RoKSk7XG59XG4iXX0= |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
672942
8543
187
42