@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/dist/index.js CHANGED
@@ -60,7 +60,7 @@ __webpack_require__.d(dm_gen_namespaceObject, {
60
60
  Pools: ()=>dm_gen_Pools,
61
61
  UniDM: ()=>UniDM
62
62
  });
63
- 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"}');
63
+ 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"}');
64
64
  const file_bili_dm = /*@__PURE__*/ fileDesc("Cg1iaWxpL2RtLnByb3RvEiBiaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MSJkCgZBdmF0YXISCgoCaWQYASABKAkSCwoDdXJsGAIgASgJEkEKC2F2YXRhcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyVHlwZSIjCgZCdWJibGUSDAoEdGV4dBgBIAEoCRILCgN1cmwYAiABKAkixgEKCEJ1YmJsZVYyEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJEkEKC2J1YmJsZV90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlVHlwZRIVCg1leHBvc3VyZV9vbmNlGAQgASgIEkUKDWV4cG9zdXJlX3R5cGUYBSABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiWwoGQnV0dG9uEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUiWAoOQnV6endvcmRDb25maWcSRgoIa2V5d29yZHMYASADKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZFNob3dDb25maWcieAoSQnV6endvcmRTaG93Q29uZmlnEgwKBG5hbWUYASABKAkSDgoGc2NoZW1hGAIgASgJEg4KBnNvdXJjZRgDIAEoBRIKCgJpZBgEIAEoAxITCgtidXp6d29yZF9pZBgFIAEoAxITCgtzY2hlbWFfdHlwZRgGIAEoBSJ7CghDaGVja0JveBIMCgR0ZXh0GAEgASgJEjwKBHR5cGUYAiABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja2JveFR5cGUSFQoNZGVmYXVsdF92YWx1ZRgDIAEoCBIMCgRzaG93GAQgASgIIm8KCkNoZWNrQm94VjISDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgiggIKC0NsaWNrQnV0dG9uEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSDAoEc2hvdxgGIAEoCBI4CgZidWJibGUYByABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGUiswIKDUNsaWNrQnV0dG9uVjISFQoNcG9ydHJhaXRfdGV4dBgBIAMoCRIWCg5sYW5kc2NhcGVfdGV4dBgCIAMoCRIbChNwb3J0cmFpdF90ZXh0X2ZvY3VzGAMgAygJEhwKFGxhbmRzY2FwZV90ZXh0X2ZvY3VzGAQgAygJEkEKC3JlbmRlcl90eXBlGAUgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIXCg90ZXh0X2lucHV0X3Bvc3QYBiABKAgSFQoNZXhwb3N1cmVfb25jZRgHIAEoCBJFCg1leHBvc3VyZV90eXBlGAggASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIksKB0NvbW1hbmQSQAoLY29tbWFuZF9kbXMYASADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0i5gEKCUNvbW1hbmREbRIKCgJpZBgBIAEoAxILCgNvaWQYAiABKAMSCwoDbWlkGAMgASgDEg8KB2NvbW1hbmQYBCABKAkSDwoHY29udGVudBgFIAEoCRIQCghwcm9ncmVzcxgGIAEoBRINCgVjdGltZRgHIAEoCRINCgVtdGltZRgIIAEoCRINCgVleHRyYRgJIAEoCRINCgVpZFN0chgKIAEoCRIMCgR0eXBlGAsgASgFEhMKC2F1dG9fY3JlYXRlGAwgASgIEhIKCmNvdW50X2Rvd24YDSABKAUSDAoEYXR0chgOIAEoBSJQCg1EYW5tYWt1QUlGbGFnEj8KCGRtX2ZsYWdzGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWciiwMKC0Rhbm1ha3VFbGVtEgoKAmlkGAEgASgDEhAKCHByb2dyZXNzGAIgASgFEgwKBG1vZGUYAyABKAUSEAoIZm9udHNpemUYBCABKAUSPwoFY29sb3IYBSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIQCghtaWRfaGFzaBgGIAEoCRIPCgdjb250ZW50GAcgASgJEg0KBWN0aW1lGAggASgDEg4KBndlaWdodBgJIAEoBRIOCgZhY3Rpb24YCiABKAkSDAoEcG9vbBgLIAEoBRIOCgZpZF9zdHIYDCABKAkSDAoEYXR0chgNIAEoBRIRCglhbmltYXRpb24YFiABKAkSDQoFZXh0cmEYFyABKAkSQgoIY29sb3JmdWwYGCABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIMCgR0eXBlGBkgASgFEgsKA29pZBgaIAEoAyIpCgtEYW5tYWt1RmxhZxIMCgRkbWlkGAEgASgDEgwKBGZsYWcYAiABKAUiSwoRRGFubWFrdUZsYWdDb25maWcSEAoIcmVjX2ZsYWcYASABKAUSEAoIcmVjX3RleHQYAiABKAkSEgoKcmVjX3N3aXRjaBgDIAEoBSKLBwoYRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnEikKIXBsYXllcl9kYW5tYWt1X3VzZV9kZWZhdWx0X2NvbmZpZxgBIAEoCBIsCiRwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9zd2l0Y2gYBCABKAgSKwojcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWwYBSABKAUSHwoXcGxheWVyX2Rhbm1ha3VfYmxvY2t0b3AYBiABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tzY3JvbGwYByABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tib3R0b20YCCABKAgSJAoccGxheWVyX2Rhbm1ha3VfYmxvY2tjb2xvcmZ1bBgJIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3JlcGVhdBgKIAEoCBIjChtwbGF5ZXJfZGFubWFrdV9ibG9ja3NwZWNpYWwYCyABKAgSHgoWcGxheWVyX2Rhbm1ha3Vfb3BhY2l0eRgMIAEoAhIkChxwbGF5ZXJfZGFubWFrdV9zY2FsaW5nZmFjdG9yGA0gASgCEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAhIcChRwbGF5ZXJfZGFubWFrdV9zcGVlZBgPIAEoBRIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBAgASgIEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgRIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgSIAEoBRKYAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBMgAygLMmQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EiUKHXBsYXllcl9kYW5tYWt1X2VuYWJsZV9oZXJkX2RtGBQgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEi7AkKEURhbm11UGxheWVyQ29uZmlnEh0KFXBsYXllcl9kYW5tYWt1X3N3aXRjaBgBIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9zd2l0Y2hfc2F2ZRgCIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYAyABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJgoecGxheWVyX2Rhbm1ha3VfZW5hYmxlYmxvY2tsaXN0GBAgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9zd2l0Y2gYESABKAgSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X2NvbmZpZxgSIAEoBRImCh5wbGF5ZXJfZGFubWFrdV9pb3Nfc3dpdGNoX3NhdmUYEyABKAUSKQohcGxheWVyX2Rhbm1ha3Vfc2VuaW9yX21vZGVfc3dpdGNoGBQgASgFEi4KJnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBUgASgFEpEBCipwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92Ml9tYXAYFiADKAsyXS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgXIAEoCBImCh5wbGF5ZXJfZGFubWFrdV9ibG9ja3RvcF9ib3R0b20YGCABKAgSIAoYcGxheWVyX2Rhbm1ha3VfZG9tYWluX3YyGBkgASgFEh4KFnBsYXllcl9kYW5tYWt1X2RlbnNpdHkYGiABKAUSJQodcGxheWVyX2Rhbm1ha3Vfc3VidGl0bGVfcHJvb2YYGyABKAgSIwobcGxheWVyX2Rhbm1ha3VfcGVvcGxlX3Byb29mGBwgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiMAoWRGFubXVQbGF5ZXJDb25maWdQYW5lbBIWCg5zZWxlY3Rpb25fdGV4dBgBIAEoCSJLChhEYW5tdVBsYXllckR5bmFtaWNDb25maWcSEAoIcHJvZ3Jlc3MYASABKAUSHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCIpADChVEYW5tdVBsYXllclZpZXdDb25maWcSYQodZGFubXVrdV9kZWZhdWx0X3BsYXllcl9jb25maWcYASABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdURlZmF1bHRQbGF5ZXJDb25maWcSUgoVZGFubXVrdV9wbGF5ZXJfY29uZmlnGAIgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcSYQodZGFubXVrdV9wbGF5ZXJfZHluYW1pY19jb25maWcYAyADKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckR5bmFtaWNDb25maWcSXQobZGFubXVrdV9wbGF5ZXJfY29uZmlnX3BhbmVsGAQgASgLMjguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWdQYW5lbCKZBQoURGFubXVXZWJQbGF5ZXJDb25maWcSEQoJZG1fc3dpdGNoGAEgASgIEhEKCWFpX3N3aXRjaBgCIAEoCBIQCghhaV9sZXZlbBgDIAEoBRIQCghibG9ja3RvcBgEIAEoCBITCgtibG9ja3Njcm9sbBgFIAEoCBITCgtibG9ja2JvdHRvbRgGIAEoCBISCgpibG9ja2NvbG9yGAcgASgIEhQKDGJsb2Nrc3BlY2lhbBgIIAEoCBIUCgxwcmV2ZW50c2hhZGUYCSABKAgSDQoFZG1hc2sYCiABKAgSDwoHb3BhY2l0eRgLIAEoAhIOCgZkbWFyZWEYDCABKAUSEQoJc3BlZWRwbHVzGA0gASgCEhAKCGZvbnRzaXplGA4gASgCEhIKCnNjcmVlbnN5bmMYDyABKAgSEQoJc3BlZWRzeW5jGBAgASgIEhIKCmZvbnRmYW1pbHkYESABKAkSDAoEYm9sZBgSIAEoCBISCgpmb250Ym9yZGVyGBMgASgFEhEKCWRyYXdfdHlwZRgUIAEoCRIaChJzZW5pb3JfbW9kZV9zd2l0Y2gYFSABKAUSEwoLYWlfbGV2ZWxfdjIYFiABKAUSYQoPYWlfbGV2ZWxfdjJfbWFwGBcgAygLMkguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcuQWlMZXZlbFYyTWFwRW50cnkSFwoPYmxvY2t0b3BfYm90dG9tGBggASgIEhIKCmRtX2FyZWFfdjIYGSABKAUSEgoKZG1fZGVuc2l0eRgaIAEoBRozChFBaUxldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIlkKCkRtQ29sb3JmdWwSPgoEdHlwZRgBIAEoDjIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWxUeXBlEgsKA3NyYxgCIAEoCSJQCg9EbUV4cG9SZXBvcnRSZXESEgoKc2Vzc2lvbl9pZBgBIAEoCRILCgNvaWQYAiABKAMSDQoFZG1pZHMYAyABKAwSDQoFc3BtaWQYBCABKAkiEQoPRG1FeHBvUmVwb3J0UmVzIm0KCkRtSGVyZFZpZXcSGwoTZGlzcGxheV9oZXJkX2RtX251bRgBIAEoBRJCCghoZXJkX2RtcxgCIAMoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZXdIZXJkRG1FbGVtIpYCCgpEbU1hc2tXYWxsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEk0KDGNvbnRlbnRfdHlwZRgEIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRJFCghiaXpfdHlwZRgFIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxCaXpUeXBlEkUKCGNvbnRlbnRzGAYgAygLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbENvbnRlbnQiawoRRG1NYXNrV2FsbENvbnRlbnQSRQoEdHlwZRgBIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRIPCgdjb250ZW50GAIgASgJIs0QChFEbVBsYXllckNvbmZpZ1JlcRIKCgJ0cxgBIAEoAxJFCgZzd2l0Y2gYAiABKAsyNS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3dpdGNoEk4KC3N3aXRjaF9zYXZlGAMgASgLMjkuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaFNhdmUSWwoSdXNlX2RlZmF1bHRfY29uZmlnGAQgASgLMj8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVVzZURlZmF1bHRDb25maWcSYQoVYWlfcmVjb21tZW5kZWRfc3dpdGNoGAUgASgLMkIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSXwoUYWlfcmVjb21tZW5kZWRfbGV2ZWwYBiABKAsyQS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEkkKCGJsb2NrdG9wGAcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wEk8KC2Jsb2Nrc2Nyb2xsGAggASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEk8KC2Jsb2NrYm90dG9tGAkgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrYm90dG9tElMKDWJsb2NrY29sb3JmdWwYCiABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBJPCgtibG9ja3JlcGVhdBgLIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBJRCgxibG9ja3NwZWNpYWwYDCABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEkcKB29wYWNpdHkYDSABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1T3BhY2l0eRJTCg1zY2FsaW5nZmFjdG9yGA4gASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISRQoGZG9tYWluGA8gASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpbhJDCgVzcGVlZBgQIAEoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTcGVlZBJXCg9lbmFibGVibG9ja2xpc3QYESABKAsyPi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0El4KGWlubGluZVBsYXllckRhbm1ha3VTd2l0Y2gYEiABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5JbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoElsKEnNlbmlvcl9tb2RlX3N3aXRjaBgTIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTZW5pb3JNb2RlU3dpdGNoEmQKF2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBQgASgLMkMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyElMKDmVuYWJsZV9oZXJkX2RtGBUgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRJWCg9ibG9ja3RvcF9ib3R0b20YFiABKAsyPS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SSgoJZG9tYWluX3YyGBcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpblYyEkcKB2RlbnNpdHkYGCABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RGVuc2l0eRJUCg5zdWJ0aXRsZV9wcm9vZhgZIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mElAKDHBlb3BsZV9wcm9vZhgaIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VQZW9wbGVQcm9vZiIvCgtEbVNlZ0NvbmZpZxIRCglwYWdlX3NpemUYASABKAMSDQoFdG90YWwYAiABKAMikQIKEERtU2VnTW9iaWxlUmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBRJACgdhaV9mbGFnGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUFJRmxhZxIVCg1zZWdtZW50X3J1bGVzGAQgAygDEkIKDGNvbG9yZnVsX3NyYxgFIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWwSEwoLY29udGV4dF9zcmMYBiABKAkiygEKDkRtU2VnTW9iaWxlUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDEhYKDnRlZW5hZ2Vyc19tb2RlGAUgASgFEgoKAnBzGAYgASgDEgoKAnBlGAcgASgDEhEKCXB1bGxfbW9kZRgIIAEoBRISCgpmcm9tX3NjZW5lGAkgASgFEg0KBXNwbWlkGAogASgJEhMKC2NvbnRleHRfZXh0GAsgASgJIlwKDURtU2VnT3R0UmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBSJMCgtEbVNlZ090dFJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJdCg1EbVNlZ1NES1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI8CgVlbGVtcxgCIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtIkwKC0RtU2VnU0RLUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDIncKCURtU3ViVmlldxIMCgR0eXBlGAEgASgFEgsKA29pZBgCIAEoAxILCgNwaWQYAyABKAMSQgoLcG9zdF9wYW5lbDIYBCADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxWMiKhCQoLRG1WaWV3UmVwbHkSDgoGY2xvc2VkGAEgASgIEjkKBG1hc2sYAiABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb01hc2sSQQoIc3VidGl0bGUYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb1N1YnRpdGxlEhMKC3NwZWNpYWxfZG1zGAQgAygJEkQKB2FpX2ZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxJOCg1wbGF5ZXJfY29uZmlnGAYgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJWaWV3Q29uZmlnEhYKDnNlbmRfYm94X3N0eWxlGAcgASgFEg0KBWFsbG93GAggASgIEhEKCWNoZWNrX2JveBgJIAEoCBIaChJjaGVja19ib3hfc2hvd19tc2cYCiABKAkSGAoQdGV4dF9wbGFjZWhvbGRlchgLIAEoCRIZChFpbnB1dF9wbGFjZWhvbGRlchgMIAEoCRIdChVyZXBvcnRfZmlsdGVyX2NvbnRlbnQYDSADKAkSQQoLZXhwb19yZXBvcnQYDiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvUmVwb3J0EkkKD2J1enp3b3JkX2NvbmZpZxgPIAEoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1enp3b3JkQ29uZmlnEkIKC2V4cHJlc3Npb25zGBAgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgRIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGBIgAygJEkIKC3Bvc3RfcGFuZWwyGBMgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISQgoMZG1fbWFza193YWxsGBQgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbBI9CgdkbV9oZXJkGBUgASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1IZXJkVmlldxI6Cgdjb21tYW5kGBYgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZBIKCgJrdhgXIAEoCRI+CglzdWJfdmlld3MYGCADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVN1YlZpZXcSNgoDcW9lGBkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUW9lSW5mbyJtCglEbVZpZXdSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEg0KBXNwbWlkGAQgASgJEhQKDGlzX2hhcmRfYm9vdBgFIAEoBRITCgtjb250ZXh0X2V4dBgGIAEoCSKBBgoORG1XZWJWaWV3UmVwbHkSDQoFc3RhdGUYASABKAUSDAoEdGV4dBgCIAEoCRIRCgl0ZXh0X3NpZGUYAyABKAkSPQoGZG1fc2dlGAQgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdDb25maWcSQQoEZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEhMKC3NwZWNpYWxfZG1zGAYgAygJEhEKCWNoZWNrX2JveBgHIAEoCBINCgVjb3VudBgIIAEoAxJACgtjb21tYW5kX2RtcxgJIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmREbRJNCg1wbGF5ZXJfY29uZmlnGAogASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GAsgAygJEkIKC2V4cHJlc3Npb25zGAwgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgNIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGA4gAygJEkIKC3Bvc3RfcGFuZWwyGA8gAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISPgoJc3ViX3ZpZXdzGBAgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgRIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8iKgoKRXhwb1JlcG9ydBIcChRzaG91bGRfcmVwb3J0X2F0X2VuZBgBIAEoCCJkCgpFeHByZXNzaW9uEg8KB2tleXdvcmQYASADKAkSCwoDdXJsGAIgASgJEjgKBnBlcmlvZBgDIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBlcmlvZCJJCgtFeHByZXNzaW9ucxI6CgRkYXRhGAEgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbiIqChlJbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoEg0KBXZhbHVlGAEgASgIIicKBUxhYmVsEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkihwEKB0xhYmVsVjISDQoFdGl0bGUYASABKAkSDwoHY29udGVudBgCIAMoCRIVCg1leHBvc3VyZV9vbmNlGAMgASgIEkUKDWV4cG9zdXJlX3R5cGUYBCABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiJAoGUGVyaW9kEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAyIwCh9QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEg0KBXZhbHVlGAEgASgFIjIKIVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhINCgV2YWx1ZRgBIAEoBSIxCiBQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZFN3aXRjaBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tib3R0b20SDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrcmVwZWF0Eg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBINCgV2YWx1ZRgBIAEoCCIqChlQbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEg0KBXZhbHVlGAEgASgIIiYKFVBsYXllckRhbm1ha3VCbG9ja3RvcBINCgV2YWx1ZRgBIAEoCCIsChtQbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SDQoFdmFsdWUYASABKAgiJQoUUGxheWVyRGFubWFrdURlbnNpdHkSDQoFdmFsdWUYASABKAUiJAoTUGxheWVyRGFubWFrdURvbWFpbhINCgV2YWx1ZRgBIAEoAiImChVQbGF5ZXJEYW5tYWt1RG9tYWluVjISDQoFdmFsdWUYASABKAUiKgoZUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRINCgV2YWx1ZRgBIAEoCCItChxQbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0Eg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VPcGFjaXR5Eg0KBXZhbHVlGAEgASgCIikKGFBsYXllckRhbm1ha3VQZW9wbGVQcm9vZhINCgV2YWx1ZRgBIAEoCCIrChpQbGF5ZXJEYW5tYWt1U2NhbGluZ2ZhY3RvchINCgV2YWx1ZRgBIAEoAiIuCh1QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBINCgV2YWx1ZRgBIAEoBSIjChJQbGF5ZXJEYW5tYWt1U3BlZWQSDQoFdmFsdWUYASABKAUiKwoaUGxheWVyRGFubWFrdVN1YnRpdGxlUHJvb2YSDQoFdmFsdWUYASABKAgiOAoTUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCBISCgpjYW5faWdub3JlGAIgASgIIigKF1BsYXllckRhbm1ha3VTd2l0Y2hTYXZlEg0KBXZhbHVlGAEgASgIIi4KHVBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEg0KBXZhbHVlGAEgASgIIowDCglQb3N0UGFuZWwSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEhAKCHByaW9yaXR5GAMgASgDEg4KBmJpel9pZBgEIAEoAxJECghiaXpfdHlwZRgFIAEoDjIyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbEJpelR5cGUSQwoMY2xpY2tfYnV0dG9uGAYgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b24SPwoKdGV4dF9pbnB1dBgHIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dBI9CgljaGVja19ib3gYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveBI2CgV0b2FzdBgJIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0Iq0ECgtQb3N0UGFuZWxWMhINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSRAoIYml6X3R5cGUYAyABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkUKDGNsaWNrX2J1dHRvbhgEIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uVjISQQoKdGV4dF9pbnB1dBgFIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dFYyEj8KCWNoZWNrX2JveBgGIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrQm94VjISOAoFdG9hc3QYByABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdFYyEjoKBmJ1YmJsZRgIIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVYyEjgKBWxhYmVsGAkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuTGFiZWxWMhJBCgtwb3N0X3N0YXR1cxgKIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMiFwoHUW9lSW5mbxIMCgRpbmZvGAEgASgJIikKCFJlc3BvbnNlEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCSL5AgoMU3VidGl0bGVJdGVtEgoKAmlkGAEgASgDEg4KBmlkX3N0chgCIAEoCRILCgNsYW4YAyABKAkSDwoHbGFuX2RvYxgEIAEoCRIUCgxzdWJ0aXRsZV91cmwYBSABKAkSOgoGYXV0aG9yGAYgASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVXNlckluZm8SPAoEdHlwZRgHIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlVHlwZRIVCg1sYW5fZG9jX2JyaWVmGAggASgJEkEKB2FpX3R5cGUYCSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpVHlwZRJFCglhaV9zdGF0dXMYCiABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpU3RhdHVzIugCCglUZXh0SW5wdXQSHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEgwKBHNob3cYBSABKAgSOAoGYXZhdGFyGAYgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEkEKC3Bvc3Rfc3RhdHVzGAcgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFN0YXR1cxI2CgVsYWJlbBgIIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsIvsBCgtUZXh0SW5wdXRWMhIcChRwb3J0cmFpdF9wbGFjZWhvbGRlchgBIAMoCRIdChVsYW5kc2NhcGVfcGxhY2Vob2xkZXIYAiADKAkSQQoLcmVuZGVyX3R5cGUYAyABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEhgKEHBsYWNlaG9sZGVyX3Bvc3QYBCABKAgSOAoGYXZhdGFyGAUgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEhgKEHRleHRfaW5wdXRfbGltaXQYBiABKAUibwoFVG9hc3QSDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRIMCgRzaG93GAMgASgIEjgKBmJ1dHRvbhgEIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1dHRvbiJiCg1Ub2FzdEJ1dHRvblYyEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUicwoHVG9hc3RWMhIMCgR0ZXh0GAEgASgJEhAKCGR1cmF0aW9uGAIgASgFEkgKD3RvYXN0X2J1dHRvbl92MhgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0QnV0dG9uVjIiXAoIVXNlckluZm8SCwoDbWlkGAEgASgDEgwKBG5hbWUYAiABKAkSCwoDc2V4GAMgASgJEgwKBGZhY2UYBCABKAkSDAoEc2lnbhgFIAEoCRIMCgRyYW5rGAYgASgFIlMKCVZpZGVvTWFzaxILCgNjaWQYASABKAMSDAoEcGxhdBgCIAEoBRILCgNmcHMYAyABKAUSDAoEdGltZRgEIAEoAxIQCghtYXNrX3VybBgFIAEoCSJwCg1WaWRlb1N1YnRpdGxlEgsKA2xhbhgBIAEoCRIPCgdsYW5fZG9jGAIgASgJEkEKCXN1YnRpdGxlcxgDIAMoCzIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlSXRlbSKSAQoOVmlld0hlcmREbUVsZW0SEAoIaGVyZF9tc2cYASABKAkSFgoOaGVyZF9zdGFydF9jbnQYAiABKAUSFAoMaGVyZF9lbmRfY250GAMgASgFEhIKCnJlZ2V4X3J1bGUYBCABKAkSFgoOc3RhcnRfcHJvZ3Jlc3MYBSABKAUSFAoMZW5kX3Byb2dyZXNzGAYgASgFKjMKCkF2YXRhclR5cGUSEgoOQXZhdGFyVHlwZU5vbmUQABIRCg1BdmF0YXJUeXBlTkZUEAEqWQoKQnViYmxlVHlwZRISCg5CdWJibGVUeXBlTm9uZRAAEhkKFUJ1YmJsZVR5cGVDbGlja0J1dHRvbhABEhwKGEJ1YmJsZVR5cGVEbVNldHRpbmdQYW5lbBACKlgKDENoZWNrYm94VHlwZRIUChBDaGVja2JveFR5cGVOb25lEAASGQoVQ2hlY2tib3hUeXBlRW5jb3VyYWdlEAESFwoTQ2hlY2tib3hUeXBlQ29sb3JETRACKjUKDkRtQ29sb3JmdWxUeXBlEgwKCE5vbmVUeXBlEAASFQoPVmlwR3JhZHVhbENvbG9yEOHUAypgChFEbU1hc2tXYWxsQml6VHlwZRILCgdVbmtub3duEAASBwoDT0dWEAESCgoGQml6UGljEAISCAoETXV0ZRADEgoKBlJlY29yZBAEEgkKBUNsb3VkEAUSCAoEQUlHQxAGKnYKFURtTWFza1dhbGxDb250ZW50VHlwZRIgChxEbU1hc2tXYWxsQ29udGVudFR5cGVVbmtub3duEAASHQoZRG1NYXNrV2FsbENvbnRlbnRUeXBlVGV4dBABEhwKGERtTWFza1dhbGxDb250ZW50VHlwZVBpYxACKjwKDEV4cG9zdXJlVHlwZRIUChBFeHBvc3VyZVR5cGVOb25lEAASFgoSRXhwb3N1cmVUeXBlRE1TZW5kEAEqgwIKEFBvc3RQYW5lbEJpelR5cGUSGAoUUG9zdFBhbmVsQml6VHlwZU5vbmUQABIdChlQb3N0UGFuZWxCaXpUeXBlRW5jb3VyYWdlEAESGwoXUG9zdFBhbmVsQml6VHlwZUNvbG9yRE0QAhIZChVQb3N0UGFuZWxCaXpUeXBlTkZURE0QAxIdChlQb3N0UGFuZWxCaXpUeXBlRnJhZ0Nsb3NlEAQSHQoZUG9zdFBhbmVsQml6VHlwZVJlY29tbWVuZBAFEhwKGFBvc3RQYW5lbEJpelR5cGVQbG90TGVhaxAGEiIKHlBvc3RQYW5lbEJpelR5cGVBbnRpSGFyYXNzbWVudBAHKjgKClBvc3RTdGF0dXMSFAoQUG9zdFN0YXR1c05vcm1hbBAAEhQKEFBvc3RTdGF0dXNDbG9zZWQQASpOCgpSZW5kZXJUeXBlEhIKDlJlbmRlclR5cGVOb25lEAASFAoQUmVuZGVyVHlwZVNpbmdsZRABEhYKElJlbmRlclR5cGVSb3RhdGlvbhACKjYKEFN1YnRpdGxlQWlTdGF0dXMSCAoETm9uZRAAEgwKCEV4cG9zdXJlEAESCgoGQXNzaXN0EAIqKwoOU3VidGl0bGVBaVR5cGUSCgoGTm9ybWFsEAASDQoJVHJhbnNsYXRlEAEqHgoMU3VidGl0bGVUeXBlEgYKAkNDEAASBgoCQUkQASpOChFUb2FzdEZ1bmN0aW9uVHlwZRIZChVUb2FzdEZ1bmN0aW9uVHlwZU5vbmUQABIeChpUb2FzdEZ1bmN0aW9uVHlwZVBvc3RQYW5lbBABMqAFCgJETRJzCgtEbVNlZ01vYmlsZRIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVxGjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdNb2JpbGVSZXBseRJkCgZEbVZpZXcSKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXEaLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXBseRJxCg5EbVBsYXllckNvbmZpZxIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtUGxheWVyQ29uZmlnUmVxGiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVzcG9uc2USagoIRG1TZWdPdHQSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnT3R0UmVwbHkSagoIRG1TZWdTREsSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnU0RLUmVwbHkSdAoMRG1FeHBvUmVwb3J0EjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVxGjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVzYgZwcm90bzM");
65
65
  const DmSegMobileReplySchema = /*@__PURE__*/ codegenv2_messageDesc(file_bili_dm, 30);
66
66
  const DmWebViewReplySchema = /*@__PURE__*/ codegenv2_messageDesc(file_bili_dm, 39);
@@ -182,7 +182,8 @@ var dm_gen_DMAttr = /*#__PURE__*/ function(DMAttr) {
182
182
  }({});
183
183
  const DMAttrUtils = {
184
184
  fromBin (bin = 0, format) {
185
- const array = toBits(bin), attr = [];
185
+ const array = toBits(bin);
186
+ const attr = [];
186
187
  if ('bili' === format) {
187
188
  if (array[0]) attr.push("Protect");
188
189
  if (array[1]) attr.push("FromLive");
@@ -310,7 +311,8 @@ class UniDM {
310
311
  isSameAs(dan, options) {
311
312
  if (4 === this.mode || 4 === dan.mode) return false;
312
313
  if (!options?.skipDanuniMerge && (this.extra.danuni?.merge || dan.extra.danuni?.merge)) return false;
313
- const isSame = (k)=>this[k] === dan[k], checks = [
314
+ const isSame = (k)=>this[k] === dan[k];
315
+ const checks = [
314
316
  'SOID',
315
317
  'content',
316
318
  'mode',
@@ -320,9 +322,11 @@ class UniDM {
320
322
  return checks;
321
323
  }
322
324
  minify() {
323
- const def = UniDM.create(), dan = UniDM.create(this);
325
+ const def = UniDM.create();
326
+ const dan = UniDM.create(this);
324
327
  for(const key in dan){
325
- const k = key, v = dan[k];
328
+ const k = key;
329
+ const v = dan[k];
326
330
  if ('SOID' !== key) if (v) if (v === def[k]) delete dan[k];
327
331
  else {
328
332
  if ('attr' === k && Array.isArray(v) && 0 === v.length) delete dan[k];
@@ -427,13 +431,15 @@ class UniDM {
427
431
  if (args.oid && !cid) cid = args.oid;
428
432
  const SOID = recSOID || `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
429
433
  cid
430
- })}`, senderID = isEmail(args.midHash, {
434
+ })}`;
435
+ const senderID = isEmail(args.midHash, {
431
436
  require_tld: false
432
437
  }) ? args.midHash : id_gen_UniID.fromBili({
433
438
  midHash: args.midHash
434
439
  });
435
440
  let mode = 0;
436
- const pool = args.pool, extra = {
441
+ const pool = args.pool;
442
+ const extra = {
437
443
  bili: {
438
444
  mode: args.mode,
439
445
  pool: args.pool,
@@ -536,7 +542,8 @@ class UniDM {
536
542
  if (args.oid && !cid) cid = args.oid;
537
543
  const SOID = `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
538
544
  cid
539
- })}`, senderID = id_gen_UniID.fromBili({
545
+ })}`;
546
+ const senderID = id_gen_UniID.fromBili({
540
547
  mid: args.mid
541
548
  });
542
549
  return this.create({
@@ -559,7 +566,8 @@ class UniDM {
559
566
  }, options);
560
567
  }
561
568
  static fromDplayer(args, playerID, domain, options) {
562
- const SOID = id_gen_UniID.fromUnknown(playerID, domain), senderID = id_gen_UniID.fromUnknown(args.midHash, domain);
569
+ const SOID = id_gen_UniID.fromUnknown(playerID, domain);
570
+ const senderID = id_gen_UniID.fromUnknown(args.midHash, domain);
563
571
  return this.create({
564
572
  ...args,
565
573
  SOID: SOID.toString(),
@@ -581,7 +589,8 @@ class UniDM {
581
589
  };
582
590
  }
583
591
  static fromArtplayer(args, playerID, domain, options) {
584
- const SOID = id_gen_UniID.fromUnknown(playerID, domain), senderID = id_gen_UniID.fromUnknown('', domain);
592
+ const SOID = id_gen_UniID.fromUnknown(playerID, domain);
593
+ const senderID = id_gen_UniID.fromUnknown('', domain);
585
594
  let extra = args.border ? {
586
595
  artplayer: {
587
596
  border: args.border,
@@ -872,126 +881,36 @@ class UniPool {
872
881
  color: isShared('color') ? this.dans[0].color : void 0
873
882
  };
874
883
  }
875
- get stat() {
876
- const default_stat = {
877
- SOID: [],
878
- mode: [
879
- {
880
- val: dm_gen_Modes.Normal,
881
- count: 0
882
- },
883
- {
884
- val: dm_gen_Modes.Bottom,
885
- count: 0
886
- },
887
- {
888
- val: dm_gen_Modes.Top,
889
- count: 0
890
- },
891
- {
892
- val: dm_gen_Modes.Reverse,
893
- count: 0
894
- },
895
- {
896
- val: dm_gen_Modes.Ext,
897
- count: 0
898
- }
899
- ],
900
- fontsize: [],
901
- color: [],
902
- senderID: [],
903
- content: [],
904
- weight: [],
905
- pool: [
906
- {
907
- val: dm_gen_Pools.Def,
908
- count: 0
909
- },
910
- {
911
- val: dm_gen_Pools.Sub,
912
- count: 0
913
- },
914
- {
915
- val: dm_gen_Pools.Adv,
916
- count: 0
917
- },
918
- {
919
- val: dm_gen_Pools.Ix,
920
- count: 0
921
- }
922
- ],
923
- platform: []
924
- };
925
- const stat = this.dans.reduce((s, d)=>{
926
- const SOID = s.SOID.find((i)=>i.val === d.SOID);
927
- if (SOID) SOID.count++;
928
- else s.SOID.push({
929
- val: d.SOID,
930
- count: 1
931
- });
932
- const mode = s.mode.find((i)=>i.val === d.mode);
933
- if (mode) mode.count++;
934
- else s.mode.push({
935
- val: d.mode,
936
- count: 1
937
- });
938
- const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
939
- if (fontsize) fontsize.count++;
940
- else s.fontsize.push({
941
- val: d.fontsize,
942
- count: 1
943
- });
944
- const color = s.color.find((i)=>i.val === d.color);
945
- if (color) color.count++;
946
- else s.color.push({
947
- val: d.color,
948
- count: 1
949
- });
950
- const senderID = s.senderID.find((i)=>i.val === d.senderID);
951
- if (senderID) senderID.count++;
952
- else s.senderID.push({
953
- val: d.senderID,
954
- count: 1
955
- });
956
- const content = s.content.find((i)=>i.val === d.content);
957
- if (content) content.count++;
958
- else s.content.push({
959
- val: d.content,
960
- count: 1
961
- });
962
- const weight = s.weight.find((i)=>i.val === d.weight);
963
- if (weight) weight.count++;
964
- else s.weight.push({
965
- val: d.weight,
966
- count: 1
967
- });
968
- const pool = s.pool.find((i)=>i.val === d.pool);
969
- if (pool) pool.count++;
970
- else s.pool.push({
971
- val: d.pool,
972
- count: 1
973
- });
974
- const platform = s.platform.find((i)=>i.val === d.platform);
975
- if (platform) platform.count++;
976
- else s.platform.push({
977
- val: d.platform,
884
+ getShared(key) {
885
+ const isShared = (key)=>this.dans.every((d)=>d[key]);
886
+ return isShared(key) ? this.dans[0][key] : void 0;
887
+ }
888
+ getStat(key) {
889
+ const default_stat = [];
890
+ const stats = this.dans.reduce((stat, dan)=>{
891
+ const valWithCount = stat.find((i)=>i.val === dan[key]);
892
+ if (valWithCount) valWithCount.count++;
893
+ else stat.push({
894
+ val: dan[key],
978
895
  count: 1
979
896
  });
980
- return s;
897
+ return stat;
981
898
  }, default_stat);
982
- return stat;
899
+ return stats;
900
+ }
901
+ getMost(key) {
902
+ return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
983
903
  }
984
904
  get most() {
985
- const s = this.stat;
986
905
  return {
987
- mode: s.mode.sort((a, b)=>b.count - a.count)[0].val,
988
- fontsize: s.fontsize.sort((a, b)=>b.count - a.count)[0].val,
989
- color: s.color.sort((a, b)=>b.count - a.count)[0].val,
990
- senderID: s.senderID.sort((a, b)=>b.count - a.count)[0].val,
991
- content: s.content.sort((a, b)=>b.count - a.count)[0].val,
992
- weight: s.weight.sort((a, b)=>b.count - a.count)[0].val,
993
- pool: s.pool.sort((a, b)=>b.count - a.count)[0].val,
994
- platform: s.platform.sort((a, b)=>b.count - a.count)[0].val
906
+ mode: this.getMost('mode').val,
907
+ fontsize: this.getMost('fontsize').val,
908
+ color: this.getMost('color').val,
909
+ senderID: this.getMost('senderID').val,
910
+ content: this.getMost('content').val,
911
+ weight: this.getMost('weight').val,
912
+ pool: this.getMost('pool').val,
913
+ platform: this.getMost('platform').val
995
914
  };
996
915
  }
997
916
  static create(options) {
@@ -1115,7 +1034,8 @@ class UniPool {
1115
1034
  'platform',
1116
1035
  'pool'
1117
1036
  ].map((k)=>danmaku[k]).join('|');
1118
- const extra = result[i].extra, mergeData = mergeObj[key];
1037
+ const extra = result[i].extra;
1038
+ const mergeData = mergeObj[key];
1119
1039
  result[i].extraStr = src_JSON.stringify({
1120
1040
  ...extra,
1121
1041
  danuni: {
@@ -1144,7 +1064,12 @@ class UniPool {
1144
1064
  minify() {
1145
1065
  return this.dans.map((d)=>d.minify());
1146
1066
  }
1147
- static import(file, options) {
1067
+ static import(file, options, mod) {
1068
+ if (!mod) mod = [
1069
+ 'json',
1070
+ 'str',
1071
+ 'bin'
1072
+ ];
1148
1073
  const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
1149
1074
  const parseJSON = (json)=>{
1150
1075
  try {
@@ -1167,61 +1092,66 @@ class UniPool {
1167
1092
  } catch {}
1168
1093
  };
1169
1094
  const parseStr = (file)=>{
1170
- try {
1095
+ if (mod.includes('json')) try {
1171
1096
  if (isJSON(file)) {
1172
1097
  const json = src_JSON.parse(file);
1173
1098
  return parseJSON(json);
1174
1099
  }
1175
1100
  } catch {}
1176
- try {
1177
- const xmlParser = new XMLParser({
1178
- ignoreAttributes: false
1179
- });
1180
- const xml = xmlParser.parse(file);
1181
- if (xml?.i?.d) return {
1182
- pool: this.fromBiliXML(file, options),
1183
- fmt: 'bili.xml'
1184
- };
1185
- } catch {}
1186
- try {
1187
- return {
1188
- pool: this.fromASS(file, options),
1189
- fmt: 'common.ass'
1190
- };
1191
- } catch {}
1101
+ if (mod.includes('str')) {
1102
+ try {
1103
+ const xmlParser = new XMLParser({
1104
+ ignoreAttributes: false
1105
+ });
1106
+ const xml = xmlParser.parse(file);
1107
+ if (xml?.i?.d) return {
1108
+ pool: this.fromBiliXML(file, options),
1109
+ fmt: 'bili.xml'
1110
+ };
1111
+ } catch {}
1112
+ try {
1113
+ return {
1114
+ pool: this.fromASS(file, options),
1115
+ fmt: 'common.ass'
1116
+ };
1117
+ } catch {}
1118
+ }
1192
1119
  };
1193
1120
  let errmesg;
1194
- if (isObject(file)) if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
1195
- try {
1196
- return {
1197
- pool: this.fromPb(file),
1198
- fmt: 'danuni.pb.bin'
1199
- };
1200
- } catch {}
1201
- try {
1202
- return {
1203
- pool: this.fromBiliGrpc(file),
1204
- fmt: 'bili.pb.bin'
1205
- };
1206
- } catch {}
1207
- try {
1208
- return {
1209
- pool: this.fromBiliCommandGrpc(file),
1210
- fmt: 'bili.cmd.pb.bin'
1211
- };
1212
- } catch {}
1213
- try {
1214
- const fileStr = new TextDecoder().decode(file);
1215
- const prStr = parseStr(fileStr);
1216
- if (prStr) return prStr;
1217
- errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
1218
- } catch {}
1219
- } else {
1220
- const prJSON = parseJSON(file);
1221
- if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
1222
- return prJSON;
1223
- }
1224
- else if (isString(file)) {
1121
+ if (isObject(file)) {
1122
+ if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
1123
+ if (mod.includes('bin')) {
1124
+ try {
1125
+ return {
1126
+ pool: this.fromPb(file),
1127
+ fmt: 'danuni.pb.bin'
1128
+ };
1129
+ } catch {}
1130
+ try {
1131
+ return {
1132
+ pool: this.fromBiliGrpc(file),
1133
+ fmt: 'bili.pb.bin'
1134
+ };
1135
+ } catch {}
1136
+ try {
1137
+ return {
1138
+ pool: this.fromBiliCommandGrpc(file),
1139
+ fmt: 'bili.cmd.pb.bin'
1140
+ };
1141
+ } catch {}
1142
+ }
1143
+ try {
1144
+ const fileStr = new TextDecoder().decode(file);
1145
+ const prStr = parseStr(fileStr);
1146
+ if (prStr) return prStr;
1147
+ errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
1148
+ } catch {}
1149
+ } else if (mod.includes('json')) {
1150
+ const prJSON = parseJSON(file);
1151
+ if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
1152
+ return prJSON;
1153
+ }
1154
+ } else if (isString(file)) {
1225
1155
  const prStr = parseStr(file);
1226
1156
  if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
1227
1157
  return prStr;
@@ -1286,9 +1216,14 @@ class UniPool {
1286
1216
  static fromBiliXML(xml, options) {
1287
1217
  const parser = new XMLParser({
1288
1218
  ignoreAttributes: false
1289
- }), oriData = parser.parse(xml), dans = oriData.i.d, fromConverted = !!oriData.danuni, cid = BigInt(oriData.i.chatid);
1219
+ });
1220
+ const oriData = parser.parse(xml);
1221
+ const dans = oriData.i.d;
1222
+ const fromConverted = !!oriData.danuni;
1223
+ const cid = BigInt(oriData.i.chatid);
1290
1224
  return new UniPool(dans.map((d)=>{
1291
- const p_str = d['@_p'], p_arr = p_str.split(',');
1225
+ const p_str = d['@_p'];
1226
+ const p_arr = p_str.split(',');
1292
1227
  return UniDM.fromBili({
1293
1228
  content: d['#text'],
1294
1229
  progress: Number.parseFloat(p_arr[0]),
@@ -1343,14 +1278,16 @@ class UniPool {
1343
1278
  });
1344
1279
  }
1345
1280
  static fromBiliGrpc(bin, options) {
1346
- const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin)), json = data.elems;
1281
+ const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
1282
+ const json = data.elems;
1347
1283
  return new UniPool(json.map((d)=>UniDM.fromBili({
1348
1284
  ...d,
1349
1285
  progress: d.progress / 1000
1350
1286
  }, d.oid, options)), options);
1351
1287
  }
1352
1288
  static fromBiliCommandGrpc(bin, options) {
1353
- const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin)), json = data.commandDms;
1289
+ const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
1290
+ const json = data.commandDms;
1354
1291
  return new UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
1355
1292
  }
1356
1293
  static fromDplayer(json, playerID, domain = 'other', options) {
@@ -1756,7 +1693,8 @@ const ass_info = ({ playResX, playResY }, { filename, title })=>{
1756
1693
  const compressTypes = [
1757
1694
  'brotli',
1758
1695
  'gzip'
1759
- ], baseTypes = [
1696
+ ];
1697
+ const baseTypes = [
1760
1698
  'base64',
1761
1699
  'base18384'
1762
1700
  ];
@@ -1770,19 +1708,25 @@ function raw_raw(list, config, context, compressType = 'brotli', baseType = 'bas
1770
1708
  list,
1771
1709
  config,
1772
1710
  context
1773
- }, rawText = JSON.stringify(raw1);
1711
+ };
1712
+ const rawText = JSON.stringify(raw1);
1774
1713
  let compress;
1775
1714
  compress = 'brotli' === compressType ? brotliCompressSync(rawText) : gzipSync(rawText);
1776
1715
  return `;RawCompressType: ${compressType}\n;RawBaseType: ${baseType}\n;Raw: ${'base64' === baseType ? compress.toString('base64') : fromUint16Array(external_base16384_encode(compress))}`;
1777
1716
  }
1778
1717
  function deRaw(ass) {
1779
- 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:'));
1718
+ const arr = ass.split('\n');
1719
+ const lineCompressType = arr.find((line)=>line.startsWith(';RawCompressType:'));
1720
+ const lineBaseType = arr.find((line)=>line.startsWith(';RawBaseType:'));
1721
+ const lineRaw = arr.find((line)=>line.startsWith(';Raw:'));
1780
1722
  if (!lineCompressType || !lineBaseType || !lineRaw) return;
1781
1723
  {
1782
- let compressType = lineCompressType.replace(';RawCompressType: ', '').trim(), baseType = lineBaseType.replace(';RawBaseType: ', '').trim();
1724
+ let compressType = lineCompressType.replace(';RawCompressType: ', '').trim();
1725
+ let baseType = lineBaseType.replace(';RawBaseType: ', '').trim();
1783
1726
  if (!compressTypes.includes(compressType)) compressType = 'gzip';
1784
1727
  if (!baseTypes.includes(baseType)) baseType = 'base64';
1785
- const text = lineRaw.replace(';Raw: ', '').trim(), buffer = 'base64' === baseType ? Buffer.from(text, 'base64') : Buffer.from(decode(Buffer.from(text, 'utf-8').toString('utf-8')));
1728
+ const text = lineRaw.replace(';Raw: ', '').trim();
1729
+ const buffer = 'base64' === baseType ? Buffer.from(text, 'base64') : Buffer.from(decode(Buffer.from(text, 'utf-8').toString('utf-8')));
1786
1730
  let decompress;
1787
1731
  decompress = 'brotli' === compressType ? brotliDecompressSync(buffer) : gunzipSync(buffer);
1788
1732
  try {
@@ -1837,7 +1781,8 @@ const ass_create = (list, rawList, config, context = {
1837
1781
  filename: 'unknown',
1838
1782
  title: 'unknown'
1839
1783
  }, rawConfig)=>{
1840
- const Elist = UniPool2DanmakuLists(list), ErawList = UniPool2DanmakuLists(rawList);
1784
+ const Elist = UniPool2DanmakuLists(list);
1785
+ const ErawList = UniPool2DanmakuLists(rawList);
1841
1786
  const content = [
1842
1787
  ass_info(config, context),
1843
1788
  style(config),
@@ -1930,126 +1875,36 @@ class src_UniPool {
1930
1875
  color: isShared('color') ? this.dans[0].color : void 0
1931
1876
  };
1932
1877
  }
1933
- get stat() {
1934
- const default_stat = {
1935
- SOID: [],
1936
- mode: [
1937
- {
1938
- val: dm_gen_Modes.Normal,
1939
- count: 0
1940
- },
1941
- {
1942
- val: dm_gen_Modes.Bottom,
1943
- count: 0
1944
- },
1945
- {
1946
- val: dm_gen_Modes.Top,
1947
- count: 0
1948
- },
1949
- {
1950
- val: dm_gen_Modes.Reverse,
1951
- count: 0
1952
- },
1953
- {
1954
- val: dm_gen_Modes.Ext,
1955
- count: 0
1956
- }
1957
- ],
1958
- fontsize: [],
1959
- color: [],
1960
- senderID: [],
1961
- content: [],
1962
- weight: [],
1963
- pool: [
1964
- {
1965
- val: dm_gen_Pools.Def,
1966
- count: 0
1967
- },
1968
- {
1969
- val: dm_gen_Pools.Sub,
1970
- count: 0
1971
- },
1972
- {
1973
- val: dm_gen_Pools.Adv,
1974
- count: 0
1975
- },
1976
- {
1977
- val: dm_gen_Pools.Ix,
1978
- count: 0
1979
- }
1980
- ],
1981
- platform: []
1982
- };
1983
- const stat = this.dans.reduce((s, d)=>{
1984
- const SOID = s.SOID.find((i)=>i.val === d.SOID);
1985
- if (SOID) SOID.count++;
1986
- else s.SOID.push({
1987
- val: d.SOID,
1988
- count: 1
1989
- });
1990
- const mode = s.mode.find((i)=>i.val === d.mode);
1991
- if (mode) mode.count++;
1992
- else s.mode.push({
1993
- val: d.mode,
1994
- count: 1
1995
- });
1996
- const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
1997
- if (fontsize) fontsize.count++;
1998
- else s.fontsize.push({
1999
- val: d.fontsize,
2000
- count: 1
2001
- });
2002
- const color = s.color.find((i)=>i.val === d.color);
2003
- if (color) color.count++;
2004
- else s.color.push({
2005
- val: d.color,
2006
- count: 1
2007
- });
2008
- const senderID = s.senderID.find((i)=>i.val === d.senderID);
2009
- if (senderID) senderID.count++;
2010
- else s.senderID.push({
2011
- val: d.senderID,
2012
- count: 1
2013
- });
2014
- const content = s.content.find((i)=>i.val === d.content);
2015
- if (content) content.count++;
2016
- else s.content.push({
2017
- val: d.content,
2018
- count: 1
2019
- });
2020
- const weight = s.weight.find((i)=>i.val === d.weight);
2021
- if (weight) weight.count++;
2022
- else s.weight.push({
2023
- val: d.weight,
2024
- count: 1
2025
- });
2026
- const pool = s.pool.find((i)=>i.val === d.pool);
2027
- if (pool) pool.count++;
2028
- else s.pool.push({
2029
- val: d.pool,
2030
- count: 1
2031
- });
2032
- const platform = s.platform.find((i)=>i.val === d.platform);
2033
- if (platform) platform.count++;
2034
- else s.platform.push({
2035
- val: d.platform,
1878
+ getShared(key) {
1879
+ const isShared = (key)=>this.dans.every((d)=>d[key]);
1880
+ return isShared(key) ? this.dans[0][key] : void 0;
1881
+ }
1882
+ getStat(key) {
1883
+ const default_stat = [];
1884
+ const stats = this.dans.reduce((stat, dan)=>{
1885
+ const valWithCount = stat.find((i)=>i.val === dan[key]);
1886
+ if (valWithCount) valWithCount.count++;
1887
+ else stat.push({
1888
+ val: dan[key],
2036
1889
  count: 1
2037
1890
  });
2038
- return s;
1891
+ return stat;
2039
1892
  }, default_stat);
2040
- return stat;
1893
+ return stats;
1894
+ }
1895
+ getMost(key) {
1896
+ return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
2041
1897
  }
2042
1898
  get most() {
2043
- const s = this.stat;
2044
1899
  return {
2045
- mode: s.mode.sort((a, b)=>b.count - a.count)[0].val,
2046
- fontsize: s.fontsize.sort((a, b)=>b.count - a.count)[0].val,
2047
- color: s.color.sort((a, b)=>b.count - a.count)[0].val,
2048
- senderID: s.senderID.sort((a, b)=>b.count - a.count)[0].val,
2049
- content: s.content.sort((a, b)=>b.count - a.count)[0].val,
2050
- weight: s.weight.sort((a, b)=>b.count - a.count)[0].val,
2051
- pool: s.pool.sort((a, b)=>b.count - a.count)[0].val,
2052
- platform: s.platform.sort((a, b)=>b.count - a.count)[0].val
1900
+ mode: this.getMost('mode').val,
1901
+ fontsize: this.getMost('fontsize').val,
1902
+ color: this.getMost('color').val,
1903
+ senderID: this.getMost('senderID').val,
1904
+ content: this.getMost('content').val,
1905
+ weight: this.getMost('weight').val,
1906
+ pool: this.getMost('pool').val,
1907
+ platform: this.getMost('platform').val
2053
1908
  };
2054
1909
  }
2055
1910
  static create(options) {
@@ -2173,7 +2028,8 @@ class src_UniPool {
2173
2028
  'platform',
2174
2029
  'pool'
2175
2030
  ].map((k)=>danmaku[k]).join('|');
2176
- const extra = result[i].extra, mergeData = mergeObj[key];
2031
+ const extra = result[i].extra;
2032
+ const mergeData = mergeObj[key];
2177
2033
  result[i].extraStr = src_JSON_0.stringify({
2178
2034
  ...extra,
2179
2035
  danuni: {
@@ -2202,7 +2058,12 @@ class src_UniPool {
2202
2058
  minify() {
2203
2059
  return this.dans.map((d)=>d.minify());
2204
2060
  }
2205
- static import(file, options) {
2061
+ static import(file, options, mod) {
2062
+ if (!mod) mod = [
2063
+ 'json',
2064
+ 'str',
2065
+ 'bin'
2066
+ ];
2206
2067
  const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
2207
2068
  const parseJSON = (json)=>{
2208
2069
  try {
@@ -2225,61 +2086,66 @@ class src_UniPool {
2225
2086
  } catch {}
2226
2087
  };
2227
2088
  const parseStr = (file)=>{
2228
- try {
2089
+ if (mod.includes('json')) try {
2229
2090
  if (isJSON(file)) {
2230
2091
  const json = src_JSON_0.parse(file);
2231
2092
  return parseJSON(json);
2232
2093
  }
2233
2094
  } catch {}
2234
- try {
2235
- const xmlParser = new XMLParser({
2236
- ignoreAttributes: false
2237
- });
2238
- const xml = xmlParser.parse(file);
2239
- if (xml?.i?.d) return {
2240
- pool: this.fromBiliXML(file, options),
2241
- fmt: 'bili.xml'
2242
- };
2243
- } catch {}
2244
- try {
2245
- return {
2246
- pool: this.fromASS(file, options),
2247
- fmt: 'common.ass'
2248
- };
2249
- } catch {}
2095
+ if (mod.includes('str')) {
2096
+ try {
2097
+ const xmlParser = new XMLParser({
2098
+ ignoreAttributes: false
2099
+ });
2100
+ const xml = xmlParser.parse(file);
2101
+ if (xml?.i?.d) return {
2102
+ pool: this.fromBiliXML(file, options),
2103
+ fmt: 'bili.xml'
2104
+ };
2105
+ } catch {}
2106
+ try {
2107
+ return {
2108
+ pool: this.fromASS(file, options),
2109
+ fmt: 'common.ass'
2110
+ };
2111
+ } catch {}
2112
+ }
2250
2113
  };
2251
2114
  let errmesg;
2252
- if (isObject(file)) if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
2253
- try {
2254
- return {
2255
- pool: this.fromPb(file),
2256
- fmt: 'danuni.pb.bin'
2257
- };
2258
- } catch {}
2259
- try {
2260
- return {
2261
- pool: this.fromBiliGrpc(file),
2262
- fmt: 'bili.pb.bin'
2263
- };
2264
- } catch {}
2265
- try {
2266
- return {
2267
- pool: this.fromBiliCommandGrpc(file),
2268
- fmt: 'bili.cmd.pb.bin'
2269
- };
2270
- } catch {}
2271
- try {
2272
- const fileStr = new TextDecoder().decode(file);
2273
- const prStr = parseStr(fileStr);
2274
- if (prStr) return prStr;
2275
- errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
2276
- } catch {}
2277
- } else {
2278
- const prJSON = parseJSON(file);
2279
- if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
2280
- return prJSON;
2281
- }
2282
- else if (isString(file)) {
2115
+ if (isObject(file)) {
2116
+ if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
2117
+ if (mod.includes('bin')) {
2118
+ try {
2119
+ return {
2120
+ pool: this.fromPb(file),
2121
+ fmt: 'danuni.pb.bin'
2122
+ };
2123
+ } catch {}
2124
+ try {
2125
+ return {
2126
+ pool: this.fromBiliGrpc(file),
2127
+ fmt: 'bili.pb.bin'
2128
+ };
2129
+ } catch {}
2130
+ try {
2131
+ return {
2132
+ pool: this.fromBiliCommandGrpc(file),
2133
+ fmt: 'bili.cmd.pb.bin'
2134
+ };
2135
+ } catch {}
2136
+ }
2137
+ try {
2138
+ const fileStr = new TextDecoder().decode(file);
2139
+ const prStr = parseStr(fileStr);
2140
+ if (prStr) return prStr;
2141
+ errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
2142
+ } catch {}
2143
+ } else if (mod.includes('json')) {
2144
+ const prJSON = parseJSON(file);
2145
+ if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
2146
+ return prJSON;
2147
+ }
2148
+ } else if (isString(file)) {
2283
2149
  const prStr = parseStr(file);
2284
2150
  if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
2285
2151
  return prStr;
@@ -2344,9 +2210,14 @@ class src_UniPool {
2344
2210
  static fromBiliXML(xml, options) {
2345
2211
  const parser = new XMLParser({
2346
2212
  ignoreAttributes: false
2347
- }), oriData = parser.parse(xml), dans = oriData.i.d, fromConverted = !!oriData.danuni, cid = BigInt(oriData.i.chatid);
2213
+ });
2214
+ const oriData = parser.parse(xml);
2215
+ const dans = oriData.i.d;
2216
+ const fromConverted = !!oriData.danuni;
2217
+ const cid = BigInt(oriData.i.chatid);
2348
2218
  return new src_UniPool(dans.map((d)=>{
2349
- const p_str = d['@_p'], p_arr = p_str.split(',');
2219
+ const p_str = d['@_p'];
2220
+ const p_arr = p_str.split(',');
2350
2221
  return UniDM.fromBili({
2351
2222
  content: d['#text'],
2352
2223
  progress: Number.parseFloat(p_arr[0]),
@@ -2401,14 +2272,16 @@ class src_UniPool {
2401
2272
  });
2402
2273
  }
2403
2274
  static fromBiliGrpc(bin, options) {
2404
- const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin)), json = data.elems;
2275
+ const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
2276
+ const json = data.elems;
2405
2277
  return new src_UniPool(json.map((d)=>UniDM.fromBili({
2406
2278
  ...d,
2407
2279
  progress: d.progress / 1000
2408
2280
  }, d.oid, options)), options);
2409
2281
  }
2410
2282
  static fromBiliCommandGrpc(bin, options) {
2411
- const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin)), json = data.commandDms;
2283
+ const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
2284
+ const json = data.commandDms;
2412
2285
  return new src_UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
2413
2286
  }
2414
2287
  static fromDplayer(json, playerID, domain = 'other', options) {