<?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>124434</bug_id>
          
          <creation_ts>2013-11-15 14:10:43 -0800</creation_ts>
          <short_desc>Make IDBIndexWriter a LevelDB specific concept</short_desc>
          <delta_ts>2013-11-15 14:23:55 -0800</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951201</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 14:10:43 -0800</bug_when>
    <thetext>Make IDBIndexWriter a LevelDB specific concept

This includes renaming the class and moving it into the leveldb subdirectory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951202</commentid>
    <comment_count>1</comment_count>
      <attachid>217085</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 14:11:50 -0800</bug_when>
    <thetext>Created attachment 217085
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951204</commentid>
    <comment_count>2</comment_count>
      <attachid>217085</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-15 14:20:08 -0800</bug_when>
    <thetext>Comment on attachment 217085
Patch v1 

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951209</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 14:23:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159359</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217085</attachid>
            <date>2013-11-15 14:11:50 -0800</date>
            <delta_ts>2013-11-15 14:20:07 -0800</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36934</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTE1ZDhlZi4uNzQ0MGZiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTc5OCw3ICs3OTgsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5j
cHAKLSAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleFdyaXRlci5jcHAKICAgICBNb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXkuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5j
cHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKQEAgLTgxOCw2ICs4MTcs
NyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJCYWNraW5nU3RvcmVMZXZlbERCLmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCQmFja2luZ1N0b3JlVHJhbnNhY3Rpb25MZXZlbERCLmNwcAogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmNwcAorICAgIE1vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCSW5kZXhXcml0ZXJMZXZlbERCLmNwcAogICAgIE1vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCLmNwcAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDI3MjQ3Yi4uYjRhNzc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEzLTExLTE1
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBNYWtlIElEQklu
ZGV4V3JpdGVyIGEgTGV2ZWxEQiBzcGVjaWZpYyBjb25jZXB0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ0MzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIHJlbmFtaW5nIHRoZSBj
bGFzcyBhbmQgbW92aW5nIGl0IGludG8gdGhlIGxldmVsZGIgc3ViZGlyZWN0b3J5LgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcDoKKwor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjptYWtlSW5k
ZXhXcml0ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tp
bmdTdG9yZUxldmVsREIuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCSW5kZXhXcml0ZXJMZXZlbERCLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4V3JpdGVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OklE
QkluZGV4V3JpdGVyTGV2ZWxEQjo6SURCSW5kZXhXcml0ZXJMZXZlbERCKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkluZGV4V3JpdGVyTGV2ZWxEQjo6d3JpdGVJbmRleEtleXMpOgorICAgICAgICAo
V2ViQ29yZTo6SURCSW5kZXhXcml0ZXJMZXZlbERCOjp2ZXJpZnlJbmRleEtleXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCSW5kZXhXcml0ZXJMZXZlbERCOjphZGRpbmdLZXlBbGxvd2VkKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkluZGV4V3JpdGVyTGV2ZWxEQi5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhX
cml0ZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4V3JpdGVyTGV2ZWxEQjo6Y3JlYXRl
KToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVj
dGlvbkxldmVsREIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyQ29ubmVjdGlvbkxl
dmVsREI6OnNldEluZGV4S2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXJDb25uZWN0
aW9uTGV2ZWxEQjo6cHV0KToKKworMjAxMy0xMS0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKICAgICAgICAgUmVtb3ZlIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIGlu
Y2x1ZGVzIHRoYXQgYXJlIG5vIGxvbmdlciBuZWVkZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDQzMwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCA1NjJiMTgyLi5kMGY3ZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTE3OTYsNiArMTc5Niw4IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxl
dmVsREIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbkxldmVsREIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uTGV2ZWxEQi5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkluZGV4V3Jp
dGVyTGV2ZWxEQi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCSW5kZXhXcml0ZXJMZXZlbERCLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25MZXZl
bERCLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5o
IFwKQEAgLTE4MjYsOCArMTgyOCw2IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJIaXN0b2dyYW1zLmggXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaCBcCi0JU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCSW5kZXhXcml0ZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleFdyaXRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UuaAppbmRleCAyYzhkMGY4Li5hZWVlYzE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmVJbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5n
U3RvcmVJbnRlcmZhY2UuaApAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIElEQkluZGV4V3JpdGVyOworY2xhc3MgSURCSW5kZXhXcml0ZXJMZXZlbERCOwog
Y2xhc3MgSURCS2V5OwogY2xhc3MgSURCS2V5UGF0aDsKIGNsYXNzIElEQktleVJhbmdlOwpAQCAt
OTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldEtleUdlbmVyYXRvckN1
cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rpb25JbnRlcmZhY2UmLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCYga2V5R2VuZXJhdG9y
Q3VycmVudE51bWJlcikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBtYXliZVVwZGF0ZUtleUdlbmVy
YXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rpb25JbnRlcmZhY2UmLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBuZXdTdGF0
ZSwgYm9vbCBjaGVja0N1cnJlbnQpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBtYWtlSW5kZXhX
cml0ZXJzKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJ
REJPYmplY3RTdG9yZU1ldGFkYXRhJiwgSURCS2V5JiBwcmltYXJ5S2V5LCBib29sIGtleVdhc0dl
bmVyYXRlZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPFZl
Y3RvcjxSZWZQdHI8SURCS2V5Pj4+JiwgVmVjdG9yPFJlZlB0cjxJREJJbmRleFdyaXRlcj4+JiBp
bmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgbWFrZUluZGV4V3JpdGVycyhpbnQ2NF90IHRyYW5zYWN0aW9uSUQs
IGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYsIElEQktl
eSYgcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8UmVmUHRyPElEQktleT4+PiYsIFZlY3Rv
cjxSZWZQdHI8SURCSW5kZXhXcml0ZXJMZXZlbERCPj4mIGluZGV4V3JpdGVycywgU3RyaW5nKiBl
cnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkgPSAwOwogCiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQktleT4gZ2VuZXJhdGVLZXkoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
dXBkYXRlS2V5R2VuZXJhdG9yKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBib29sIGNoZWNrQ3Vy
cmVudCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCSW5kZXhXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
SW5kZXhXcml0ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1M2FmMzYwLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4V3Jp
dGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICAgICAgICAgICAg
ICAgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJREJJbmRleFdyaXRlci5oIgotCi0jaW5jbHVkZSAi
SURCS2V5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi0jaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSURCSW5kZXhXcml0ZXI6
OklEQkluZGV4V3JpdGVyKGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIG1ldGFkYXRhLCBjb25zdCBJ
bmRleEtleXMmIGtleXMpCi0gICAgOiBtX2luZGV4TWV0YWRhdGEobWV0YWRhdGEpCi0gICAgLCBt
X2luZGV4S2V5cyhrZXlzKQotewotfQotCi12b2lkIElEQkluZGV4V3JpdGVyOjp3cml0ZUluZGV4
S2V5cyhjb25zdCBJREJSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlmaWVyLCBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2UmIGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rp
b25JbnRlcmZhY2UmIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCkgY29uc3QKLXsKLSAgICBBU1NFUlQocmVjb3JkSWRlbnRpZmllcik7Ci0gICAg
aW50NjRfdCBpbmRleElkID0gbV9pbmRleE1ldGFkYXRhLmlkOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9pbmRleEtleXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYm9vbCBvayA9IGJh
Y2tpbmdTdG9yZS5wdXRJbmRleERhdGFGb3JSZWNvcmQodHJhbnNhY3Rpb24sIGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlSWQsIGluZGV4SWQsICoobV9pbmRleEtleXMpW2ldLmdldCgpLCByZWNvcmRJ
ZGVudGlmaWVyKTsKLSAgICAgICAgLy8gVGhpcyBzaG91bGQgaGF2ZSBhbHJlYWR5IGJlZW4gdmVy
aWZpZWQgYXMgYSB2YWxpZCB3cml0ZSBkdXJpbmcgdmVyaWZ5SW5kZXhLZXlzLgotICAgICAgICBB
U1NFUlRfVU5VU0VEKG9rLCBvayk7Ci0gICAgfQotfQotCi1ib29sIElEQkluZGV4V3JpdGVyOjp2
ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiBiYWNraW5nU3RvcmUsIElE
QkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uSW50ZXJmYWNlJiB0cmFuc2FjdGlvbiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgYm9vbCYg
Y2FuQWRkS2V5cywgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBTdHJpbmcqIGVycm9yTWVzc2Fn
ZSkgY29uc3QKLXsKLSAgICBjYW5BZGRLZXlzID0gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkgewotICAgICAgICBib29sIG9rID0gYWRk
aW5nS2V5QWxsb3dlZChiYWNraW5nU3RvcmUsIHRyYW5zYWN0aW9uLCBkYXRhYmFzZUlkLCBvYmpl
Y3RTdG9yZUlkLCBpbmRleElkLCAobV9pbmRleEtleXMpW2ldLmdldCgpLCBwcmltYXJ5S2V5LCBj
YW5BZGRLZXlzKTsKLSAgICAgICAgaWYgKCFvaykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgaWYgKCFjYW5BZGRLZXlzKSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3JNZXNzYWdl
KQotICAgICAgICAgICAgICAgICplcnJvck1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiVW5hYmxl
IHRvIGFkZCBrZXkgdG8gaW5kZXggJyVzJzogYXQgbGVhc3Qgb25lIGtleSBkb2VzIG5vdCBzYXRp
c2Z5IHRoZSB1bmlxdWVuZXNzIHJlcXVpcmVtZW50cy4iLCBtX2luZGV4TWV0YWRhdGEubmFtZS51
dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
fQotICAgIGNhbkFkZEtleXMgPSB0cnVlOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIElE
QkluZGV4V3JpdGVyOjphZGRpbmdLZXlBbGxvd2VkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYg
YmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVUcmFuc2FjdGlvbkludGVyZmFjZSYgdHJhbnNh
Y3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhLZXksIGNvbnN0IElEQktleSogcHJpbWFyeUtl
eSwgYm9vbCYgYWxsb3dlZCkgY29uc3QKLXsKLSAgICBhbGxvd2VkID0gZmFsc2U7Ci0gICAgaWYg
KCFtX2luZGV4TWV0YWRhdGEudW5pcXVlKSB7Ci0gICAgICAgIGFsbG93ZWQgPSB0cnVlOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8SURCS2V5PiBmb3VuZFByaW1h
cnlLZXk7Ci0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgIGJvb2wgb2sgPSBiYWNraW5nU3Rv
cmUua2V5RXhpc3RzSW5JbmRleCh0cmFuc2FjdGlvbiwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJ
ZCwgaW5kZXhJZCwgKmluZGV4S2V5LCBmb3VuZFByaW1hcnlLZXksIGZvdW5kKTsKLSAgICBpZiAo
IW9rKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFmb3VuZCB8fCAocHJpbWFyeUtl
eSAmJiBmb3VuZFByaW1hcnlLZXktPmlzRXF1YWwocHJpbWFyeUtleSkpKQotICAgICAgICBhbGxv
d2VkID0gdHJ1ZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4V3JpdGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleFdyaXRlci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzMTYwYTRiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4V3JpdGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiAgICAgICAgICAgICAgIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQkluZGV4V3JpdGVyX2gKLSNkZWZpbmUgSURC
SW5kZXhXcml0ZXJfaAotCi0jaW5jbHVkZSAiSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgiCi0j
aW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kLmgiCi0jaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIK
LSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPElEQktl
eT4+IEluZGV4S2V5czsKLQotY2xhc3MgSURCSW5kZXhXcml0ZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJREJJbmRleFdyaXRlcj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQklu
ZGV4V3JpdGVyPiBjcmVhdGUoY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSwg
Y29uc3QgSW5kZXhLZXlzJiBpbmRleEtleXMpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IElEQkluZGV4V3JpdGVyKGluZGV4TWV0YWRhdGEsIGluZGV4S2V5cykpOwotICAgIH0K
LQotICAgIGJvb2wgdmVyaWZ5SW5kZXhLZXlzKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYsIElE
QkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uSW50ZXJmYWNlJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgYm9vbCYgY2FuQWRkS2V5cywg
Y29uc3QgSURCS2V5KiBwcmltYXJ5S2V5ID0gMCwgU3RyaW5nKiBlcnJvck1lc3NhZ2UgPSAwKSBj
b25zdCBXQVJOX1VOVVNFRF9SRVRVUk47Ci0KLSAgICB2b2lkIHdyaXRlSW5kZXhLZXlzKGNvbnN0
IElEQlJlY29yZElkZW50aWZpZXIqLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmLCBJREJCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbkludGVyZmFjZSYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBJREJJbmRleFdyaXRlcihj
b25zdCBJREJJbmRleE1ldGFkYXRhJiwgY29uc3QgSW5kZXhLZXlzJik7Ci0KLSAgICBib29sIGFk
ZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb25JbnRlcmZhY2UmLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkqIGluZGV4S2V5LCBjb25zdCBJ
REJLZXkqIHByaW1hcnlLZXksIGJvb2wmIGFsbG93ZWQpIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVS
TjsKLQotICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEgbV9pbmRleE1ldGFkYXRhOwotICAgIElu
ZGV4S2V5cyBtX2luZGV4S2V5czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotI2VuZGlmIC8vIElEQkluZGV4V3JpdGVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHAKaW5kZXggZmQ0NmM3Yy4u
YmE0MzQ3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCkBAIC0y
OCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kLmgiCiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VDYWxsYmFja3MuaCIKLSNpbmNsdWRlICJJREJJbmRleFdyaXRlci5oIgogI2lu
Y2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCUmVjb3JkSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIklEQlNlcnZlckNvbm5lY3Rpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9y
ZUxldmVsREIuY3BwCmluZGV4IDA2MDU0NjkuLmUzMDg0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNr
aW5nU3RvcmVMZXZlbERCLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkhpc3RvZ3Jh
bVN1cHBvcnQuaCIKICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmVDdXJzb3JMZXZlbERCLmgiCiAj
aW5jbHVkZSAiSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rpb25MZXZlbERCLmgiCi0jaW5jbHVkZSAi
SURCSW5kZXhXcml0ZXIuaCIKKyNpbmNsdWRlICJJREJJbmRleFdyaXRlckxldmVsREIuaCIKICNp
bmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURC
S2V5UmFuZ2UuaCIKQEAgLTEzODMsNyArMTM4Myw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6a2V5RXhpc3RzSW5JbmRleChJREJCYWNraW5nU3RvcmVUcmFuc2FjdGlvbkludGVyZmFj
CiB9CiAKIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKGlu
dDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBkYXRhYmFzZUlELCBjb25zdCBJREJPYmplY3RT
dG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgSURCS2V5JiBwcmltYXJ5S2V5LCBib29sIGtleVdh
c0dlbmVyYXRlZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElEcywgY29uc3QgVmVjdG9y
PEluZGV4S2V5cz4mIGluZGV4S2V5cywgVmVjdG9yPFJlZlB0cjxJREJJbmRleFdyaXRlcj4+JiBp
bmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpCitib29s
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om1ha2VJbmRleFdyaXRlcnMoaW50NjRfdCB0cmFuc2Fj
dGlvbklELCBpbnQ2NF90IGRhdGFiYXNlSUQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEm
IG9iamVjdFN0b3JlLCBJREJLZXkmIHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SURzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYg
aW5kZXhLZXlzLCBWZWN0b3I8UmVmUHRyPElEQkluZGV4V3JpdGVyTGV2ZWxEQj4+JiBpbmRleFdy
aXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpCiB7CiAgICAgQVNT
RVJUKGluZGV4SURzLnNpemUoKSA9PSBpbmRleEtleXMuc2l6ZSgpKTsKICAgICBjb21wbGV0ZWQg
PSBmYWxzZTsKQEAgLTE0MDAsNyArMTQwMCw3IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6bWFrZUluZGV4V3JpdGVycyhpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGludDY0X3QgZGF0CiAg
ICAgICAgIGlmIChrZXlXYXNHZW5lcmF0ZWQgJiYgKGluZGV4LmtleVBhdGggPT0gb2JqZWN0U3Rv
cmUua2V5UGF0aCkpCiAgICAgICAgICAgICBrZXlzLmFwcGVuZCgmcHJpbWFyeUtleSk7CiAKLSAg
ICAgICAgUmVmUHRyPElEQkluZGV4V3JpdGVyPiBpbmRleFdyaXRlciA9IElEQkluZGV4V3JpdGVy
OjpjcmVhdGUoaW5kZXgsIGtleXMpOworICAgICAgICBSZWZQdHI8SURCSW5kZXhXcml0ZXJMZXZl
bERCPiBpbmRleFdyaXRlciA9IElEQkluZGV4V3JpdGVyTGV2ZWxEQjo6Y3JlYXRlKGluZGV4LCBr
ZXlzKTsKICAgICAgICAgYm9vbCBjYW5BZGRLZXlzID0gZmFsc2U7CiAgICAgICAgIEFTU0VSVCht
X2JhY2tpbmdTdG9yZVRyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbklEKSk7CiAgICAg
ICAgIGJvb2wgYmFja2luZ1N0b3JlU3VjY2VzcyA9IGluZGV4V3JpdGVyLT52ZXJpZnlJbmRleEtl
eXMoKnRoaXMsICptX2JhY2tpbmdTdG9yZVRyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JRCks
IGRhdGFiYXNlSUQsIG9iamVjdFN0b3JlLmlkLCBpbmRleC5pZCwgY2FuQWRkS2V5cywgJnByaW1h
cnlLZXksIGVycm9yTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCmlu
ZGV4IDBjNjk1MDAuLjRlZjIwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5o
CkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmVDdXJzb3JJbnRlcmZhY2U+IG9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbkludGVyZmFjZSYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVDdXJzb3JJbnRlcmZhY2U+IG9wZW5JbmRleEN1cnNvcihJREJCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbkludGVyZmFjZSYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIG1ha2VJ
bmRleFdyaXRlcnMoaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNv
bnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBJREJLZXkmIHByaW1hcnlLZXksIGJvb2wga2V5
V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0
b3I8SW5kZXhLZXlzPiYsIFZlY3RvcjxSZWZQdHI8SURCSW5kZXhXcml0ZXI+PiYgaW5kZXhXcml0
ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKSBPVkVSUklERSBXQVJO
X1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIG1ha2VJbmRleFdyaXRlcnMoaW50NjRf
dCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3Jl
TWV0YWRhdGEmLCBJREJLZXkmIHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYsIFZl
Y3RvcjxSZWZQdHI8SURCSW5kZXhXcml0ZXJMZXZlbERCPj4mIGluZGV4V3JpdGVycywgU3RyaW5n
KiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkgT1ZFUlJJREUgV0FSTl9VTlVTRURfUkVU
VVJOOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gZ2VuZXJhdGVLZXkoSURCVHJh
bnNhY3Rpb25CYWNrZW5kJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVLZXlHZW5lcmF0b3IoSURCVHJh
bnNhY3Rpb25CYWNrZW5kJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQktleSYsIGJvb2wgY2hlY2tDdXJyZW50KSBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCSW5kZXhXcml0
ZXJMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCSW5kZXhXcml0ZXJMZXZlbERCLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wNTA3NjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJJbmRleFdyaXRlckxldmVsREIuY3BwCkBAIC0wLDAgKzEsOTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICAgICAgICAgICAgICAgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJJbmRleFdy
aXRlckxldmVsREIuaCIKKworI2luY2x1ZGUgIklEQktleS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2lmIFVTRShMRVZF
TERCKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lEQkluZGV4V3JpdGVyTGV2ZWxEQjo6SURC
SW5kZXhXcml0ZXJMZXZlbERCKGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIG1ldGFkYXRhLCBjb25z
dCBJbmRleEtleXMmIGtleXMpCisgICAgOiBtX2luZGV4TWV0YWRhdGEobWV0YWRhdGEpCisgICAg
LCBtX2luZGV4S2V5cyhrZXlzKQoreworfQorCit2b2lkIElEQkluZGV4V3JpdGVyTGV2ZWxEQjo6
d3JpdGVJbmRleEtleXMoY29uc3QgSURCUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRpZmll
ciwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uSW50ZXJmYWNlJiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0Cit7CisgICAgQVNTRVJUKHJlY29yZElkZW50aWZp
ZXIpOworICAgIGludDY0X3QgaW5kZXhJZCA9IG1faW5kZXhNZXRhZGF0YS5pZDsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1faW5kZXhLZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGJv
b2wgb2sgPSBiYWNraW5nU3RvcmUucHV0SW5kZXhEYXRhRm9yUmVjb3JkKHRyYW5zYWN0aW9uLCBk
YXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkLCAqKG1faW5kZXhLZXlzKVtpXS5nZXQo
KSwgcmVjb3JkSWRlbnRpZmllcik7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGhhdmUgYWxyZWFk
eSBiZWVuIHZlcmlmaWVkIGFzIGEgdmFsaWQgd3JpdGUgZHVyaW5nIHZlcmlmeUluZGV4S2V5cy4K
KyAgICAgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworICAgIH0KK30KKworYm9vbCBJREJJbmRl
eFdyaXRlckxldmVsREI6OnZlcmlmeUluZGV4S2V5cyhJREJCYWNraW5nU3RvcmVJbnRlcmZhY2Um
IGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rpb25JbnRlcmZhY2UmIHRyYW5z
YWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlLZXksIFN0
cmluZyogZXJyb3JNZXNzYWdlKSBjb25zdAoreworICAgIGNhbkFkZEtleXMgPSBmYWxzZTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faW5kZXhLZXlzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIGJvb2wgb2sgPSBhZGRpbmdLZXlBbGxvd2VkKGJhY2tpbmdTdG9yZSwgdHJhbnNhY3Rpb24s
IGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIChtX2luZGV4S2V5cylbaV0uZ2V0
KCksIHByaW1hcnlLZXksIGNhbkFkZEtleXMpOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWNhbkFkZEtleXMpIHsKKyAgICAgICAgICAg
IGlmIChlcnJvck1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKmVycm9yTWVzc2FnZSA9IFN0cmlu
Zzo6Zm9ybWF0KCJVbmFibGUgdG8gYWRkIGtleSB0byBpbmRleCAnJXMnOiBhdCBsZWFzdCBvbmUg
a2V5IGRvZXMgbm90IHNhdGlzZnkgdGhlIHVuaXF1ZW5lc3MgcmVxdWlyZW1lbnRzLiIsIG1faW5k
ZXhNZXRhZGF0YS5uYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2FuQWRkS2V5cyA9IHRydWU7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgSURCSW5kZXhXcml0ZXJMZXZlbERCOjphZGRpbmdLZXlBbGxvd2VkKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZSYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbkludGVyZmFjZSYgdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhLZXks
IGNvbnN0IElEQktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QKK3sKKyAgICBh
bGxvd2VkID0gZmFsc2U7CisgICAgaWYgKCFtX2luZGV4TWV0YWRhdGEudW5pcXVlKSB7CisgICAg
ICAgIGFsbG93ZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBS
ZWZQdHI8SURCS2V5PiBmb3VuZFByaW1hcnlLZXk7CisgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwor
ICAgIGJvb2wgb2sgPSBiYWNraW5nU3RvcmUua2V5RXhpc3RzSW5JbmRleCh0cmFuc2FjdGlvbiwg
ZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwgKmluZGV4S2V5LCBmb3VuZFByaW1h
cnlLZXksIGZvdW5kKTsKKyAgICBpZiAoIW9rKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFmb3VuZCB8fCAocHJpbWFyeUtleSAmJiBmb3VuZFByaW1hcnlLZXktPmlzRXF1YWwocHJp
bWFyeUtleSkpKQorICAgICAgICBhbGxvd2VkID0gdHJ1ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTEVWRUxEQikKKyNl
bmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCSW5kZXhXcml0ZXJMZXZlbERCLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkluZGV4V3JpdGVyTGV2
ZWxEQi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MWUyNmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkluZGV4V3JpdGVyTGV2ZWxEQi5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAg
ICAgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgSURCSW5kZXhXcml0ZXJMZXZlbERCX2gKKyNkZWZpbmUgSURCSW5kZXhXcml0ZXJMZXZlbERC
X2gKKworI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIgorI2luY2x1ZGUgIklE
QkRhdGFiYXNlQmFja2VuZC5oIgorI2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2lmIFVT
RShMRVZFTERCKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgVmVjdG9yPFJlZlB0
cjxJREJLZXk+PiBJbmRleEtleXM7CisKK2NsYXNzIElEQkluZGV4V3JpdGVyTGV2ZWxEQiA6IHB1
YmxpYyBSZWZDb3VudGVkPElEQkluZGV4V3JpdGVyTGV2ZWxEQj4geworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPElEQkluZGV4V3JpdGVyTGV2ZWxEQj4gY3JlYXRlKGNvbnN0IElEQklu
ZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEsIGNvbnN0IEluZGV4S2V5cyYgaW5kZXhLZXlzKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJJbmRleFdyaXRlckxldmVsREIo
aW5kZXhNZXRhZGF0YSwgaW5kZXhLZXlzKSk7CisgICAgfQorCisgICAgYm9vbCB2ZXJpZnlJbmRl
eEtleXMoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rp
b25JbnRlcmZhY2UmLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1hcnlL
ZXkgPSAwLCBTdHJpbmcqIGVycm9yTWVzc2FnZSA9IDApIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVS
TjsKKworICAgIHZvaWQgd3JpdGVJbmRleEtleXMoY29uc3QgSURCUmVjb3JkSWRlbnRpZmllcios
IElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYsIElEQkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uSW50
ZXJmYWNlJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0
OworCitwcml2YXRlOgorICAgIElEQkluZGV4V3JpdGVyTGV2ZWxEQihjb25zdCBJREJJbmRleE1l
dGFkYXRhJiwgY29uc3QgSW5kZXhLZXlzJik7CisKKyAgICBib29sIGFkZGluZ0tleUFsbG93ZWQo
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rpb25JbnRl
cmZhY2UmLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBJREJLZXkqIGluZGV4S2V5LCBjb25zdCBJREJLZXkqIHByaW1hcnlL
ZXksIGJvb2wmIGFsbG93ZWQpIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVSTjsKKworICAgIGNvbnN0
IElEQkluZGV4TWV0YWRhdGEgbV9pbmRleE1ldGFkYXRhOworICAgIEluZGV4S2V5cyBtX2luZGV4
S2V5czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICNpZiBVU0Uo
TEVWRUxEQikKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNlbmRpZiAvLyBJ
REJJbmRleFdyaXRlckxldmVsREJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25M
ZXZlbERCLmNwcAppbmRleCA5MGNiMjI3Li4zMzhlN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERC
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlNl
cnZlckNvbm5lY3Rpb25MZXZlbERCLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIklE
QkJhY2tpbmdTdG9yZUxldmVsREIuaCIKICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbkxldmVsREIuaCIKICNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kLmgiCi0jaW5jbHVkZSAi
SURCSW5kZXhXcml0ZXIuaCIKKyNpbmNsdWRlICJJREJJbmRleFdyaXRlckxldmVsREIuaCIKICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjZGVmaW5lIEFTWU5DX0NPTVBMRVRJT05fQ0FM
TEJBQ0soY2FsbGJhY2ssIGFyZykgXApAQCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgSURCU2VydmVy
Q29ubmVjdGlvbkxldmVsREI6OnNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGlu
dDY0X3QgZGF0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBWZWN0b3I8UmVmUHRyPElE
QkluZGV4V3JpdGVyPj4gaW5kZXhXcml0ZXJzOworICAgIFZlY3RvcjxSZWZQdHI8SURCSW5kZXhX
cml0ZXJMZXZlbERCPj4gaW5kZXhXcml0ZXJzOwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAg
ICAgYm9vbCBvYmV5c0NvbnN0cmFpbnRzID0gZmFsc2U7CiAKQEAgLTE4MSw3ICsxODEsNyBAQCB2
b2lkIElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCOjpzZXRJbmRleEtleXMoaW50NjRfdCB0cmFu
c2FjdGlvbklELCBpbnQ2NF90IGRhdAogICAgIH0KIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgaW5kZXhXcml0ZXJzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIElEQkluZGV4V3JpdGVyKiBp
bmRleFdyaXRlciA9IGluZGV4V3JpdGVyc1tpXS5nZXQoKTsKKyAgICAgICAgSURCSW5kZXhXcml0
ZXJMZXZlbERCKiBpbmRleFdyaXRlciA9IGluZGV4V3JpdGVyc1tpXS5nZXQoKTsKICAgICAgICAg
aW5kZXhXcml0ZXItPndyaXRlSW5kZXhLZXlzKHJlY29yZElkZW50aWZpZXIuZ2V0KCksICptX2Jh
Y2tpbmdTdG9yZSwgKmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLCBkYXRhYmFzZUlELCBvYmplY3RT
dG9yZUlEKTsKICAgICB9CiAKQEAgLTM3OCw3ICszNzgsNyBAQCB2b2lkIElEQlNlcnZlckNvbm5l
Y3Rpb25MZXZlbERCOjpwdXQoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiB0cmFuc2FjdGlvbiwgY29u
c3QgUAogICAgICAgICB9CiAgICAgfQogCi0gICAgVmVjdG9yPFJlZlB0cjxJREJJbmRleFdyaXRl
cj4+IGluZGV4V3JpdGVyczsKKyAgICBWZWN0b3I8UmVmUHRyPElEQkluZGV4V3JpdGVyTGV2ZWxE
Qj4+IGluZGV4V3JpdGVyczsKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAgIGJvb2wgb2Jl
eXNDb25zdHJhaW50cyA9IGZhbHNlOwogICAgIGJvb2wgYmFja2luZ1N0b3JlU3VjY2VzcyA9IG1f
YmFja2luZ1N0b3JlLT5tYWtlSW5kZXhXcml0ZXJzKHRyYW5zYWN0aW9uLmlkKCksIHRyYW5zYWN0
aW9uLmRhdGFiYXNlKCkuaWQoKSwgb3BlcmF0aW9uLm9iamVjdFN0b3JlKCksICprZXksIGtleVdh
c0dlbmVyYXRlZCwgb3BlcmF0aW9uLmluZGV4SURzKCksIG9wZXJhdGlvbi5pbmRleEtleXMoKSwg
aW5kZXhXcml0ZXJzLCAmZXJyb3JNZXNzYWdlLCBvYmV5c0NvbnN0cmFpbnRzKTsKQEAgLTQwMiw3
ICs0MDIsNyBAQCB2b2lkIElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCOjpwdXQoSURCVHJhbnNh
Y3Rpb25CYWNrZW5kJiB0cmFuc2FjdGlvbiwgY29uc3QgUAogICAgIH0KIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgaW5kZXhXcml0ZXJzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIElEQklu
ZGV4V3JpdGVyKiBpbmRleFdyaXRlciA9IGluZGV4V3JpdGVyc1tpXS5nZXQoKTsKKyAgICAgICAg
SURCSW5kZXhXcml0ZXJMZXZlbERCKiBpbmRleFdyaXRlciA9IGluZGV4V3JpdGVyc1tpXS5nZXQo
KTsKICAgICAgICAgaW5kZXhXcml0ZXItPndyaXRlSW5kZXhLZXlzKHJlY29yZElkZW50aWZpZXIu
Z2V0KCksICptX2JhY2tpbmdTdG9yZSwgKmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLCB0cmFuc2Fj
dGlvbi5kYXRhYmFzZSgpLmlkKCksIG9wZXJhdGlvbi5vYmplY3RTdG9yZSgpLmlkKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2YTY1ZmMwLi5kOWM0OTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjQ1LDYgKzE2NDUsOCBAQAogCQk1MEUx
OENEQTE2RjkyODU4MDBDNjU0ODYgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtQ2FjaGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwRTE4Q0Q3MTZG
OTI4NTgwMEM2NTQ4NiAvKiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW1DYWNoZS5oICovOyB9Owog
CQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTg0NjcwQjA4NjAyQTAwNEE4MjVG
IC8qIENhY2hlZFBhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MTAxODQ2QTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxODQ2ODBCMDg2
MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgKi87IH07CisJCTUxMDE5NDQwMTgzNkQyMDgw
MDkyNTUyMyAvKiBJREJJbmRleFdyaXRlckxldmVsREIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTk0M0UxODM2RDIwODAwOTI1NTIzIC8qIElE
QkluZGV4V3JpdGVyTGV2ZWxEQi5jcHAgKi87IH07CisJCTUxMDE5NDQxMTgzNkQyMDgwMDkyNTUy
MyAvKiBJREJJbmRleFdyaXRlckxldmVsREIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5NDNGMTgzNkQyMDgwMDkyNTUyMyAvKiBJREJJbmRleFdy
aXRlckxldmVsREIuaCAqLzsgfTsKIAkJNTEwNTlEREQxODIwQjE3NjAwREZGOUIxIC8qIElEQlRy
YW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNTlERDkxODIwQjE3NjAwREZGOUIxIC8qIElEQlRyYW5z
YWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwICovOyB9OwogCQk1MTA1OURERTE4MjBCMTc2MDBE
RkY5QjEgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNTlEREExODIwQjE3NjAwREZGOUIx
IC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuaCAqLzsgfTsKIAkJNTEwQTMyNkYx
ODMxODQzMTAwM0M1MzI2IC8qIElEQlNlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEEzMjZFMTgzMTg0MzEwMDNDNTMyNiAv
KiBJREJTZXJ2ZXJDb25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE2NTUsOCArMTY1Nyw2IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUw
MDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmggKi87IH07CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1I
YW5kbGVDbGllbnQuaCAqLzsgfTsKLQkJNTEwRUM0MkExODE3MEM3NTAwQzg5N0Q2IC8qIElEQklu
ZGV4V3JpdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMEVDNDI4MTgxNzBDNzUwMEM4OTdENiAvKiBJREJJbmRleFdyaXRlci5jcHAgKi87IH07
Ci0JCTUxMEVDNDJCMTgxNzBDNzUwMEM4OTdENiAvKiBJREJJbmRleFdyaXRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRUM0MjkxODE3MEM3NTAw
Qzg5N0Q2IC8qIElEQkluZGV4V3JpdGVyLmggKi87IH07CiAJCTUxMTI5MzVGM0Q1NEI0QjUyRkFG
OTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEyOTM2MTNENkRCNEI1MkZBRjk3M0YgLyog
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwICovOyB9OwogCQk1MTEyOTM2MDNENjBCNEI1
MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTI5MzYyM0Q4NUI0QjUyRkFGOTczRiAv
KiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICovOyB9OwogCQk1MTFFRjJDMDE3RjBGRDM1
MDBFNEZBMTYgLyogSlNJREJBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExRUYyQTgxN0YwRkM0ODAwRTRGQTE2IC8qIEpTSURCQW55LmNwcCAq
LzsgfTsKQEAgLTgzNDIsNiArODM0Miw4IEBACiAJCTUwRTE4Q0Q3MTZGOTI4NTgwMEM2NTQ4NiAv
KiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW1DYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW1DYWNoZS5oOyBwYXRoID0gc3R5bGUv
U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwMTg0NjcwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUGFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTAxODQ2ODBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRQYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMTk0M0UxODM2RDIwODAwOTI1NTIzIC8qIElEQklu
ZGV4V3JpdGVyTGV2ZWxEQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJREJJbmRleFdyaXRlckxldmVsREIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MTAxOTQzRjE4MzZEMjA4MDA5MjU1MjMgLyogSURCSW5kZXhXcml0ZXJMZXZlbERCLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkluZGV4V3JpdGVyTGV2ZWxEQi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1OUREOTE4MjBCMTc2MDBERkY5QjEgLyog
SURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTlEREExODIwQjE3NjAwREZGOUIxIC8qIElE
QlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTBBMzI2RTE4MzE4NDMxMDAzQzUzMjYgLyogSURCU2VydmVyQ29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJ2ZXJDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzUyLDggKzgzNTQsNiBA
QAogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwRDRBMzExMDMxNjVF
RTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVh
bUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTBFQzQyODE4
MTcwQzc1MDBDODk3RDYgLyogSURCSW5kZXhXcml0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSURCSW5kZXhXcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1MTBFQzQyOTE4MTcwQzc1MDBDODk3RDYgLyogSURCSW5kZXhXcml0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCSW5kZXhXcml0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8qIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVGMkE4
MTdGMEZDNDgwMEU0RkExNiAvKiBKU0lEQkFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lE
QkFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE1Myw2ICsxNTE1Myw4
IEBACiAJCQkJNTE2NjBBQkYxODI4Qzg0NjAwMDc0Q0FEIC8qIElEQkJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uTGV2ZWxEQi5oICovLAogCQkJCTUxNjYwQUIyMTgyOEJCODIwMDA3NENBRCAvKiBJREJG
YWN0b3J5QmFja2VuZExldmVsREIuY3BwICovLAogCQkJCTUxNjYwQUIzMTgyOEJCODIwMDA3NENB
RCAvKiBJREJGYWN0b3J5QmFja2VuZExldmVsREIuaCAqLywKKwkJCQk1MTAxOTQzRTE4MzZEMjA4
MDA5MjU1MjMgLyogSURCSW5kZXhXcml0ZXJMZXZlbERCLmNwcCAqLywKKwkJCQk1MTAxOTQzRjE4
MzZEMjA4MDA5MjU1MjMgLyogSURCSW5kZXhXcml0ZXJMZXZlbERCLmggKi8sCiAJCQkJNTE2NjBB
QjQxODI4QkI4MjAwMDc0Q0FEIC8qIElEQkxldmVsREJDb2RpbmcuY3BwICovLAogCQkJCTUxNjYw
QUI1MTgyOEJCODIwMDA3NENBRCAvKiBJREJMZXZlbERCQ29kaW5nLmggKi8sCiAJCQkJNTE2NEVE
NDExODMyMDhDNzAwRUE4RkYxIC8qIElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCLmNwcCAqLywK
QEAgLTE3MDE3LDggKzE3MDE5LDYgQEAKIAkJCQk1MUQ3MTk4RTE4MTEwNkUwMDAxNkRDNTEgLyog
SURCSW5kZXguY3BwICovLAogCQkJCTUxRDcxOThGMTgxMTA2RTAwMDE2REM1MSAvKiBJREJJbmRl
eC5oICovLAogCQkJCTUxRDcxOTkwMTgxMTA2RTAwMDE2REM1MSAvKiBJREJJbmRleC5pZGwgKi8s
Ci0JCQkJNTEwRUM0MjgxODE3MEM3NTAwQzg5N0Q2IC8qIElEQkluZGV4V3JpdGVyLmNwcCAqLywK
LQkJCQk1MTBFQzQyOTE4MTcwQzc1MDBDODk3RDYgLyogSURCSW5kZXhXcml0ZXIuaCAqLywKIAkJ
CQk1MUQ3MTk5MTE4MTEwNkUwMDAxNkRDNTEgLyogSURCS2V5LmNwcCAqLywKIAkJCQk1MUQ3MTk5
MjE4MTEwNkUwMDAxNkRDNTEgLyogSURCS2V5LmggKi8sCiAJCQkJNTFENzE5OTMxODExMDZFMDAw
MTZEQzUxIC8qIElEQktleVBhdGguY3BwICovLApAQCAtMjM4OTksNiArMjM4OTksNyBAQAogCQkJ
CTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0UxQzQxQjBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MjM5RTAxMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MTAxOTQ0MTE4MzZEMjA4MDA5MjU1MjMgLyogSURCSW5kZXhXcml0ZXJM
ZXZlbERCLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NFNDcgLyog
TG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4NzA1
NjMxNkU1NEEwRDAwNTg1RTk3IC8qIE1haW5UaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQThGNkJDNjBEQjU1Q0RDMDAxREI3OTQgLyogTWFuaWZlc3RQYXJzZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjQ3MDQsNyArMjQ3MDUsNiBAQAogCQkJCUIyMjI3QTE4MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QTFCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGb250RmFjZU5hbWVFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0ExRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRm9udEZhY2VTcmNFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTBFQzQyQjE4MTcwQzc1MDBDODk3RDYgLyogSURC
SW5kZXhXcml0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTIxMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdGb250RmFjZVVyaUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTI0
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBMjcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0dFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI2MDUzLDYgKzI2MDUzLDcgQEAKIAkJCQlBOUM2RTRFRjBENzQ1RTM4MDA2
NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODVGNTZBN0Iw
QTk4Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQzU3MzM2MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNTEwMTk0NDAxODM2RDIwODAwOTI1NTIzIC8qIElEQkluZGV4
V3JpdGVyTGV2ZWxEQi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTM4RjA1QzBBRDcyMkYxMDA2
QTgxRDEgLyogRE9NUmFuZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NThDMzhBODBBQThGMjA0
MDBCMTg3QTQgLyogRE9NUmVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDQUVGQ0FFMTAxNkNF
NEEwMDQwRDM0RSAvKiBET01SR0JDb2xvci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjc4ODksNyAr
Mjc4OTAsNiBAQAogCQkJCUIyMjI3QTA1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRVRpbGVFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTA4MEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0NUU3MkZCMEZE
MjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTEwRUM0
MkExODE3MEM3NTAwQzg5N0Q2IC8qIElEQkluZGV4V3JpdGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA4MUVCRjNBMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyMjI3QTBCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGaWx0ZXJFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTBFMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="review"
          id="240161"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>