@dan-uni/dan-any 0.9.2 → 0.9.4

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.
@@ -17407,12 +17407,13 @@ and limitations under the License.
17407
17407
  const ok = field.enum.values.some((v)=>v.number === val);
17408
17408
  if (ok) message.set(field, val);
17409
17409
  else if (options.readUnknownFields) {
17410
- const data = new BinaryWriter().int32(val).finish();
17410
+ const bytes = [];
17411
+ varint32write(val, bytes);
17411
17412
  const unknownFields = null != (_a = message.getUnknown()) ? _a : [];
17412
17413
  unknownFields.push({
17413
17414
  no: field.number,
17414
17415
  wireType,
17415
- data
17416
+ data: new Uint8Array(bytes)
17416
17417
  });
17417
17418
  message.setUnknown(unknownFields);
17418
17419
  }
@@ -20889,7 +20890,7 @@ and limitations under the License.
20889
20890
  function timestamp_timestampMs(timestamp) {
20890
20891
  return 1000 * Number(timestamp.seconds) + Math.round(timestamp.nanos / 1000000);
20891
20892
  }
20892
- var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.9.2","e8":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
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"}');
20893
20894
  const file_bili_dm = /*@__PURE__*/ fileDesc("Cg1iaWxpL2RtLnByb3RvEiBiaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MSJkCgZBdmF0YXISCgoCaWQYASABKAkSCwoDdXJsGAIgASgJEkEKC2F2YXRhcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyVHlwZSIjCgZCdWJibGUSDAoEdGV4dBgBIAEoCRILCgN1cmwYAiABKAkixgEKCEJ1YmJsZVYyEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJEkEKC2J1YmJsZV90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlVHlwZRIVCg1leHBvc3VyZV9vbmNlGAQgASgIEkUKDWV4cG9zdXJlX3R5cGUYBSABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiWwoGQnV0dG9uEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUiWAoOQnV6endvcmRDb25maWcSRgoIa2V5d29yZHMYASADKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZFNob3dDb25maWcieAoSQnV6endvcmRTaG93Q29uZmlnEgwKBG5hbWUYASABKAkSDgoGc2NoZW1hGAIgASgJEg4KBnNvdXJjZRgDIAEoBRIKCgJpZBgEIAEoAxITCgtidXp6d29yZF9pZBgFIAEoAxITCgtzY2hlbWFfdHlwZRgGIAEoBSJ7CghDaGVja0JveBIMCgR0ZXh0GAEgASgJEjwKBHR5cGUYAiABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja2JveFR5cGUSFQoNZGVmYXVsdF92YWx1ZRgDIAEoCBIMCgRzaG93GAQgASgIIm8KCkNoZWNrQm94VjISDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgiggIKC0NsaWNrQnV0dG9uEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSDAoEc2hvdxgGIAEoCBI4CgZidWJibGUYByABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGUiswIKDUNsaWNrQnV0dG9uVjISFQoNcG9ydHJhaXRfdGV4dBgBIAMoCRIWCg5sYW5kc2NhcGVfdGV4dBgCIAMoCRIbChNwb3J0cmFpdF90ZXh0X2ZvY3VzGAMgAygJEhwKFGxhbmRzY2FwZV90ZXh0X2ZvY3VzGAQgAygJEkEKC3JlbmRlcl90eXBlGAUgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIXCg90ZXh0X2lucHV0X3Bvc3QYBiABKAgSFQoNZXhwb3N1cmVfb25jZRgHIAEoCBJFCg1leHBvc3VyZV90eXBlGAggASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIksKB0NvbW1hbmQSQAoLY29tbWFuZF9kbXMYASADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0i5gEKCUNvbW1hbmREbRIKCgJpZBgBIAEoAxILCgNvaWQYAiABKAMSCwoDbWlkGAMgASgDEg8KB2NvbW1hbmQYBCABKAkSDwoHY29udGVudBgFIAEoCRIQCghwcm9ncmVzcxgGIAEoBRINCgVjdGltZRgHIAEoCRINCgVtdGltZRgIIAEoCRINCgVleHRyYRgJIAEoCRINCgVpZFN0chgKIAEoCRIMCgR0eXBlGAsgASgFEhMKC2F1dG9fY3JlYXRlGAwgASgIEhIKCmNvdW50X2Rvd24YDSABKAUSDAoEYXR0chgOIAEoBSJQCg1EYW5tYWt1QUlGbGFnEj8KCGRtX2ZsYWdzGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWciiwMKC0Rhbm1ha3VFbGVtEgoKAmlkGAEgASgDEhAKCHByb2dyZXNzGAIgASgFEgwKBG1vZGUYAyABKAUSEAoIZm9udHNpemUYBCABKAUSPwoFY29sb3IYBSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIQCghtaWRfaGFzaBgGIAEoCRIPCgdjb250ZW50GAcgASgJEg0KBWN0aW1lGAggASgDEg4KBndlaWdodBgJIAEoBRIOCgZhY3Rpb24YCiABKAkSDAoEcG9vbBgLIAEoBRIOCgZpZF9zdHIYDCABKAkSDAoEYXR0chgNIAEoBRIRCglhbmltYXRpb24YFiABKAkSDQoFZXh0cmEYFyABKAkSQgoIY29sb3JmdWwYGCABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIMCgR0eXBlGBkgASgFEgsKA29pZBgaIAEoAyIpCgtEYW5tYWt1RmxhZxIMCgRkbWlkGAEgASgDEgwKBGZsYWcYAiABKAUiSwoRRGFubWFrdUZsYWdDb25maWcSEAoIcmVjX2ZsYWcYASABKAUSEAoIcmVjX3RleHQYAiABKAkSEgoKcmVjX3N3aXRjaBgDIAEoBSKLBwoYRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnEikKIXBsYXllcl9kYW5tYWt1X3VzZV9kZWZhdWx0X2NvbmZpZxgBIAEoCBIsCiRwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9zd2l0Y2gYBCABKAgSKwojcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWwYBSABKAUSHwoXcGxheWVyX2Rhbm1ha3VfYmxvY2t0b3AYBiABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tzY3JvbGwYByABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tib3R0b20YCCABKAgSJAoccGxheWVyX2Rhbm1ha3VfYmxvY2tjb2xvcmZ1bBgJIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3JlcGVhdBgKIAEoCBIjChtwbGF5ZXJfZGFubWFrdV9ibG9ja3NwZWNpYWwYCyABKAgSHgoWcGxheWVyX2Rhbm1ha3Vfb3BhY2l0eRgMIAEoAhIkChxwbGF5ZXJfZGFubWFrdV9zY2FsaW5nZmFjdG9yGA0gASgCEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAhIcChRwbGF5ZXJfZGFubWFrdV9zcGVlZBgPIAEoBRIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBAgASgIEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgRIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgSIAEoBRKYAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBMgAygLMmQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EiUKHXBsYXllcl9kYW5tYWt1X2VuYWJsZV9oZXJkX2RtGBQgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEi7AkKEURhbm11UGxheWVyQ29uZmlnEh0KFXBsYXllcl9kYW5tYWt1X3N3aXRjaBgBIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9zd2l0Y2hfc2F2ZRgCIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYAyABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJgoecGxheWVyX2Rhbm1ha3VfZW5hYmxlYmxvY2tsaXN0GBAgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9zd2l0Y2gYESABKAgSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X2NvbmZpZxgSIAEoBRImCh5wbGF5ZXJfZGFubWFrdV9pb3Nfc3dpdGNoX3NhdmUYEyABKAUSKQohcGxheWVyX2Rhbm1ha3Vfc2VuaW9yX21vZGVfc3dpdGNoGBQgASgFEi4KJnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBUgASgFEpEBCipwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92Ml9tYXAYFiADKAsyXS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgXIAEoCBImCh5wbGF5ZXJfZGFubWFrdV9ibG9ja3RvcF9ib3R0b20YGCABKAgSIAoYcGxheWVyX2Rhbm1ha3VfZG9tYWluX3YyGBkgASgFEh4KFnBsYXllcl9kYW5tYWt1X2RlbnNpdHkYGiABKAUSJQodcGxheWVyX2Rhbm1ha3Vfc3VidGl0bGVfcHJvb2YYGyABKAgSIwobcGxheWVyX2Rhbm1ha3VfcGVvcGxlX3Byb29mGBwgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiMAoWRGFubXVQbGF5ZXJDb25maWdQYW5lbBIWCg5zZWxlY3Rpb25fdGV4dBgBIAEoCSJLChhEYW5tdVBsYXllckR5bmFtaWNDb25maWcSEAoIcHJvZ3Jlc3MYASABKAUSHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCIpADChVEYW5tdVBsYXllclZpZXdDb25maWcSYQodZGFubXVrdV9kZWZhdWx0X3BsYXllcl9jb25maWcYASABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdURlZmF1bHRQbGF5ZXJDb25maWcSUgoVZGFubXVrdV9wbGF5ZXJfY29uZmlnGAIgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcSYQodZGFubXVrdV9wbGF5ZXJfZHluYW1pY19jb25maWcYAyADKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckR5bmFtaWNDb25maWcSXQobZGFubXVrdV9wbGF5ZXJfY29uZmlnX3BhbmVsGAQgASgLMjguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWdQYW5lbCKZBQoURGFubXVXZWJQbGF5ZXJDb25maWcSEQoJZG1fc3dpdGNoGAEgASgIEhEKCWFpX3N3aXRjaBgCIAEoCBIQCghhaV9sZXZlbBgDIAEoBRIQCghibG9ja3RvcBgEIAEoCBITCgtibG9ja3Njcm9sbBgFIAEoCBITCgtibG9ja2JvdHRvbRgGIAEoCBISCgpibG9ja2NvbG9yGAcgASgIEhQKDGJsb2Nrc3BlY2lhbBgIIAEoCBIUCgxwcmV2ZW50c2hhZGUYCSABKAgSDQoFZG1hc2sYCiABKAgSDwoHb3BhY2l0eRgLIAEoAhIOCgZkbWFyZWEYDCABKAUSEQoJc3BlZWRwbHVzGA0gASgCEhAKCGZvbnRzaXplGA4gASgCEhIKCnNjcmVlbnN5bmMYDyABKAgSEQoJc3BlZWRzeW5jGBAgASgIEhIKCmZvbnRmYW1pbHkYESABKAkSDAoEYm9sZBgSIAEoCBISCgpmb250Ym9yZGVyGBMgASgFEhEKCWRyYXdfdHlwZRgUIAEoCRIaChJzZW5pb3JfbW9kZV9zd2l0Y2gYFSABKAUSEwoLYWlfbGV2ZWxfdjIYFiABKAUSYQoPYWlfbGV2ZWxfdjJfbWFwGBcgAygLMkguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcuQWlMZXZlbFYyTWFwRW50cnkSFwoPYmxvY2t0b3BfYm90dG9tGBggASgIEhIKCmRtX2FyZWFfdjIYGSABKAUSEgoKZG1fZGVuc2l0eRgaIAEoBRozChFBaUxldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIlkKCkRtQ29sb3JmdWwSPgoEdHlwZRgBIAEoDjIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWxUeXBlEgsKA3NyYxgCIAEoCSJQCg9EbUV4cG9SZXBvcnRSZXESEgoKc2Vzc2lvbl9pZBgBIAEoCRILCgNvaWQYAiABKAMSDQoFZG1pZHMYAyABKAwSDQoFc3BtaWQYBCABKAkiEQoPRG1FeHBvUmVwb3J0UmVzIm0KCkRtSGVyZFZpZXcSGwoTZGlzcGxheV9oZXJkX2RtX251bRgBIAEoBRJCCghoZXJkX2RtcxgCIAMoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZXdIZXJkRG1FbGVtIpYCCgpEbU1hc2tXYWxsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEk0KDGNvbnRlbnRfdHlwZRgEIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRJFCghiaXpfdHlwZRgFIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxCaXpUeXBlEkUKCGNvbnRlbnRzGAYgAygLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbENvbnRlbnQiawoRRG1NYXNrV2FsbENvbnRlbnQSRQoEdHlwZRgBIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRIPCgdjb250ZW50GAIgASgJIs0QChFEbVBsYXllckNvbmZpZ1JlcRIKCgJ0cxgBIAEoAxJFCgZzd2l0Y2gYAiABKAsyNS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3dpdGNoEk4KC3N3aXRjaF9zYXZlGAMgASgLMjkuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaFNhdmUSWwoSdXNlX2RlZmF1bHRfY29uZmlnGAQgASgLMj8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVVzZURlZmF1bHRDb25maWcSYQoVYWlfcmVjb21tZW5kZWRfc3dpdGNoGAUgASgLMkIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSXwoUYWlfcmVjb21tZW5kZWRfbGV2ZWwYBiABKAsyQS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEkkKCGJsb2NrdG9wGAcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wEk8KC2Jsb2Nrc2Nyb2xsGAggASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEk8KC2Jsb2NrYm90dG9tGAkgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrYm90dG9tElMKDWJsb2NrY29sb3JmdWwYCiABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBJPCgtibG9ja3JlcGVhdBgLIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBJRCgxibG9ja3NwZWNpYWwYDCABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEkcKB29wYWNpdHkYDSABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1T3BhY2l0eRJTCg1zY2FsaW5nZmFjdG9yGA4gASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISRQoGZG9tYWluGA8gASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpbhJDCgVzcGVlZBgQIAEoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTcGVlZBJXCg9lbmFibGVibG9ja2xpc3QYESABKAsyPi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0El4KGWlubGluZVBsYXllckRhbm1ha3VTd2l0Y2gYEiABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5JbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoElsKEnNlbmlvcl9tb2RlX3N3aXRjaBgTIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTZW5pb3JNb2RlU3dpdGNoEmQKF2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBQgASgLMkMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyElMKDmVuYWJsZV9oZXJkX2RtGBUgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRJWCg9ibG9ja3RvcF9ib3R0b20YFiABKAsyPS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SSgoJZG9tYWluX3YyGBcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpblYyEkcKB2RlbnNpdHkYGCABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RGVuc2l0eRJUCg5zdWJ0aXRsZV9wcm9vZhgZIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mElAKDHBlb3BsZV9wcm9vZhgaIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VQZW9wbGVQcm9vZiIvCgtEbVNlZ0NvbmZpZxIRCglwYWdlX3NpemUYASABKAMSDQoFdG90YWwYAiABKAMikQIKEERtU2VnTW9iaWxlUmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBRJACgdhaV9mbGFnGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUFJRmxhZxIVCg1zZWdtZW50X3J1bGVzGAQgAygDEkIKDGNvbG9yZnVsX3NyYxgFIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWwSEwoLY29udGV4dF9zcmMYBiABKAkiygEKDkRtU2VnTW9iaWxlUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDEhYKDnRlZW5hZ2Vyc19tb2RlGAUgASgFEgoKAnBzGAYgASgDEgoKAnBlGAcgASgDEhEKCXB1bGxfbW9kZRgIIAEoBRISCgpmcm9tX3NjZW5lGAkgASgFEg0KBXNwbWlkGAogASgJEhMKC2NvbnRleHRfZXh0GAsgASgJIlwKDURtU2VnT3R0UmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBSJMCgtEbVNlZ090dFJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJdCg1EbVNlZ1NES1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI8CgVlbGVtcxgCIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtIkwKC0RtU2VnU0RLUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDIncKCURtU3ViVmlldxIMCgR0eXBlGAEgASgFEgsKA29pZBgCIAEoAxILCgNwaWQYAyABKAMSQgoLcG9zdF9wYW5lbDIYBCADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxWMiKhCQoLRG1WaWV3UmVwbHkSDgoGY2xvc2VkGAEgASgIEjkKBG1hc2sYAiABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb01hc2sSQQoIc3VidGl0bGUYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb1N1YnRpdGxlEhMKC3NwZWNpYWxfZG1zGAQgAygJEkQKB2FpX2ZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxJOCg1wbGF5ZXJfY29uZmlnGAYgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJWaWV3Q29uZmlnEhYKDnNlbmRfYm94X3N0eWxlGAcgASgFEg0KBWFsbG93GAggASgIEhEKCWNoZWNrX2JveBgJIAEoCBIaChJjaGVja19ib3hfc2hvd19tc2cYCiABKAkSGAoQdGV4dF9wbGFjZWhvbGRlchgLIAEoCRIZChFpbnB1dF9wbGFjZWhvbGRlchgMIAEoCRIdChVyZXBvcnRfZmlsdGVyX2NvbnRlbnQYDSADKAkSQQoLZXhwb19yZXBvcnQYDiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvUmVwb3J0EkkKD2J1enp3b3JkX2NvbmZpZxgPIAEoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1enp3b3JkQ29uZmlnEkIKC2V4cHJlc3Npb25zGBAgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgRIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGBIgAygJEkIKC3Bvc3RfcGFuZWwyGBMgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISQgoMZG1fbWFza193YWxsGBQgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbBI9CgdkbV9oZXJkGBUgASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1IZXJkVmlldxI6Cgdjb21tYW5kGBYgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZBIKCgJrdhgXIAEoCRI+CglzdWJfdmlld3MYGCADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVN1YlZpZXcSNgoDcW9lGBkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUW9lSW5mbyJtCglEbVZpZXdSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEg0KBXNwbWlkGAQgASgJEhQKDGlzX2hhcmRfYm9vdBgFIAEoBRITCgtjb250ZXh0X2V4dBgGIAEoCSKBBgoORG1XZWJWaWV3UmVwbHkSDQoFc3RhdGUYASABKAUSDAoEdGV4dBgCIAEoCRIRCgl0ZXh0X3NpZGUYAyABKAkSPQoGZG1fc2dlGAQgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdDb25maWcSQQoEZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEhMKC3NwZWNpYWxfZG1zGAYgAygJEhEKCWNoZWNrX2JveBgHIAEoCBINCgVjb3VudBgIIAEoAxJACgtjb21tYW5kX2RtcxgJIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmREbRJNCg1wbGF5ZXJfY29uZmlnGAogASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GAsgAygJEkIKC2V4cHJlc3Npb25zGAwgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgNIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGA4gAygJEkIKC3Bvc3RfcGFuZWwyGA8gAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISPgoJc3ViX3ZpZXdzGBAgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgRIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8iKgoKRXhwb1JlcG9ydBIcChRzaG91bGRfcmVwb3J0X2F0X2VuZBgBIAEoCCJkCgpFeHByZXNzaW9uEg8KB2tleXdvcmQYASADKAkSCwoDdXJsGAIgASgJEjgKBnBlcmlvZBgDIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBlcmlvZCJJCgtFeHByZXNzaW9ucxI6CgRkYXRhGAEgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbiIqChlJbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoEg0KBXZhbHVlGAEgASgIIicKBUxhYmVsEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkihwEKB0xhYmVsVjISDQoFdGl0bGUYASABKAkSDwoHY29udGVudBgCIAMoCRIVCg1leHBvc3VyZV9vbmNlGAMgASgIEkUKDWV4cG9zdXJlX3R5cGUYBCABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiJAoGUGVyaW9kEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAyIwCh9QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEg0KBXZhbHVlGAEgASgFIjIKIVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhINCgV2YWx1ZRgBIAEoBSIxCiBQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZFN3aXRjaBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tib3R0b20SDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrcmVwZWF0Eg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBINCgV2YWx1ZRgBIAEoCCIqChlQbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEg0KBXZhbHVlGAEgASgIIiYKFVBsYXllckRhbm1ha3VCbG9ja3RvcBINCgV2YWx1ZRgBIAEoCCIsChtQbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SDQoFdmFsdWUYASABKAgiJQoUUGxheWVyRGFubWFrdURlbnNpdHkSDQoFdmFsdWUYASABKAUiJAoTUGxheWVyRGFubWFrdURvbWFpbhINCgV2YWx1ZRgBIAEoAiImChVQbGF5ZXJEYW5tYWt1RG9tYWluVjISDQoFdmFsdWUYASABKAUiKgoZUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRINCgV2YWx1ZRgBIAEoCCItChxQbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0Eg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VPcGFjaXR5Eg0KBXZhbHVlGAEgASgCIikKGFBsYXllckRhbm1ha3VQZW9wbGVQcm9vZhINCgV2YWx1ZRgBIAEoCCIrChpQbGF5ZXJEYW5tYWt1U2NhbGluZ2ZhY3RvchINCgV2YWx1ZRgBIAEoAiIuCh1QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBINCgV2YWx1ZRgBIAEoBSIjChJQbGF5ZXJEYW5tYWt1U3BlZWQSDQoFdmFsdWUYASABKAUiKwoaUGxheWVyRGFubWFrdVN1YnRpdGxlUHJvb2YSDQoFdmFsdWUYASABKAgiOAoTUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCBISCgpjYW5faWdub3JlGAIgASgIIigKF1BsYXllckRhbm1ha3VTd2l0Y2hTYXZlEg0KBXZhbHVlGAEgASgIIi4KHVBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEg0KBXZhbHVlGAEgASgIIowDCglQb3N0UGFuZWwSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEhAKCHByaW9yaXR5GAMgASgDEg4KBmJpel9pZBgEIAEoAxJECghiaXpfdHlwZRgFIAEoDjIyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbEJpelR5cGUSQwoMY2xpY2tfYnV0dG9uGAYgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b24SPwoKdGV4dF9pbnB1dBgHIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dBI9CgljaGVja19ib3gYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveBI2CgV0b2FzdBgJIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0Iq0ECgtQb3N0UGFuZWxWMhINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSRAoIYml6X3R5cGUYAyABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkUKDGNsaWNrX2J1dHRvbhgEIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uVjISQQoKdGV4dF9pbnB1dBgFIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dFYyEj8KCWNoZWNrX2JveBgGIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrQm94VjISOAoFdG9hc3QYByABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdFYyEjoKBmJ1YmJsZRgIIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVYyEjgKBWxhYmVsGAkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuTGFiZWxWMhJBCgtwb3N0X3N0YXR1cxgKIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMiFwoHUW9lSW5mbxIMCgRpbmZvGAEgASgJIikKCFJlc3BvbnNlEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCSL5AgoMU3VidGl0bGVJdGVtEgoKAmlkGAEgASgDEg4KBmlkX3N0chgCIAEoCRILCgNsYW4YAyABKAkSDwoHbGFuX2RvYxgEIAEoCRIUCgxzdWJ0aXRsZV91cmwYBSABKAkSOgoGYXV0aG9yGAYgASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVXNlckluZm8SPAoEdHlwZRgHIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlVHlwZRIVCg1sYW5fZG9jX2JyaWVmGAggASgJEkEKB2FpX3R5cGUYCSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpVHlwZRJFCglhaV9zdGF0dXMYCiABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpU3RhdHVzIugCCglUZXh0SW5wdXQSHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEgwKBHNob3cYBSABKAgSOAoGYXZhdGFyGAYgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEkEKC3Bvc3Rfc3RhdHVzGAcgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFN0YXR1cxI2CgVsYWJlbBgIIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsIvsBCgtUZXh0SW5wdXRWMhIcChRwb3J0cmFpdF9wbGFjZWhvbGRlchgBIAMoCRIdChVsYW5kc2NhcGVfcGxhY2Vob2xkZXIYAiADKAkSQQoLcmVuZGVyX3R5cGUYAyABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEhgKEHBsYWNlaG9sZGVyX3Bvc3QYBCABKAgSOAoGYXZhdGFyGAUgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEhgKEHRleHRfaW5wdXRfbGltaXQYBiABKAUibwoFVG9hc3QSDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRIMCgRzaG93GAMgASgIEjgKBmJ1dHRvbhgEIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1dHRvbiJiCg1Ub2FzdEJ1dHRvblYyEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUicwoHVG9hc3RWMhIMCgR0ZXh0GAEgASgJEhAKCGR1cmF0aW9uGAIgASgFEkgKD3RvYXN0X2J1dHRvbl92MhgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0QnV0dG9uVjIiXAoIVXNlckluZm8SCwoDbWlkGAEgASgDEgwKBG5hbWUYAiABKAkSCwoDc2V4GAMgASgJEgwKBGZhY2UYBCABKAkSDAoEc2lnbhgFIAEoCRIMCgRyYW5rGAYgASgFIlMKCVZpZGVvTWFzaxILCgNjaWQYASABKAMSDAoEcGxhdBgCIAEoBRILCgNmcHMYAyABKAUSDAoEdGltZRgEIAEoAxIQCghtYXNrX3VybBgFIAEoCSJwCg1WaWRlb1N1YnRpdGxlEgsKA2xhbhgBIAEoCRIPCgdsYW5fZG9jGAIgASgJEkEKCXN1YnRpdGxlcxgDIAMoCzIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlSXRlbSKSAQoOVmlld0hlcmREbUVsZW0SEAoIaGVyZF9tc2cYASABKAkSFgoOaGVyZF9zdGFydF9jbnQYAiABKAUSFAoMaGVyZF9lbmRfY250GAMgASgFEhIKCnJlZ2V4X3J1bGUYBCABKAkSFgoOc3RhcnRfcHJvZ3Jlc3MYBSABKAUSFAoMZW5kX3Byb2dyZXNzGAYgASgFKjMKCkF2YXRhclR5cGUSEgoOQXZhdGFyVHlwZU5vbmUQABIRCg1BdmF0YXJUeXBlTkZUEAEqWQoKQnViYmxlVHlwZRISCg5CdWJibGVUeXBlTm9uZRAAEhkKFUJ1YmJsZVR5cGVDbGlja0J1dHRvbhABEhwKGEJ1YmJsZVR5cGVEbVNldHRpbmdQYW5lbBACKlgKDENoZWNrYm94VHlwZRIUChBDaGVja2JveFR5cGVOb25lEAASGQoVQ2hlY2tib3hUeXBlRW5jb3VyYWdlEAESFwoTQ2hlY2tib3hUeXBlQ29sb3JETRACKjUKDkRtQ29sb3JmdWxUeXBlEgwKCE5vbmVUeXBlEAASFQoPVmlwR3JhZHVhbENvbG9yEOHUAypgChFEbU1hc2tXYWxsQml6VHlwZRILCgdVbmtub3duEAASBwoDT0dWEAESCgoGQml6UGljEAISCAoETXV0ZRADEgoKBlJlY29yZBAEEgkKBUNsb3VkEAUSCAoEQUlHQxAGKnYKFURtTWFza1dhbGxDb250ZW50VHlwZRIgChxEbU1hc2tXYWxsQ29udGVudFR5cGVVbmtub3duEAASHQoZRG1NYXNrV2FsbENvbnRlbnRUeXBlVGV4dBABEhwKGERtTWFza1dhbGxDb250ZW50VHlwZVBpYxACKjwKDEV4cG9zdXJlVHlwZRIUChBFeHBvc3VyZVR5cGVOb25lEAASFgoSRXhwb3N1cmVUeXBlRE1TZW5kEAEqgwIKEFBvc3RQYW5lbEJpelR5cGUSGAoUUG9zdFBhbmVsQml6VHlwZU5vbmUQABIdChlQb3N0UGFuZWxCaXpUeXBlRW5jb3VyYWdlEAESGwoXUG9zdFBhbmVsQml6VHlwZUNvbG9yRE0QAhIZChVQb3N0UGFuZWxCaXpUeXBlTkZURE0QAxIdChlQb3N0UGFuZWxCaXpUeXBlRnJhZ0Nsb3NlEAQSHQoZUG9zdFBhbmVsQml6VHlwZVJlY29tbWVuZBAFEhwKGFBvc3RQYW5lbEJpelR5cGVQbG90TGVhaxAGEiIKHlBvc3RQYW5lbEJpelR5cGVBbnRpSGFyYXNzbWVudBAHKjgKClBvc3RTdGF0dXMSFAoQUG9zdFN0YXR1c05vcm1hbBAAEhQKEFBvc3RTdGF0dXNDbG9zZWQQASpOCgpSZW5kZXJUeXBlEhIKDlJlbmRlclR5cGVOb25lEAASFAoQUmVuZGVyVHlwZVNpbmdsZRABEhYKElJlbmRlclR5cGVSb3RhdGlvbhACKjYKEFN1YnRpdGxlQWlTdGF0dXMSCAoETm9uZRAAEgwKCEV4cG9zdXJlEAESCgoGQXNzaXN0EAIqKwoOU3VidGl0bGVBaVR5cGUSCgoGTm9ybWFsEAASDQoJVHJhbnNsYXRlEAEqHgoMU3VidGl0bGVUeXBlEgYKAkNDEAASBgoCQUkQASpOChFUb2FzdEZ1bmN0aW9uVHlwZRIZChVUb2FzdEZ1bmN0aW9uVHlwZU5vbmUQABIeChpUb2FzdEZ1bmN0aW9uVHlwZVBvc3RQYW5lbBABMqAFCgJETRJzCgtEbVNlZ01vYmlsZRIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVxGjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdNb2JpbGVSZXBseRJkCgZEbVZpZXcSKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXEaLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXBseRJxCg5EbVBsYXllckNvbmZpZxIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtUGxheWVyQ29uZmlnUmVxGiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVzcG9uc2USagoIRG1TZWdPdHQSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnT3R0UmVwbHkSagoIRG1TZWdTREsSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnU0RLUmVwbHkSdAoMRG1FeHBvUmVwb3J0EjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVxGjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVzYgZwcm90bzM");
20894
20895
  const DmSegMobileReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 30);
20895
20896
  const DmWebViewReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 39);
@@ -23212,7 +23213,8 @@ and limitations under the License.
23212
23213
  }({});
23213
23214
  const DMAttrUtils = {
23214
23215
  fromBin (bin = 0, format) {
23215
- const array = toBits(bin), attr = [];
23216
+ const array = toBits(bin);
23217
+ const attr = [];
23216
23218
  if ('bili' === format) {
23217
23219
  if (array[0]) attr.push("Protect");
23218
23220
  if (array[1]) attr.push("FromLive");
@@ -23340,7 +23342,8 @@ and limitations under the License.
23340
23342
  isSameAs(dan, options) {
23341
23343
  if (4 === this.mode || 4 === dan.mode) return false;
23342
23344
  if (!options?.skipDanuniMerge && (this.extra.danuni?.merge || dan.extra.danuni?.merge)) return false;
23343
- const isSame = (k)=>this[k] === dan[k], checks = [
23345
+ const isSame = (k)=>this[k] === dan[k];
23346
+ const checks = [
23344
23347
  'SOID',
23345
23348
  'content',
23346
23349
  'mode',
@@ -23350,9 +23353,11 @@ and limitations under the License.
23350
23353
  return checks;
23351
23354
  }
23352
23355
  minify() {
23353
- const def = UniDM.create(), dan = UniDM.create(this);
23356
+ const def = UniDM.create();
23357
+ const dan = UniDM.create(this);
23354
23358
  for(const key in dan){
23355
- const k = key, v = dan[k];
23359
+ const k = key;
23360
+ const v = dan[k];
23356
23361
  if ('SOID' !== key) if (v) if (v === def[k]) delete dan[k];
23357
23362
  else {
23358
23363
  if ('attr' === k && Array.isArray(v) && 0 === v.length) delete dan[k];
@@ -23457,13 +23462,15 @@ and limitations under the License.
23457
23462
  if (args.oid && !cid) cid = args.oid;
23458
23463
  const SOID = recSOID || `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
23459
23464
  cid
23460
- })}`, senderID = IsEmail_isEmail(args.midHash, {
23465
+ })}`;
23466
+ const senderID = IsEmail_isEmail(args.midHash, {
23461
23467
  require_tld: false
23462
23468
  }) ? args.midHash : id_gen_UniID.fromBili({
23463
23469
  midHash: args.midHash
23464
23470
  });
23465
23471
  let mode = 0;
23466
- const pool = args.pool, extra = {
23472
+ const pool = args.pool;
23473
+ const extra = {
23467
23474
  bili: {
23468
23475
  mode: args.mode,
23469
23476
  pool: args.pool,
@@ -23566,7 +23573,8 @@ and limitations under the License.
23566
23573
  if (args.oid && !cid) cid = args.oid;
23567
23574
  const SOID = `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
23568
23575
  cid
23569
- })}`, senderID = id_gen_UniID.fromBili({
23576
+ })}`;
23577
+ const senderID = id_gen_UniID.fromBili({
23570
23578
  mid: args.mid
23571
23579
  });
23572
23580
  return this.create({
@@ -23589,7 +23597,8 @@ and limitations under the License.
23589
23597
  }, options);
23590
23598
  }
23591
23599
  static fromDplayer(args, playerID, domain, options) {
23592
- const SOID = id_gen_UniID.fromUnknown(playerID, domain), senderID = id_gen_UniID.fromUnknown(args.midHash, domain);
23600
+ const SOID = id_gen_UniID.fromUnknown(playerID, domain);
23601
+ const senderID = id_gen_UniID.fromUnknown(args.midHash, domain);
23593
23602
  return this.create({
23594
23603
  ...args,
23595
23604
  SOID: SOID.toString(),
@@ -23611,7 +23620,8 @@ and limitations under the License.
23611
23620
  };
23612
23621
  }
23613
23622
  static fromArtplayer(args, playerID, domain, options) {
23614
- const SOID = id_gen_UniID.fromUnknown(playerID, domain), senderID = id_gen_UniID.fromUnknown('', domain);
23623
+ const SOID = id_gen_UniID.fromUnknown(playerID, domain);
23624
+ const senderID = id_gen_UniID.fromUnknown('', domain);
23615
23625
  let extra = args.border ? {
23616
23626
  artplayer: {
23617
23627
  border: args.border,
@@ -23902,126 +23912,36 @@ and limitations under the License.
23902
23912
  color: isShared('color') ? this.dans[0].color : void 0
23903
23913
  };
23904
23914
  }
23905
- get stat() {
23906
- const default_stat = {
23907
- SOID: [],
23908
- mode: [
23909
- {
23910
- val: dm_gen_Modes.Normal,
23911
- count: 0
23912
- },
23913
- {
23914
- val: dm_gen_Modes.Bottom,
23915
- count: 0
23916
- },
23917
- {
23918
- val: dm_gen_Modes.Top,
23919
- count: 0
23920
- },
23921
- {
23922
- val: dm_gen_Modes.Reverse,
23923
- count: 0
23924
- },
23925
- {
23926
- val: dm_gen_Modes.Ext,
23927
- count: 0
23928
- }
23929
- ],
23930
- fontsize: [],
23931
- color: [],
23932
- senderID: [],
23933
- content: [],
23934
- weight: [],
23935
- pool: [
23936
- {
23937
- val: dm_gen_Pools.Def,
23938
- count: 0
23939
- },
23940
- {
23941
- val: dm_gen_Pools.Sub,
23942
- count: 0
23943
- },
23944
- {
23945
- val: dm_gen_Pools.Adv,
23946
- count: 0
23947
- },
23948
- {
23949
- val: dm_gen_Pools.Ix,
23950
- count: 0
23951
- }
23952
- ],
23953
- platform: []
23954
- };
23955
- const stat = this.dans.reduce((s, d)=>{
23956
- const SOID = s.SOID.find((i)=>i.val === d.SOID);
23957
- if (SOID) SOID.count++;
23958
- else s.SOID.push({
23959
- val: d.SOID,
23960
- count: 1
23961
- });
23962
- const mode = s.mode.find((i)=>i.val === d.mode);
23963
- if (mode) mode.count++;
23964
- else s.mode.push({
23965
- val: d.mode,
23966
- count: 1
23967
- });
23968
- const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
23969
- if (fontsize) fontsize.count++;
23970
- else s.fontsize.push({
23971
- val: d.fontsize,
23972
- count: 1
23973
- });
23974
- const color = s.color.find((i)=>i.val === d.color);
23975
- if (color) color.count++;
23976
- else s.color.push({
23977
- val: d.color,
23978
- count: 1
23979
- });
23980
- const senderID = s.senderID.find((i)=>i.val === d.senderID);
23981
- if (senderID) senderID.count++;
23982
- else s.senderID.push({
23983
- val: d.senderID,
23984
- count: 1
23985
- });
23986
- const content = s.content.find((i)=>i.val === d.content);
23987
- if (content) content.count++;
23988
- else s.content.push({
23989
- val: d.content,
23990
- count: 1
23991
- });
23992
- const weight = s.weight.find((i)=>i.val === d.weight);
23993
- if (weight) weight.count++;
23994
- else s.weight.push({
23995
- val: d.weight,
23996
- count: 1
23997
- });
23998
- const pool = s.pool.find((i)=>i.val === d.pool);
23999
- if (pool) pool.count++;
24000
- else s.pool.push({
24001
- val: d.pool,
24002
- count: 1
24003
- });
24004
- const platform = s.platform.find((i)=>i.val === d.platform);
24005
- if (platform) platform.count++;
24006
- else s.platform.push({
24007
- val: d.platform,
23915
+ getShared(key) {
23916
+ const isShared = (key)=>this.dans.every((d)=>d[key]);
23917
+ return isShared(key) ? this.dans[0][key] : void 0;
23918
+ }
23919
+ getStat(key) {
23920
+ const default_stat = [];
23921
+ const stats = this.dans.reduce((stat, dan)=>{
23922
+ const valWithCount = stat.find((i)=>i.val === dan[key]);
23923
+ if (valWithCount) valWithCount.count++;
23924
+ else stat.push({
23925
+ val: dan[key],
24008
23926
  count: 1
24009
23927
  });
24010
- return s;
23928
+ return stat;
24011
23929
  }, default_stat);
24012
- return stat;
23930
+ return stats;
23931
+ }
23932
+ getMost(key) {
23933
+ return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
24013
23934
  }
24014
23935
  get most() {
24015
- const s = this.stat;
24016
23936
  return {
24017
- mode: s.mode.sort((a, b)=>b.count - a.count)[0].val,
24018
- fontsize: s.fontsize.sort((a, b)=>b.count - a.count)[0].val,
24019
- color: s.color.sort((a, b)=>b.count - a.count)[0].val,
24020
- senderID: s.senderID.sort((a, b)=>b.count - a.count)[0].val,
24021
- content: s.content.sort((a, b)=>b.count - a.count)[0].val,
24022
- weight: s.weight.sort((a, b)=>b.count - a.count)[0].val,
24023
- pool: s.pool.sort((a, b)=>b.count - a.count)[0].val,
24024
- platform: s.platform.sort((a, b)=>b.count - a.count)[0].val
23937
+ mode: this.getMost('mode').val,
23938
+ fontsize: this.getMost('fontsize').val,
23939
+ color: this.getMost('color').val,
23940
+ senderID: this.getMost('senderID').val,
23941
+ content: this.getMost('content').val,
23942
+ weight: this.getMost('weight').val,
23943
+ pool: this.getMost('pool').val,
23944
+ platform: this.getMost('platform').val
24025
23945
  };
24026
23946
  }
24027
23947
  static create(options) {
@@ -24145,7 +24065,8 @@ and limitations under the License.
24145
24065
  'platform',
24146
24066
  'pool'
24147
24067
  ].map((k)=>danmaku[k]).join('|');
24148
- const extra = result[i].extra, mergeData = mergeObj[key];
24068
+ const extra = result[i].extra;
24069
+ const mergeData = mergeObj[key];
24149
24070
  result[i].extraStr = src_JSON.stringify({
24150
24071
  ...extra,
24151
24072
  danuni: {
@@ -24174,7 +24095,12 @@ and limitations under the License.
24174
24095
  minify() {
24175
24096
  return this.dans.map((d)=>d.minify());
24176
24097
  }
24177
- static import(file, options) {
24098
+ static import(file, options, mod) {
24099
+ if (!mod) mod = [
24100
+ 'json',
24101
+ 'str',
24102
+ 'bin'
24103
+ ];
24178
24104
  const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
24179
24105
  const parseJSON = (json)=>{
24180
24106
  try {
@@ -24197,61 +24123,66 @@ and limitations under the License.
24197
24123
  } catch {}
24198
24124
  };
24199
24125
  const parseStr = (file)=>{
24200
- try {
24126
+ if (mod.includes('json')) try {
24201
24127
  if (IsJSON_isJSON(file)) {
24202
24128
  const json = src_JSON.parse(file);
24203
24129
  return parseJSON(json);
24204
24130
  }
24205
24131
  } catch {}
24206
- try {
24207
- const xmlParser = new XMLParser({
24208
- ignoreAttributes: false
24209
- });
24210
- const xml = xmlParser.parse(file);
24211
- if (xml?.i?.d) return {
24212
- pool: this.fromBiliXML(file, options),
24213
- fmt: 'bili.xml'
24214
- };
24215
- } catch {}
24216
- try {
24217
- return {
24218
- pool: this.fromASS(file, options),
24219
- fmt: 'common.ass'
24220
- };
24221
- } catch {}
24132
+ if (mod.includes('str')) {
24133
+ try {
24134
+ const xmlParser = new XMLParser({
24135
+ ignoreAttributes: false
24136
+ });
24137
+ const xml = xmlParser.parse(file);
24138
+ if (xml?.i?.d) return {
24139
+ pool: this.fromBiliXML(file, options),
24140
+ fmt: 'bili.xml'
24141
+ };
24142
+ } catch {}
24143
+ try {
24144
+ return {
24145
+ pool: this.fromASS(file, options),
24146
+ fmt: 'common.ass'
24147
+ };
24148
+ } catch {}
24149
+ }
24222
24150
  };
24223
24151
  let errmesg;
24224
- if (isObject(file)) if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
24225
- try {
24226
- return {
24227
- pool: this.fromPb(file),
24228
- fmt: 'danuni.pb.bin'
24229
- };
24230
- } catch {}
24231
- try {
24232
- return {
24233
- pool: this.fromBiliGrpc(file),
24234
- fmt: 'bili.pb.bin'
24235
- };
24236
- } catch {}
24237
- try {
24238
- return {
24239
- pool: this.fromBiliCommandGrpc(file),
24240
- fmt: 'bili.cmd.pb.bin'
24241
- };
24242
- } catch {}
24243
- try {
24244
- const fileStr = new TextDecoder().decode(file);
24245
- const prStr = parseStr(fileStr);
24246
- if (prStr) return prStr;
24247
- errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
24248
- } catch {}
24249
- } else {
24250
- const prJSON = parseJSON(file);
24251
- if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
24252
- return prJSON;
24253
- }
24254
- else if (isString(file)) {
24152
+ if (isObject(file)) {
24153
+ if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
24154
+ if (mod.includes('bin')) {
24155
+ try {
24156
+ return {
24157
+ pool: this.fromPb(file),
24158
+ fmt: 'danuni.pb.bin'
24159
+ };
24160
+ } catch {}
24161
+ try {
24162
+ return {
24163
+ pool: this.fromBiliGrpc(file),
24164
+ fmt: 'bili.pb.bin'
24165
+ };
24166
+ } catch {}
24167
+ try {
24168
+ return {
24169
+ pool: this.fromBiliCommandGrpc(file),
24170
+ fmt: 'bili.cmd.pb.bin'
24171
+ };
24172
+ } catch {}
24173
+ }
24174
+ try {
24175
+ const fileStr = new TextDecoder().decode(file);
24176
+ const prStr = parseStr(fileStr);
24177
+ if (prStr) return prStr;
24178
+ errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
24179
+ } catch {}
24180
+ } else if (mod.includes('json')) {
24181
+ const prJSON = parseJSON(file);
24182
+ if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
24183
+ return prJSON;
24184
+ }
24185
+ } else if (isString(file)) {
24255
24186
  const prStr = parseStr(file);
24256
24187
  if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
24257
24188
  return prStr;
@@ -24316,9 +24247,14 @@ and limitations under the License.
24316
24247
  static fromBiliXML(xml, options) {
24317
24248
  const parser = new XMLParser({
24318
24249
  ignoreAttributes: false
24319
- }), oriData = parser.parse(xml), dans = oriData.i.d, fromConverted = !!oriData.danuni, cid = BigInt(oriData.i.chatid);
24250
+ });
24251
+ const oriData = parser.parse(xml);
24252
+ const dans = oriData.i.d;
24253
+ const fromConverted = !!oriData.danuni;
24254
+ const cid = BigInt(oriData.i.chatid);
24320
24255
  return new UniPool(dans.map((d)=>{
24321
- const p_str = d['@_p'], p_arr = p_str.split(',');
24256
+ const p_str = d['@_p'];
24257
+ const p_arr = p_str.split(',');
24322
24258
  return UniDM.fromBili({
24323
24259
  content: d['#text'],
24324
24260
  progress: Number.parseFloat(p_arr[0]),
@@ -24373,14 +24309,16 @@ and limitations under the License.
24373
24309
  });
24374
24310
  }
24375
24311
  static fromBiliGrpc(bin, options) {
24376
- const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin)), json = data.elems;
24312
+ const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
24313
+ const json = data.elems;
24377
24314
  return new UniPool(json.map((d)=>UniDM.fromBili({
24378
24315
  ...d,
24379
24316
  progress: d.progress / 1000
24380
24317
  }, d.oid, options)), options);
24381
24318
  }
24382
24319
  static fromBiliCommandGrpc(bin, options) {
24383
- const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin)), json = data.commandDms;
24320
+ const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
24321
+ const json = data.commandDms;
24384
24322
  return new UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
24385
24323
  }
24386
24324
  static fromDplayer(json, playerID, domain = 'other', options) {
@@ -24789,7 +24727,8 @@ and limitations under the License.
24789
24727
  const compressTypes = [
24790
24728
  'brotli',
24791
24729
  'gzip'
24792
- ], baseTypes = [
24730
+ ];
24731
+ const baseTypes = [
24793
24732
  'base64',
24794
24733
  'base18384'
24795
24734
  ];
@@ -24803,19 +24742,25 @@ and limitations under the License.
24803
24742
  list,
24804
24743
  config,
24805
24744
  context
24806
- }, rawText = JSON.stringify(raw1);
24745
+ };
24746
+ const rawText = JSON.stringify(raw1);
24807
24747
  let compress;
24808
24748
  compress = 'brotli' === compressType ? (0, lib.brotliCompressSync)(rawText) : (0, lib.gzipSync)(rawText);
24809
24749
  return `;RawCompressType: ${compressType}\n;RawBaseType: ${baseType}\n;Raw: ${'base64' === baseType ? compress.toString('base64') : fromUint16Array(base16384_lib.encode(compress))}`;
24810
24750
  }
24811
24751
  function deRaw(ass) {
24812
- const arr = ass.split('\n'), lineCompressType = arr.find((line)=>line.startsWith(';RawCompressType:')), lineBaseType = arr.find((line)=>line.startsWith(';RawBaseType:')), lineRaw = arr.find((line)=>line.startsWith(';Raw:'));
24752
+ const arr = ass.split('\n');
24753
+ const lineCompressType = arr.find((line)=>line.startsWith(';RawCompressType:'));
24754
+ const lineBaseType = arr.find((line)=>line.startsWith(';RawBaseType:'));
24755
+ const lineRaw = arr.find((line)=>line.startsWith(';Raw:'));
24813
24756
  if (!lineCompressType || !lineBaseType || !lineRaw) return;
24814
24757
  {
24815
- let compressType = lineCompressType.replace(';RawCompressType: ', '').trim(), baseType = lineBaseType.replace(';RawBaseType: ', '').trim();
24758
+ let compressType = lineCompressType.replace(';RawCompressType: ', '').trim();
24759
+ let baseType = lineBaseType.replace(';RawBaseType: ', '').trim();
24816
24760
  if (!compressTypes.includes(compressType)) compressType = 'gzip';
24817
24761
  if (!baseTypes.includes(baseType)) baseType = 'base64';
24818
- const text = lineRaw.replace(';Raw: ', '').trim(), buffer = 'base64' === baseType ? raw_Buffer.from(text, 'base64') : raw_Buffer.from(base16384_lib.decode(raw_Buffer.from(text, 'utf-8').toString('utf-8')));
24762
+ 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')));
24819
24764
  let decompress;
24820
24765
  decompress = 'brotli' === compressType ? (0, lib.brotliDecompressSync)(buffer) : (0, lib.gunzipSync)(buffer);
24821
24766
  try {
@@ -24870,7 +24815,8 @@ and limitations under the License.
24870
24815
  filename: 'unknown',
24871
24816
  title: 'unknown'
24872
24817
  }, rawConfig)=>{
24873
- const Elist = UniPool2DanmakuLists(list), ErawList = UniPool2DanmakuLists(rawList);
24818
+ const Elist = UniPool2DanmakuLists(list);
24819
+ const ErawList = UniPool2DanmakuLists(rawList);
24874
24820
  const content = [
24875
24821
  ass_info(config, context),
24876
24822
  style(config),
@@ -24963,126 +24909,36 @@ and limitations under the License.
24963
24909
  color: isShared('color') ? this.dans[0].color : void 0
24964
24910
  };
24965
24911
  }
24966
- get stat() {
24967
- const default_stat = {
24968
- SOID: [],
24969
- mode: [
24970
- {
24971
- val: dm_gen_Modes.Normal,
24972
- count: 0
24973
- },
24974
- {
24975
- val: dm_gen_Modes.Bottom,
24976
- count: 0
24977
- },
24978
- {
24979
- val: dm_gen_Modes.Top,
24980
- count: 0
24981
- },
24982
- {
24983
- val: dm_gen_Modes.Reverse,
24984
- count: 0
24985
- },
24986
- {
24987
- val: dm_gen_Modes.Ext,
24988
- count: 0
24989
- }
24990
- ],
24991
- fontsize: [],
24992
- color: [],
24993
- senderID: [],
24994
- content: [],
24995
- weight: [],
24996
- pool: [
24997
- {
24998
- val: dm_gen_Pools.Def,
24999
- count: 0
25000
- },
25001
- {
25002
- val: dm_gen_Pools.Sub,
25003
- count: 0
25004
- },
25005
- {
25006
- val: dm_gen_Pools.Adv,
25007
- count: 0
25008
- },
25009
- {
25010
- val: dm_gen_Pools.Ix,
25011
- count: 0
25012
- }
25013
- ],
25014
- platform: []
25015
- };
25016
- const stat = this.dans.reduce((s, d)=>{
25017
- const SOID = s.SOID.find((i)=>i.val === d.SOID);
25018
- if (SOID) SOID.count++;
25019
- else s.SOID.push({
25020
- val: d.SOID,
25021
- count: 1
25022
- });
25023
- const mode = s.mode.find((i)=>i.val === d.mode);
25024
- if (mode) mode.count++;
25025
- else s.mode.push({
25026
- val: d.mode,
25027
- count: 1
25028
- });
25029
- const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
25030
- if (fontsize) fontsize.count++;
25031
- else s.fontsize.push({
25032
- val: d.fontsize,
25033
- count: 1
25034
- });
25035
- const color = s.color.find((i)=>i.val === d.color);
25036
- if (color) color.count++;
25037
- else s.color.push({
25038
- val: d.color,
25039
- count: 1
25040
- });
25041
- const senderID = s.senderID.find((i)=>i.val === d.senderID);
25042
- if (senderID) senderID.count++;
25043
- else s.senderID.push({
25044
- val: d.senderID,
25045
- count: 1
25046
- });
25047
- const content = s.content.find((i)=>i.val === d.content);
25048
- if (content) content.count++;
25049
- else s.content.push({
25050
- val: d.content,
25051
- count: 1
25052
- });
25053
- const weight = s.weight.find((i)=>i.val === d.weight);
25054
- if (weight) weight.count++;
25055
- else s.weight.push({
25056
- val: d.weight,
25057
- count: 1
25058
- });
25059
- const pool = s.pool.find((i)=>i.val === d.pool);
25060
- if (pool) pool.count++;
25061
- else s.pool.push({
25062
- val: d.pool,
25063
- count: 1
25064
- });
25065
- const platform = s.platform.find((i)=>i.val === d.platform);
25066
- if (platform) platform.count++;
25067
- else s.platform.push({
25068
- val: d.platform,
24912
+ getShared(key) {
24913
+ const isShared = (key)=>this.dans.every((d)=>d[key]);
24914
+ return isShared(key) ? this.dans[0][key] : void 0;
24915
+ }
24916
+ getStat(key) {
24917
+ const default_stat = [];
24918
+ const stats = this.dans.reduce((stat, dan)=>{
24919
+ const valWithCount = stat.find((i)=>i.val === dan[key]);
24920
+ if (valWithCount) valWithCount.count++;
24921
+ else stat.push({
24922
+ val: dan[key],
25069
24923
  count: 1
25070
24924
  });
25071
- return s;
24925
+ return stat;
25072
24926
  }, default_stat);
25073
- return stat;
24927
+ return stats;
24928
+ }
24929
+ getMost(key) {
24930
+ return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
25074
24931
  }
25075
24932
  get most() {
25076
- const s = this.stat;
25077
24933
  return {
25078
- mode: s.mode.sort((a, b)=>b.count - a.count)[0].val,
25079
- fontsize: s.fontsize.sort((a, b)=>b.count - a.count)[0].val,
25080
- color: s.color.sort((a, b)=>b.count - a.count)[0].val,
25081
- senderID: s.senderID.sort((a, b)=>b.count - a.count)[0].val,
25082
- content: s.content.sort((a, b)=>b.count - a.count)[0].val,
25083
- weight: s.weight.sort((a, b)=>b.count - a.count)[0].val,
25084
- pool: s.pool.sort((a, b)=>b.count - a.count)[0].val,
25085
- platform: s.platform.sort((a, b)=>b.count - a.count)[0].val
24934
+ mode: this.getMost('mode').val,
24935
+ fontsize: this.getMost('fontsize').val,
24936
+ color: this.getMost('color').val,
24937
+ senderID: this.getMost('senderID').val,
24938
+ content: this.getMost('content').val,
24939
+ weight: this.getMost('weight').val,
24940
+ pool: this.getMost('pool').val,
24941
+ platform: this.getMost('platform').val
25086
24942
  };
25087
24943
  }
25088
24944
  static create(options) {
@@ -25206,7 +25062,8 @@ and limitations under the License.
25206
25062
  'platform',
25207
25063
  'pool'
25208
25064
  ].map((k)=>danmaku[k]).join('|');
25209
- const extra = result[i].extra, mergeData = mergeObj[key];
25065
+ const extra = result[i].extra;
25066
+ const mergeData = mergeObj[key];
25210
25067
  result[i].extraStr = src_JSON_0.stringify({
25211
25068
  ...extra,
25212
25069
  danuni: {
@@ -25235,7 +25092,12 @@ and limitations under the License.
25235
25092
  minify() {
25236
25093
  return this.dans.map((d)=>d.minify());
25237
25094
  }
25238
- static import(file, options) {
25095
+ static import(file, options, mod) {
25096
+ if (!mod) mod = [
25097
+ 'json',
25098
+ 'str',
25099
+ 'bin'
25100
+ ];
25239
25101
  const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
25240
25102
  const parseJSON = (json)=>{
25241
25103
  try {
@@ -25258,61 +25120,66 @@ and limitations under the License.
25258
25120
  } catch {}
25259
25121
  };
25260
25122
  const parseStr = (file)=>{
25261
- try {
25123
+ if (mod.includes('json')) try {
25262
25124
  if (IsJSON_isJSON(file)) {
25263
25125
  const json = src_JSON_0.parse(file);
25264
25126
  return parseJSON(json);
25265
25127
  }
25266
25128
  } catch {}
25267
- try {
25268
- const xmlParser = new XMLParser({
25269
- ignoreAttributes: false
25270
- });
25271
- const xml = xmlParser.parse(file);
25272
- if (xml?.i?.d) return {
25273
- pool: this.fromBiliXML(file, options),
25274
- fmt: 'bili.xml'
25275
- };
25276
- } catch {}
25277
- try {
25278
- return {
25279
- pool: this.fromASS(file, options),
25280
- fmt: 'common.ass'
25281
- };
25282
- } catch {}
25129
+ if (mod.includes('str')) {
25130
+ try {
25131
+ const xmlParser = new XMLParser({
25132
+ ignoreAttributes: false
25133
+ });
25134
+ const xml = xmlParser.parse(file);
25135
+ if (xml?.i?.d) return {
25136
+ pool: this.fromBiliXML(file, options),
25137
+ fmt: 'bili.xml'
25138
+ };
25139
+ } catch {}
25140
+ try {
25141
+ return {
25142
+ pool: this.fromASS(file, options),
25143
+ fmt: 'common.ass'
25144
+ };
25145
+ } catch {}
25146
+ }
25283
25147
  };
25284
25148
  let errmesg;
25285
- if (isObject(file)) if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
25286
- try {
25287
- return {
25288
- pool: this.fromPb(file),
25289
- fmt: 'danuni.pb.bin'
25290
- };
25291
- } catch {}
25292
- try {
25293
- return {
25294
- pool: this.fromBiliGrpc(file),
25295
- fmt: 'bili.pb.bin'
25296
- };
25297
- } catch {}
25298
- try {
25299
- return {
25300
- pool: this.fromBiliCommandGrpc(file),
25301
- fmt: 'bili.cmd.pb.bin'
25302
- };
25303
- } catch {}
25304
- try {
25305
- const fileStr = new TextDecoder().decode(file);
25306
- const prStr = parseStr(fileStr);
25307
- if (prStr) return prStr;
25308
- errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
25309
- } catch {}
25310
- } else {
25311
- const prJSON = parseJSON(file);
25312
- if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
25313
- return prJSON;
25314
- }
25315
- else if (isString(file)) {
25149
+ if (isObject(file)) {
25150
+ if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
25151
+ if (mod.includes('bin')) {
25152
+ try {
25153
+ return {
25154
+ pool: this.fromPb(file),
25155
+ fmt: 'danuni.pb.bin'
25156
+ };
25157
+ } catch {}
25158
+ try {
25159
+ return {
25160
+ pool: this.fromBiliGrpc(file),
25161
+ fmt: 'bili.pb.bin'
25162
+ };
25163
+ } catch {}
25164
+ try {
25165
+ return {
25166
+ pool: this.fromBiliCommandGrpc(file),
25167
+ fmt: 'bili.cmd.pb.bin'
25168
+ };
25169
+ } catch {}
25170
+ }
25171
+ try {
25172
+ const fileStr = new TextDecoder().decode(file);
25173
+ const prStr = parseStr(fileStr);
25174
+ if (prStr) return prStr;
25175
+ errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
25176
+ } catch {}
25177
+ } else if (mod.includes('json')) {
25178
+ const prJSON = parseJSON(file);
25179
+ if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
25180
+ return prJSON;
25181
+ }
25182
+ } else if (isString(file)) {
25316
25183
  const prStr = parseStr(file);
25317
25184
  if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
25318
25185
  return prStr;
@@ -25377,9 +25244,14 @@ and limitations under the License.
25377
25244
  static fromBiliXML(xml, options) {
25378
25245
  const parser = new XMLParser({
25379
25246
  ignoreAttributes: false
25380
- }), oriData = parser.parse(xml), dans = oriData.i.d, fromConverted = !!oriData.danuni, cid = BigInt(oriData.i.chatid);
25247
+ });
25248
+ const oriData = parser.parse(xml);
25249
+ const dans = oriData.i.d;
25250
+ const fromConverted = !!oriData.danuni;
25251
+ const cid = BigInt(oriData.i.chatid);
25381
25252
  return new src_UniPool(dans.map((d)=>{
25382
- const p_str = d['@_p'], p_arr = p_str.split(',');
25253
+ const p_str = d['@_p'];
25254
+ const p_arr = p_str.split(',');
25383
25255
  return UniDM.fromBili({
25384
25256
  content: d['#text'],
25385
25257
  progress: Number.parseFloat(p_arr[0]),
@@ -25434,14 +25306,16 @@ and limitations under the License.
25434
25306
  });
25435
25307
  }
25436
25308
  static fromBiliGrpc(bin, options) {
25437
- const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin)), json = data.elems;
25309
+ const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
25310
+ const json = data.elems;
25438
25311
  return new src_UniPool(json.map((d)=>UniDM.fromBili({
25439
25312
  ...d,
25440
25313
  progress: d.progress / 1000
25441
25314
  }, d.oid, options)), options);
25442
25315
  }
25443
25316
  static fromBiliCommandGrpc(bin, options) {
25444
- const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin)), json = data.commandDms;
25317
+ const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
25318
+ const json = data.commandDms;
25445
25319
  return new src_UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
25446
25320
  }
25447
25321
  static fromDplayer(json, playerID, domain = 'other', options) {