@dan-uni/dan-any 0.9.4 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5250,6 +5250,11 @@
5250
5250
  var implementation = __webpack_require__("../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js");
5251
5251
  module1.exports = Function.prototype.bind || implementation;
5252
5252
  },
5253
+ "../../node_modules/.pnpm/generator-function@2.0.1/node_modules/generator-function/index.js": function(module1) {
5254
+ "use strict";
5255
+ const cached = (function*() {}).constructor;
5256
+ module1.exports = ()=>cached;
5257
+ },
5253
5258
  "../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js": function(module1, __unused_webpack_exports, __webpack_require__) {
5254
5259
  "use strict";
5255
5260
  var undefined;
@@ -6105,7 +6110,7 @@
6105
6110
  return tryFunctionObject(value);
6106
6111
  };
6107
6112
  },
6108
- "../../node_modules/.pnpm/is-generator-function@1.1.0/node_modules/is-generator-function/index.js": function(module1, __unused_webpack_exports, __webpack_require__) {
6113
+ "../../node_modules/.pnpm/is-generator-function@1.1.2/node_modules/is-generator-function/index.js": function(module1, __unused_webpack_exports, __webpack_require__) {
6109
6114
  "use strict";
6110
6115
  var callBound = __webpack_require__("../../node_modules/.pnpm/call-bound@1.0.4/node_modules/call-bound/index.js");
6111
6116
  var safeRegexTest = __webpack_require__("../../node_modules/.pnpm/safe-regex-test@1.1.0/node_modules/safe-regex-test/index.js");
@@ -6114,13 +6119,7 @@
6114
6119
  var getProto = __webpack_require__("../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js");
6115
6120
  var toStr = callBound('Object.prototype.toString');
6116
6121
  var fnToStr = callBound('Function.prototype.toString');
6117
- var getGeneratorFunc = function() {
6118
- if (!hasToStringTag) return false;
6119
- try {
6120
- return Function('return function*() {}')();
6121
- } catch (e) {}
6122
- };
6123
- var GeneratorFunction;
6122
+ var getGeneratorFunction = __webpack_require__("../../node_modules/.pnpm/generator-function@2.0.1/node_modules/generator-function/index.js");
6124
6123
  module1.exports = function(fn) {
6125
6124
  if ('function' != typeof fn) return false;
6126
6125
  if (isFnRegex(fnToStr(fn))) return true;
@@ -6129,11 +6128,8 @@
6129
6128
  return '[object GeneratorFunction]' === str;
6130
6129
  }
6131
6130
  if (!getProto) return false;
6132
- if (void 0 === GeneratorFunction) {
6133
- var generatorFunc = getGeneratorFunc();
6134
- GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;
6135
- }
6136
- return getProto(fn) === GeneratorFunction;
6131
+ var GeneratorFunction = getGeneratorFunction();
6132
+ return GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;
6137
6133
  };
6138
6134
  },
6139
6135
  "../../node_modules/.pnpm/is-nan@1.3.2/node_modules/is-nan/implementation.js": function(module1) {
@@ -12490,7 +12486,7 @@
12490
12486
  "../../node_modules/.pnpm/util@0.12.5/node_modules/util/support/types.js": function(__unused_webpack_module, exports1, __webpack_require__) {
12491
12487
  "use strict";
12492
12488
  var isArgumentsObject = __webpack_require__("../../node_modules/.pnpm/is-arguments@1.2.0/node_modules/is-arguments/index.js");
12493
- var isGeneratorFunction = __webpack_require__("../../node_modules/.pnpm/is-generator-function@1.1.0/node_modules/is-generator-function/index.js");
12489
+ var isGeneratorFunction = __webpack_require__("../../node_modules/.pnpm/is-generator-function@1.1.2/node_modules/is-generator-function/index.js");
12494
12490
  var whichTypedArray = __webpack_require__("../../node_modules/.pnpm/which-typed-array@1.1.19/node_modules/which-typed-array/index.js");
12495
12491
  var isTypedArray = __webpack_require__("../../node_modules/.pnpm/is-typed-array@1.1.15/node_modules/is-typed-array/index.js");
12496
12492
  function uncurryThis(f) {
@@ -14597,7 +14593,7 @@ and limitations under the License.
14597
14593
  }
14598
14594
  }, validationOptions);
14599
14595
  }
14600
- const defaultOptions = {
14596
+ const OptionsBuilder_defaultOptions = {
14601
14597
  preserveOrder: false,
14602
14598
  attributeNamePrefix: '@_',
14603
14599
  attributesGroupName: false,
@@ -14637,7 +14633,7 @@ and limitations under the License.
14637
14633
  captureMetaData: false
14638
14634
  };
14639
14635
  const buildOptions = function(options) {
14640
- return Object.assign({}, defaultOptions, options);
14636
+ return Object.assign({}, OptionsBuilder_defaultOptions, options);
14641
14637
  };
14642
14638
  const nameStartChar = ':A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
14643
14639
  const nameChar = nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
@@ -14694,147 +14690,229 @@ and limitations under the License.
14694
14690
  return METADATA_SYMBOL;
14695
14691
  }
14696
14692
  }
14697
- function readDocType(xmlData, i) {
14698
- const entities = {};
14699
- if ('O' === xmlData[i + 3] && 'C' === xmlData[i + 4] && 'T' === xmlData[i + 5] && 'Y' === xmlData[i + 6] && 'P' === xmlData[i + 7] && 'E' === xmlData[i + 8]) {
14700
- i += 9;
14701
- let angleBracketsCount = 1;
14702
- let hasBody = false, comment = false;
14703
- for(; i < xmlData.length; i++)if ('<' !== xmlData[i] || comment) if ('>' === xmlData[i]) {
14704
- if (comment) {
14705
- if ("-" === xmlData[i - 1] && "-" === xmlData[i - 2]) {
14706
- comment = false;
14707
- angleBracketsCount--;
14708
- }
14709
- } else angleBracketsCount--;
14710
- if (0 === angleBracketsCount) break;
14711
- } else if ('[' === xmlData[i]) hasBody = true;
14712
- else xmlData[i];
14713
- else {
14714
- if (hasBody && hasSeq(xmlData, "!ENTITY", i)) {
14715
- i += 7;
14716
- let entityName, val;
14717
- [entityName, val, i] = readEntityExp(xmlData, i + 1);
14718
- if (-1 === val.indexOf("&")) entities[entityName] = {
14719
- regx: RegExp(`&${entityName};`, "g"),
14720
- val: val
14721
- };
14722
- } else if (hasBody && hasSeq(xmlData, "!ELEMENT", i)) {
14723
- i += 8;
14724
- const { index } = readElementExp(xmlData, i + 1);
14725
- i = index;
14726
- } else if (hasBody && hasSeq(xmlData, "!ATTLIST", i)) i += 8;
14727
- else if (hasBody && hasSeq(xmlData, "!NOTATION", i)) {
14728
- i += 9;
14729
- const { index } = readNotationExp(xmlData, i + 1);
14730
- i = index;
14731
- } else if (hasSeq(xmlData, "!--", i)) comment = true;
14732
- else throw new Error("Invalid DOCTYPE");
14733
- angleBracketsCount++;
14734
- }
14735
- if (0 !== angleBracketsCount) throw new Error("Unclosed DOCTYPE");
14736
- } else throw new Error("Invalid Tag instead of DOCTYPE");
14737
- return {
14738
- entities,
14739
- i
14740
- };
14741
- }
14742
- const skipWhitespace = (data, index)=>{
14743
- while(index < data.length && /\s/.test(data[index]))index++;
14744
- return index;
14745
- };
14746
- function readEntityExp(xmlData, i) {
14747
- i = skipWhitespace(xmlData, i);
14748
- let entityName = "";
14749
- while(i < xmlData.length && !/\s/.test(xmlData[i]) && '"' !== xmlData[i] && "'" !== xmlData[i]){
14750
- entityName += xmlData[i];
14751
- i++;
14693
+ class DocTypeReader {
14694
+ constructor(processEntities){
14695
+ this.suppressValidationErr = !processEntities;
14696
+ }
14697
+ readDocType(xmlData, i) {
14698
+ const entities = {};
14699
+ if ('O' === xmlData[i + 3] && 'C' === xmlData[i + 4] && 'T' === xmlData[i + 5] && 'Y' === xmlData[i + 6] && 'P' === xmlData[i + 7] && 'E' === xmlData[i + 8]) {
14700
+ i += 9;
14701
+ let angleBracketsCount = 1;
14702
+ let hasBody = false, comment = false;
14703
+ for(; i < xmlData.length; i++)if ('<' !== xmlData[i] || comment) if ('>' === xmlData[i]) {
14704
+ if (comment) {
14705
+ if ("-" === xmlData[i - 1] && "-" === xmlData[i - 2]) {
14706
+ comment = false;
14707
+ angleBracketsCount--;
14708
+ }
14709
+ } else angleBracketsCount--;
14710
+ if (0 === angleBracketsCount) break;
14711
+ } else if ('[' === xmlData[i]) hasBody = true;
14712
+ else xmlData[i];
14713
+ else {
14714
+ if (hasBody && hasSeq(xmlData, "!ENTITY", i)) {
14715
+ i += 7;
14716
+ let entityName, val;
14717
+ [entityName, val, i] = this.readEntityExp(xmlData, i + 1, this.suppressValidationErr);
14718
+ if (-1 === val.indexOf("&")) entities[entityName] = {
14719
+ regx: RegExp(`&${entityName};`, "g"),
14720
+ val: val
14721
+ };
14722
+ } else if (hasBody && hasSeq(xmlData, "!ELEMENT", i)) {
14723
+ i += 8;
14724
+ const { index } = this.readElementExp(xmlData, i + 1);
14725
+ i = index;
14726
+ } else if (hasBody && hasSeq(xmlData, "!ATTLIST", i)) i += 8;
14727
+ else if (hasBody && hasSeq(xmlData, "!NOTATION", i)) {
14728
+ i += 9;
14729
+ const { index } = this.readNotationExp(xmlData, i + 1, this.suppressValidationErr);
14730
+ i = index;
14731
+ } else if (hasSeq(xmlData, "!--", i)) comment = true;
14732
+ else throw new Error("Invalid DOCTYPE");
14733
+ angleBracketsCount++;
14734
+ }
14735
+ if (0 !== angleBracketsCount) throw new Error("Unclosed DOCTYPE");
14736
+ } else throw new Error("Invalid Tag instead of DOCTYPE");
14737
+ return {
14738
+ entities,
14739
+ i
14740
+ };
14752
14741
  }
14753
- validateEntityName(entityName);
14754
- i = skipWhitespace(xmlData, i);
14755
- if ("SYSTEM" === xmlData.substring(i, i + 6).toUpperCase()) throw new Error("External entities are not supported");
14756
- if ("%" === xmlData[i]) throw new Error("Parameter entities are not supported");
14757
- let entityValue = "";
14758
- [i, entityValue] = readIdentifierVal(xmlData, i, "entity");
14759
- i--;
14760
- return [
14761
- entityName,
14762
- entityValue,
14763
- i
14764
- ];
14765
- }
14766
- function readNotationExp(xmlData, i) {
14767
- i = skipWhitespace(xmlData, i);
14768
- let notationName = "";
14769
- while(i < xmlData.length && !/\s/.test(xmlData[i])){
14770
- notationName += xmlData[i];
14771
- i++;
14742
+ readEntityExp(xmlData, i) {
14743
+ i = skipWhitespace(xmlData, i);
14744
+ let entityName = "";
14745
+ while(i < xmlData.length && !/\s/.test(xmlData[i]) && '"' !== xmlData[i] && "'" !== xmlData[i]){
14746
+ entityName += xmlData[i];
14747
+ i++;
14748
+ }
14749
+ validateEntityName(entityName);
14750
+ i = skipWhitespace(xmlData, i);
14751
+ if (!this.suppressValidationErr) {
14752
+ if ("SYSTEM" === xmlData.substring(i, i + 6).toUpperCase()) throw new Error("External entities are not supported");
14753
+ else if ("%" === xmlData[i]) throw new Error("Parameter entities are not supported");
14754
+ }
14755
+ let entityValue = "";
14756
+ [i, entityValue] = this.readIdentifierVal(xmlData, i, "entity");
14757
+ i--;
14758
+ return [
14759
+ entityName,
14760
+ entityValue,
14761
+ i
14762
+ ];
14772
14763
  }
14773
- validateEntityName(notationName);
14774
- i = skipWhitespace(xmlData, i);
14775
- const identifierType = xmlData.substring(i, i + 6).toUpperCase();
14776
- if ("SYSTEM" !== identifierType && "PUBLIC" !== identifierType) throw new Error(`Expected SYSTEM or PUBLIC, found "${identifierType}"`);
14777
- i += identifierType.length;
14778
- i = skipWhitespace(xmlData, i);
14779
- let publicIdentifier = null;
14780
- let systemIdentifier = null;
14781
- if ("PUBLIC" === identifierType) {
14782
- [i, publicIdentifier] = readIdentifierVal(xmlData, i, "publicIdentifier");
14764
+ readNotationExp(xmlData, i) {
14765
+ i = skipWhitespace(xmlData, i);
14766
+ let notationName = "";
14767
+ while(i < xmlData.length && !/\s/.test(xmlData[i])){
14768
+ notationName += xmlData[i];
14769
+ i++;
14770
+ }
14771
+ this.suppressValidationErr || validateEntityName(notationName);
14783
14772
  i = skipWhitespace(xmlData, i);
14784
- if ('"' === xmlData[i] || "'" === xmlData[i]) [i, systemIdentifier] = readIdentifierVal(xmlData, i, "systemIdentifier");
14785
- } else if ("SYSTEM" === identifierType) {
14786
- [i, systemIdentifier] = readIdentifierVal(xmlData, i, "systemIdentifier");
14787
- if (!systemIdentifier) throw new Error("Missing mandatory system identifier for SYSTEM notation");
14773
+ const identifierType = xmlData.substring(i, i + 6).toUpperCase();
14774
+ if (!this.suppressValidationErr && "SYSTEM" !== identifierType && "PUBLIC" !== identifierType) throw new Error(`Expected SYSTEM or PUBLIC, found "${identifierType}"`);
14775
+ i += identifierType.length;
14776
+ i = skipWhitespace(xmlData, i);
14777
+ let publicIdentifier = null;
14778
+ let systemIdentifier = null;
14779
+ if ("PUBLIC" === identifierType) {
14780
+ [i, publicIdentifier] = this.readIdentifierVal(xmlData, i, "publicIdentifier");
14781
+ i = skipWhitespace(xmlData, i);
14782
+ if ('"' === xmlData[i] || "'" === xmlData[i]) [i, systemIdentifier] = this.readIdentifierVal(xmlData, i, "systemIdentifier");
14783
+ } else if ("SYSTEM" === identifierType) {
14784
+ [i, systemIdentifier] = this.readIdentifierVal(xmlData, i, "systemIdentifier");
14785
+ if (!this.suppressValidationErr && !systemIdentifier) throw new Error("Missing mandatory system identifier for SYSTEM notation");
14786
+ }
14787
+ return {
14788
+ notationName,
14789
+ publicIdentifier,
14790
+ systemIdentifier,
14791
+ index: --i
14792
+ };
14788
14793
  }
14789
- return {
14790
- notationName,
14791
- publicIdentifier,
14792
- systemIdentifier,
14793
- index: --i
14794
- };
14795
- }
14796
- function readIdentifierVal(xmlData, i, type) {
14797
- let identifierVal = "";
14798
- const startChar = xmlData[i];
14799
- if ('"' !== startChar && "'" !== startChar) throw new Error(`Expected quoted string, found "${startChar}"`);
14800
- i++;
14801
- while(i < xmlData.length && xmlData[i] !== startChar){
14802
- identifierVal += xmlData[i];
14794
+ readIdentifierVal(xmlData, i, type) {
14795
+ let identifierVal = "";
14796
+ const startChar = xmlData[i];
14797
+ if ('"' !== startChar && "'" !== startChar) throw new Error(`Expected quoted string, found "${startChar}"`);
14803
14798
  i++;
14804
- }
14805
- if (xmlData[i] !== startChar) throw new Error(`Unterminated ${type} value`);
14806
- i++;
14807
- return [
14808
- i,
14809
- identifierVal
14810
- ];
14811
- }
14812
- function readElementExp(xmlData, i) {
14813
- i = skipWhitespace(xmlData, i);
14814
- let elementName = "";
14815
- while(i < xmlData.length && !/\s/.test(xmlData[i])){
14816
- elementName += xmlData[i];
14799
+ while(i < xmlData.length && xmlData[i] !== startChar){
14800
+ identifierVal += xmlData[i];
14801
+ i++;
14802
+ }
14803
+ if (xmlData[i] !== startChar) throw new Error(`Unterminated ${type} value`);
14817
14804
  i++;
14805
+ return [
14806
+ i,
14807
+ identifierVal
14808
+ ];
14818
14809
  }
14819
- if (!validateEntityName(elementName)) throw new Error(`Invalid element name: "${elementName}"`);
14820
- i = skipWhitespace(xmlData, i);
14821
- let contentModel = "";
14822
- if ("E" === xmlData[i] && hasSeq(xmlData, "MPTY", i)) i += 4;
14823
- else if ("A" === xmlData[i] && hasSeq(xmlData, "NY", i)) i += 2;
14824
- else if ("(" === xmlData[i]) {
14825
- i++;
14826
- while(i < xmlData.length && ")" !== xmlData[i]){
14827
- contentModel += xmlData[i];
14810
+ readElementExp(xmlData, i) {
14811
+ i = skipWhitespace(xmlData, i);
14812
+ let elementName = "";
14813
+ while(i < xmlData.length && !/\s/.test(xmlData[i])){
14814
+ elementName += xmlData[i];
14828
14815
  i++;
14829
14816
  }
14830
- if (")" !== xmlData[i]) throw new Error("Unterminated content model");
14831
- } else throw new Error(`Invalid Element Expression, found "${xmlData[i]}"`);
14832
- return {
14833
- elementName,
14834
- contentModel: contentModel.trim(),
14835
- index: i
14836
- };
14817
+ if (!this.suppressValidationErr && !isName(elementName)) throw new Error(`Invalid element name: "${elementName}"`);
14818
+ i = skipWhitespace(xmlData, i);
14819
+ let contentModel = "";
14820
+ if ("E" === xmlData[i] && hasSeq(xmlData, "MPTY", i)) i += 4;
14821
+ else if ("A" === xmlData[i] && hasSeq(xmlData, "NY", i)) i += 2;
14822
+ else if ("(" === xmlData[i]) {
14823
+ i++;
14824
+ while(i < xmlData.length && ")" !== xmlData[i]){
14825
+ contentModel += xmlData[i];
14826
+ i++;
14827
+ }
14828
+ if (")" !== xmlData[i]) throw new Error("Unterminated content model");
14829
+ } else if (!this.suppressValidationErr) throw new Error(`Invalid Element Expression, found "${xmlData[i]}"`);
14830
+ return {
14831
+ elementName,
14832
+ contentModel: contentModel.trim(),
14833
+ index: i
14834
+ };
14835
+ }
14836
+ readAttlistExp(xmlData, i) {
14837
+ i = skipWhitespace(xmlData, i);
14838
+ let elementName = "";
14839
+ while(i < xmlData.length && !/\s/.test(xmlData[i])){
14840
+ elementName += xmlData[i];
14841
+ i++;
14842
+ }
14843
+ validateEntityName(elementName);
14844
+ i = skipWhitespace(xmlData, i);
14845
+ let attributeName = "";
14846
+ while(i < xmlData.length && !/\s/.test(xmlData[i])){
14847
+ attributeName += xmlData[i];
14848
+ i++;
14849
+ }
14850
+ if (!validateEntityName(attributeName)) throw new Error(`Invalid attribute name: "${attributeName}"`);
14851
+ i = skipWhitespace(xmlData, i);
14852
+ let attributeType = "";
14853
+ if ("NOTATION" === xmlData.substring(i, i + 8).toUpperCase()) {
14854
+ attributeType = "NOTATION";
14855
+ i += 8;
14856
+ i = skipWhitespace(xmlData, i);
14857
+ if ("(" !== xmlData[i]) throw new Error(`Expected '(', found "${xmlData[i]}"`);
14858
+ i++;
14859
+ let allowedNotations = [];
14860
+ while(i < xmlData.length && ")" !== xmlData[i]){
14861
+ let notation = "";
14862
+ while(i < xmlData.length && "|" !== xmlData[i] && ")" !== xmlData[i]){
14863
+ notation += xmlData[i];
14864
+ i++;
14865
+ }
14866
+ notation = notation.trim();
14867
+ if (!validateEntityName(notation)) throw new Error(`Invalid notation name: "${notation}"`);
14868
+ allowedNotations.push(notation);
14869
+ if ("|" === xmlData[i]) {
14870
+ i++;
14871
+ i = skipWhitespace(xmlData, i);
14872
+ }
14873
+ }
14874
+ if (")" !== xmlData[i]) throw new Error("Unterminated list of notations");
14875
+ i++;
14876
+ attributeType += " (" + allowedNotations.join("|") + ")";
14877
+ } else {
14878
+ while(i < xmlData.length && !/\s/.test(xmlData[i])){
14879
+ attributeType += xmlData[i];
14880
+ i++;
14881
+ }
14882
+ const validTypes = [
14883
+ "CDATA",
14884
+ "ID",
14885
+ "IDREF",
14886
+ "IDREFS",
14887
+ "ENTITY",
14888
+ "ENTITIES",
14889
+ "NMTOKEN",
14890
+ "NMTOKENS"
14891
+ ];
14892
+ if (!this.suppressValidationErr && !validTypes.includes(attributeType.toUpperCase())) throw new Error(`Invalid attribute type: "${attributeType}"`);
14893
+ }
14894
+ i = skipWhitespace(xmlData, i);
14895
+ let defaultValue = "";
14896
+ if ("#REQUIRED" === xmlData.substring(i, i + 8).toUpperCase()) {
14897
+ defaultValue = "#REQUIRED";
14898
+ i += 8;
14899
+ } else if ("#IMPLIED" === xmlData.substring(i, i + 7).toUpperCase()) {
14900
+ defaultValue = "#IMPLIED";
14901
+ i += 7;
14902
+ } else [i, defaultValue] = this.readIdentifierVal(xmlData, i, "ATTLIST");
14903
+ return {
14904
+ elementName,
14905
+ attributeName,
14906
+ attributeType,
14907
+ defaultValue,
14908
+ index: i
14909
+ };
14910
+ }
14837
14911
  }
14912
+ const skipWhitespace = (data, index)=>{
14913
+ while(index < data.length && /\s/.test(data[index]))index++;
14914
+ return index;
14915
+ };
14838
14916
  function hasSeq(data, seq, i) {
14839
14917
  for(let j = 0; j < seq.length; j++)if (seq[j] !== data[i + j + 1]) return false;
14840
14918
  return true;
@@ -15085,6 +15163,7 @@ and limitations under the License.
15085
15163
  let currentNode = xmlObj;
15086
15164
  let textData = "";
15087
15165
  let jPath = "";
15166
+ const docTypeReader = new DocTypeReader(this.options.processEntities);
15088
15167
  for(let i = 0; i < xmlData.length; i++){
15089
15168
  const ch = xmlData[i];
15090
15169
  if ('<' === ch) if ('/' === xmlData[i + 1]) {
@@ -15132,7 +15211,7 @@ and limitations under the License.
15132
15211
  }
15133
15212
  i = endIndex;
15134
15213
  } else if ('!D' === xmlData.substr(i + 1, 2)) {
15135
- const result = readDocType(xmlData, i);
15214
+ const result = docTypeReader.readDocType(xmlData, i);
15136
15215
  this.docTypeEntities = result.entities;
15137
15216
  i = result.i;
15138
15217
  } else if ('![' === xmlData.substr(i + 1, 2)) {
@@ -15651,9 +15730,8 @@ and limitations under the License.
15651
15730
  this.options = buildOptions(options);
15652
15731
  }
15653
15732
  parse(xmlData, validationOption) {
15654
- if ("string" == typeof xmlData) ;
15655
- else if (xmlData.toString) xmlData = xmlData.toString();
15656
- else throw new Error("XML data is accepted in String or Bytes[] form.");
15733
+ if ("string" != typeof xmlData && xmlData.toString) xmlData = xmlData.toString();
15734
+ else if ("string" != typeof xmlData) throw new Error("XML data is accepted in String or Bytes[] form.");
15657
15735
  if (validationOption) {
15658
15736
  if (true === validationOption) validationOption = {};
15659
15737
  const result = validate(xmlData, validationOption);
@@ -16156,7 +16234,7 @@ and limitations under the License.
16156
16234
  const protoInt64 = /*@__PURE__*/ makeInt64Support();
16157
16235
  function makeInt64Support() {
16158
16236
  const dv = new DataView(new ArrayBuffer(8));
16159
- const ok = "function" == typeof BigInt && "function" == typeof dv.getBigInt64 && "function" == typeof dv.getBigUint64 && "function" == typeof dv.setBigInt64 && "function" == typeof dv.setBigUint64 && ("object" != typeof process || "object" != typeof process.env || "1" !== process.env.BUF_BIGINT_DISABLE);
16237
+ const ok = "function" == typeof BigInt && "function" == typeof dv.getBigInt64 && "function" == typeof dv.getBigUint64 && "function" == typeof dv.setBigInt64 && "function" == typeof dv.setBigUint64 && (!!globalThis.Deno || "object" != typeof process || "object" != typeof process.env || "1" !== process.env.BUF_BIGINT_DISABLE);
16160
16238
  if (ok) {
16161
16239
  const MIN = BigInt("-9223372036854775808");
16162
16240
  const MAX = BigInt("9223372036854775807");
@@ -18083,6 +18161,16 @@ and limitations under the License.
18083
18161
  jsonFormat: 1,
18084
18162
  enforceNamingStyle: 2,
18085
18163
  defaultSymbolVisibility: 1
18164
+ },
18165
+ 1001: {
18166
+ fieldPresence: 1,
18167
+ enumType: 1,
18168
+ repeatedFieldEncoding: 1,
18169
+ utf8Validation: 2,
18170
+ messageEncoding: 1,
18171
+ jsonFormat: 1,
18172
+ enforceNamingStyle: 1,
18173
+ defaultSymbolVisibility: 2
18086
18174
  }
18087
18175
  };
18088
18176
  function addFile(proto, reg) {
@@ -19586,7 +19674,10 @@ and limitations under the License.
19586
19674
  number: 10,
19587
19675
  type: 8,
19588
19676
  label: 1,
19589
- defaultValue: "false"
19677
+ defaultValue: "false",
19678
+ options: {
19679
+ deprecated: true
19680
+ }
19590
19681
  },
19591
19682
  {
19592
19683
  name: "debug_redact",
@@ -20890,7 +20981,7 @@ and limitations under the License.
20890
20981
  function timestamp_timestampMs(timestamp) {
20891
20982
  return 1000 * Number(timestamp.seconds) + Math.round(timestamp.nanos / 1000000);
20892
20983
  }
20893
- var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.9.4","e8":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
20984
+ var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"0.9.5","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
20894
20985
  const file_bili_dm = /*@__PURE__*/ fileDesc("Cg1iaWxpL2RtLnByb3RvEiBiaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MSJkCgZBdmF0YXISCgoCaWQYASABKAkSCwoDdXJsGAIgASgJEkEKC2F2YXRhcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyVHlwZSIjCgZCdWJibGUSDAoEdGV4dBgBIAEoCRILCgN1cmwYAiABKAkixgEKCEJ1YmJsZVYyEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJEkEKC2J1YmJsZV90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlVHlwZRIVCg1leHBvc3VyZV9vbmNlGAQgASgIEkUKDWV4cG9zdXJlX3R5cGUYBSABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiWwoGQnV0dG9uEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUiWAoOQnV6endvcmRDb25maWcSRgoIa2V5d29yZHMYASADKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZFNob3dDb25maWcieAoSQnV6endvcmRTaG93Q29uZmlnEgwKBG5hbWUYASABKAkSDgoGc2NoZW1hGAIgASgJEg4KBnNvdXJjZRgDIAEoBRIKCgJpZBgEIAEoAxITCgtidXp6d29yZF9pZBgFIAEoAxITCgtzY2hlbWFfdHlwZRgGIAEoBSJ7CghDaGVja0JveBIMCgR0ZXh0GAEgASgJEjwKBHR5cGUYAiABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja2JveFR5cGUSFQoNZGVmYXVsdF92YWx1ZRgDIAEoCBIMCgRzaG93GAQgASgIIm8KCkNoZWNrQm94VjISDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgiggIKC0NsaWNrQnV0dG9uEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSDAoEc2hvdxgGIAEoCBI4CgZidWJibGUYByABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGUiswIKDUNsaWNrQnV0dG9uVjISFQoNcG9ydHJhaXRfdGV4dBgBIAMoCRIWCg5sYW5kc2NhcGVfdGV4dBgCIAMoCRIbChNwb3J0cmFpdF90ZXh0X2ZvY3VzGAMgAygJEhwKFGxhbmRzY2FwZV90ZXh0X2ZvY3VzGAQgAygJEkEKC3JlbmRlcl90eXBlGAUgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIXCg90ZXh0X2lucHV0X3Bvc3QYBiABKAgSFQoNZXhwb3N1cmVfb25jZRgHIAEoCBJFCg1leHBvc3VyZV90eXBlGAggASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIksKB0NvbW1hbmQSQAoLY29tbWFuZF9kbXMYASADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0i5gEKCUNvbW1hbmREbRIKCgJpZBgBIAEoAxILCgNvaWQYAiABKAMSCwoDbWlkGAMgASgDEg8KB2NvbW1hbmQYBCABKAkSDwoHY29udGVudBgFIAEoCRIQCghwcm9ncmVzcxgGIAEoBRINCgVjdGltZRgHIAEoCRINCgVtdGltZRgIIAEoCRINCgVleHRyYRgJIAEoCRINCgVpZFN0chgKIAEoCRIMCgR0eXBlGAsgASgFEhMKC2F1dG9fY3JlYXRlGAwgASgIEhIKCmNvdW50X2Rvd24YDSABKAUSDAoEYXR0chgOIAEoBSJQCg1EYW5tYWt1QUlGbGFnEj8KCGRtX2ZsYWdzGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWciiwMKC0Rhbm1ha3VFbGVtEgoKAmlkGAEgASgDEhAKCHByb2dyZXNzGAIgASgFEgwKBG1vZGUYAyABKAUSEAoIZm9udHNpemUYBCABKAUSPwoFY29sb3IYBSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIQCghtaWRfaGFzaBgGIAEoCRIPCgdjb250ZW50GAcgASgJEg0KBWN0aW1lGAggASgDEg4KBndlaWdodBgJIAEoBRIOCgZhY3Rpb24YCiABKAkSDAoEcG9vbBgLIAEoBRIOCgZpZF9zdHIYDCABKAkSDAoEYXR0chgNIAEoBRIRCglhbmltYXRpb24YFiABKAkSDQoFZXh0cmEYFyABKAkSQgoIY29sb3JmdWwYGCABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIMCgR0eXBlGBkgASgFEgsKA29pZBgaIAEoAyIpCgtEYW5tYWt1RmxhZxIMCgRkbWlkGAEgASgDEgwKBGZsYWcYAiABKAUiSwoRRGFubWFrdUZsYWdDb25maWcSEAoIcmVjX2ZsYWcYASABKAUSEAoIcmVjX3RleHQYAiABKAkSEgoKcmVjX3N3aXRjaBgDIAEoBSKLBwoYRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnEikKIXBsYXllcl9kYW5tYWt1X3VzZV9kZWZhdWx0X2NvbmZpZxgBIAEoCBIsCiRwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9zd2l0Y2gYBCABKAgSKwojcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWwYBSABKAUSHwoXcGxheWVyX2Rhbm1ha3VfYmxvY2t0b3AYBiABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tzY3JvbGwYByABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tib3R0b20YCCABKAgSJAoccGxheWVyX2Rhbm1ha3VfYmxvY2tjb2xvcmZ1bBgJIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3JlcGVhdBgKIAEoCBIjChtwbGF5ZXJfZGFubWFrdV9ibG9ja3NwZWNpYWwYCyABKAgSHgoWcGxheWVyX2Rhbm1ha3Vfb3BhY2l0eRgMIAEoAhIkChxwbGF5ZXJfZGFubWFrdV9zY2FsaW5nZmFjdG9yGA0gASgCEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAhIcChRwbGF5ZXJfZGFubWFrdV9zcGVlZBgPIAEoBRIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBAgASgIEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgRIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgSIAEoBRKYAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBMgAygLMmQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EiUKHXBsYXllcl9kYW5tYWt1X2VuYWJsZV9oZXJkX2RtGBQgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEi7AkKEURhbm11UGxheWVyQ29uZmlnEh0KFXBsYXllcl9kYW5tYWt1X3N3aXRjaBgBIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9zd2l0Y2hfc2F2ZRgCIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYAyABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJgoecGxheWVyX2Rhbm1ha3VfZW5hYmxlYmxvY2tsaXN0GBAgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9zd2l0Y2gYESABKAgSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X2NvbmZpZxgSIAEoBRImCh5wbGF5ZXJfZGFubWFrdV9pb3Nfc3dpdGNoX3NhdmUYEyABKAUSKQohcGxheWVyX2Rhbm1ha3Vfc2VuaW9yX21vZGVfc3dpdGNoGBQgASgFEi4KJnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBUgASgFEpEBCipwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92Ml9tYXAYFiADKAsyXS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgXIAEoCBImCh5wbGF5ZXJfZGFubWFrdV9ibG9ja3RvcF9ib3R0b20YGCABKAgSIAoYcGxheWVyX2Rhbm1ha3VfZG9tYWluX3YyGBkgASgFEh4KFnBsYXllcl9kYW5tYWt1X2RlbnNpdHkYGiABKAUSJQodcGxheWVyX2Rhbm1ha3Vfc3VidGl0bGVfcHJvb2YYGyABKAgSIwobcGxheWVyX2Rhbm1ha3VfcGVvcGxlX3Byb29mGBwgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiMAoWRGFubXVQbGF5ZXJDb25maWdQYW5lbBIWCg5zZWxlY3Rpb25fdGV4dBgBIAEoCSJLChhEYW5tdVBsYXllckR5bmFtaWNDb25maWcSEAoIcHJvZ3Jlc3MYASABKAUSHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCIpADChVEYW5tdVBsYXllclZpZXdDb25maWcSYQodZGFubXVrdV9kZWZhdWx0X3BsYXllcl9jb25maWcYASABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdURlZmF1bHRQbGF5ZXJDb25maWcSUgoVZGFubXVrdV9wbGF5ZXJfY29uZmlnGAIgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcSYQodZGFubXVrdV9wbGF5ZXJfZHluYW1pY19jb25maWcYAyADKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckR5bmFtaWNDb25maWcSXQobZGFubXVrdV9wbGF5ZXJfY29uZmlnX3BhbmVsGAQgASgLMjguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWdQYW5lbCKZBQoURGFubXVXZWJQbGF5ZXJDb25maWcSEQoJZG1fc3dpdGNoGAEgASgIEhEKCWFpX3N3aXRjaBgCIAEoCBIQCghhaV9sZXZlbBgDIAEoBRIQCghibG9ja3RvcBgEIAEoCBITCgtibG9ja3Njcm9sbBgFIAEoCBITCgtibG9ja2JvdHRvbRgGIAEoCBISCgpibG9ja2NvbG9yGAcgASgIEhQKDGJsb2Nrc3BlY2lhbBgIIAEoCBIUCgxwcmV2ZW50c2hhZGUYCSABKAgSDQoFZG1hc2sYCiABKAgSDwoHb3BhY2l0eRgLIAEoAhIOCgZkbWFyZWEYDCABKAUSEQoJc3BlZWRwbHVzGA0gASgCEhAKCGZvbnRzaXplGA4gASgCEhIKCnNjcmVlbnN5bmMYDyABKAgSEQoJc3BlZWRzeW5jGBAgASgIEhIKCmZvbnRmYW1pbHkYESABKAkSDAoEYm9sZBgSIAEoCBISCgpmb250Ym9yZGVyGBMgASgFEhEKCWRyYXdfdHlwZRgUIAEoCRIaChJzZW5pb3JfbW9kZV9zd2l0Y2gYFSABKAUSEwoLYWlfbGV2ZWxfdjIYFiABKAUSYQoPYWlfbGV2ZWxfdjJfbWFwGBcgAygLMkguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcuQWlMZXZlbFYyTWFwRW50cnkSFwoPYmxvY2t0b3BfYm90dG9tGBggASgIEhIKCmRtX2FyZWFfdjIYGSABKAUSEgoKZG1fZGVuc2l0eRgaIAEoBRozChFBaUxldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIlkKCkRtQ29sb3JmdWwSPgoEdHlwZRgBIAEoDjIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWxUeXBlEgsKA3NyYxgCIAEoCSJQCg9EbUV4cG9SZXBvcnRSZXESEgoKc2Vzc2lvbl9pZBgBIAEoCRILCgNvaWQYAiABKAMSDQoFZG1pZHMYAyABKAwSDQoFc3BtaWQYBCABKAkiEQoPRG1FeHBvUmVwb3J0UmVzIm0KCkRtSGVyZFZpZXcSGwoTZGlzcGxheV9oZXJkX2RtX251bRgBIAEoBRJCCghoZXJkX2RtcxgCIAMoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZXdIZXJkRG1FbGVtIpYCCgpEbU1hc2tXYWxsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEk0KDGNvbnRlbnRfdHlwZRgEIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRJFCghiaXpfdHlwZRgFIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxCaXpUeXBlEkUKCGNvbnRlbnRzGAYgAygLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbENvbnRlbnQiawoRRG1NYXNrV2FsbENvbnRlbnQSRQoEdHlwZRgBIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRIPCgdjb250ZW50GAIgASgJIs0QChFEbVBsYXllckNvbmZpZ1JlcRIKCgJ0cxgBIAEoAxJFCgZzd2l0Y2gYAiABKAsyNS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3dpdGNoEk4KC3N3aXRjaF9zYXZlGAMgASgLMjkuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaFNhdmUSWwoSdXNlX2RlZmF1bHRfY29uZmlnGAQgASgLMj8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVVzZURlZmF1bHRDb25maWcSYQoVYWlfcmVjb21tZW5kZWRfc3dpdGNoGAUgASgLMkIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSXwoUYWlfcmVjb21tZW5kZWRfbGV2ZWwYBiABKAsyQS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEkkKCGJsb2NrdG9wGAcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wEk8KC2Jsb2Nrc2Nyb2xsGAggASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEk8KC2Jsb2NrYm90dG9tGAkgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrYm90dG9tElMKDWJsb2NrY29sb3JmdWwYCiABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBJPCgtibG9ja3JlcGVhdBgLIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBJRCgxibG9ja3NwZWNpYWwYDCABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEkcKB29wYWNpdHkYDSABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1T3BhY2l0eRJTCg1zY2FsaW5nZmFjdG9yGA4gASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISRQoGZG9tYWluGA8gASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpbhJDCgVzcGVlZBgQIAEoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTcGVlZBJXCg9lbmFibGVibG9ja2xpc3QYESABKAsyPi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0El4KGWlubGluZVBsYXllckRhbm1ha3VTd2l0Y2gYEiABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5JbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoElsKEnNlbmlvcl9tb2RlX3N3aXRjaBgTIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTZW5pb3JNb2RlU3dpdGNoEmQKF2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBQgASgLMkMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyElMKDmVuYWJsZV9oZXJkX2RtGBUgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRJWCg9ibG9ja3RvcF9ib3R0b20YFiABKAsyPS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SSgoJZG9tYWluX3YyGBcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpblYyEkcKB2RlbnNpdHkYGCABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RGVuc2l0eRJUCg5zdWJ0aXRsZV9wcm9vZhgZIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mElAKDHBlb3BsZV9wcm9vZhgaIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VQZW9wbGVQcm9vZiIvCgtEbVNlZ0NvbmZpZxIRCglwYWdlX3NpemUYASABKAMSDQoFdG90YWwYAiABKAMikQIKEERtU2VnTW9iaWxlUmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBRJACgdhaV9mbGFnGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUFJRmxhZxIVCg1zZWdtZW50X3J1bGVzGAQgAygDEkIKDGNvbG9yZnVsX3NyYxgFIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWwSEwoLY29udGV4dF9zcmMYBiABKAkiygEKDkRtU2VnTW9iaWxlUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDEhYKDnRlZW5hZ2Vyc19tb2RlGAUgASgFEgoKAnBzGAYgASgDEgoKAnBlGAcgASgDEhEKCXB1bGxfbW9kZRgIIAEoBRISCgpmcm9tX3NjZW5lGAkgASgFEg0KBXNwbWlkGAogASgJEhMKC2NvbnRleHRfZXh0GAsgASgJIlwKDURtU2VnT3R0UmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBSJMCgtEbVNlZ090dFJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJdCg1EbVNlZ1NES1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI8CgVlbGVtcxgCIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtIkwKC0RtU2VnU0RLUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDIncKCURtU3ViVmlldxIMCgR0eXBlGAEgASgFEgsKA29pZBgCIAEoAxILCgNwaWQYAyABKAMSQgoLcG9zdF9wYW5lbDIYBCADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxWMiKhCQoLRG1WaWV3UmVwbHkSDgoGY2xvc2VkGAEgASgIEjkKBG1hc2sYAiABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb01hc2sSQQoIc3VidGl0bGUYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb1N1YnRpdGxlEhMKC3NwZWNpYWxfZG1zGAQgAygJEkQKB2FpX2ZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxJOCg1wbGF5ZXJfY29uZmlnGAYgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJWaWV3Q29uZmlnEhYKDnNlbmRfYm94X3N0eWxlGAcgASgFEg0KBWFsbG93GAggASgIEhEKCWNoZWNrX2JveBgJIAEoCBIaChJjaGVja19ib3hfc2hvd19tc2cYCiABKAkSGAoQdGV4dF9wbGFjZWhvbGRlchgLIAEoCRIZChFpbnB1dF9wbGFjZWhvbGRlchgMIAEoCRIdChVyZXBvcnRfZmlsdGVyX2NvbnRlbnQYDSADKAkSQQoLZXhwb19yZXBvcnQYDiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvUmVwb3J0EkkKD2J1enp3b3JkX2NvbmZpZxgPIAEoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1enp3b3JkQ29uZmlnEkIKC2V4cHJlc3Npb25zGBAgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgRIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGBIgAygJEkIKC3Bvc3RfcGFuZWwyGBMgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISQgoMZG1fbWFza193YWxsGBQgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbBI9CgdkbV9oZXJkGBUgASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1IZXJkVmlldxI6Cgdjb21tYW5kGBYgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZBIKCgJrdhgXIAEoCRI+CglzdWJfdmlld3MYGCADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVN1YlZpZXcSNgoDcW9lGBkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUW9lSW5mbyJtCglEbVZpZXdSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEg0KBXNwbWlkGAQgASgJEhQKDGlzX2hhcmRfYm9vdBgFIAEoBRITCgtjb250ZXh0X2V4dBgGIAEoCSKBBgoORG1XZWJWaWV3UmVwbHkSDQoFc3RhdGUYASABKAUSDAoEdGV4dBgCIAEoCRIRCgl0ZXh0X3NpZGUYAyABKAkSPQoGZG1fc2dlGAQgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdDb25maWcSQQoEZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEhMKC3NwZWNpYWxfZG1zGAYgAygJEhEKCWNoZWNrX2JveBgHIAEoCBINCgVjb3VudBgIIAEoAxJACgtjb21tYW5kX2RtcxgJIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmREbRJNCg1wbGF5ZXJfY29uZmlnGAogASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GAsgAygJEkIKC2V4cHJlc3Npb25zGAwgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgNIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGA4gAygJEkIKC3Bvc3RfcGFuZWwyGA8gAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISPgoJc3ViX3ZpZXdzGBAgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgRIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8iKgoKRXhwb1JlcG9ydBIcChRzaG91bGRfcmVwb3J0X2F0X2VuZBgBIAEoCCJkCgpFeHByZXNzaW9uEg8KB2tleXdvcmQYASADKAkSCwoDdXJsGAIgASgJEjgKBnBlcmlvZBgDIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBlcmlvZCJJCgtFeHByZXNzaW9ucxI6CgRkYXRhGAEgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbiIqChlJbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoEg0KBXZhbHVlGAEgASgIIicKBUxhYmVsEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkihwEKB0xhYmVsVjISDQoFdGl0bGUYASABKAkSDwoHY29udGVudBgCIAMoCRIVCg1leHBvc3VyZV9vbmNlGAMgASgIEkUKDWV4cG9zdXJlX3R5cGUYBCABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiJAoGUGVyaW9kEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAyIwCh9QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEg0KBXZhbHVlGAEgASgFIjIKIVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhINCgV2YWx1ZRgBIAEoBSIxCiBQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZFN3aXRjaBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tib3R0b20SDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrcmVwZWF0Eg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBINCgV2YWx1ZRgBIAEoCCIqChlQbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEg0KBXZhbHVlGAEgASgIIiYKFVBsYXllckRhbm1ha3VCbG9ja3RvcBINCgV2YWx1ZRgBIAEoCCIsChtQbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SDQoFdmFsdWUYASABKAgiJQoUUGxheWVyRGFubWFrdURlbnNpdHkSDQoFdmFsdWUYASABKAUiJAoTUGxheWVyRGFubWFrdURvbWFpbhINCgV2YWx1ZRgBIAEoAiImChVQbGF5ZXJEYW5tYWt1RG9tYWluVjISDQoFdmFsdWUYASABKAUiKgoZUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRINCgV2YWx1ZRgBIAEoCCItChxQbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0Eg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VPcGFjaXR5Eg0KBXZhbHVlGAEgASgCIikKGFBsYXllckRhbm1ha3VQZW9wbGVQcm9vZhINCgV2YWx1ZRgBIAEoCCIrChpQbGF5ZXJEYW5tYWt1U2NhbGluZ2ZhY3RvchINCgV2YWx1ZRgBIAEoAiIuCh1QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBINCgV2YWx1ZRgBIAEoBSIjChJQbGF5ZXJEYW5tYWt1U3BlZWQSDQoFdmFsdWUYASABKAUiKwoaUGxheWVyRGFubWFrdVN1YnRpdGxlUHJvb2YSDQoFdmFsdWUYASABKAgiOAoTUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCBISCgpjYW5faWdub3JlGAIgASgIIigKF1BsYXllckRhbm1ha3VTd2l0Y2hTYXZlEg0KBXZhbHVlGAEgASgIIi4KHVBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEg0KBXZhbHVlGAEgASgIIowDCglQb3N0UGFuZWwSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEhAKCHByaW9yaXR5GAMgASgDEg4KBmJpel9pZBgEIAEoAxJECghiaXpfdHlwZRgFIAEoDjIyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbEJpelR5cGUSQwoMY2xpY2tfYnV0dG9uGAYgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b24SPwoKdGV4dF9pbnB1dBgHIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dBI9CgljaGVja19ib3gYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveBI2CgV0b2FzdBgJIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0Iq0ECgtQb3N0UGFuZWxWMhINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSRAoIYml6X3R5cGUYAyABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkUKDGNsaWNrX2J1dHRvbhgEIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uVjISQQoKdGV4dF9pbnB1dBgFIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dFYyEj8KCWNoZWNrX2JveBgGIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrQm94VjISOAoFdG9hc3QYByABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdFYyEjoKBmJ1YmJsZRgIIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVYyEjgKBWxhYmVsGAkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuTGFiZWxWMhJBCgtwb3N0X3N0YXR1cxgKIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMiFwoHUW9lSW5mbxIMCgRpbmZvGAEgASgJIikKCFJlc3BvbnNlEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCSL5AgoMU3VidGl0bGVJdGVtEgoKAmlkGAEgASgDEg4KBmlkX3N0chgCIAEoCRILCgNsYW4YAyABKAkSDwoHbGFuX2RvYxgEIAEoCRIUCgxzdWJ0aXRsZV91cmwYBSABKAkSOgoGYXV0aG9yGAYgASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVXNlckluZm8SPAoEdHlwZRgHIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlVHlwZRIVCg1sYW5fZG9jX2JyaWVmGAggASgJEkEKB2FpX3R5cGUYCSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpVHlwZRJFCglhaV9zdGF0dXMYCiABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpU3RhdHVzIugCCglUZXh0SW5wdXQSHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEgwKBHNob3cYBSABKAgSOAoGYXZhdGFyGAYgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEkEKC3Bvc3Rfc3RhdHVzGAcgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFN0YXR1cxI2CgVsYWJlbBgIIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsIvsBCgtUZXh0SW5wdXRWMhIcChRwb3J0cmFpdF9wbGFjZWhvbGRlchgBIAMoCRIdChVsYW5kc2NhcGVfcGxhY2Vob2xkZXIYAiADKAkSQQoLcmVuZGVyX3R5cGUYAyABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEhgKEHBsYWNlaG9sZGVyX3Bvc3QYBCABKAgSOAoGYXZhdGFyGAUgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEhgKEHRleHRfaW5wdXRfbGltaXQYBiABKAUibwoFVG9hc3QSDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRIMCgRzaG93GAMgASgIEjgKBmJ1dHRvbhgEIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1dHRvbiJiCg1Ub2FzdEJ1dHRvblYyEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUicwoHVG9hc3RWMhIMCgR0ZXh0GAEgASgJEhAKCGR1cmF0aW9uGAIgASgFEkgKD3RvYXN0X2J1dHRvbl92MhgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0QnV0dG9uVjIiXAoIVXNlckluZm8SCwoDbWlkGAEgASgDEgwKBG5hbWUYAiABKAkSCwoDc2V4GAMgASgJEgwKBGZhY2UYBCABKAkSDAoEc2lnbhgFIAEoCRIMCgRyYW5rGAYgASgFIlMKCVZpZGVvTWFzaxILCgNjaWQYASABKAMSDAoEcGxhdBgCIAEoBRILCgNmcHMYAyABKAUSDAoEdGltZRgEIAEoAxIQCghtYXNrX3VybBgFIAEoCSJwCg1WaWRlb1N1YnRpdGxlEgsKA2xhbhgBIAEoCRIPCgdsYW5fZG9jGAIgASgJEkEKCXN1YnRpdGxlcxgDIAMoCzIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlSXRlbSKSAQoOVmlld0hlcmREbUVsZW0SEAoIaGVyZF9tc2cYASABKAkSFgoOaGVyZF9zdGFydF9jbnQYAiABKAUSFAoMaGVyZF9lbmRfY250GAMgASgFEhIKCnJlZ2V4X3J1bGUYBCABKAkSFgoOc3RhcnRfcHJvZ3Jlc3MYBSABKAUSFAoMZW5kX3Byb2dyZXNzGAYgASgFKjMKCkF2YXRhclR5cGUSEgoOQXZhdGFyVHlwZU5vbmUQABIRCg1BdmF0YXJUeXBlTkZUEAEqWQoKQnViYmxlVHlwZRISCg5CdWJibGVUeXBlTm9uZRAAEhkKFUJ1YmJsZVR5cGVDbGlja0J1dHRvbhABEhwKGEJ1YmJsZVR5cGVEbVNldHRpbmdQYW5lbBACKlgKDENoZWNrYm94VHlwZRIUChBDaGVja2JveFR5cGVOb25lEAASGQoVQ2hlY2tib3hUeXBlRW5jb3VyYWdlEAESFwoTQ2hlY2tib3hUeXBlQ29sb3JETRACKjUKDkRtQ29sb3JmdWxUeXBlEgwKCE5vbmVUeXBlEAASFQoPVmlwR3JhZHVhbENvbG9yEOHUAypgChFEbU1hc2tXYWxsQml6VHlwZRILCgdVbmtub3duEAASBwoDT0dWEAESCgoGQml6UGljEAISCAoETXV0ZRADEgoKBlJlY29yZBAEEgkKBUNsb3VkEAUSCAoEQUlHQxAGKnYKFURtTWFza1dhbGxDb250ZW50VHlwZRIgChxEbU1hc2tXYWxsQ29udGVudFR5cGVVbmtub3duEAASHQoZRG1NYXNrV2FsbENvbnRlbnRUeXBlVGV4dBABEhwKGERtTWFza1dhbGxDb250ZW50VHlwZVBpYxACKjwKDEV4cG9zdXJlVHlwZRIUChBFeHBvc3VyZVR5cGVOb25lEAASFgoSRXhwb3N1cmVUeXBlRE1TZW5kEAEqgwIKEFBvc3RQYW5lbEJpelR5cGUSGAoUUG9zdFBhbmVsQml6VHlwZU5vbmUQABIdChlQb3N0UGFuZWxCaXpUeXBlRW5jb3VyYWdlEAESGwoXUG9zdFBhbmVsQml6VHlwZUNvbG9yRE0QAhIZChVQb3N0UGFuZWxCaXpUeXBlTkZURE0QAxIdChlQb3N0UGFuZWxCaXpUeXBlRnJhZ0Nsb3NlEAQSHQoZUG9zdFBhbmVsQml6VHlwZVJlY29tbWVuZBAFEhwKGFBvc3RQYW5lbEJpelR5cGVQbG90TGVhaxAGEiIKHlBvc3RQYW5lbEJpelR5cGVBbnRpSGFyYXNzbWVudBAHKjgKClBvc3RTdGF0dXMSFAoQUG9zdFN0YXR1c05vcm1hbBAAEhQKEFBvc3RTdGF0dXNDbG9zZWQQASpOCgpSZW5kZXJUeXBlEhIKDlJlbmRlclR5cGVOb25lEAASFAoQUmVuZGVyVHlwZVNpbmdsZRABEhYKElJlbmRlclR5cGVSb3RhdGlvbhACKjYKEFN1YnRpdGxlQWlTdGF0dXMSCAoETm9uZRAAEgwKCEV4cG9zdXJlEAESCgoGQXNzaXN0EAIqKwoOU3VidGl0bGVBaVR5cGUSCgoGTm9ybWFsEAASDQoJVHJhbnNsYXRlEAEqHgoMU3VidGl0bGVUeXBlEgYKAkNDEAASBgoCQUkQASpOChFUb2FzdEZ1bmN0aW9uVHlwZRIZChVUb2FzdEZ1bmN0aW9uVHlwZU5vbmUQABIeChpUb2FzdEZ1bmN0aW9uVHlwZVBvc3RQYW5lbBABMqAFCgJETRJzCgtEbVNlZ01vYmlsZRIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVxGjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdNb2JpbGVSZXBseRJkCgZEbVZpZXcSKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXEaLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXBseRJxCg5EbVBsYXllckNvbmZpZxIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtUGxheWVyQ29uZmlnUmVxGiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVzcG9uc2USagoIRG1TZWdPdHQSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnT3R0UmVwbHkSagoIRG1TZWdTREsSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnU0RLUmVwbHkSdAoMRG1FeHBvUmVwb3J0EjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVxGjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVzYgZwcm90bzM");
20895
20986
  const DmSegMobileReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 30);
20896
20987
  const DmWebViewReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 39);
@@ -23247,16 +23338,16 @@ and limitations under the License.
23247
23338
  }({});
23248
23339
  const ExtraDanUniChapterTypeDict = {
23249
23340
  chs: {
23250
- ch: "\u5176\u5B83\u7247\u6BB5",
23251
- rev: "\u56DE\u987E",
23252
- op: "\u7247\u5934",
23253
- int: "\u4E2D\u573A",
23254
- ed: "\u7247\u5C3E",
23255
- prvw: "\u9884\u544A",
23256
- cut: "\u5220\u51CF",
23257
- dup: "\u8865\u6863",
23258
- biz: "\u5546\u4E1A\u5E7F\u544A",
23259
- promo: "\u63A8\u5E7F"
23341
+ ch: '其它片段',
23342
+ rev: '回顾',
23343
+ op: '片头',
23344
+ int: '中场',
23345
+ ed: '片尾',
23346
+ prvw: '预告',
23347
+ cut: '删减',
23348
+ dup: '补档',
23349
+ biz: '商业广告',
23350
+ promo: '推广'
23260
23351
  }
23261
23352
  };
23262
23353
  var dm_gen_ExtraDanUniChapterAction = /*#__PURE__*/ function(ExtraDanUniChapterAction) {
@@ -23355,22 +23446,27 @@ and limitations under the License.
23355
23446
  minify() {
23356
23447
  const def = UniDM.create();
23357
23448
  const dan = UniDM.create(this);
23358
- for(const key in dan){
23359
- const k = key;
23360
- const v = dan[k];
23361
- if ('SOID' !== key) if (v) if (v === def[k]) delete dan[k];
23362
- else {
23363
- if ('attr' === k && Array.isArray(v) && 0 === v.length) delete dan[k];
23364
- if ('extraStr' === k && '{}' === v) delete dan[k];
23449
+ const shouldKeep = (key, value)=>{
23450
+ if ('SOID' === key) return true;
23451
+ if (null == value) return false;
23452
+ if (value === def[key]) return false;
23453
+ if ('attr' === key && Array.isArray(value) && 0 === value.length) return false;
23454
+ if ('extraStr' === key && '{}' === value) return false;
23455
+ return true;
23456
+ };
23457
+ const result = {
23458
+ SOID: dan.SOID
23459
+ };
23460
+ for (const key of Object.keys(dan)){
23461
+ const value = dan[key];
23462
+ if (shouldKeep(key, value)) {
23463
+ if ('SOID' === key) continue;
23464
+ Reflect.set(result, key, value);
23365
23465
  }
23366
- else delete dan[k];
23367
23466
  }
23368
- return dm_gen_JSON.parse(dm_gen_JSON.stringify(dan));
23467
+ return result;
23369
23468
  }
23370
- downgradeAdvcancedDan({ include, exclude, cleanExtra = false } = {
23371
- include: [],
23372
- exclude: []
23373
- }) {
23469
+ downgradeAdvcancedDan({ include, exclude, cleanExtra = false } = {}) {
23374
23470
  if (!this.extra) return this;
23375
23471
  {
23376
23472
  if (!include) include = [];
@@ -23385,16 +23481,16 @@ and limitations under the License.
23385
23481
  clone.content = `${this.content} x${merge.count}`;
23386
23482
  } else if (danuni.chapter) {
23387
23483
  const chapter = danuni.chapter;
23388
- if ("cut" === chapter.type) clone.content = `[\u{63D0}\u{793A}]${clone.platform}\u{6E90}${ExtraDanUniChapterTypeDict.chs[chapter.type]}\u{4E86}${chapter.duration}\u{79D2}`;
23389
- else if ("dup" === chapter.type) clone.content = `[\u{63D0}\u{793A}(${ExtraDanUniChapterTypeDict.chs[chapter.type]})]${clone.platform}\u{6E90}-${chapter.duration}\u{79D2}`;
23390
- else clone.content = `[\u{7A7A}\u{964D}(${ExtraDanUniChapterTypeDict.chs[chapter.type]})]${hh_mm_ss_default().fromS(clone.progress + chapter.duration)}`;
23484
+ if ("cut" === chapter.type) clone.content = `[提示]${clone.platform}源${ExtraDanUniChapterTypeDict.chs[chapter.type]}了${chapter.duration}秒`;
23485
+ else if ("dup" === chapter.type) clone.content = `[提示(${ExtraDanUniChapterTypeDict.chs[chapter.type]})]${clone.platform}源-${chapter.duration}秒`;
23486
+ else clone.content = `[空降(${ExtraDanUniChapterTypeDict.chs[chapter.type]})]${hh_mm_ss_default().fromS(clone.progress + chapter.duration)}`;
23391
23487
  }
23392
23488
  } else if (check('bili') && clone.extra.bili) {
23393
23489
  const bili = clone.extra.bili;
23394
- if (7 === bili.mode && bili.adv) clone.content = `[B\u{7AD9}\u{9AD8}\u{7EA7}\u{5F39}\u{5E55}]${dm_gen_JSON.parse(bili.adv)[4] || ''}`;
23490
+ if (7 === bili.mode && bili.adv) clone.content = `[B站高级弹幕]${dm_gen_JSON.parse(bili.adv)[4] || ''}`;
23395
23491
  else if (bili.command) {
23396
23492
  const command = bili.command;
23397
- clone.content = `[B\u{7AD9}\u{6307}\u{4EE4}\u{5F39}\u{5E55}]${command.content}`;
23493
+ clone.content = `[B站指令弹幕]${command.content}`;
23398
23494
  clone.fontsize = 36;
23399
23495
  }
23400
23496
  }
@@ -23509,7 +23605,7 @@ and limitations under the License.
23509
23605
  mode,
23510
23606
  senderID: senderID.toString(),
23511
23607
  ctime: this.transCtime(args.ctime, 's'),
23512
- weight: args.weight ? args.weight : 3 === pool ? 1 : 0,
23608
+ weight: args.weight || (3 === pool ? 1 : 0),
23513
23609
  pool,
23514
23610
  attr: DMAttrUtils.fromBin(args.attr, platform_PlatformVideoSource.Bilibili),
23515
23611
  platform: platform_PlatformVideoSource.Bilibili,
@@ -23883,7 +23979,7 @@ and limitations under the License.
23883
23979
  });
23884
23980
  const DanUniConvertTipTemplate = {
23885
23981
  meassage: 'Converted by DanUni!',
23886
- version: `JS/TS ${package_namespaceObject.u2} (v${package_namespaceObject.i8})`
23982
+ version: `JS/TS ${package_namespaceObject.UU} (v${package_namespaceObject.rE})`
23887
23983
  };
23888
23984
  class UniPool {
23889
23985
  constructor(dans, options = {}, info = {
@@ -23930,7 +24026,7 @@ and limitations under the License.
23930
24026
  return stats;
23931
24027
  }
23932
24028
  getMost(key) {
23933
- return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
24029
+ return this.getStat(key).toSorted((a, b)=>b.count - a.count)[0];
23934
24030
  }
23935
24031
  get most() {
23936
24032
  return {
@@ -23992,7 +24088,7 @@ and limitations under the License.
23992
24088
  }
23993
24089
  merge(lifetime = 0) {
23994
24090
  if (!this.shared.SOID) {
23995
- console.error("\u672C\u529F\u80FD\u4EC5\u652F\u6301\u540C\u5F39\u5E55\u5E93\u5185\u4F7F\u7528\uFF0C\u53EF\u5148 .split('SOID') \u5728\u5206\u522B\u4F7F\u7528");
24091
+ console.error("本功能仅支持同弹幕库内使用,可先 .split('SOID') 在分别使用");
23996
24092
  return this;
23997
24093
  }
23998
24094
  if (lifetime <= 0) return this;
@@ -24101,7 +24197,7 @@ and limitations under the License.
24101
24197
  'str',
24102
24198
  'bin'
24103
24199
  ];
24104
- const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
24200
+ const err = '无法识别该文件,请手动指定格式!';
24105
24201
  const parseJSON = (json)=>{
24106
24202
  try {
24107
24203
  if (Array.isArray(json) && json.every((d)=>d.SOID)) return {
@@ -24175,16 +24271,16 @@ and limitations under the License.
24175
24271
  const fileStr = new TextDecoder().decode(file);
24176
24272
  const prStr = parseStr(fileStr);
24177
24273
  if (prStr) return prStr;
24178
- errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
24274
+ errmesg = `${err}(定位: bin->string)`;
24179
24275
  } catch {}
24180
24276
  } else if (mod.includes('json')) {
24181
24277
  const prJSON = parseJSON(file);
24182
- if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
24278
+ if (!prJSON) throw new Error(`${err}(定位: json)`);
24183
24279
  return prJSON;
24184
24280
  }
24185
24281
  } else if (isString(file)) {
24186
24282
  const prStr = parseStr(file);
24187
- if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
24283
+ if (!prStr) throw new Error(`${err}(定位: string)`);
24188
24284
  return prStr;
24189
24285
  }
24190
24286
  throw new Error(errmesg ?? err);
@@ -24282,7 +24378,7 @@ and limitations under the License.
24282
24378
  };
24283
24379
  if (options?.avoidSenderIDWithAt) {
24284
24380
  const ok = this.dans.every((d)=>d.senderID.endsWith(`@${platform_PlatformVideoSource.Bilibili}`));
24285
- if (!ok) throw new Error("\u5B58\u5728\u5176\u4ED6\u6765\u6E90\u7684senderID\uFF0C\u8BF7\u5173\u95ED\u8BE5\u529F\u80FD\u518D\u8BD5\uFF01");
24381
+ if (!ok) throw new Error('存在其他来源的senderID,请关闭该功能再试!');
24286
24382
  }
24287
24383
  const builder = new Builder({
24288
24384
  ignoreAttributes: false
@@ -24417,14 +24513,16 @@ and limitations under the License.
24417
24513
  static fromASS(ass, options) {
24418
24514
  return parseAssRawField(ass, options);
24419
24515
  }
24420
- toASS(canvasCtx, options = {
24421
- substyle: {}
24422
- }) {
24516
+ toASS(canvasCtx, options) {
24517
+ const defaultOptions = {
24518
+ substyle: {}
24519
+ };
24520
+ const finalOptions = options ?? defaultOptions;
24423
24521
  const fn = this.shared.SOID;
24424
24522
  return generateASS(this, {
24425
24523
  filename: fn,
24426
24524
  title: fn,
24427
- ...options
24525
+ ...finalOptions
24428
24526
  }, canvasCtx);
24429
24527
  }
24430
24528
  }
@@ -24536,7 +24634,7 @@ and limitations under the License.
24536
24634
  };
24537
24635
  };
24538
24636
  const measureTextWidthConstructor = (canvasContext)=>{
24539
- const supportTextMeasure = !!canvasContext.measureText("\u4E2D");
24637
+ const supportTextMeasure = !!canvasContext.measureText('中');
24540
24638
  if (supportTextMeasure) return (fontName, fontSize, bold, text)=>{
24541
24639
  canvasContext.font = `${bold ? 'bold' : 'normal'} ${fontSize}px ${fontName}`;
24542
24640
  const textWidth = canvasContext.measureText(text).width;
@@ -24614,7 +24712,7 @@ and limitations under the License.
24614
24712
  const layoutDanmaku = (inputList, config, canvasCtx)=>{
24615
24713
  const list = [
24616
24714
  ...UniPool2DanmakuLists(inputList)
24617
- ].sort((x, y)=>x.time - y.time);
24715
+ ].toSorted((x, y)=>x.time - y.time);
24618
24716
  const layout = initializeLayout(config, canvasCtx);
24619
24717
  return DanmakuList2UniPool(list.map(layout).filter((danmaku)=>!!danmaku));
24620
24718
  };
@@ -24628,7 +24726,7 @@ and limitations under the License.
24628
24726
  const minorSecond = Math.floor((seconds - integer) * 100);
24629
24727
  return `${hour}:${pad(minute)}:${pad(second)}.${minorSecond}`;
24630
24728
  };
24631
- const encode = (text)=>text.toString().replaceAll('{', "\uFF5B").replaceAll('}', "\uFF5D").replaceAll(/\r|\n/g, '');
24729
+ const encode = (text)=>text.toString().replaceAll('{', '{').replaceAll('}', '}').replaceAll(/\r|\n/g, '');
24632
24730
  const scrollCommand = ({ start, end, top })=>`\\move(${start},${top},${end},${top})`;
24633
24731
  const fixCommand = ({ top, left })=>`\\an8\\pos(${left},${top})`;
24634
24732
  const colorCommand = (color)=>`\\c${formatColor(color)}`;
@@ -24697,7 +24795,7 @@ and limitations under the License.
24697
24795
  throw new Error(`Unknown danmaku type: ${danmaku.type}`);
24698
24796
  }
24699
24797
  };
24700
- const ass_event = (list, config)=>{
24798
+ const event_event = (list, config)=>{
24701
24799
  const content = [
24702
24800
  '[Events]',
24703
24801
  'Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text',
@@ -24708,11 +24806,11 @@ and limitations under the License.
24708
24806
  ];
24709
24807
  return content.join('\n');
24710
24808
  };
24711
- const ass_info = ({ playResX, playResY }, { filename, title })=>{
24809
+ const info_info = ({ playResX, playResY }, { filename, title })=>{
24712
24810
  const content = [
24713
24811
  '[Script Info]',
24714
24812
  `Title: ${title}`,
24715
- `Original Script: \u{6839}\u{636E} ${filename} \u{7684}\u{5F39}\u{5E55}\u{4FE1}\u{606F}\u{FF0C}\u{7531} ${package_namespaceObject.e8} \u{751F}\u{6210}`,
24813
+ `Original Script: 根据 ${filename} 的弹幕信息,由 ${package_namespaceObject.TB} 生成`,
24716
24814
  'ScriptType: v4.00+',
24717
24815
  'Collisions: Reverse',
24718
24816
  `PlayResX: ${playResX}`,
@@ -24724,17 +24822,17 @@ and limitations under the License.
24724
24822
  var lib = __webpack_require__("../../node_modules/.pnpm/browserify-zlib@0.2.0/node_modules/browserify-zlib/lib/index.js");
24725
24823
  var base16384_lib = __webpack_require__("../../node_modules/.pnpm/base16384@1.0.0/node_modules/base16384/lib/index.js");
24726
24824
  var raw_Buffer = __webpack_require__("../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.js")["Buffer"];
24727
- const compressTypes = [
24825
+ const compressTypes = new Set([
24728
24826
  'brotli',
24729
24827
  'gzip'
24730
- ];
24731
- const baseTypes = [
24828
+ ]);
24829
+ const baseTypes = new Set([
24732
24830
  'base64',
24733
24831
  'base18384'
24734
- ];
24832
+ ]);
24735
24833
  function fromUint16Array(array) {
24736
24834
  let result = '';
24737
- for (const element of array)result += String.fromCharCode(element);
24835
+ for (const element of array)result += String.fromCodePoint(element);
24738
24836
  return result;
24739
24837
  }
24740
24838
  function raw_raw(list, config, context, compressType = 'brotli', baseType = 'base18384') {
@@ -24757,14 +24855,14 @@ and limitations under the License.
24757
24855
  {
24758
24856
  let compressType = lineCompressType.replace(';RawCompressType: ', '').trim();
24759
24857
  let baseType = lineBaseType.replace(';RawBaseType: ', '').trim();
24760
- if (!compressTypes.includes(compressType)) compressType = 'gzip';
24761
- if (!baseTypes.includes(baseType)) baseType = 'base64';
24858
+ if (!compressTypes.has(compressType)) compressType = 'gzip';
24859
+ if (!baseTypes.has(baseType)) baseType = 'base64';
24762
24860
  const text = lineRaw.replace(';Raw: ', '').trim();
24763
- const buffer = 'base64' === baseType ? raw_Buffer.from(text, 'base64') : raw_Buffer.from(base16384_lib.decode(raw_Buffer.from(text, 'utf-8').toString('utf-8')));
24861
+ const buffer = 'base64' === baseType ? raw_Buffer.from(text, 'base64') : raw_Buffer.from(base16384_lib.decode(raw_Buffer.from(text, 'utf8').toString('utf8')));
24764
24862
  let decompress;
24765
24863
  decompress = 'brotli' === compressType ? (0, lib.brotliDecompressSync)(buffer) : (0, lib.gunzipSync)(buffer);
24766
24864
  try {
24767
- return JSON.parse(decompress.toString('utf-8'));
24865
+ return JSON.parse(decompress.toString('utf8'));
24768
24866
  } catch {
24769
24867
  return;
24770
24868
  }
@@ -24811,21 +24909,22 @@ and limitations under the License.
24811
24909
  ];
24812
24910
  return content.join('\n');
24813
24911
  };
24814
- const ass_create = (list, rawList, config, context = {
24912
+ const default_context = {
24815
24913
  filename: 'unknown',
24816
24914
  title: 'unknown'
24817
- }, rawConfig)=>{
24915
+ };
24916
+ const create_ass = (list, rawList, config, context = default_context, rawConfig)=>{
24818
24917
  const Elist = UniPool2DanmakuLists(list);
24819
24918
  const ErawList = UniPool2DanmakuLists(rawList);
24820
24919
  const content = [
24821
- ass_info(config, context),
24920
+ info_info(config, context),
24822
24921
  style(config),
24823
- ass_event(Elist, config)
24922
+ event_event(Elist, config)
24824
24923
  ];
24825
24924
  if (config.includeRaw) content.push(raw_raw(ErawList, config, context, rawConfig?.compressType, rawConfig?.baseType));
24826
24925
  return `${content.join('\n\n')}\n`;
24827
24926
  };
24828
- const ass_gen_config = (overrides = {})=>{
24927
+ const getConfig = (overrides = {})=>{
24829
24928
  const defaults = {
24830
24929
  fontSize: [
24831
24930
  25,
@@ -24861,10 +24960,10 @@ and limitations under the License.
24861
24960
  return config;
24862
24961
  };
24863
24962
  function generateASS(danmaku, options, canvasCtx) {
24864
- const config = ass_gen_config(options.substyle);
24963
+ const config = getConfig(options.substyle);
24865
24964
  const mergedList = danmaku.merge(config.mergeIn);
24866
24965
  const layoutList = layoutDanmaku(mergedList, config, canvasCtx);
24867
- const content = ass_create(layoutList, danmaku, config, {
24966
+ const content = create_ass(layoutList, danmaku, config, {
24868
24967
  filename: options?.filename || 'unknown',
24869
24968
  title: options?.title || 'unknown'
24870
24969
  }, options.raw);
@@ -24872,15 +24971,15 @@ and limitations under the License.
24872
24971
  }
24873
24972
  function parseAssRawField(ass, options) {
24874
24973
  const raw = deRaw(ass);
24875
- if (!raw) return UniPool.create();
24876
- return DanmakuList2UniPool(raw.list, options);
24974
+ if (raw) return DanmakuList2UniPool(raw.list, options);
24975
+ return UniPool.create();
24877
24976
  }
24878
24977
  const src_JSON_0 = json_bigint_default()({
24879
24978
  useNativeBigInt: true
24880
24979
  });
24881
24980
  const src_DanUniConvertTipTemplate = {
24882
24981
  meassage: 'Converted by DanUni!',
24883
- version: `JS/TS ${package_namespaceObject.u2} (v${package_namespaceObject.i8})`
24982
+ version: `JS/TS ${package_namespaceObject.UU} (v${package_namespaceObject.rE})`
24884
24983
  };
24885
24984
  class src_UniPool {
24886
24985
  constructor(dans, options = {}, info = {
@@ -24927,7 +25026,7 @@ and limitations under the License.
24927
25026
  return stats;
24928
25027
  }
24929
25028
  getMost(key) {
24930
- return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
25029
+ return this.getStat(key).toSorted((a, b)=>b.count - a.count)[0];
24931
25030
  }
24932
25031
  get most() {
24933
25032
  return {
@@ -24989,7 +25088,7 @@ and limitations under the License.
24989
25088
  }
24990
25089
  merge(lifetime = 0) {
24991
25090
  if (!this.shared.SOID) {
24992
- console.error("\u672C\u529F\u80FD\u4EC5\u652F\u6301\u540C\u5F39\u5E55\u5E93\u5185\u4F7F\u7528\uFF0C\u53EF\u5148 .split('SOID') \u5728\u5206\u522B\u4F7F\u7528");
25091
+ console.error("本功能仅支持同弹幕库内使用,可先 .split('SOID') 在分别使用");
24993
25092
  return this;
24994
25093
  }
24995
25094
  if (lifetime <= 0) return this;
@@ -25098,7 +25197,7 @@ and limitations under the License.
25098
25197
  'str',
25099
25198
  'bin'
25100
25199
  ];
25101
- const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
25200
+ const err = '无法识别该文件,请手动指定格式!';
25102
25201
  const parseJSON = (json)=>{
25103
25202
  try {
25104
25203
  if (Array.isArray(json) && json.every((d)=>d.SOID)) return {
@@ -25172,16 +25271,16 @@ and limitations under the License.
25172
25271
  const fileStr = new TextDecoder().decode(file);
25173
25272
  const prStr = parseStr(fileStr);
25174
25273
  if (prStr) return prStr;
25175
- errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
25274
+ errmesg = `${err}(定位: bin->string)`;
25176
25275
  } catch {}
25177
25276
  } else if (mod.includes('json')) {
25178
25277
  const prJSON = parseJSON(file);
25179
- if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
25278
+ if (!prJSON) throw new Error(`${err}(定位: json)`);
25180
25279
  return prJSON;
25181
25280
  }
25182
25281
  } else if (isString(file)) {
25183
25282
  const prStr = parseStr(file);
25184
- if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
25283
+ if (!prStr) throw new Error(`${err}(定位: string)`);
25185
25284
  return prStr;
25186
25285
  }
25187
25286
  throw new Error(errmesg ?? err);
@@ -25279,7 +25378,7 @@ and limitations under the License.
25279
25378
  };
25280
25379
  if (options?.avoidSenderIDWithAt) {
25281
25380
  const ok = this.dans.every((d)=>d.senderID.endsWith(`@${platform_PlatformVideoSource.Bilibili}`));
25282
- if (!ok) throw new Error("\u5B58\u5728\u5176\u4ED6\u6765\u6E90\u7684senderID\uFF0C\u8BF7\u5173\u95ED\u8BE5\u529F\u80FD\u518D\u8BD5\uFF01");
25381
+ if (!ok) throw new Error('存在其他来源的senderID,请关闭该功能再试!');
25283
25382
  }
25284
25383
  const builder = new Builder({
25285
25384
  ignoreAttributes: false
@@ -25414,14 +25513,16 @@ and limitations under the License.
25414
25513
  static fromASS(ass, options) {
25415
25514
  return parseAssRawField(ass, options);
25416
25515
  }
25417
- toASS(canvasCtx, options = {
25418
- substyle: {}
25419
- }) {
25516
+ toASS(canvasCtx, options) {
25517
+ const defaultOptions = {
25518
+ substyle: {}
25519
+ };
25520
+ const finalOptions = options ?? defaultOptions;
25420
25521
  const fn = this.shared.SOID;
25421
25522
  return generateASS(this, {
25422
25523
  filename: fn,
25423
25524
  title: fn,
25424
- ...options
25525
+ ...finalOptions
25425
25526
  }, canvasCtx);
25426
25527
  }
25427
25528
  }