@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.
- package/README.md +1 -1
- package/dist/index.js +225 -352
- package/dist/index.min.js +225 -352
- package/dist/index.umd.min.js +228 -354
- package/dist/src/index.d.ts +15 -41
- package/package.json +5 -5
- package/src/ass-gen/ass/create.ts +2 -2
- package/src/ass-gen/ass/raw.ts +19 -19
- package/src/index.test.ts +19 -12
- package/src/index.ts +100 -130
- package/src/proto/gen/bili/dm_pb.ts +1 -1
- package/src/proto/gen/danuni_pb.ts +1 -1
- package/src/utils/dm-gen.test.ts +3 -3
- package/src/utils/dm-gen.ts +30 -31
package/dist/index.umd.min.js
CHANGED
|
@@ -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
|
|
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.
|
|
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)
|
|
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]
|
|
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()
|
|
23356
|
+
const def = UniDM.create();
|
|
23357
|
+
const dan = UniDM.create(this);
|
|
23354
23358
|
for(const key in dan){
|
|
23355
|
-
const k = key
|
|
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
|
-
})}
|
|
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
|
|
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
|
-
})}
|
|
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)
|
|
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)
|
|
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
|
-
|
|
23906
|
-
const
|
|
23907
|
-
|
|
23908
|
-
|
|
23909
|
-
|
|
23910
|
-
|
|
23911
|
-
|
|
23912
|
-
|
|
23913
|
-
|
|
23914
|
-
|
|
23915
|
-
|
|
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
|
|
23928
|
+
return stat;
|
|
24011
23929
|
}, default_stat);
|
|
24012
|
-
return
|
|
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:
|
|
24018
|
-
fontsize:
|
|
24019
|
-
color:
|
|
24020
|
-
senderID:
|
|
24021
|
-
content:
|
|
24022
|
-
weight:
|
|
24023
|
-
pool:
|
|
24024
|
-
platform:
|
|
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
|
|
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
|
-
|
|
24207
|
-
|
|
24208
|
-
|
|
24209
|
-
|
|
24210
|
-
|
|
24211
|
-
|
|
24212
|
-
|
|
24213
|
-
|
|
24214
|
-
|
|
24215
|
-
|
|
24216
|
-
|
|
24217
|
-
|
|
24218
|
-
|
|
24219
|
-
|
|
24220
|
-
|
|
24221
|
-
|
|
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))
|
|
24225
|
-
|
|
24226
|
-
|
|
24227
|
-
|
|
24228
|
-
|
|
24229
|
-
|
|
24230
|
-
|
|
24231
|
-
|
|
24232
|
-
|
|
24233
|
-
|
|
24234
|
-
|
|
24235
|
-
|
|
24236
|
-
|
|
24237
|
-
|
|
24238
|
-
|
|
24239
|
-
|
|
24240
|
-
|
|
24241
|
-
|
|
24242
|
-
|
|
24243
|
-
|
|
24244
|
-
|
|
24245
|
-
|
|
24246
|
-
|
|
24247
|
-
|
|
24248
|
-
|
|
24249
|
-
|
|
24250
|
-
|
|
24251
|
-
|
|
24252
|
-
|
|
24253
|
-
|
|
24254
|
-
|
|
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
|
-
})
|
|
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']
|
|
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))
|
|
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))
|
|
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
|
-
]
|
|
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
|
-
}
|
|
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')
|
|
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()
|
|
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()
|
|
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)
|
|
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
|
-
|
|
24967
|
-
const
|
|
24968
|
-
|
|
24969
|
-
|
|
24970
|
-
|
|
24971
|
-
|
|
24972
|
-
|
|
24973
|
-
|
|
24974
|
-
|
|
24975
|
-
|
|
24976
|
-
|
|
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
|
|
24925
|
+
return stat;
|
|
25072
24926
|
}, default_stat);
|
|
25073
|
-
return
|
|
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:
|
|
25079
|
-
fontsize:
|
|
25080
|
-
color:
|
|
25081
|
-
senderID:
|
|
25082
|
-
content:
|
|
25083
|
-
weight:
|
|
25084
|
-
pool:
|
|
25085
|
-
platform:
|
|
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
|
|
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
|
-
|
|
25268
|
-
|
|
25269
|
-
|
|
25270
|
-
|
|
25271
|
-
|
|
25272
|
-
|
|
25273
|
-
|
|
25274
|
-
|
|
25275
|
-
|
|
25276
|
-
|
|
25277
|
-
|
|
25278
|
-
|
|
25279
|
-
|
|
25280
|
-
|
|
25281
|
-
|
|
25282
|
-
|
|
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))
|
|
25286
|
-
|
|
25287
|
-
|
|
25288
|
-
|
|
25289
|
-
|
|
25290
|
-
|
|
25291
|
-
|
|
25292
|
-
|
|
25293
|
-
|
|
25294
|
-
|
|
25295
|
-
|
|
25296
|
-
|
|
25297
|
-
|
|
25298
|
-
|
|
25299
|
-
|
|
25300
|
-
|
|
25301
|
-
|
|
25302
|
-
|
|
25303
|
-
|
|
25304
|
-
|
|
25305
|
-
|
|
25306
|
-
|
|
25307
|
-
|
|
25308
|
-
|
|
25309
|
-
|
|
25310
|
-
|
|
25311
|
-
|
|
25312
|
-
|
|
25313
|
-
|
|
25314
|
-
|
|
25315
|
-
|
|
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
|
-
})
|
|
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']
|
|
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))
|
|
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))
|
|
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) {
|