<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>123074</bug_id>
          
          <creation_ts>2013-10-19 17:40:48 -0700</creation_ts>
          <short_desc>Add abstract IDBBackingStoreInterface, use it to get IDBDatabaseBackendLevelDB closer to going cross-platform</short_desc>
          <delta_ts>2013-10-20 11:09:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>123027</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941626</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-19 17:40:48 -0700</bug_when>
    <thetext>Add abstract IDBBackingStoreInterface, use it to get IDBDatabaseBackendLevelDB closer to going cross-platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941627</commentid>
    <comment_count>1</comment_count>
      <attachid>214683</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-19 17:47:24 -0700</bug_when>
    <thetext>Created attachment 214683
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941709</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-20 09:35:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157703</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214683</attachid>
            <date>2013-10-19 17:47:24 -0700</date>
            <delta_ts>2013-10-20 09:09:06 -0700</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>53282</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTE5NzFlLi42MDg2NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTkg
QEAKIDIwMTMtMTAtMTkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIEFkZCBhYnN0cmFjdCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UsIHVzZSBpdCB0byBnZXQg
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiBjbG9zZXIgdG8gZ29pbmcgY3Jvc3MtcGxhdGZvcm0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzA3NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjp+SURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb246On5UcmFuc2FjdGlvbik6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjp1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Y3JlYXRlT2JqZWN0U3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlT2Jq
ZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Z2V0
UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dFJl
Y29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjbGVhck9i
amVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRl
bGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpn
ZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tp
bmdTdG9yZUxldmVsREI6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjprZXlFeGlzdHNJbk9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNyZWF0
ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRlbGV0
ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dElu
ZGV4RGF0YUZvclJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZl
bERCOjpmaW5kS2V5SW5JbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjpnZXRQcmltYXJ5S2V5VmlhSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6a2V5RXhpc3RzSW5JbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0U3RvcmVDdXJzb3IpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEtl
eUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVu
SW5kZXhDdXJzb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6VHJhbnNhY3Rpb246OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdT
dG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKToKKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZExldmVsREI6OmRlbGV0ZUZ1
bmN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJh
Y2tlbmRMZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQjo6SW5kZXhXcml0ZXI6OnZlcmlmeUluZGV4S2V5cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRl
cjo6d3JpdGVJbmRleEtleXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNr
ZW5kTGV2ZWxEQjo6SW5kZXhXcml0ZXI6OmFkZGluZ0tleUFsbG93ZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5oOgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZl
bERCOjpiYWNraW5nU3RvcmVUcmFuc2FjdGlvbik6CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKwor
MjAxMy0xMC0xOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAg
R2xvYmFsIHJlbmFtZSBvZiB0aGUgY2xhc3MgIklEQkJhY2tpbmdTdG9yZSIgdG8gIklEQkJhY2tp
bmdTdG9yZUxldmVsREIiCiAKICAgICAgICAgUnViYmVyc3RhbXBlZCBieSBBbmRlcnMgQ2FybHNz
b24gKEFuZCBBbmRyZWFzIEtsaW5nIHdhbnRlZCB0bywgYnV0IGhlIHdhc27igJl0IGFyb3VuZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDlhOGY0MGIuLmUyYjIyYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTc5MSw2ICsxNzkxLDcgQEAgd2ViY29yZV9t
b2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RP
TVdpbmRvd0luZGV4ZWREYXRhYmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJBbnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
bnkuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYTlmODUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2UuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2VfaAorI2RlZmluZSBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2VfaAor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U+IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UoKSB7IH0KKworICAg
IGNsYXNzIFRyYW5zYWN0aW9uIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflRyYW5z
YWN0aW9uKCkgeyB9CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIElEQkJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uSW50ZXJmYWNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgK
aW5kZXggNzAyYjJlOTAuLmY3MjZiNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2VfaAogI2RlZmluZSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2VfaAogCisjaW5j
bHVkZSAiSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KQEAgLTM1LDcgKzM2LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBJREJCYWNraW5nU3RvcmVMZXZlbERCOyAvLyBGSVhNRTogSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQiBpcyBhY3R1YWxseSBhIExldmVsREIgdHlwZSBkb2Vzbid0IGJlbG9uZyBpbiB0aGUg
Y3Jvc3MtcGxhdGZvcm0gZGlyZWN0b3J5LgogY2xhc3MgSURCQ2FsbGJhY2tzOwogY2xhc3MgSURC
RGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBJREJEYXRhYmFzZUVycm9yOwpAQCAtNjksOSArNjks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlRGVsZXRlUmFuZ2VPcGVyYXRp
b24oaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ2xlYXJP
cGVyYXRpb24oaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4p
ID0gMDsKIAotICAgIC8vIEZJWE1FOiBJREJCYWNraW5nU3RvcmVMZXZlbERCIGlzIGFjdHVhbGx5
IGEgTGV2ZWxEQiB0eXBlLCBidXQgcHJvYmFibHkgZG9lc24ndCB3YXJyYW50IGFic3RyYWN0aW9u
LgotICAgIC8vIFRoaXMgaXMgdG8ga2VlcCB0aGUgYnVpbGQgd29ya2luZyB1bnRpbCB0aGlzIHJl
cXVpcmVtZW50IGNhbiBiZSByZW1vdmVkLgotICAgIHZpcnR1YWwgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6VHJhbnNhY3Rpb24qIGJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCkgPSAwOworICAgIHZp
cnR1YWwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogYmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24oKSA9IDA7CiAKICAgICBpbnQ2NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9p
ZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcAppbmRleCBjODY1N2Uy
Li5iNmVlNzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAKQEAgLTU5
Nyw3ICs1OTcsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNyZWF0ZUlEQkRhdGFi
YXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdAogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OnVwZGF0ZUlEQkRhdGFiYXNlSW50VmVy
c2lvbihJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGlu
dDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbikKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6dXBkYXRlSURCRGF0YWJhc2VJbnRWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZl
cnNpb24pCiB7CiAgICAgaWYgKGludFZlcnNpb24gPT0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9J
bnRWZXJzaW9uKQogICAgICAgICBpbnRWZXJzaW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6RGVm
YXVsdEludFZlcnNpb247CkBAIC03ODAsNyArNzgwLDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIHN0
YXRpYyBib29sIHNldE1heE9iamVjdFN0b3JlSWQoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpj
cmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3Jl
bWVudCkKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Y3JlYXRlT2JqZWN0U3RvcmUoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKIHsKICAgICBMT0co
U3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNyZWF0ZU9iamVjdFN0b3JlIik7
CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQp
KQpAQCAtODExLDcgKzgxMSw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Y3JlYXRl
T2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3RpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlT2JqZWN0U3Rv
cmUoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKK2Jvb2wgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6ZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6ZGVsZXRlT2JqZWN0U3RvcmUiKTsKICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0
YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCkBAIC04NDAsNyArODQwLDcgQEAgYm9vbCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpUcmFuc2FjdGkKICAgICByZXR1cm4gY2xlYXJPYmplY3RTdG9yZSh0cmFuc2FjdGlvbiwgZGF0
YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCk7CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6Z2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElE
QktleSYga2V5LCBWZWN0b3I8Y2hhcj4mIHJlY29yZCkKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6Z2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgSURCS2V5JiBrZXksIFZlY3RvcjxjaGFyPiYgcmVjb3JkKQogewogICAgIExPRyhTdG9yYWdl
QVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Z2V0UmVjb3JkIik7CiAgICAgaWYgKCFLZXlQ
cmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQpAQCAtODk4LDcgKzg5
OCw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGF0aWMgYm9vbCBnZXROZXdWZXJzaW9uTnVtYmVy
KExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3RpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUxldmVs
REI6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gcHJwVmFsdWUsIFJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCitib29sIElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
cHJwVmFsdWUsIFJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7CiAgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRSZWNvcmQiKTsKICAgICBp
ZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCkBAIC05
MjgsNyArOTI4LDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRSZWNvcmQoSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRyYW4KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjbGVhck9iamVjdFN0b3JlKElEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCitib29sIElEQkJhY2tpbmdTdG9yZUxldmVs
REI6OmNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
KQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Y2xlYXJP
YmplY3RTdG9yZSIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBv
YmplY3RTdG9yZUlkKSkKQEAgLTk0MSw3ICs5NDEsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxl
dmVsREI6OmNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rp
bwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmRl
bGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBSZWNv
cmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZl
bERCOjpkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKQogewogICAgIExPRyhTdG9y
YWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlUmVjb3JkIik7CiAgICAgaWYg
KCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQpAQCAtOTU3
LDcgKzk1Nyw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlUmVjb3JkKElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0CiB9CiAKIAotYm9vbCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdT
dG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QmIGtleUdlbmVyYXRvckN1cnJlbnROdW1i
ZXIpCitib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmdldEtleUdlbmVyYXRvckN1cnJlbnRO
dW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90JiBrZXlH
ZW5lcmF0b3JDdXJyZW50TnVtYmVyKQogewogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhk
YXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAw
Nyw3ICsxMDA3LDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpnZXRLZXlHZW5lcmF0
b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZUxldmVsREIKICAgICByZXR1cm4ga2V5R2Vu
ZXJhdG9yQ3VycmVudE51bWJlcjsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpt
YXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBuZXdOdW1iZXIsIGJvb2wgY2hlY2tDdXJyZW50KQorYm9v
bCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnRO
dW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld051
bWJlciwgYm9vbCBjaGVja0N1cnJlbnQpCiB7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRz
KGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0x
MDI3LDcgKzEwMjcsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om1heWJlVXBkYXRl
S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcgogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3Rv
cmUoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXks
IFJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91bmQpCiti
b29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmIGtleSwgUmVjb3Jk
SWRlbnRpZmllciogZm91bmRSZWNvcmRJZGVudGlmaWVyLCBib29sJiBmb3VuZCkKIHsKICAgICBM
T0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0
U3RvcmUiKTsKICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0
U3RvcmVJZCkpCkBAIC0xMTQ4LDcgKzExNDgsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3RhdGlj
IGJvb2wgc2V0TWF4SW5kZXhJZChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNyZWF0
ZUluZGV4KElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGlz
VW5pcXVlLCBib29sIGlzTXVsdGlFbnRyeSkKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
Y3JlYXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNh
Y3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwg
Ym9vbCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEks
ICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVJbmRleCIpOwogICAgIGlmICghS2V5UHJl
Zml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSkKQEAgLTEx
NjksNyArMTE2OSw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Y3JlYXRlSW5kZXgo
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRyCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlSW5kZXgoSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKQorYm9vbCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpkZWxldGVJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZUluZGV4Iik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZh
bGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQpKQpAQCAtMTE4Niw3ICsx
MTg2LDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpkZWxldGVJbmRleChJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiogdHIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJL
ZXkmIGtleSwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKK2Jvb2wg
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkm
IGtleSwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKIHsKICAgICBM
T0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1dEluZGV4RGF0YUZvclJl
Y29yZCIpOwogICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKQEAgLTEyNDksNyArMTI0OSw3IEBA
IHN0YXRpYyBib29sIHZlcnNpb25FeGlzdHMoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
biwgaW50NjRfdCBkYXRhYmFzZUlkLCBpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6ZmluZEtleUluSW5kZXgoSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgVmVjdG9y
PGNoYXI+JiBmb3VuZEVuY29kZWRQcmltYXJ5S2V5LCBib29sJiBmb3VuZCkKK2Jvb2wgSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6ZmluZEtleUluSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBWZWN0b3I8
Y2hhcj4mIGZvdW5kRW5jb2RlZFByaW1hcnlLZXksIGJvb2wmIGZvdW5kKQogewogICAgIExPRyhT
dG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZmluZEtleUluSW5kZXgiKTsKICAg
ICBBU1NFUlQoS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBp
bmRleElkKSk7CkBAIC0xMjkxLDcgKzEyOTEsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVs
REI6OmZpbmRLZXlJbkluZGV4KElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKgog
ICAgIH0KIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpnZXRQcmltYXJ5S2V5Vmlh
SW5kZXgoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBJREJLZXkmIGtleSwgUmVmUHRyPElEQktleT4mIHByaW1hcnlLZXkpCitib29sIElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OmdldFByaW1hcnlLZXlWaWFJbmRleChJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBr
ZXksIFJlZlB0cjxJREJLZXk+JiBwcmltYXJ5S2V5KQogewogICAgIExPRyhTdG9yYWdlQVBJLCAi
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Z2V0UHJpbWFyeUtleVZpYUluZGV4Iik7CiAgICAgaWYg
KCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQp
KQpAQCAtMTMxMiw3ICsxMzEyLDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpnZXRQ
cmltYXJ5S2V5VmlhSW5kZXgoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnMKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjprZXlFeGlzdHNJbklu
ZGV4KElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgSURCS2V5JiBpbmRleEtleSwgUmVmUHRyPElEQktleT4mIGZvdW5kUHJpbWFyeUtleSwg
Ym9vbCYgZXhpc3RzKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjprZXlFeGlzdHNJbklu
ZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBJREJLZXkmIGluZGV4S2V5LCBSZWZQdHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5
LCBib29sJiBleGlzdHMpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjprZXlFeGlzdHNJbkluZGV4Iik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRz
KGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQpKQpAQCAtMTkxMSw3ICsxOTExLDcg
QEAgc3RhdGljIGJvb2wgaW5kZXhDdXJzb3JPcHRpb25zKExldmVsREJUcmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGFzc1Jl
ZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVs
REI6Om9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2Fj
dGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9u
IGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4
ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwg
IklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUN1cnNvciIpOwogICAgIExl
dmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwpA
QCAtMTkyNSw3ICsxOTI1LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpD
dXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG8KICAgICByZXR1cm4g
Y3Vyc29yLnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNv
cihJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSog
cmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpv
cGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9u
IGRpcmVjdGlvbikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVs
REI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNvciIpOwogICAgIExldmVsREJUcmFuc2FjdGlvbiog
bGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb246
OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwpAQCAtMTkzOSw3ICsxOTM5LDcg
QEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tpbmdT
dG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG8KICAgICByZXR1cm4gY3Vyc29yLnJlbGVhc2UoKTsK
IH0KIAotUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tp
bmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwg
SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQorUGFzc1JlZlB0cjxJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRl
eEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3Qg
aW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjpvcGVuSW5kZXhLZXlDdXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxl
dmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uOjps
ZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTE5NTMsNyArMTk1Myw3IEBA
IFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3Rv
cmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDCiAgICAgcmV0dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9
CiAKLVBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5n
U3RvcmVMZXZlbERCOjpvcGVuSW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4
ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhDdXJz
b3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQs
IGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGly
ZWN0aW9uKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
b3BlbkluZGV4Q3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNh
Y3Rpb24gPSBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5z
YWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5o
CmluZGV4IDY5MTE3MGQuLjExZTA5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qi5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYg
VVNFKExFVkVMREIpCiAKKyNpbmNsdWRlICJJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaCIKICNp
bmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgogI2luY2x1ZGUgIklu
ZGV4ZWREQi5oIgpAQCAtNTQsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRl
c3Ryb3lMZXZlbERCKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpID0gMDsKIH07CiAKLWNsYXNzIElE
QkJhY2tpbmdTdG9yZUxldmVsREIgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJCYWNraW5nU3RvcmVM
ZXZlbERCPiB7CitjbGFzcyBJREJCYWNraW5nU3RvcmVMZXZlbERCIDogcHVibGljIElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAgY2xhc3MgVHJhbnNhY3Rpb247CiAKQEAg
LTY5LDEyICs3MCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldElEQkRhdGFiYXNl
TWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhKiwgYm9vbCYg
c3VjY2VzcykgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJREJE
YXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9u
LCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJvd0lkKTsKICAgICB2aXJ0dWFsIGJvb2wg
dXBkYXRlSURCRGF0YWJhc2VNZXRhRGF0YShJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2Fj
dGlvbiosIGludDY0X3Qgcm93SWQsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7Ci0gICAgdmlydHVh
bCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpUcmFuc2FjdGlvbiosIGludDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbik7CisgICAg
dmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCByb3dJZCwgaW50NjRfdCBpbnRWZXJzaW9u
KTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lKTsK
IAogICAgIGJvb2wgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJh
c2VNZXRhZGF0YTo6T2JqZWN0U3RvcmVNYXAqKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmly
dHVhbCBib29sIGNyZWF0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5z
YWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCk7Ci0g
ICAgdmlydHVhbCBib29sIGRlbGV0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUxldmVsREI6
OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQp
IFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlT2JqZWN0U3RvcmUo
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktl
eVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVPYmpl
Y3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKIAog
ICAgIGNsYXNzIFJlY29yZElkZW50aWZpZXIgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShSZWNvcmRJZGVudGlmaWVyKTsKQEAgLTkxLDE5ICs5MiwxOSBAQCBwdWJsaWM6CiAgICAgICAg
IGludDY0X3QgbV92ZXJzaW9uOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0UmVjb3Jk
KElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFZlY3RvcjxjaGFyPiYgcmVj
b3JkKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIHB1dFJlY29yZChJREJC
YWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gdmFsdWUsIFJlY29yZElkZW50aWZpZXIqKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmly
dHVhbCBib29sIGNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgV0FSTl9V
TlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYpIFdBUk5fVU5VU0VEX1JFVFVSTjsK
LSAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5n
U3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90JiBjdXJyZW50TnVtYmVyKSBXQVJOX1VOVVNFRF9SRVRVUk47
Ci0gICAgdmlydHVhbCBib29sIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld1N0YXRlLCBib29sIGNoZWNrQ3VycmVu
dCkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVj
dFN0b3JlKElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFJlY29yZElkZW50
aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91bmQpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiwgVmVjdG9yPGNoYXI+JiByZWNvcmQpIFdBUk5fVU5VU0VEX1JFVFVS
TjsKKyAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6
VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgSURCS2V5JiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBSZWNvcmRJZGVu
dGlmaWVyKikgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBjbGVhck9iamVj
dFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgV0FSTl9VTlVTRURfUkVUVVJOOworICAg
IHZpcnR1YWwgYm9vbCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBSZWNvcmRJZGVudGlmaWVyJikgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9v
bCBnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6
VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCYgY3VycmVudE51bWJlcikgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwg
Ym9vbCBtYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IG5ld1N0YXRlLCBib29sIGNoZWNrQ3VycmVudCkgV0FSTl9VTlVT
RURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgUmVjb3JkSWRlbnRpZmllciogZm91
bmRSZWNvcmRJZGVudGlmaWVyLCBib29sJiBmb3VuZCkgV0FSTl9VTlVTRURfUkVUVVJOOwogCi0g
ICAgdmlydHVhbCBib29sIGNyZWF0ZUluZGV4KElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5z
YWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBp
c1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24q
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRl
eElkKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZv
clJlY29yZChJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElE
QktleSYsIGNvbnN0IFJlY29yZElkZW50aWZpZXImKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAg
dmlydHVhbCBib29sIGdldFByaW1hcnlLZXlWaWFJbmRleChJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJLZXk+JiBwcmltYXJ5
S2V5KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5k
ZXgoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkm
IGluZGV4S2V5LCBSZWZQdHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBleGlzdHMp
IFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSW5kZXgoSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSBXQVJO
X1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4KElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAg
dmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgUmVjb3JkSWRlbnRpZmll
ciYpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJpbWFyeUtleVZp
YUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJ
REJLZXkmLCBSZWZQdHI8SURCS2V5PiYgcHJpbWFyeUtleSkgV0FSTl9VTlVTRURfUkVUVVJOOwor
ICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbkluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGluZGV4S2V5LCBSZWZQdHI8SURCS2V5
PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBleGlzdHMpIFdBUk5fVU5VU0VEX1JFVFVSTjsKIAog
ICAgIGNsYXNzIEN1cnNvciA6IHB1YmxpYyBSZWZDb3VudGVkPEN1cnNvcj4gewogICAgIHB1Ymxp
YzoKQEAgLTE1MSwxOSArMTUyLDE3IEBAIHB1YmxpYzoKIAogICAgICAgICBMZXZlbERCVHJhbnNh
Y3Rpb24qIG1fdHJhbnNhY3Rpb247CiAgICAgICAgIGNvbnN0IEN1cnNvck9wdGlvbnMgbV9jdXJz
b3JPcHRpb25zOwotI2lmIFVTRShMRVZFTERCKQogICAgICAgICBPd25QdHI8TGV2ZWxEQkl0ZXJh
dG9yPiBtX2l0ZXJhdG9yOwotI2VuZGlmCiAgICAgICAgIFJlZlB0cjxJREJLZXk+IG1fY3VycmVu
dEtleTsKICAgICAgICAgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVjb3JkSWRlbnRpZmllciBt
X3JlY29yZElkZW50aWZpZXI7CiAgICAgfTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDdXJz
b3I+IG9wZW5PYmplY3RTdG9yZUtleUN1cnNvcihJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFu
c2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKTsKLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3BlbkluZGV4S2V5Q3Vyc29yKElEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJ
bmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNv
cj4gb3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNv
ckRpcmVjdGlvbik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0
b3JlQ3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJ
bmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNv
cj4gb3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBp
bmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVuSW5kZXhDdXJzb3IoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5k
ZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pOwogCi0gICAgY2xhc3MgVHJhbnNhY3Rpb24geworICAg
IGNsYXNzIFRyYW5zYWN0aW9uIDogcHVibGljIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24gewogICAgIHB1YmxpYzoKICAgICAgICAgZXhwbGljaXQgVHJhbnNhY3Rpb24oSURC
QmFja2luZ1N0b3JlTGV2ZWxEQiopOwogICAgICAgICB2b2lkIGJlZ2luKCk7CkBAIC0xNzIsMjYg
KzE3MSwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgcmVzZXQoKQogICAgICAgICB7CiAgICAg
ICAgICAgICBtX2JhY2tpbmdTdG9yZSA9IDA7Ci0jaWYgVVNFKExFVkVMREIpCiAgICAgICAgICAg
ICBtX3RyYW5zYWN0aW9uID0gMDsKLSNlbmRpZgogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGlj
IExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uRnJvbShUcmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24pCisgICAgICAgIHN0YXRpYyBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJU
cmFuc2FjdGlvbkZyb20oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24pCiAgICAgICAgIHsKLSNpZiBVU0UoTEVWRUxEQikKLSAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxUcmFuc2FjdGlvbio+KHRyYW5zYWN0aW9uKS0+bV90cmFuc2FjdGlvbi5n
ZXQoKTsKLSNlbHNlCi0gICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHRyYW5zYWN0aW9uLCB0cmFu
c2FjdGlvbik7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgorICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9u
Kj4odHJhbnNhY3Rpb24pLT5tX3RyYW5zYWN0aW9uLmdldCgpOwogICAgICAgICB9CiAKICAgICBw
cml2YXRlOgogICAgICAgICBJREJCYWNraW5nU3RvcmVMZXZlbERCKiBtX2JhY2tpbmdTdG9yZTsK
LSNpZiBVU0UoTEVWRUxEQikKICAgICAgICAgUmVmUHRyPExldmVsREJUcmFuc2FjdGlvbj4gbV90
cmFuc2FjdGlvbjsKLSNlbmRpZgogICAgIH07CiAKIHByb3RlY3RlZDoKQEAgLTIwMyw3ICsxOTMs
NyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUxldmVsREI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFBhc3NPd25Q
dHI8TGV2ZWxEQkRhdGFiYXNlPiwgUGFzc093blB0cjxMZXZlbERCQ29tcGFyYXRvcj4pOwogCi0g
ICAgYm9vbCBmaW5kS2V5SW5JbmRleChJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlv
biosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGlu
ZGV4SWQsIGNvbnN0IElEQktleSYsIFZlY3RvcjxjaGFyPiYgZm91bmRFbmNvZGVkUHJpbWFyeUtl
eSwgYm9vbCYgZm91bmQpOworICAgIGJvb2wgZmluZEtleUluSW5kZXgoSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFZlY3RvcjxjaGFyPiYg
Zm91bmRFbmNvZGVkUHJpbWFyeUtleSwgYm9vbCYgZm91bmQpOwogICAgIGJvb2wgZ2V0SW5kZXhl
cyhpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgSURCT2JqZWN0U3Rv
cmVNZXRhZGF0YTo6SW5kZXhNYXAqKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAKICAgICBTdHJpbmcg
bV9pZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcAppbmRl
eCBhOGZkMWQ2Li4zNzE0YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERC
LmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgSURCQ3Vyc29yQmFja2VuZExldmVsREI6OmRl
bGV0ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFjCiAgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQjo6ZGVsZXRlIik7CiAgICAgQVNT
RVJUKG1fdHJhbnNhY3Rpb24tPm1vZGUoKSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uUmVhZE9u
bHkpOwogICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6Y3Jl
YXRlKG1fY3Vyc29yLT5wcmltYXJ5S2V5KCkpOwotICAgIG1fZGF0YWJhc2UtPmRlbGV0ZVJhbmdl
KG1fdHJhbnNhY3Rpb24tPmlkKCksIG1fb2JqZWN0U3RvcmVJZCwga2V5UmFuZ2UucmVsZWFzZSgp
LCBwcnBDYWxsYmFja3MpOworICAgIG1fZGF0YWJhc2UtPmRlbGV0ZVJhbmdlKG1fdHJhbnNhY3Rp
b24uZ2V0KCktPmlkKCksIG1fb2JqZWN0U3RvcmVJZCwga2V5UmFuZ2UucmVsZWFzZSgpLCBwcnBD
YWxsYmFja3MpOwogfQogCiB2b2lkIElEQkN1cnNvckJhY2tlbmRMZXZlbERCOjpwcmVmZXRjaENv
bnRpbnVlKGludCBudW1iZXJUb0ZldGNoLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2Fs
bGJhY2tzLCBFeGNlcHRpb25Db2RlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIu
aAppbmRleCA1YjZkODQ3Li4xOGFjZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJDdXJzb3JCYWNrZW5kTGV2
ZWxEQi5oCkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOjpUYXNrVHlwZSBtX3Rhc2tUeXBlOwogICAgIEluZGV4ZWREQjo6Q3Vyc29yVHlw
ZSBtX2N1cnNvclR5cGU7CiAgICAgY29uc3QgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVs
REI+IG1fZGF0YWJhc2U7Ci0gICAgY29uc3QgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI+IG1fdHJhbnNhY3Rpb247CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI+IG1fdHJhbnNhY3Rpb247CiAgICAgY29uc3QgaW50NjRfdCBtX29iamVjdFN0b3JlSWQ7
CiAKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Q3Vyc29yPiBtX2N1cnNvcjsg
Ly8gTXVzdCBiZSBkZXN0cm95ZWQgYmVmb3JlIG1fdHJhbnNhY3Rpb24uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmNwcAppbmRleCA3OGM1YTJlLi5jZGFmMTQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIElEQk9iamVjdFN0
b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMoSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQiYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGJvb2wmIGNhbkFkZEtleXMsIGNvbnN0IElEQktleSog
cHJpbWFyeUtleSwgU3RyaW5nKiBlcnJvck1lc3NhZ2UpIGNvbnN0Citib29sIElEQk9iamVjdFN0
b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMoSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQiYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgYm9vbCYgY2FuQWRkS2V5cywgY29uc3QgSURCS2V5
KiBwcmltYXJ5S2V5LCBTdHJpbmcqIGVycm9yTWVzc2FnZSkgY29uc3QKIHsKICAgICBjYW5BZGRL
ZXlzID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2luZGV4S2V5cy5zaXpl
KCk7ICsraSkgewpAQCAtNjEsNyArNjEsNyBAQCBib29sIElEQk9iamVjdFN0b3JlQmFja2VuZExl
dmVsREI6OkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlTAogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6Oklu
ZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyhjb25zdCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpS
ZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyLCBJREJCYWNraW5nU3RvcmVMZXZlbERC
JiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0cmFu
c2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0
Cit2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp3cml0ZUlu
ZGV4S2V5cyhjb25zdCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpSZWNvcmRJZGVudGlmaWVyJiBy
ZWNvcmRJZGVudGlmaWVyLCBJREJCYWNraW5nU3RvcmVMZXZlbERCJiBiYWNraW5nU3RvcmUsIElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgY29uc3QKIHsKICAgICBpbnQ2NF90
IGluZGV4SWQgPSBtX2luZGV4TWV0YWRhdGEuaWQ7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkgewpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIElEQk9i
amVjdFN0b3JlQmFja2VuZExldmVsREI6OkluZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyhjb25z
dCBJREJCYWNraW5nUwogICAgIH0KIH0KIAotYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmVMZXZlbERC
JiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiB0cmFu
c2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5
S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdAorYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmVMZXZlbERC
JiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkqIGluZGV4S2V5LCBjb25zdCBJREJLZXkqIHByaW1h
cnlLZXksIGJvb2wmIGFsbG93ZWQpIGNvbnN0CiB7CiAgICAgYWxsb3dlZCA9IGZhbHNlOwogICAg
IGlmICghbV9pbmRleE1ldGFkYXRhLnVuaXF1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERC
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0
b3JlQmFja2VuZExldmVsREIuaAppbmRleCA5NTU3N2I1Li5mOTViNWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuaApAQCAtNTUsMTIgKzU1LDEyIEBAIG5h
bWVzcGFjZSBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCIHsKICAgICAgICAgICAgICwgbV9p
bmRleEtleXMoaW5kZXhLZXlzKQogICAgICAgICB7IH0KIAotICAgICAgICBib29sIHZlcmlmeUlu
ZGV4S2V5cyhJREJCYWNraW5nU3RvcmVMZXZlbERCJiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6
VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlL
ZXkgPSAwLCBTdHJpbmcqIGVycm9yTWVzc2FnZSA9IDApIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVS
TjsKKyAgICAgICAgYm9vbCB2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlTGV2ZWxEQiYs
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRL
ZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXkgPSAwLCBTdHJpbmcqIGVycm9yTWVzc2FnZSA9
IDApIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVSTjsKIAotICAgICAgICB2b2lkIHdyaXRlSW5kZXhL
ZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlJlY29yZElkZW50aWZpZXImLCBJREJC
YWNraW5nU3RvcmVMZXZlbERCJiwgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24q
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgY29uc3Q7CisgICAg
ICAgIHZvaWQgd3JpdGVJbmRleEtleXMoY29uc3QgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6UmVj
b3JkSWRlbnRpZmllciYsIElEQkJhY2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBhZGRpbmdLZXlB
bGxvd2VkKElEQkJhY2tpbmdTdG9yZUxldmVsREImLCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhLZXksIGNvbnN0IElEQktleSogcHJp
bWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOworICAgICAg
ICBib29sIGFkZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0b3JlTGV2ZWxEQiYsIElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkqIGluZGV4S2V5
LCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXksIGJvb2wmIGFsbG93ZWQpIGNvbnN0IFdBUk5fVU5V
U0VEX1JFVFVSTjsKIAogICAgICAgICBjb25zdCBJREJJbmRleE1ldGFkYXRhIG1faW5kZXhNZXRh
ZGF0YTsKICAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMgbV9p
bmRleEtleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5oCmlu
ZGV4IDRkNWU0YmMuLmEzZjZjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQi5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0
ZXJPcGVuQ3Vyc29yKElEQkN1cnNvckJhY2tlbmRMZXZlbERCKik7CiAgICAgdm9pZCBhZGRQcmVl
bXB0aXZlRXZlbnQoKSB7IG1fcGVuZGluZ1ByZWVtcHRpdmVFdmVudHMrKzsgfQogICAgIHZvaWQg
ZGlkQ29tcGxldGVQcmVlbXB0aXZlRXZlbnQoKSB7IG1fcGVuZGluZ1ByZWVtcHRpdmVFdmVudHMt
LTsgQVNTRVJUKG1fcGVuZGluZ1ByZWVtcHRpdmVFdmVudHMgPj0gMCk7IH0KLSAgICB2aXJ0dWFs
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiBiYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbigpIHsgcmV0dXJuICZtX3RyYW5zYWN0aW9uOyB9CisgICAgdmlydHVhbCBJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiBiYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpIHsg
cmV0dXJuICZtX3RyYW5zYWN0aW9uOyB9CiAKICAgICBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
KiBkYXRhYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2UuZ2V0KCk7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAz
YjZlMTEuLmJhYjNiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MDYsMTEgKzE4MDYsMTMgQEAKIAkJNTFFMUVDQzEwQzkx
QzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFFQ0JCMEM5MUM5MDQwMERDMjU1QiAvKiBJY29uUmVjb3Jk
LmggKi87IH07CiAJCTUxRTFFQ0MyMEM5MUM5MDQwMERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFFQ0JD
MEM5MUM5MDQwMERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmNwcCAqLzsgfTsKIAkJNTFFMUVDQzMw
QzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFFQ0JEMEM5MUM5MDQwMERDMjU1QiAvKiBQYWdl
VVJMUmVjb3JkLmggKi87IH07CisJCTUxRTMzN0Y0MTgxMjVBRTMwMDA3QTI0NiAvKiBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRTMzN0YzMTgxMjVBRTMwMDA3QTI0NiAvKiBJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2UuaCAqLzsgfTsKIAkJNTFFM0Y5QzcwREEwNTlEQzAwMjUwOTExIC8qIFN0b3JhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFM0Y5QzUw
REEwNTlEQzAwMjUwOTExIC8qIFN0b3JhZ2UuY3BwICovOyB9OwogCQk1MUUzRjlENjBEQTA1RTFE
MDAyNTA5MTEgLyogSlNTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxRTNGOUQ0MERBMDVFMUQwMDI1MDkxMSAvKiBKU1N0b3JhZ2UuY3Bw
ICovOyB9OwogCQk1MUU0MTQzNDE2QTY1OTYzMDBDNjMzQzcgLyogUmVzb3VyY2VIYW5kbGVUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNDE0
MzIxNkE2NTk1MTAwQzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUU2ODIxMDE2Mzg3MzAyMDAz
QkJGM0MgLyogTG9hZGVyU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxRTY4MjBGMTYzODczMDIwMDNCQkYzQyAvKiBMb2FkZXJTdHJhdGVn
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
RUM5MjY1MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
QzkyNUQwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFj
ay5jcHAgKi87IH07CisJCTUxRjZFMEEzMTgxMUQyNTIwMDU4QTAwQSAvKiBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRjZFMDhGMTgxMUQyNTIwMDU4QTAwQSAvKiBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaCAqLzsgfTsKIAkJNTFGQTJENzgxNTIxMzJCMzAwQzFCQTBCIC8qIERPTVdp
bmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE3RkJBMTgxNTFBQTcxQjAwQjU3OTU5IC8qIERPTVdpbmRvd0V4dGVuc2lvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRkI1NTA0
MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkI1NTAyMTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Ns
b3NlRXZlbnQuaCAqLzsgfTsKIAkJNTFGQjU1MDUxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VF
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUZCNTUwMzExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmNwcCAqLzsgfTsKQEAgLTM0
NjksNiArMzQ3MSw3IEBACiAJCUE0NTQ0MjRGMTE5QjM2ODcwMDlCRTkxMiAvKiBSZW5kZXJNZXRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQ1NDQy
NEQxMTlCMzY4NzAwOUJFOTEyIC8qIFJlbmRlck1ldGVyLmggKi87IH07CiAJCUE0NTZGQTI2MTFB
RDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDU2RkEyNDExQUQ0QTgzMDAyMEI0MjAgLyogTGFi
ZWxzTm9kZUxpc3QuY3BwICovOyB9OwogCQlBNDU2RkEyNzExQUQ0QTgzMDAyMEI0MjAgLyogTGFi
ZWxzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE0NTZGQTI1MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oICovOyB9Owor
CQlBNTAyQzVERjEzMDQ5QjM1MDBGQzdENTMgLyogV2ViU2FmZUdDQWN0aXZpdHlDYWxsYmFja0lP
Uy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwMkM1
REQxMzA0OUIzNTAwRkM3RDUzIC8qIFdlYlNhZmVHQ0FjdGl2aXR5Q2FsbGJhY2tJT1MuaCAqLzsg
fTsKIAkJQTUxM0IzRDcxMTRCMTY2NjAwMUM0MjlCIC8qIEtleUV2ZW50Q29jb2EuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1Qzk3NENGMTE0ODVGRjEw
MDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi87IH07CiAJCUE1MTNCM0Q4MTE0QjE2NkEwMDFD
NDI5QiAvKiBLZXlFdmVudENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2Eu
bW0gKi87IH07CiAJCUE1NEE4MkVDMTUyMjhEMkYwMEM3MkJBNiAvKiBET01Ob2RlUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0QTgyRUEx
NTIyOENBMzAwQzcyQkE2IC8qIERPTU5vZGVQcml2YXRlLmggKi87IH07CkBAIC01Mzc3LDcgKzUz
ODAsNiBAQAogCQlDRTdCMkRCNDE1ODZBQkFEMDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0VUlD
b250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxl
ci5tbSAqLzsgfTsKIAkJQ0U3QjJEQjUxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2
ZVdpdGhSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0U3QjJEQjExNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNFN0Iy
REI2MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMjE1ODZBQkFE
MDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLm1tICovOyB9OwotCQlBNTAyQzVE
RjEzMDQ5QjM1MDBGQzdENTMgLyogV2ViU2FmZUdDQWN0aXZpdHlDYWxsYmFja0lPUy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwMkM1REQxMzA0OUIz
NTAwRkM3RDUzIC8qIFdlYlNhZmVHQ0FjdGl2aXR5Q2FsbGJhY2tJT1MuaCAqLzsgfTsKIAkJQ0U5
NTIwOEExODExQjQ3NTAwN0E1MzkyIC8qIFdlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQzRDQjFEMTYx
QTEzMTIwMEQyMTREQSAvKiBXZWJTYWZlSW5jcmVtZW50YWxTd2VlcGVySU9TLmggKi87IH07CiAJ
CUNFQ0FERkM2MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUNBREZDMjE1Mzc3
OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwICovOyB9OwogCQlDRUNBREZD
NzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQ0FERkMzMTUzNzc4RkYwMEUzNzA2
OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC04Mzk5LDYgKzg0MDEsNyBAQAogCQk1MUUxRUNCQjBDOTFD
OTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJY29uUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTFFQ0JD
MEM5MUM5MDQwMERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VVUkxSZWNvcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUUxRUNCRDBDOTFDOTA0MDBEQzI1NUIgLyogUGFnZVVSTFJlY29yZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlVVJMUmVjb3JkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTMzN0YzMTgxMjVBRTMwMDA3QTI0NiAvKiBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTNGOUM0MERBMDU5REMwMDI1MDkxMSAvKiBTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFF
M0Y5QzUwREEwNTlEQzAwMjUwOTExIC8qIFN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxRTNGOUQxMERBMDVENzEwMDI1MDkxMSAvKiBTdG9yYWdlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTdG9yYWdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0
MDksNiArODQxMiw3IEBACiAJCTUxRUM5MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGNkEzRDUwNjYzQkYwNDAwNEQyOTE5IC8qIEhUTUxDYW52
YXNFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEhUTUxDYW52YXNFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTUxRjZBM0Q2MDY2M0JGMDQwMDRE
MjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJNTFGNkUwOEYxODEx
RDI1MjAwNThBMDBBIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGQjU1MDIxMTNFM0U5MTAwODIxMTc2
IC8qIEpTQ2xvc2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Ns
b3NlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGQjU1MDMxMTNFM0U5
MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0Nsb3NlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MjFENDZGNTExQUVDOTgxMDA1MTQ2MTMgLyogS2lsbFJpbmdNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLaWxsUmluZ01hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMTI0LDYgKzEwMTI4LDcgQEAKIAkJQTQ1NDQyNEQxMTlCMzY4
NzAwOUJFOTEyIC8qIFJlbmRlck1ldGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlck1ldGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE0NTZGQTI0
MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMYWJlbHNOb2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE0NTZGQTI1MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYWJlbHNOb2RlTGlzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNTAyQzVERDEzMDQ5QjM1MDBGQzdENTMgLyogV2Vi
U2FmZUdDQWN0aXZpdHlDYWxsYmFja0lPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJTYWZlR0NBY3Rpdml0eUNhbGxiYWNrSU9TLmg7IHBhdGggPSBpb3MvV2ViU2FmZUdD
QWN0aXZpdHlDYWxsYmFja0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTE4
MjI1MzE3RTI4Q0YxMDBBOUJBMUQgLyogU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgcGF0aCA9IFNjcmlwdHM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MTgyMjU0MTdFMkEwRDQwMEE5QkExRCAvKiBJbnNwZWN0
b3JPdmVybGF5UGFnZS5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IEluc3BlY3Rvck92ZXJsYXlQYWdlLmNzczsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUxODIyNTUxN0UyQTBENDAwQTlCQTFEIC8qIElu
c3BlY3Rvck92ZXJsYXlQYWdlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gSW5zcGVjdG9yT3Zl
cmxheVBhZ2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjEwMiw2ICsxMjEw
Nyw3IEBACiAJCUMwRjJBNDNGMTM4NjlBMjgwMDY2QzUzNCAvKiBwcmVwcm9jZXNzb3IucG0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlw
dC5wZXJsOyBuYW1lID0gcHJlcHJvY2Vzc29yLnBtOyBwYXRoID0gc2NyaXB0cy9wcmVwcm9jZXNz
b3IucG07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYxMEYzQUE2OEYwMDFE
RDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2Rp
bmdEZXRlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5jb2Rp
bmdEZXRlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkM0Q0IxRDE2MUEx
MzEyMDBEMjE0REEgLyogV2ViU2FmZUluY3JlbWVudGFsU3dlZXBlcklPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTYWZlSW5jcmVtZW50YWxTd2VlcGVySU9TLmg7IHBh
dGggPSBpb3MvV2ViU2FmZUluY3JlbWVudGFsU3dlZXBlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMzMwQTIyMTEzRUMxOTZCMDAwMEI0NUIgLyogQ29sb3JDaG9vc2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbG9yQ2hvb3Nlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMzNFRTVDMjE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMzNFRTVDMzE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyMzMxLDggKzEyMzM3LDYgQEAKIAkJQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZBIC8qIEFs
dGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbTsgcGF0aCA9IG1hYy9B
bHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNFN0IyREIxMTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dEFsdGVybmF0aXZlV2l0aFJh
bmdlLmg7IHBhdGggPSBtYWMvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNFN0IyREIyMTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJu
YXRpdmVXaXRoUmFuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW07IHBhdGggPSBtYWMvVGV4dEFsdGVybmF0aXZl
V2l0aFJhbmdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTAyQzVERDEzMDQ5
QjM1MDBGQzdENTMgLyogV2ViU2FmZUdDQWN0aXZpdHlDYWxsYmFja0lPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTYWZlR0NBY3Rpdml0eUNhbGxiYWNrSU9TLmg7IHBh
dGggPSBpb3MvV2ViU2FmZUdDQWN0aXZpdHlDYWxsYmFja0lPUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlDMkM0Q0IxRDE2MUExMzEyMDBEMjE0REEgLyogV2ViU2FmZUluY3JlbWVu
dGFsU3dlZXBlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTYWZl
SW5jcmVtZW50YWxTd2VlcGVySU9TLmg7IHBhdGggPSBpb3MvV2ViU2FmZUluY3JlbWVudGFsU3dl
ZXBlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUNBREZDMjE1Mzc3OEZG
MDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0
ZXJuYXRpdmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uQWx0
ZXJuYXRpdmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VDQURGQzQxNTM3NzhG
RjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGljdGF0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNjY5OSw2ICsxNjcwMyw3IEBACiAJCQkJNTFENzE5NkYxODExMDZERjAwMTZE
QzUxIC8qIElEQkFueS5jcHAgKi8sCiAJCQkJNTFENzE5NzAxODExMDZERjAwMTZEQzUxIC8qIElE
QkFueS5oICovLAogCQkJCTUxRDcxOTcxMTgxMTA2REYwMDE2REM1MSAvKiBJREJBbnkuaWRsICov
LAorCQkJCTUxRTMzN0YzMTgxMjVBRTMwMDA3QTI0NiAvKiBJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2UuaCAqLywKIAkJCQk1MUQ3MTk3NDE4MTEwNkRGMDAxNkRDNTEgLyogSURCQ2FsbGJhY2tzLmgg
Ki8sCiAJCQkJNTFENzE5NzUxODExMDZERjAwMTZEQzUxIC8qIElEQkN1cnNvci5jcHAgKi8sCiAJ
CQkJNTFENzE5NzYxODExMDZERjAwMTZEQzUxIC8qIElEQkN1cnNvci5oICovLApAQCAtMTY3NTAs
NiArMTY3NTUsNyBAQAogCQkJCTUxRDcxOUE0MTgxMTA2RTAwMDE2REM1MSAvKiBJREJUcmFuc2Fj
dGlvbi5jcHAgKi8sCiAJCQkJNTFENzE5QTUxODExMDZFMDAwMTZEQzUxIC8qIElEQlRyYW5zYWN0
aW9uLmggKi8sCiAJCQkJNTFENzE5QTYxODExMDZFMDAwMTZEQzUxIC8qIElEQlRyYW5zYWN0aW9u
LmlkbCAqLywKKwkJCQk1MUY2RTA4RjE4MTFEMjUyMDA1OEEwMEEgLyogSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlLmggKi8sCiAJCQkJNTFENzE5QUIxODExMDZFMDAwMTZEQzUxIC8qIElE
QlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgKi8sCiAJCQkJNTFENzE5QUMxODExMDZFMDAwMTZEQzUx
IC8qIElEQlZlcnNpb25DaGFuZ2VFdmVudC5oICovLAogCQkJCTUxRDcxOUFEMTgxMTA2RTAwMDE2
REM1MSAvKiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsICovLApAQCAtMjI4MDIsNiArMjI4MDgs
NyBAQAogCQkJCTFDODFCQTBBMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MThGODgwNTBGRjk1N0FGMDA4MEYwNDUgLyogSlNBYnN0
cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQ0ExMkIwM0Y1MDAwM0E1ODNB
IC8qIEpTQW5hbHlzZXJOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MUUzMzdGNDE4MTI1QUUz
MDAwN0EyNDYgLyogSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NURGMzFEQjA5RDFDMTIzMDAwQkUzMjUgLyogSlNBdHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGREExNUU5RTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzUyMyw2ICsyMzUzMCw3IEBACiAJCQkJNzdBMTdBNzIx
MkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREE5MzI1RTE2NzAzQjJBMDA4OTgyREMgLyogT2Zm
bGluZUF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTFGNkUwQTMxODExRDI1MjAw
NThBMDBBIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBM0U5NUMxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQzIC8qIE9w
ZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMDE0NjI4QjEwM0NEMURFMDAw
QjIwREIgLyogT3JpZ2luQWNjZXNzRW50cnkuaCBpbiBIZWFkZXJzICovLAo=
</data>
<flag name="review"
          id="237254"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>