@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
138 lines (136 loc) • 15.9 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/errors/general.ts
var general_exports = {};
__export(general_exports, {
CircularReferenceError: () => CircularReferenceError,
NumberRangeError: () => NumberRangeError,
SurrealAggregateError: () => SurrealAggregateError,
SurrealError: () => SurrealError,
SurrealTypeError: () => SurrealTypeError,
SurrealValueError: () => SurrealValueError,
UnreachableError: () => UnreachableError,
UnsupportedRuntimeError: () => UnsupportedRuntimeError,
unreachable: () => unreachable
});
module.exports = __toCommonJS(general_exports);
var import_get_type_name = __toESM(require("./get-type-name.cjs"), 1);
var _SurrealError = class _SurrealError extends Error {
constructor(message, options) {
super(message, options);
if (!("cause" in this) && options && "cause" in options) {
this.cause = options.cause;
}
}
};
__name(_SurrealError, "SurrealError");
_SurrealError.prototype.name = "SurrealError";
var SurrealError = _SurrealError;
var _SurrealTypeError = class _SurrealTypeError extends SurrealError {
constructor(expected, actual, options) {
expected = typeof expected === "string" ? expected : expected.slice().sort().join(" | ");
actual = (0, import_get_type_name.default)(actual);
super(`Expected ${expected} but got ${actual}.`, options);
this.expected = expected;
this.actual = actual;
}
};
__name(_SurrealTypeError, "SurrealTypeError");
_SurrealTypeError.prototype.name = "SurrealTypeError";
var SurrealTypeError = _SurrealTypeError;
var _SurrealValueError = class _SurrealValueError extends SurrealError {
constructor(expected, actual, options) {
expected = typeof expected === "string" ? expected : expected.slice().sort().join(" | ");
let s = String(actual);
s = s && (typeof actual === "string" ? actual.length < 30 - 2 ? JSON.stringify(actual) : JSON.stringify(`${actual.slice(0, 11)} ... ${actual.slice(-11)}`) : s.length < 30 ? s : `${s.slice(0, 12)} ... ${s.slice(-12)}`);
super(
`Expected ${expected} but got type ${(0, import_get_type_name.default)(actual)}${s && ` of value ${s}`}.`,
options
);
this.expected = expected;
this.actual = actual;
}
};
__name(_SurrealValueError, "SurrealValueError");
_SurrealValueError.prototype.name = "SurrealValueError";
var SurrealValueError = _SurrealValueError;
var _SurrealAggregateError = class _SurrealAggregateError extends SurrealError {
constructor(message, errors, options) {
super(message, options);
this.cause = errors.slice();
}
};
__name(_SurrealAggregateError, "SurrealAggregateError");
_SurrealAggregateError.prototype.name = "SurrealAggregateError";
var SurrealAggregateError = _SurrealAggregateError;
var _CircularReferenceError = class _CircularReferenceError extends SurrealError {
constructor(reference, options) {
super("Circular reference is detected", options);
this.reference = reference;
}
};
__name(_CircularReferenceError, "CircularReferenceError");
_CircularReferenceError.prototype.name = "CircularReferenceError";
var CircularReferenceError = _CircularReferenceError;
var _NumberRangeError = class _NumberRangeError extends SurrealError {
constructor(range, actual, options = {}) {
super(
`Value ${actual} is out of range. Expected value to be between ${range[0]} and ${range[1]}` + (options.integer ? " as an integer." : "."),
options
);
this.range = range;
this.actual = actual;
this.integer = !!options.integer;
}
};
__name(_NumberRangeError, "NumberRangeError");
_NumberRangeError.prototype.name = "NumberRangeError";
var NumberRangeError = _NumberRangeError;
var _UnsupportedRuntimeError = class _UnsupportedRuntimeError extends SurrealError {
constructor(reason) {
super("Unsupported runtime.", { cause: reason });
}
};
__name(_UnsupportedRuntimeError, "UnsupportedRuntimeError");
_UnsupportedRuntimeError.prototype.name = "UnsupportedRuntimeError";
var UnsupportedRuntimeError = _UnsupportedRuntimeError;
var _UnreachableError = class _UnreachableError extends SurrealError {
constructor(options) {
super("Unreachable code reached.", options);
}
};
__name(_UnreachableError, "UnreachableError");
_UnreachableError.prototype.name = "UnreachableError";
var UnreachableError = _UnreachableError;
function unreachable(...a) {
throw new UnreachableError(a.length > 0 && { cause: a[0] } || void 0);
}
__name(unreachable, "unreachable");
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Vycm9ycy9nZW5lcmFsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgZ2V0VHlwZU5hbWUsIHsgdHlwZSBUeXBlTmFtZSB9IGZyb20gXCIuL2dldC10eXBlLW5hbWVcIjtcblxuLy8gZHByaW50LWlnbm9yZVxudHlwZSBFcnJvck9wdGlvbnNCYXNlID1cbiAgXCJjYXVzZVwiIGV4dGVuZHMga2V5b2YgRXJyb3JcbiAgICA/IFJlYWRvbmx5PEVycm9yT3B0aW9ucz5cbiAgICA6IHsgcmVhZG9ubHkgY2F1c2U/OiB1bmtub3duIH0gLy8gcG9seWZpbGxcblxuZXhwb3J0IGludGVyZmFjZSBTdXJyZWFsRXJyb3JPcHRpb25zIGV4dGVuZHMgRXJyb3JPcHRpb25zQmFzZSB7fVxuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9ndWlkZXMvZXJyb3JzLyNzdXJyZWFsZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJyZWFsRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiU3VycmVhbEVycm9yXCI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBTdXJyZWFsRXJyb3JPcHRpb25zIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIShcImNhdXNlXCIgaW4gdGhpcykgJiYgb3B0aW9ucyAmJiBcImNhdXNlXCIgaW4gb3B0aW9ucykge1xuICAgICAgdGhpcy5jYXVzZSA9IG9wdGlvbnMuY2F1c2U7IC8vIHBvbHlmaWxsXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI3N1cnJlYWx0eXBlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJyZWFsVHlwZUVycm9yIGV4dGVuZHMgU3VycmVhbEVycm9yIHtcbiAgc3RhdGljIHtcbiAgICB0aGlzLnByb3RvdHlwZS5uYW1lID0gXCJTdXJyZWFsVHlwZUVycm9yXCI7XG4gIH1cblxuICBleHBlY3RlZDogc3RyaW5nO1xuICBhY3R1YWw6IFR5cGVOYW1lO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGV4cGVjdGVkOiBUeXBlTmFtZSB8IHJlYWRvbmx5IFR5cGVOYW1lW10sXG4gICAgYWN0dWFsOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBTdXJyZWFsRXJyb3JPcHRpb25zIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBleHBlY3RlZCA9IHR5cGVvZiBleHBlY3RlZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBleHBlY3RlZFxuICAgICAgOiBleHBlY3RlZC5zbGljZSgpLnNvcnQoKS5qb2luKFwiIHwgXCIpO1xuICAgIGFjdHVhbCA9IGdldFR5cGVOYW1lKGFjdHVhbCk7XG4gICAgc3VwZXIoYEV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9LmAsIG9wdGlvbnMpO1xuICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDtcbiAgICB0aGlzLmFjdHVhbCA9IGFjdHVhbCBhcyBzdHJpbmc7XG4gIH1cbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvZ3VpZGVzL2Vycm9ycy8jc3VycmVhbHZhbHVlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJyZWFsVmFsdWVFcnJvciBleHRlbmRzIFN1cnJlYWxFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiU3VycmVhbFZhbHVlRXJyb3JcIjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBleHBlY3RlZDogc3RyaW5nIHwgcmVhZG9ubHkgc3RyaW5nW10sXG4gICAgcHVibGljIGFjdHVhbDogdW5rbm93bixcbiAgICBvcHRpb25zPzogU3VycmVhbEVycm9yT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgZXhwZWN0ZWQgPSB0eXBlb2YgZXhwZWN0ZWQgPT09IFwic3RyaW5nXCJcbiAgICAgID8gZXhwZWN0ZWRcbiAgICAgIDogZXhwZWN0ZWQuc2xpY2UoKS5zb3J0KCkuam9pbihcIiB8IFwiKTtcbiAgICBsZXQgcyA9IFN0cmluZyhhY3R1YWwpO1xuICAgIHMgPSBzICYmIChcbiAgICAgIHR5cGVvZiBhY3R1YWwgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBhY3R1YWwubGVuZ3RoIDwgMzAgLSAyXG4gICAgICAgICAgPyBKU09OLnN0cmluZ2lmeShhY3R1YWwpXG4gICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShgJHthY3R1YWwuc2xpY2UoMCwgMTEpfSAuLi4gJHthY3R1YWwuc2xpY2UoLTExKX1gKVxuICAgICAgICA6IHMubGVuZ3RoIDwgMzBcbiAgICAgICAgPyBzXG4gICAgICAgIDogYCR7cy5zbGljZSgwLCAxMil9IC4uLiAke3Muc2xpY2UoLTEyKX1gXG4gICAgKTtcbiAgICBzdXBlcihcbiAgICAgIGBFeHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290IHR5cGUgJHtnZXRUeXBlTmFtZShhY3R1YWwpfSR7XG4gICAgICAgIHMgJiYgYCBvZiB2YWx1ZSAke3N9YFxuICAgICAgfS5gLFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI3N1cnJlYWxhZ2dyZWdhdGVlcnJvcilcbiAqL1xuZXhwb3J0IGNsYXNzIFN1cnJlYWxBZ2dyZWdhdGVFcnJvciBleHRlbmRzIFN1cnJlYWxFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiU3VycmVhbEFnZ3JlZ2F0ZUVycm9yXCI7XG4gIH1cblxuICBvdmVycmlkZSBjYXVzZTogdW5rbm93bltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBlcnJvcnM6IHJlYWRvbmx5IHVua25vd25bXSxcbiAgICBvcHRpb25zPzogT21pdDxTdXJyZWFsRXJyb3JPcHRpb25zLCBcImNhdXNlXCI+IHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBvcHRpb25zKTtcbiAgICB0aGlzLmNhdXNlID0gZXJyb3JzLnNsaWNlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvZ3VpZGVzL2Vycm9ycy8jY2lyY3VsYXJyZWZlcmVuY2VlcnJvcilcbiAqL1xuZXhwb3J0IGNsYXNzIENpcmN1bGFyUmVmZXJlbmNlRXJyb3IgZXh0ZW5kcyBTdXJyZWFsRXJyb3Ige1xuICBzdGF0aWMge1xuICAgIHRoaXMucHJvdG90eXBlLm5hbWUgPSBcIkNpcmN1bGFyUmVmZXJlbmNlRXJyb3JcIjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWZlcmVuY2U6IHVua25vd24sXG4gICAgb3B0aW9ucz86IFN1cnJlYWxFcnJvck9wdGlvbnMgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHN1cGVyKFwiQ2lyY3VsYXIgcmVmZXJlbmNlIGlzIGRldGVjdGVkXCIsIG9wdGlvbnMpO1xuICB9XG59XG5cbi8qKlxuICoge0BsaW5rIE51bWJlclJhbmdlRXJyb3J9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnVtYmVyUmFuZ2VFcnJvck9wdGlvbnMgZXh0ZW5kcyBTdXJyZWFsRXJyb3JPcHRpb25zIHtcbiAgcmVhZG9ubHkgaW50ZWdlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI251bWJlcnJhbmdlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUVycm9yIGV4dGVuZHMgU3VycmVhbEVycm9yIHtcbiAgc3RhdGljIHtcbiAgICB0aGlzLnByb3RvdHlwZS5uYW1lID0gXCJOdW1iZXJSYW5nZUVycm9yXCI7XG4gIH1cblxuICBpbnRlZ2VyOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByYW5nZTogW2Zyb206IG51bWJlciB8IGJpZ2ludCwgdG86IG51bWJlciB8IGJpZ2ludF0sXG4gICAgcHVibGljIGFjdHVhbDogbnVtYmVyIHwgYmlnaW50LFxuICAgIG9wdGlvbnM6IE51bWJlclJhbmdlRXJyb3JPcHRpb25zIHwgdW5kZWZpbmVkID0ge30sXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgYFZhbHVlICR7YWN0dWFsfSBpcyBvdXQgb2YgcmFuZ2UuIEV4cGVjdGVkIHZhbHVlIHRvIGJlIGJldHdlZW4gYFxuICAgICAgICArIGAke3JhbmdlWzBdfSBhbmQgJHtyYW5nZVsxXX1gXG4gICAgICAgICsgKG9wdGlvbnMuaW50ZWdlciA/IFwiIGFzIGFuIGludGVnZXIuXCIgOiBcIi5cIiksXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5pbnRlZ2VyID0gISFvcHRpb25zLmludGVnZXI7XG4gIH1cbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvZ3VpZGVzL2Vycm9ycy8jdW5zdXBwb3J0ZWRydW50aW1lZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZFJ1bnRpbWVFcnJvciBleHRlbmRzIFN1cnJlYWxFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiVW5zdXBwb3J0ZWRSdW50aW1lRXJyb3JcIjtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgY2F1c2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihyZWFzb246IHN0cmluZykge1xuICAgIHN1cGVyKFwiVW5zdXBwb3J0ZWQgcnVudGltZS5cIiwgeyBjYXVzZTogcmVhc29uIH0pO1xuICB9XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI3VucmVhY2hhYmxlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBVbnJlYWNoYWJsZUVycm9yIGV4dGVuZHMgU3VycmVhbEVycm9yIHtcbiAgc3RhdGljIHtcbiAgICB0aGlzLnByb3RvdHlwZS5uYW1lID0gXCJVbnJlYWNoYWJsZUVycm9yXCI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogU3VycmVhbEVycm9yT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKFwiVW5yZWFjaGFibGUgY29kZSByZWFjaGVkLlwiLCBvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWFjaGFibGUoKTogbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlYWNoYWJsZShjYXVzZTogbmV2ZXIpOiBuZXZlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVhY2hhYmxlKC4uLmE6IFtjYXVzZT86IG5ldmVyXSk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFVucmVhY2hhYmxlRXJyb3IoYS5sZW5ndGggPiAwICYmIHsgY2F1c2U6IGFbMF0gfSB8fCB1bmRlZmluZWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBQTJDO0FBYXBDLElBQU0sZ0JBQU4sTUFBTSxzQkFBcUIsTUFBTTtBQUFBLEVBS3RDLFlBQVksU0FBaUIsU0FBMkM7QUFDdEUsVUFBTSxTQUFTLE9BQU87QUFFdEIsUUFBSSxFQUFFLFdBQVcsU0FBUyxXQUFXLFdBQVcsU0FBUztBQUN2RCxXQUFLLFFBQVEsUUFBUTtBQUFBLElBQ3ZCO0FBQUEsRUFDRjtBQUNGO0FBWndDO0FBRXBDLGNBQUssVUFBVSxPQUFPO0FBRm5CLElBQU0sZUFBTjtBQWlCQSxJQUFNLG9CQUFOLE1BQU0sMEJBQXlCLGFBQWE7QUFBQSxFQVFqRCxZQUNFLFVBQ0EsUUFDQSxTQUNBO0FBQ0EsZUFBVyxPQUFPLGFBQWEsV0FDM0IsV0FDQSxTQUFTLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLO0FBQ3RDLGlCQUFTLHFCQUFBQSxTQUFZLE1BQU07QUFDM0IsVUFBTSxZQUFZLFFBQVEsWUFBWSxNQUFNLEtBQUssT0FBTztBQUN4RCxTQUFLLFdBQVc7QUFDaEIsU0FBSyxTQUFTO0FBQUEsRUFDaEI7QUFDRjtBQXJCbUQ7QUFFL0Msa0JBQUssVUFBVSxPQUFPO0FBRm5CLElBQU0sbUJBQU47QUEwQkEsSUFBTSxxQkFBTixNQUFNLDJCQUEwQixhQUFhO0FBQUEsRUFLbEQsWUFDUyxVQUNBLFFBQ1AsU0FDQTtBQUNBLGVBQVcsT0FBTyxhQUFhLFdBQzNCLFdBQ0EsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSztBQUN0QyxRQUFJLElBQUksT0FBTyxNQUFNO0FBQ3JCLFFBQUksTUFDRixPQUFPLFdBQVcsV0FDZCxPQUFPLFNBQVMsS0FBSyxJQUNuQixLQUFLLFVBQVUsTUFBTSxJQUNyQixLQUFLLFVBQVUsR0FBRyxPQUFPLE1BQU0sR0FBRyxFQUFFLENBQUMsUUFBUSxPQUFPLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFDbEUsRUFBRSxTQUFTLEtBQ1gsSUFDQSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUM7QUFFM0M7QUFBQSxNQUNFLFlBQVksUUFBUSxxQkFBaUIscUJBQUFBLFNBQVksTUFBTSxDQUFDLEdBQ3RELEtBQUssYUFBYSxDQUFDLEVBQ3JCO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUF0Qk87QUFDQTtBQUFBLEVBc0JUO0FBQ0Y7QUE5Qm9EO0FBRWhELG1CQUFLLFVBQVUsT0FBTztBQUZuQixJQUFNLG9CQUFOO0FBbUNBLElBQU0seUJBQU4sTUFBTSwrQkFBOEIsYUFBYTtBQUFBLEVBT3RELFlBQ0UsU0FDQSxRQUNBLFNBQ0E7QUFDQSxVQUFNLFNBQVMsT0FBTztBQUN0QixTQUFLLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDNUI7QUFDRjtBQWZ3RDtBQUVwRCx1QkFBSyxVQUFVLE9BQU87QUFGbkIsSUFBTSx3QkFBTjtBQW9CQSxJQUFNLDBCQUFOLE1BQU0sZ0NBQStCLGFBQWE7QUFBQSxFQUt2RCxZQUNTLFdBQ1AsU0FDQTtBQUNBLFVBQU0sa0NBQWtDLE9BQU87QUFIeEM7QUFBQSxFQUlUO0FBQ0Y7QUFYeUQ7QUFFckQsd0JBQUssVUFBVSxPQUFPO0FBRm5CLElBQU0seUJBQU47QUF1QkEsSUFBTSxvQkFBTixNQUFNLDBCQUF5QixhQUFhO0FBQUEsRUFPakQsWUFDUyxPQUNBLFFBQ1AsVUFBK0MsQ0FBQyxHQUNoRDtBQUNBO0FBQUEsTUFDRSxTQUFTLE1BQU0sa0RBQ1IsTUFBTSxDQUFDLENBQUMsUUFBUSxNQUFNLENBQUMsQ0FBQyxNQUMxQixRQUFRLFVBQVUsb0JBQW9CO0FBQUEsTUFDM0M7QUFBQSxJQUNGO0FBVE87QUFDQTtBQVNQLFNBQUssVUFBVSxDQUFDLENBQUMsUUFBUTtBQUFBLEVBQzNCO0FBQ0Y7QUFwQm1EO0FBRS9DLGtCQUFLLFVBQVUsT0FBTztBQUZuQixJQUFNLG1CQUFOO0FBeUJBLElBQU0sMkJBQU4sTUFBTSxpQ0FBZ0MsYUFBYTtBQUFBLEVBUXhELFlBQVksUUFBZ0I7QUFDMUIsVUFBTSx3QkFBd0IsRUFBRSxPQUFPLE9BQU8sQ0FBQztBQUFBLEVBQ2pEO0FBQ0Y7QUFYMEQ7QUFFdEQseUJBQUssVUFBVSxPQUFPO0FBRm5CLElBQU0sMEJBQU47QUFnQkEsSUFBTSxvQkFBTixNQUFNLDBCQUF5QixhQUFhO0FBQUEsRUFLakQsWUFBWSxTQUEyQztBQUNyRCxVQUFNLDZCQUE2QixPQUFPO0FBQUEsRUFDNUM7QUFDRjtBQVJtRDtBQUUvQyxrQkFBSyxVQUFVLE9BQU87QUFGbkIsSUFBTSxtQkFBTjtBQWNBLFNBQVMsZUFBZSxHQUEyQjtBQUN4RCxRQUFNLElBQUksaUJBQWlCLEVBQUUsU0FBUyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLE1BQVM7QUFDekU7QUFGZ0I7IiwKICAibmFtZXMiOiBbImdldFR5cGVOYW1lIl0KfQo=