<?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>127623</bug_id>
          
          <creation_ts>2014-01-25 10:53:47 -0800</creation_ts>
          <short_desc>Get rid of ICU_UNICODE and WCHAR_UNICODE remnants</short_desc>
          <delta_ts>2016-11-07 04:08:21 -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>Web Template Framework</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>
          <dependson>164473</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971991</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 10:53:47 -0800</bug_when>
    <thetext>Get rid of ICU_UNICODE and WCHAR_UNICODE remnants</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971992</commentid>
    <comment_count>1</comment_count>
      <attachid>222219</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 10:58:29 -0800</bug_when>
    <thetext>Created attachment 222219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971993</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-25 10:59:54 -0800</bug_when>
    <thetext>Attachment 222219 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:28:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972000</commentid>
    <comment_count>3</comment_count>
      <attachid>222221</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 11:42:09 -0800</bug_when>
    <thetext>Created attachment 222221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972002</commentid>
    <comment_count>4</comment_count>
      <attachid>222222</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 11:43:09 -0800</bug_when>
    <thetext>Created attachment 222222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972032</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 13:32:05 -0800</bug_when>
    <thetext>Committed r162782: &lt;http://trac.webkit.org/changeset/162782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020686</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-06 14:14:58 -0700</bug_when>
    <thetext>*** Bug 126857 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222219</attachid>
            <date>2014-01-25 10:58:29 -0800</date>
            <delta_ts>2014-01-25 11:42:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127623-20140125105828.patch</filename>
            <type>text/plain</type>
            <size>35003</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
M2U4MDVkYzlkZjA4N2I5MzM0ZWNjYWY5NGQ1MTQzODdkOTlkMmYyLi4wMGYyZTFkOTUzZmQ2N2Jj
NTdiMTkxY2JiZTZjNDdmMGU3ZWJmMjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNC0wMS0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgR2V0IHJpZCBvZiBJQ1VfVU5JQ09ERSBhbmQgV0NIQVJfVU5JQ09ERSByZW1uYW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwOiBSZW1vdmVkIFVTRShJQ1VfVU5JQ09ERSkgY2hlY2tzLCBz
aW5jZSB0aGF0J3MgYWx3YXlzIHRydWUgbm93LgorCiAyMDE0LTAxLTI0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQgaW50byBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlM2MxYWQxMDIx
ZmY5ZjFiY2VkOTdhZGIzNjljMjNhOTVhNDMwYjQyLi4zNWEwZGJjM2NjNmIyMmY5MTUwYmExODdm
OTVhYTFhYzc1MjE5Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE0LTAxLTI1ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RF
IGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5hbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCBXVEZfVVNF
X0lDVV9VTklDT0RFIGFuZAorICAgICAgICBXVEZfVVNFX1dDSEFSX1VOSUNPREUgc2luY2UgdGhl
eSBhcmUgdHJ1ZSBhbmQgZmFsc2UgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6IFJlbW92ZWQgY29kZSB0byBzZXQgV1RGX1VTRV9JQ1VfVU5JQ09ERS4KKworICAgICAg
ICAqIHd0Zi91bmljb2RlL0NvbGxhdG9yLmg6IFJlbW92ZWQgaWZkZWZzLgorICAgICAgICAqIHd0
Zi91bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHA6IERpdHRvLgorICAgICAgICAqIHd0Zi91bmlj
b2RlL1VuaWNvZGUuaDogRGl0dG8uCisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9y
SUNVLmNwcDogRGl0dG8uCisKKzIwMTQtMDEtMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCiAgICAgICAgIFJlc3RvcmUgYWxwaGFiZXRpY2FsIG9yZGVyIGluIENvbXBpbGVyLmgK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyMAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYmJkMmVjNGQ2MGM3Mzc1MDg3MDIzMTRkODllNTYwNzRmZDgzNTJmMS4u
ZTE5ODlmNzQ2YmUzMmJkMDI2MzE4MWYwYzEwNTIyMzMxN2IwOGU3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQxIEBACisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RFIGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5h
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBSZW1vdmVkIFNt
YXJ0UmVwbGFjZUlDVS5jcHAuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8u
CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IERpdHRvLgorICAgICAgICAqIFBsYXRmb3Jt
R1RLLmNtYWtlOiBEaXR0by4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ1JpZ2h0KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nTGVm
dCk6IERpdHRvLgorCisgICAgICAgICogZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwOiBNb3ZlZCBj
b2RlIGhlcmUgZnJvbSBTbWFydFJlcGxhY2VJQ1UsCisgICAgICAgIHNpbmNlIHdlIGFsd2F5cyBz
dXBwb3J0IElDVSBub3cuIEFkZGVkIHNvbWUgRklYTUUgY29tbWVudHMgYWJvdXQKKyAgICAgICAg
YnVncyBhbmQgbWlzdGFrZXMgSSBzcG90dGVkIGluIHRoZSBjb2RlIGFzIEkgd2FzIG1vdmluZyBp
dC4KKyAgICAgICAgKiBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHA6IFJlbW92ZWQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgY2hlY2tz
LgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0YSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6ZGVzdHJveSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaCBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9V
UkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kRW5jb2RlZEhvc3RuYW1lKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJh
dG9yLmNwcDogRGl0dG8uCisgICAgICAgIEFsc28gcmVtb3ZlZCB1bm5lZWRlZCAidXNpbmcgbmFt
ZXNwYWNlIi4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHA6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRFbmNvZGluZzo6ZW5jb2RlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleHRlbmRU
ZXh0Q29kZWNNYXBzKTogRGl0dG8uCisKIDIwMTQtMDEtMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBNb3ZlIEluc3BlY3Rv
clJ1bnRpbWVBZ2VudCBpbnRvIEphdmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IDk5MTE0ODdlMDkzMmYyOGMyMzUy
MTk5ZWU4ZWIyMzkyNmQ3NGRlNmIuLmJhZWEzZDI4YWJjZGY2NGZlMjM5NTEyMWM3NWViNzA4YmZl
ZTgwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuY3BwCkBAIC0zNCwyMCArMzQsMjAgQEAKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRl
ICJPYmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCi0KLSNpZiAhUExB
VEZPUk0oTUFDKSAmJiBIQVZFKExBTkdJTkZPX0gpCi0jaW5jbHVkZSA8bGFuZ2luZm8uaD4KLSNl
bmRpZgotCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+CiAjaW5jbHVk
ZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNs
dWRlIDx1bmljb2RlL3VkYXQuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCisj
aWYgSEFWRShMQU5HSU5GT19IKQorI2luY2x1ZGUgPGxhbmdpbmZvLmg+CisjZW5kaWYKKwogI2lm
IEhBVkUoU1lTX1BBUkFNX0gpCiAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAjZW5kaWYKQEAgLTYw
LDEwICs2MCw4IEBACiAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAjZW5kaWYKIAotI2lmIE9TKERB
UldJTikgJiYgVVNFKENGKQorI2lmIFVTRShDRikKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9D
b3JlRm91bmRhdGlvbi5oPgotI2VsaWYgVVNFKElDVV9VTklDT0RFKQotI2luY2x1ZGUgPHVuaWNv
ZGUvdWRhdC5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xOTEsNyArMTg5
LDcgQEAgc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIERh
dGVJbnN0YW5jZSosIGRvdWJsZSB0aW1lSW5NaWwKICAgICByZXR1cm4ganNOb250cml2aWFsU3Ry
aW5nKGV4ZWMsIFN0cmluZyhidWZmZXIsIGxlbmd0aCkpOwogfQogCi0jZWxpZiBVU0UoSUNVX1VO
SUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcKKyNlbGlmICFVQ09ORklHX05PX0ZPUk1B
VFRJTkcKIAogc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShFeGVjU3RhdGUqIGV4ZWMs
IERhdGVJbnN0YW5jZSosIGRvdWJsZSB0aW1lSW5NaWxsaXNlY29uZHMsIExvY2FsZURhdGVUaW1l
Rm9ybWF0IGZvcm1hdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNTZhYTExNDVlY2ZlM2Fi
OGE5MDU0OWMwZDllOTUxZGExMDI3YTA5Ni4uOThiYWZiOWI2MTYwMzNhNzE1ZTYyNzkwYTZhZWFi
ZDk3ZjNhM2MxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTIyMiwzMCArMjIyLDE5IEBAIHNl
dChXVEZfTElCUkFSSUVTCiAgICAgJHtDTUFLRV9ETF9MSUJTfQogKQogCi1pZiAoV1RGX1VTRV9J
Q1VfVU5JQ09ERSkKLSAgICBsaXN0KEFQUEVORCBXVEZfSEVBREVSUwotICAgICAgICB1bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKLSAgICApCi0gICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAg
ICAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCi0gICAgKQotICAgIGxpc3QoQVBQRU5E
IFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCi0gICAgICAgICR7SUNVX0lOQ0xVREVfRElSU30KLSAg
ICApCi0gICAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwotICAgICAgICAke0lDVV9JMThOX0xJ
QlJBUklFU30KLSAgICAgICAgJHtJQ1VfTElCUkFSSUVTfQotICAgICkKLWVsc2VpZiAoV1RGX1VT
RV9XQ0hBUl9VTklDT0RFKQotICAgIGxpc3QoQVBQRU5EIFdURl9IRUFERVJTCi0gICAgICAgIHVu
aWNvZGUvd2NoYXIvVW5pY29kZVdjaGFyLmgKLSAgICApCi0gICAgbGlzdChBUFBFTkQgV1RGX1NP
VVJDRVMKLSAgICAgICAgdW5pY29kZS9Db2xsYXRvckRlZmF1bHQuY3BwCi0KLSAgICAgICAgdW5p
Y29kZS93Y2hhci9Vbmljb2RlV2NoYXIuY3BwCi0gICAgKQotZW5kaWYgKCkKK2xpc3QoQVBQRU5E
IFdURl9IRUFERVJTCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCispCitsaXN0KEFQUEVO
RCBXVEZfU09VUkNFUworICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAorKQorbGlzdChB
UFBFTkQgV1RGX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0lDVV9JTkNMVURFX0RJUlN9Cisp
CitsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCisgICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9Cisg
ICAgJHtJQ1VfTElCUkFSSUVTfQorKQogCiBpZiAoV0lOMzIpCiAgICAgbGlzdChBUFBFTkQgV1RG
X1NPVVJDRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDgyNjUyNmQxOWJjNmRmY2Q1YjA5NmYzYTZkYzJjMmVi
YjljZTA1YTQuLmFhMGFjNTczNDE0YjMyOGQ5YTU5YTc1OTEzOGZiZDQxYzRmZjBiMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaApAQCAtNDcwLDEwICs0NzAsNiBAQAogI2RlZmluZSBXVEZfVVNFX1FVRVJZX1BFUkZP
Uk1BTkNFX0NPVU5URVIgIDEKICNlbmRpZgogCi0jaWYgIVVTRShXQ0hBUl9VTklDT0RFKQotI2Rl
ZmluZSBXVEZfVVNFX0lDVV9VTklDT0RFIDEKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAKICNkZWZpbmUgV1RGX1VTRV9DRiAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL0NvbGxhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yLmgKaW5kZXgg
OTEzYjEzNzgyYjRiNDcyMTYzNjkzOWE1MWNlZWY5YjQ3YTczNjY2YS4uNjc0ODZjN2QwMmJlMWE4
MDhhOTA2ODBjNDZmMDZhMGU4MDA5MzRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5p
Y29kZS9Db2xsYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3IuaApA
QCAtMzMsOSArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
dW5pY29kZS9Vbmljb2RlLmg+CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05P
X0NPTExBVElPTgogc3RydWN0IFVDb2xsYXRvcjsKLSNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsK
IApAQCAtNTMsNyArNTEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFJlc3VsdCBjb2xsYXRlKGNvbnN0IDo6VUNoYXIqLCBzaXplX3QsIGNvbnN0IDo6VUNo
YXIqLCBzaXplX3QpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSNpZiBVU0UoSUNVX1VOSUNPREUp
ICYmICFVQ09ORklHX05PX0NPTExBVElPTgorI2lmICFVQ09ORklHX05PX0NPTExBVElPTgogICAg
ICAgICB2b2lkIGNyZWF0ZUNvbGxhdG9yKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgcmVsZWFzZUNv
bGxhdG9yKCk7CiAgICAgICAgIG11dGFibGUgVUNvbGxhdG9yKiBtX2NvbGxhdG9yOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9Db2xsYXRvckRlZmF1bHQuY3BwIGIvU291cmNl
L1dURi93dGYvdW5pY29kZS9Db2xsYXRvckRlZmF1bHQuY3BwCmluZGV4IDRlODFmZWY3Y2MwZDNh
ODI2NzA0YzI0YTk2MWM3ZTAzNzZmZGFlNmQuLmQ1NmJiNWEzOGE0MWY4NGFiMzE3NTdmNTdhM2Yx
YjNmZTkyZTBkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3JE
ZWZhdWx0LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5j
cHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xs
YXRvci5oIgogCi0jaWYgIVVTRShJQ1VfVU5JQ09ERSkgfHwgVUNPTkZJR19OT19DT0xMQVRJT04K
KyNpZiBVQ09ORklHX05PX0NPTExBVElPTgogCiBuYW1lc3BhY2UgV1RGIHsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9Vbmljb2RlLmggYi9Tb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL1VuaWNvZGUuaAppbmRleCBiZjM4ZTJlOGJkNzllMGU0MjVmMjg5MDJlYmFmNTAzMWY3NWNm
YTc0Li44NGY3NzczNDIyYzRlOGU0MTkyMzg5MWZkZTk2Yjk3NTExNjlkYWI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VuaWNvZGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91
bmljb2RlL1VuaWNvZGUuaApAQCAtMjgsMTMgKzI4LDcgQEAKIC8vIERlZmluZSBwbGF0Zm9ybSBu
ZXV0cmFsIDggYml0IGNoYXJhY3RlciB0eXBlIChMIGlzIGZvciBMYXRpbi0xKS4KIHR5cGVkZWYg
dW5zaWduZWQgY2hhciBMQ2hhcjsKIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKICNpbmNsdWRlIDx3
dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oPgotI2VsaWYgVVNFKFdDSEFSX1VOSUNPREUpCi0j
aW5jbHVkZSA8d3RmL3VuaWNvZGUvd2NoYXIvVW5pY29kZVdjaGFyLmg+Ci0jZWxzZQotI2Vycm9y
ICJVbmtub3duIFVuaWNvZGUgaW1wbGVtZW50YXRpb24iCi0jZW5kaWYKIAogc3RhdGljX2Fzc2Vy
dChzaXplb2YoVUNoYXIpID09IDIsICJVQ2hhciBtdXN0IGJlIHR3byBieXRlcyEiKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIGIvU291
cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCmluZGV4IDIwOWMwMjMwOGE1
MTE2YWQyMTQyYWY4NzhmNjVkZWU1OTE1OTM4OTEuLmU0MDU5YmNkY2ZhYTlmYzAyZTE4MzJjZDIy
MjczZjM1NmRjNmZmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0Nv
bGxhdG9ySUNVLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklD
VS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3
dGYvdW5pY29kZS9Db2xsYXRvci5oPgogCi0jaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJ
R19OT19DT0xMQVRJT04KKyNpZiAhVUNPTkZJR19OT19DT0xMQVRJT04KIAogI2luY2x1ZGUgPG11
dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC0xNTYsNCArMTU2LDQgQEAgdm9p
ZCBDb2xsYXRvcjo6cmVsZWFzZUNvbGxhdG9yKCkKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNl
bmRpZiAvLyBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0NPTExBVElPTgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQwM2U4YWQ2YWEzMmI5NTQ2YjJjMmE1NGFhNWMxYjA0
NDdmNzliZTYuLjM2OTIxMzFiZGIzODgwZjY3OTQzZmZkZjc2ZmFlNDZmYzcxMTBlY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yNzcwLDI5ICsyNzcwLDE5IEBAIGlmIChFTkFCTEVfUVVPVEEp
CiAgICAgKQogZW5kaWYgKCkKIAotCi1pZiAoV1RGX1VTRV9JQ1VfVU5JQ09ERSkKLSAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKLSAgICAgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQ
cm92aWRlci5jcHAKLSAgICAgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGlu
MS5jcHAKLSAgICAgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlclVURjE2LmNwcAot
ICAgICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKLSAgICAgICAgcGxhdGZvcm0v
dGV4dC9UZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKLSAgICApCi0gICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCi0gICAgICAgICR7SUNVX0lOQ0xVREVfRElSU30K
LSAgICApCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKLSAgICAgICAgJHtJQ1Vf
TElCUkFSSUVTfQotICAgICkKLWVsc2VpZiAoV1RGX1VTRV9XQ0hBUl9VTklDT0RFKQotICAgIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwotICAgICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNv
ZGluZ0RldGVjdG9yTm9uZS5jcHAKLQotICAgICAgICBwbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRC
cmVha0l0ZXJhdG9yV2NoYXIuY3BwCi0gICAgKQotZW5kaWYgKCkKLQorbGlzdChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlci5jcHAKKyAg
ICBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvaWN1L1VUZXh0UHJvdmlkZXJVVEYxNi5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHRD
b2RlY0lDVS5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNw
cAorKQorbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtJQ1Vf
SU5DTFVERV9ESVJTfQorKQorbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0lD
VV9MSUJSQVJJRVN9CispCiAKIGlmIChXVEZfVVNFX0xFVkVMREIpCiAgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBjNWQ0MDdiNWUwNDE4ZTg3YTIzMjIzNmJlMGRlZmVjYzc4OGJiNWExLi5iYzEwY2U3MTgx
ZDdlNTQ3NGIwYmQ4Mjg0OWRmNDU4MDZjOWQxMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTMxMzUsNyArMzEzNSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TaW1wbGlmeU1hcmt1cENvbW1hbmQuaCBcCiAJU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nt
YXJ0UmVwbGFjZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDcxMDVlYzRiY2YwOGI4OWJlNTEwZWI3ZDIwMjI5ODA5YTA4YjBiMzYuLjk5NmI3NmYy
ZThmNmE1OTI3YzdhODNjMzhmYWE2OTg0Njk2MGZkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCkBAIC0zNCw3ICszNCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGFj
Y2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVVdGlsLmNwcAogICAgIGFjY2Vzc2liaWxp
dHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAogCi0gICAgZWRpdGluZy9TbWFy
dFJlcGxhY2VJQ1UuY3BwCisgICAgZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwCiAKICAgICBlZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpp
bmRleCBkZmUzOGNjZTUwMWUyNWU0Yjc0ZWUwODg3ZTgzNWViMWFlYjVmYjAxLi5mZjZlN2VlOGI5
Zjc4M2NhNjk2MDUxNWIxZDQ3YmNhYjkzYzA3Y2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZQpAQCAtMjUsNyArMjUsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCi0gICAgZWRpdGluZy9TbWFydFJl
cGxhY2VJQ1UuY3BwCisgICAgZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwCiAKICAgICBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCmluZGV4IGNmMGZlYWYxOTg2NGNhM2JmMTM3MDFmMTBiMTY3NjQxNDhkY2Y4
ZmYuLmZjZGY2NzczYmQwMmQyN2FiMjI4ZTEwOWYyZjJiMGI5M2ZjOWE0NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC03MTIsMTMgKzcxMiwxMSBAQCBW
aXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ1JpZ2h0KFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKICAgICAgICAgICAgIHBvcyA9IFZpc2libGVQb3NpdGlvbiht
X3NlbGVjdGlvbi5leHRlbnQoKSwgbV9zZWxlY3Rpb24uYWZmaW5pdHkoKSkucmlnaHQodHJ1ZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OiB7Ci0jaWYgVVNFKElD
VV9VTklDT0RFKQogICAgICAgICAvLyBWaXN1YWwgd29yZCBtb3ZlbWVudCByZWxpZXMgb24gaXNX
b3JkVGV4dEJyZWFrIHdoaWNoIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBXaW5DRSBhbmQgUVQuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTEzNi4K
ICAgICAgICAgYm9vbCBza2lwc1NwYWNlV2hlbk1vdmluZ1JpZ2h0ID0gbV9mcmFtZSAmJiBtX2Zy
YW1lLT5lZGl0b3IoKS5iZWhhdmlvcigpLnNob3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgp
OwogICAgICAgICBwb3MgPSByaWdodFdvcmRQb3NpdGlvbihWaXNpYmxlUG9zaXRpb24obV9zZWxl
Y3Rpb24uZXh0ZW50KCksIG1fc2VsZWN0aW9uLmFmZmluaXR5KCkpLCBza2lwc1NwYWNlV2hlbk1v
dmluZ1JpZ2h0KTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICB9CiAgICAgY2FzZSBTZW50
ZW5jZUdyYW51bGFyaXR5OgogICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgpAQCAtOTA4LDExICs5
MDYsOSBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0xlZnQo
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogICAgICAgICAgICAgcG9zID0gVmlzaWJsZVBv
c2l0aW9uKG1fc2VsZWN0aW9uLmV4dGVudCgpLCBtX3NlbGVjdGlvbi5hZmZpbml0eSgpKS5sZWZ0
KHRydWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdvcmRHcmFudWxhcml0eTogewotI2lm
IFVTRShJQ1VfVU5JQ09ERSkKICAgICAgICAgYm9vbCBza2lwc1NwYWNlV2hlbk1vdmluZ1JpZ2h0
ID0gbV9mcmFtZSAmJiBtX2ZyYW1lLT5lZGl0b3IoKS5iZWhhdmlvcigpLnNob3VsZFNraXBTcGFj
ZVdoZW5Nb3ZpbmdSaWdodCgpOwogICAgICAgICBwb3MgPSBsZWZ0V29yZFBvc2l0aW9uKFZpc2li
bGVQb3NpdGlvbihtX3NlbGVjdGlvbi5leHRlbnQoKSwgbV9zZWxlY3Rpb24uYWZmaW5pdHkoKSks
IHNraXBzU3BhY2VXaGVuTW92aW5nUmlnaHQpOwogICAgICAgICBicmVhazsKLSNlbmRpZgogICAg
IH0KICAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CiAgICAgY2FzZSBMaW5lR3JhbnVsYXJp
dHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKaW5kZXggN2I4Y2E0NTY0
MzExYzEyOTk1OGYzNWViMjk3MzFhYWMyOGM4ZWQ4YS4uMDM0ZGJmZWJiMjlhMjhiMGVkOTM3NmMw
MTIyNDMyYjFhMmQ5OTA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFy
dFJlcGxhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmNw
cApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBUb255IENoYW5nIDxp
ZGVhbGlzbXNAZ21haWwuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OSwxMyArMzAsNzMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTbWFydFJlcGxh
Y2UuaCIKIAotI2lmICFVU0UoQ0YpICYmICFVU0UoSUNVX1VOSUNPREUpCisjaWYgIVVTRShDRikK
KworI2luY2x1ZGUgPHVuaWNvZGUvdXNldC5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorc3RhdGljIHZvaWQgYWRkQWxsQ29kZVBvaW50cyhVU2V0KiBzbWFydFNldCwgY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCit7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBzdHJpbmcuY2hh
cmFjdGVycygpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aCgpOyBp
KyspCisgICAgICAgIHVzZXRfYWRkKHNtYXJ0U2V0LCBjaGFyYWN0ZXJzW2ldKTsKK30KKworLy8g
VGhpcyBpcyBtb3N0bHkgYSBwb3J0IG9mIHRoZSBjb2RlIGluIFdlYkNvcmUvZWRpdGluZy9TbWFy
dFJlcGxhY2VDRi5jcHAKKy8vIGV4Y2VwdCB3ZSB1c2UgSUNVIGluc3RlYWQgb2YgQ29yZUZvdW5k
YXRpb24gY2hhcmFjdGVyIGNsYXNzZXMuCitzdGF0aWMgVVNldCogZ2V0U21hcnRTZXQoYm9vbCBp
c1ByZXZpb3VzQ2hhcmFjdGVyKQoreworICAgIHN0YXRpYyBVU2V0KiBwcmVTbWFydFNldCA9IG51
bGxwdHI7CisgICAgc3RhdGljIFVTZXQqIHBvc3RTbWFydFNldCA9IG51bGxwdHI7CisgICAgVVNl
dCogc21hcnRTZXQgPSBpc1ByZXZpb3VzQ2hhcmFjdGVyID8gcHJlU21hcnRTZXQgOiBwb3N0U21h
cnRTZXQ7CisgICAgaWYgKCFzbWFydFNldCkgeworICAgICAgICAvLyBXaGl0ZXNwYWNlIGFuZCBu
ZXdsaW5lIChrQ0ZDaGFyYWN0ZXJTZXRXaGl0ZXNwYWNlQW5kTmV3bGluZSkKKyAgICAgICAgVUVy
cm9yQ29kZSBlYyA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgU3RyaW5nIHdoaXRlc3BhY2VBbmRO
ZXdsaW5lID0gQVNDSUlMaXRlcmFsKCJbWzpXU3BhY2U6XSBbXFx1MDAwQVxcdTAwMEJcXHUwMDBD
XFx1MDAwRFxcdTAwODVdXSIpOworICAgICAgICBzbWFydFNldCA9IHVzZXRfb3BlblBhdHRlcm4o
d2hpdGVzcGFjZUFuZE5ld2xpbmUuY2hhcmFjdGVycygpLCB3aGl0ZXNwYWNlQW5kTmV3bGluZS5s
ZW5ndGgoKSwgJmVjKTsKKyAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhlYykpOworCisgICAgICAg
IC8vIENKSyByYW5nZXMKKyAgICAgICAgLy8gRklYTUU6IExvb2tzIGxpa2UgYWxsIHRoZXNlIHJh
bmdlcyBpbmNsdWRlIG9uZSBleHRyYSBjaGFyYWN0ZXIgcGFzdCB0aGUgZW5kLgorICAgICAgICB1
c2V0X2FkZFJhbmdlKHNtYXJ0U2V0LCAweDExMDAsIDB4MTEwMCArIDI1Nik7IC8vIEhhbmd1bCBK
YW1vICgweDExMDAgLSAweDExRkYpCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4
MkU4MCwgMHgyRTgwICsgMzUyKTsgLy8gQ0pLICYgS2FuZ3hpIFJhZGljYWxzICgweDJFODAgLSAw
eDJGREYpCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MkZGMCwgMHgyRkYwICsg
NDY0KTsgLy8gSWRlb2dyYXBoIERlc2NyaXB0aW9ucywgQ0pLIFN5bWJvbHMsIEhpcmFnYW5hLCBL
YXRha2FuYSwgQm9wb21vZm8sIEhhbmd1bCBDb21wYXRpYmlsaXR5IEphbW8sIEthbmJ1biwgJiBC
b3BvbW9mbyBFeHQgKDB4MkZGMCAtIDB4MzFCRikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFy
dFNldCwgMHgzMjAwLCAweDMyMDAgKyAyOTM5Mik7IC8vIEVuY2xvc2VkIENKSywgQ0pLIElkZW9n
cmFwaHMgKFVuaSBIYW4gJiBFeHQgQSksICYgWWkgKDB4MzIwMCAtIDB4QTRDRikKKyAgICAgICAg
dXNldF9hZGRSYW5nZShzbWFydFNldCwgMHhBQzAwLCAweEFDMDAgKyAxMTE4Myk7IC8vIEhhbmd1
bCBTeWxsYWJsZXMgKDB4QUMwMCAtIDB4RDdBRikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFy
dFNldCwgMHhGOTAwLCAweEY5MDAgKyAzNTIpOyAvLyBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3Jh
cGhzICgweEY5MDAgLSAweEZBNUYpCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4
RkUzMCwgMHhGRTMwICsgMzIpOyAvLyBDSksgQ29tcGF0aWJpbGl0eSBGcm9tICgweEZFMzAgLSAw
eEZFNEYpCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4RkYwMCwgMHhGRjAwICsg
MjQwKTsgLy8gSGFsZi9GdWxsIFdpZHRoIEZvcm0gKDB4RkYwMCAtIDB4RkZFRikKKyAgICAgICAg
dXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgyMDAwMCwgMHgyMDAwMCArIDB4QTZENyk7IC8vIENK
SyBJZGVvZ3JhcGggRXhudGVuc2lvbiBCCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQs
IDB4MkY4MDAsIDB4MkY4MDAgKyAweDAyMUUpOyAvLyBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3Jh
cGhzICgweDJGODAwIC0gMHgyRkExRCkKKworICAgICAgICBpZiAoaXNQcmV2aW91c0NoYXJhY3Rl
cikgeworICAgICAgICAgICAgLy8gRklYTUU6IFNpbGx5IHRvIGNvbnZlcnQgdGhpcyB0byBhIFdU
Rjo6U3RyaW5nIGp1c3QgdG8gbG9vcCB0aHJvdWdoIHRoZSBjaGFyYWN0ZXJzLgorICAgICAgICAg
ICAgYWRkQWxsQ29kZVBvaW50cyhzbWFydFNldCwgQVNDSUlMaXRlcmFsKCIoW1wiXCcjJC8tYHsi
KSk7CisgICAgICAgICAgICBwcmVTbWFydFNldCA9IHNtYXJ0U2V0OworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgLy8gRklYTUU6IFNpbGx5IHRvIGNvbnZlcnQgdGhpcyB0byBhIFdURjo6
U3RyaW5nIGp1c3QgdG8gbG9vcCB0aHJvdWdoIHRoZSBjaGFyYWN0ZXJzLgorICAgICAgICAgICAg
YWRkQWxsQ29kZVBvaW50cyhzbWFydFNldCwgQVNDSUlMaXRlcmFsKCIpXS4sOzo/XCchXCIlKi0v
fSIpKTsKKworICAgICAgICAgICAgLy8gUHVuY3R1YXRpb24gKGtDRkNoYXJhY3RlclNldFB1bmN0
dWF0aW9uKQorICAgICAgICAgICAgVUVycm9yQ29kZSBlYyA9IFVfWkVST19FUlJPUjsKKyAgICAg
ICAgICAgIFN0cmluZyBwdW5jdHVhdGlvbkNsYXNzID0gQVNDSUlMaXRlcmFsKCJbOlA6XSIpOwor
ICAgICAgICAgICAgVVNldCogaWN1UHVuY3QgPSB1c2V0X29wZW5QYXR0ZXJuKHB1bmN0dWF0aW9u
Q2xhc3MuY2hhcmFjdGVycygpLCBwdW5jdHVhdGlvbkNsYXNzLmxlbmd0aCgpLCAmZWMpOworICAg
ICAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhlYykpOworICAgICAgICAgICAgdXNldF9hZGRBbGwo
c21hcnRTZXQsIGljdVB1bmN0KTsKKyAgICAgICAgICAgIHVzZXRfY2xvc2UoaWN1UHVuY3QpOwor
CisgICAgICAgICAgICBwb3N0U21hcnRTZXQgPSBzbWFydFNldDsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gc21hcnRTZXQ7Cit9CisKIGJvb2wgaXNDaGFyYWN0ZXJTbWFydFJlcGxhY2VF
eGVtcHQoVUNoYXIzMiBjLCBib29sIGlzUHJldmlvdXNDaGFyYWN0ZXIpCiB7Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiB1c2V0X2NvbnRhaW5zKGdldFNtYXJ0U2V0KGlzUHJldmlvdXND
aGFyYWN0ZXIpLCBjKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TbWFydFJlcGxhY2VJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxh
Y2VJQ1UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNmVhN2Q2M2QyMzM2NmZh
YTE2MmE5MDc4NDhhYjE2MmM0MTM1MTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDEwMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDggVG9ueSBDaGFuZyA8aWRlYWxpc21zQGdtYWlsLmNvbT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAot
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiU21hcnRSZXBsYWNlLmgiCi0KLSNpZiAhVVNFKENGKSAmJiBVU0UoSUNVX1VO
SUNPREUpCi0jaW5jbHVkZSA8dW5pY29kZS91c2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1zdGF0aWMgdm9pZCBhZGRBbGxDb2RlUG9pbnRzKFVTZXQqIHNtYXJ0U2V0LCBjb25z
dCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHN0cmlu
Zy5jaGFyYWN0ZXJzKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3Ro
KCk7IGkrKykKLSAgICAgICAgdXNldF9hZGQoc21hcnRTZXQsIGNoYXJhY3RlcnNbaV0pOwotfQot
Ci0vLyBUaGlzIGlzIG1vc3RseSBhIHBvcnQgb2YgdGhlIGNvZGUgaW4gV2ViQ29yZS9lZGl0aW5n
L1NtYXJ0UmVwbGFjZUNGLmNwcAotLy8gZXhjZXB0IHdlIHVzZSBpY3UgaW4gcGxhY2Ugb2YgQ29y
ZUZvdW5kYXRpb25zIGNoYXJhY3RlciBjbGFzc2VzLgotc3RhdGljIFVTZXQqIGdldFNtYXJ0U2V0
KGJvb2wgaXNQcmV2aW91c0NoYXJhY3RlcikKLXsKLSAgICBzdGF0aWMgVVNldCogcHJlU21hcnRT
ZXQgPSBOVUxMOyAKLSAgICBzdGF0aWMgVVNldCogcG9zdFNtYXJ0U2V0ID0gTlVMTDsKLSAgICBV
U2V0KiBzbWFydFNldCA9IGlzUHJldmlvdXNDaGFyYWN0ZXIgPyBwcmVTbWFydFNldCA6IHBvc3RT
bWFydFNldDsKLSAgICBpZiAoIXNtYXJ0U2V0KSB7Ci0gICAgICAgIC8vIFdoaXRlc3BhY2UgYW5k
IG5ld2xpbmUgKGtDRkNoYXJhY3RlclNldFdoaXRlc3BhY2VBbmROZXdsaW5lKQotICAgICAgICBV
RXJyb3JDb2RlIGVjID0gVV9aRVJPX0VSUk9SOwotICAgICAgICBTdHJpbmcgd2hpdGVzcGFjZUFu
ZE5ld2xpbmUgPSBBU0NJSUxpdGVyYWwoIltbOldTcGFjZTpdIFtcXHUwMDBBXFx1MDAwQlxcdTAw
MENcXHUwMDBEXFx1MDA4NV1dIik7Ci0gICAgICAgIHNtYXJ0U2V0ID0gdXNldF9vcGVuUGF0dGVy
bih3aGl0ZXNwYWNlQW5kTmV3bGluZS5jaGFyYWN0ZXJzKCksIHdoaXRlc3BhY2VBbmROZXdsaW5l
Lmxlbmd0aCgpLCAmZWMpOwotICAgICAgICBBU1NFUlQoVV9TVUNDRVNTKGVjKSk7Ci0KLSAgICAg
ICAgLy8gQ0pLIHJhbmdlcwotICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0U2V0LCAweDExMDAs
IDB4MTEwMCArIDI1Nik7IC8vIEhhbmd1bCBKYW1vICgweDExMDAgLSAweDExRkYpCi0gICAgICAg
IHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MkU4MCwgMHgyRTgwICsgMzUyKTsgLy8gQ0pLICYg
S2FuZ3hpIFJhZGljYWxzICgweDJFODAgLSAweDJGREYpCi0gICAgICAgIHVzZXRfYWRkUmFuZ2Uo
c21hcnRTZXQsIDB4MkZGMCwgMHgyRkYwICsgNDY0KTsgLy8gSWRlb2dyYXBoIERlc2NyaXB0aW9u
cywgQ0pLIFN5bWJvbHMsIEhpcmFnYW5hLCBLYXRha2FuYSwgQm9wb21vZm8sIEhhbmd1bCBDb21w
YXRpYmlsaXR5IEphbW8sIEthbmJ1biwgJiBCb3BvbW9mbyBFeHQgKDB4MkZGMCAtIDB4MzFCRikK
LSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgzMjAwLCAweDMyMDAgKyAyOTM5Mik7
IC8vIEVuY2xvc2VkIENKSywgQ0pLIElkZW9ncmFwaHMgKFVuaSBIYW4gJiBFeHQgQSksICYgWWkg
KDB4MzIwMCAtIDB4QTRDRikKLSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHhBQzAw
LCAweEFDMDAgKyAxMTE4Myk7IC8vIEhhbmd1bCBTeWxsYWJsZXMgKDB4QUMwMCAtIDB4RDdBRikK
LSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHhGOTAwLCAweEY5MDAgKyAzNTIpOyAv
LyBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzICgweEY5MDAgLSAweEZBNUYpCi0gICAgICAg
IHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4RkUzMCwgMHhGRTMwICsgMzIpOyAvLyBDSksgQ29t
cGF0aWJpbGl0eSBGcm9tICgweEZFMzAgLSAweEZFNEYpCi0gICAgICAgIHVzZXRfYWRkUmFuZ2Uo
c21hcnRTZXQsIDB4RkYwMCwgMHhGRjAwICsgMjQwKTsgLy8gSGFsZi9GdWxsIFdpZHRoIEZvcm0g
KDB4RkYwMCAtIDB4RkZFRikKLSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgyMDAw
MCwgMHgyMDAwMCArIDB4QTZENyk7IC8vIENKSyBJZGVvZ3JhcGggRXhudGVuc2lvbiBCCi0gICAg
ICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MkY4MDAsIDB4MkY4MDAgKyAweDAyMUUpOyAv
LyBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzICgweDJGODAwIC0gMHgyRkExRCkKLQotICAg
ICAgICBpZiAoaXNQcmV2aW91c0NoYXJhY3RlcikgewotICAgICAgICAgICAgYWRkQWxsQ29kZVBv
aW50cyhzbWFydFNldCwgQVNDSUlMaXRlcmFsKCIoW1wiXCcjJC8tYHsiKSk7Ci0gICAgICAgICAg
ICBwcmVTbWFydFNldCA9IHNtYXJ0U2V0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
YWRkQWxsQ29kZVBvaW50cyhzbWFydFNldCwgQVNDSUlMaXRlcmFsKCIpXS4sOzo/XCchXCIlKi0v
fSIpKTsKLQotICAgICAgICAgICAgLy8gUHVuY3R1YXRpb24gKGtDRkNoYXJhY3RlclNldFB1bmN0
dWF0aW9uKQotICAgICAgICAgICAgVUVycm9yQ29kZSBlYyA9IFVfWkVST19FUlJPUjsKLSAgICAg
ICAgICAgIFN0cmluZyBwdW5jdHVhdGlvbkNsYXNzID0gQVNDSUlMaXRlcmFsKCJbOlA6XSIpOwot
ICAgICAgICAgICAgVVNldCogaWN1UHVuY3QgPSB1c2V0X29wZW5QYXR0ZXJuKHB1bmN0dWF0aW9u
Q2xhc3MuY2hhcmFjdGVycygpLCBwdW5jdHVhdGlvbkNsYXNzLmxlbmd0aCgpLCAmZWMpOwotICAg
ICAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhlYykpOwotICAgICAgICAgICAgdXNldF9hZGRBbGwo
c21hcnRTZXQsIGljdVB1bmN0KTsKLSAgICAgICAgICAgIHVzZXRfY2xvc2UoaWN1UHVuY3QpOwot
Ci0gICAgICAgICAgICBwb3N0U21hcnRTZXQgPSBzbWFydFNldDsKLSAgICAgICAgfQotICAgIH0K
LSAgICByZXR1cm4gc21hcnRTZXQ7Ci19Ci0KLWJvb2wgaXNDaGFyYWN0ZXJTbWFydFJlcGxhY2VF
eGVtcHQoVUNoYXIzMiBjLCBib29sIGlzUHJldmlvdXNDaGFyYWN0ZXIpCi17Ci0gICAgcmV0dXJu
IHVzZXRfY29udGFpbnMoZ2V0U21hcnRTZXQoaXNQcmV2aW91c0NoYXJhY3RlciksIGMpOwotfQot
Ci19Ci0KLSNlbmRpZiAvLyAhVVNFKENGKSAmJiBVU0UoSUNVX1VOSUNPREUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggOGNhNzY3YjAxMjU2MWI3ZTQ3ZDJkMTYx
NmVkYjE0YzNmMThmNWI4NC4uMWU0MDc4MDg2MGZhM2JiODQ3YTBjNGFjNTBhMzJlMmNhNmQ1ZGI3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNTIsNyArNTIs
NyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29k
ZS9DaGFyYWN0ZXJOYW1lcy5oPgogCi0jaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19O
T19DT0xMQVRJT04KKyNpZiAhVUNPTkZJR19OT19DT0xMQVRJT04KICNpbmNsdWRlICJUZXh0QnJl
YWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAjaW5jbHVkZSA8dW5pY29kZS91c2VhcmNoLmg+CiAj
ZW5kaWYKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHNpemVfdCBzZWFyY2goc2l6ZV90
JiBzdGFydE9mZnNldCk7CiAgICAgYm9vbCBhdEJyZWFrKCkgY29uc3Q7CiAKLSNpZiBVU0UoSUNV
X1VOSUNPREUpICYmICFVQ09ORklHX05PX0NPTExBVElPTgorI2lmICFVQ09ORklHX05PX0NPTExB
VElPTgogCiBwcml2YXRlOgogICAgIGJvb2wgaXNCYWRNYXRjaChjb25zdCBVQ2hhciosIHNpemVf
dCBsZW5ndGgpIGNvbnN0OwpAQCAtMTcwMiw3ICsxNzAyLDcgQEAgc3RhdGljIGlubGluZSB2b2lk
IGZvbGRRdW90ZU1hcmtzQW5kU29mdEh5cGhlbnMoU3RyaW5nJiBzKQogICAgIHMucmVwbGFjZShz
b2Z0SHlwaGVuLCAwKTsKIH0KIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9f
Q09MTEFUSU9OCisjaWYgIVVDT05GSUdfTk9fQ09MTEFUSU9OCiAKIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmb2xkUXVvdGVNYXJrc0FuZFNvZnRIeXBoZW5zKFVDaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3Ro
KQogewpAQCAtMjMwNSw3ICsyMzA1LDcgQEAgbmV4dE1hdGNoOgogICAgIHJldHVybiBtYXRjaGVk
TGVuZ3RoOwogfQogCi0jZWxzZSAvLyAhSUNVX1VOSUNPREUKKyNlbHNlCiAKIGlubGluZSBTZWFy
Y2hCdWZmZXI6OlNlYXJjaEJ1ZmZlcihjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMg
b3B0aW9ucykKICAgICA6IG1fdGFyZ2V0KG9wdGlvbnMgJiBDYXNlSW5zZW5zaXRpdmUgPyB0YXJn
ZXQuZm9sZENhc2UoKSA6IHRhcmdldCkKQEAgLTI0MTUsNyArMjQxNSw3IEBAIHNpemVfdCBTZWFy
Y2hCdWZmZXI6Omxlbmd0aCgpIGNvbnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotI2VuZGlm
IC8vICFJQ1VfVU5JQ09ERQorI2VuZGlmCiAKIC8vIC0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKaW5kZXggY2VmYjE5ZGRjNzBlNWRhOTU1
MTEyYTg5NmVjNjdjMTlkNTAyZTI0My4uOGU3ZTZlMmI0N2Q1ZjM1NWIxM2MwYmM2MDBhZWNmYWJm
MTEwOWVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFs
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHAKQEAgLTMwLDIzICszMCwxOCBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q291bnRlcnMuaCIKKyNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKICNpbmNsdWRlICJUaHJlYWRU
aW1lcnMuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTcGVjaWZpYy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
V1RGVGhyZWFkRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAotI2lm
IFVTRShJQ1VfVU5JQ09ERSkKLSNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgIlRleHRDb2RlY01hYy5oIgorI2lmIFBMQVRGT1JN
KE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJUZXh0Q29kZUNNYWMuaCIKICNlbmRp
ZgogCi0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVj
aWZpYy5oPgotdXNpbmcgbmFtZXNwYWNlIFdURjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBU
aHJlYWRTcGVjaWZpYzxUaHJlYWRHbG9iYWxEYXRhPiogVGhyZWFkR2xvYmFsRGF0YTo6c3RhdGlj
RGF0YTsKQEAgLTYxLDkgKzU2LDcgQEAgVGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0
YSgpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc01haW5UaHJlYWQoaXNNYWluVGhyZWFkKCkp
CiAjZW5kaWYKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgLCBtX2NhY2hlZENvbnZlcnRlcklD
VShhZG9wdFB0cihuZXcgSUNVQ29udmVydGVyV3JhcHBlcikpCi0jZW5kaWYKICNpZiBQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1MpCiAgICAgLCBtX2NhY2hlZENvbnZlcnRlclRFQyhhZG9w
dFB0cihuZXcgVEVDQ29udmVydGVyV3JhcHBlcikpCiAjZW5kaWYKQEAgLTg5LDkgKzgyLDcgQEAg
dm9pZCBUaHJlYWRHbG9iYWxEYXRhOjpkZXN0cm95KCkKICAgICBtX2NhY2hlZENvbnZlcnRlclRF
Qy5jbGVhcigpOwogI2VuZGlmCiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgbV9jYWNoZWRD
b252ZXJ0ZXJJQ1UuY2xlYXIoKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBtX2luc3BlY3RvckNvdW50ZXJzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmgKaW5kZXggZmZiMDE4YzdhMjBmZTdlYTMwNzhlODUxN2UxZjhmMzE1
MzI4ODY0MC4uZTM4NmJlMjQ3YjE5MzRjMGVmMzZkZGFiYWJlYjk1MDYxNjUxYzM3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtNTgsOSArNTgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEV2ZW50TmFtZXMmIGV2ZW50TmFtZXMoKSB7
IHJldHVybiAqbV9ldmVudE5hbWVzOyB9CiAgICAgICAgIFRocmVhZFRpbWVycyYgdGhyZWFkVGlt
ZXJzKCkgeyByZXR1cm4gKm1fdGhyZWFkVGltZXJzOyB9CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUp
CiAgICAgICAgIElDVUNvbnZlcnRlcldyYXBwZXImIGNhY2hlZENvbnZlcnRlcklDVSgpIHsgcmV0
dXJuICptX2NhY2hlZENvbnZlcnRlcklDVTsgfQotI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShJT1MpCiAgICAgICAgIFRFQ0NvbnZlcnRlcldyYXBwZXImIGNhY2hlZENv
bnZlcnRlclRFQygpIHsgcmV0dXJuICptX2NhY2hlZENvbnZlcnRlclRFQzsgfQpAQCAtODMsOSAr
ODEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9pc01haW5UaHJlYWQ7
CiAjZW5kaWYKIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKICAgICAgICAgT3duUHRyPElDVUNvbnZl
cnRlcldyYXBwZXI+IG1fY2FjaGVkQ29udmVydGVySUNVOwotI2VuZGlmCiAKICNpZiBQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1MpCiAgICAgICAgIE93blB0cjxURUNDb252ZXJ0ZXJXcmFw
cGVyPiBtX2NhY2hlZENvbnZlcnRlclRFQzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCmluZGV4IDM0
ODYzYmVmZWY2MzM2MDFlMjcxNjQyMzAyOGE5OGRkMDc5OTQ3NzIuLjFiY2UyYWFmN2M5ZDc4NDEw
NzhmMzYwMmE4YTExYmE4MDlmZTVlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJUZXh0
RW5jb2RpbmcuaCIKICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWlkbmEu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0zOCwxMCArMzksNiBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCi0jaW5jbHVkZSA8dW5pY29kZS91aWRuYS5o
PgotI2VuZGlmCi0KIC8vIEZJWE1FOiBUaGlzIGZpbGUgbWFrZXMgdG9vIG11Y2ggdXNlIG9mIHRo
ZSArIG9wZXJhdG9yIG9uIFN0cmluZy4KIC8vIFdlIGVpdGhlciBoYXZlIHRvIG9wdGltaXplIHRo
YXQgb3BlcmF0b3Igc28gaXQgZG9lc24ndCBpbnZvbHZlCiAvLyBzbyBtYW55IGFsbG9jYXRpb25z
LCBvciBjaGFuZ2UgdGhpcyB0byB1c2UgU3RyaW5nQnVmZmVyIGluc3RlYWQuCkBAIC0xNTA0LDE0
ICsxNTAxLDEyIEBAIHN0YXRpYyB2b2lkIGFwcGVuZEVuY29kZWRIb3N0bmFtZShVQ2hhckJ1ZmZl
ciYgYnVmZmVyLCBjb25zdCBVQ2hhciogc3RyLCB1bnNpZ25lCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgVUNoYXIgaG9zdG5hbWVCdWZmZXJbaG9z
dG5hbWVCdWZmZXJMZW5ndGhdOwogICAgIFVFcnJvckNvZGUgZXJyb3IgPSBVX1pFUk9fRVJST1I7
CiAgICAgaW50MzJfdCBudW1DaGFyYWN0ZXJzQ29udmVydGVkID0gdWlkbmFfSUROVG9BU0NJSShz
dHIsIHN0ckxlbiwgaG9zdG5hbWVCdWZmZXIsCiAgICAgICAgIGhvc3RuYW1lQnVmZmVyTGVuZ3Ro
LCBVSUROQV9BTExPV19VTkFTU0lHTkVELCAwLCAmZXJyb3IpOwogICAgIGlmIChlcnJvciA9PSBV
X1pFUk9fRVJST1IpCiAgICAgICAgIGJ1ZmZlci5hcHBlbmQoaG9zdG5hbWVCdWZmZXIsIG51bUNo
YXJhY3RlcnNDb252ZXJ0ZWQpOwotI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIGZpbmRIb3N0bmFt
ZXNJbk1haWxUb1VSTChjb25zdCBVQ2hhciogc3RyLCBpbnQgc3RyTGVuLCBWZWN0b3I8c3RkOjpw
YWlyPGludCwgaW50Pj4mIG5hbWVSYW5nZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJh
dG9yLmNwcAppbmRleCBlZDZhMzMzNzZhNWE4NTIzYmI3MTg4YmI0Zjk4ODA0ZThhZTQwYWFiLi45
MTU1ZTcxMWE4ZGE4MGQ0ZWIzZGNmNWRhNWFjMzA1YTI4Y2JlYTc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBh
aXJBd2FyZVRleHRJdGVyYXRvci5jcHAKQEAgLTIzLDEyICsyMyw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmgiCiAKLSNp
ZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVkZSA8dW5pY29kZS91bm9ybS5oPgotI2VuZGlmCi0K
LXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci11c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRDb2RlY0lDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0lDVS5jcHAKaW5kZXggYzk1NGJmMjYzNTgwZTBjMDg0Y2RlMTc4MzFhNDQxYWFjOGIxZjdkZC4u
ZjZkMTZjYmYxZjBlMTgwODBiZWQ3YmY5NjJiOWJjNzBiNzA3NDBhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcApAQCAtMjUsNyArMjUsNiBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVk
ZSAiVGV4dENvZGVjSUNVLmgiCiAKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKQEAgLTU0Miw1
ICs1NDEsMyBAQCBDU3RyaW5nIFRleHRDb2RlY0lDVTo6ZW5jb2RlKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCBzaXplX3QgbGVuZ3RoLCBVbmVuY29kYWJsZQogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0RW5jb2RpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmcuY3BwCmluZGV4IGY0NTdiMTY0MjVlZGFjZmYyNDRkN2JlYjBlMzVkZjk3Y2UxY2VmNmQu
LmQyNzA4MjY3MDg3NTA5YjAwMDI5YWVhNTc3NjEyM2U5YWJkZmNmMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKQEAgLTMwLDE1ICszMCwxMiBA
QAogCiAjaW5jbHVkZSAiVGV4dENvZGVjLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nUmVnaXN0
cnkuaCIKKyNpbmNsdWRlIDx1bmljb2RlL3Vub3JtLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBVU0UoSUNVX1VO
SUNPREUpCi0jaW5jbHVkZSA8dW5pY29kZS91bm9ybS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IFRleHRFbmNvZGluZyYgVVRGN0VuY29kaW5nKCkKQEAg
LTc1LDcgKzcyLDYgQEAgQ1N0cmluZyBUZXh0RW5jb2Rpbmc6OmVuY29kZShjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgc2l6ZV90IGxlbmd0aCwgVW5lbmNvZGFibGUKICAgICBpZiAoIWxlbmd0aCkK
ICAgICAgICAgcmV0dXJuICIiOwogCi0jaWYgVVNFKElDVV9VTklDT0RFKQogICAgIC8vIEZJWE1F
OiBXaGF0J3MgdGhlIHJpZ2h0IHBsYWNlIHRvIGRvIG5vcm1hbGl6YXRpb24/CiAgICAgLy8gSXQn
cyBhIGxpdHRsZSBzdHJhbmdlIHRvIGRvIGl0IGluc2lkZSB0aGUgZW5jb2RlIGZ1bmN0aW9uLgog
ICAgIC8vIFBlcmhhcHMgbm9ybWFsaXphdGlvbiBzaG91bGQgYmUgYW4gZXhwbGljaXQgc3RlcCBk
b25lIGJlZm9yZSBjYWxsaW5nIGVuY29kZS4KQEAgLTEwMSwxMSArOTcsNiBAQCBDU3RyaW5nIFRl
eHRFbmNvZGluZzo6ZW5jb2RlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3Ro
LCBVbmVuY29kYWJsZQogICAgICAgICBzb3VyY2VMZW5ndGggPSBub3JtYWxpemVkTGVuZ3RoOwog
ICAgIH0KICAgICByZXR1cm4gbmV3VGV4dENvZGVjKCp0aGlzKS0+ZW5jb2RlKHNvdXJjZSwgc291
cmNlTGVuZ3RoLCBoYW5kbGluZyk7Ci0jZWxpZiBPUyhXSU5ET1dTKSAmJiBVU0UoV0NIQVJfVU5J
Q09ERSkKLSAgICAvLyBub3JtYWxpemF0aW9uIHdpbGwgYmUgZG9uZSBieSBXaW5kb3dzIENFIEFQ
SQotICAgIE93blB0cjxUZXh0Q29kZWM+IHRleHRDb2RlYyA9IG5ld1RleHRDb2RlYygqdGhpcyk7
Ci0gICAgcmV0dXJuIHRleHRDb2RlYy5nZXQoKSA/IHRleHRDb2RlYy0+ZW5jb2RlKGNoYXJhY3Rl
cnMsIGxlbmd0aCwgaGFuZGxpbmcpIDogQ1N0cmluZygpOwotI2VuZGlmCiB9CiAKIGNvbnN0IGNo
YXIqIFRleHRFbmNvZGluZzo6ZG9tTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCmluZGV4IDhkZmQxZmQy
MGI5NDRkMTdlOWFjZmIzNDNkY2JhZDM5NDFlNjBhYTQuLjZiZGQ4ZmFjN2RhYzc2MDAyMDUwOTY3
YjE0NTUzMGVjMDQxOWY3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nUmVnaXN0cnkuaCIKIAorI2luY2x1
ZGUgIlRleHRDb2RlY0lDVS5oIgogI2luY2x1ZGUgIlRleHRDb2RlY0xhdGluMS5oIgogI2luY2x1
ZGUgIlRleHRDb2RlY1VzZXJEZWZpbmVkLmgiCiAjaW5jbHVkZSAiVGV4dENvZGVjVVRGMTYuaCIK
QEAgLTQxLDE1ICs0Miw5IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKLSNpbmNsdWRl
ICJUZXh0Q29kZWNJQ1UuaCIKLSNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykKICNpbmNsdWRlICJUZXh0Q29kZWNNYWMuaCIKICNlbmRpZgotI2lmIE9TKFdJTkRPV1Mp
ICYmIFVTRShXQ0hBUl9VTklDT0RFKQotI2luY2x1ZGUgIndpbi9UZXh0Q29kZWNXaW4uaCIKLSNl
bmRpZgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgpAQCAtMjgxLDIxICsyNzYsMTQgQEAgYm9vbCBzaG91bGRTaG93QmFja3NsYXNo
QXNDdXJyZW5jeVN5bWJvbEluKGNvbnN0IGNoYXIqIGNhbm9uaWNhbEVuY29kaW5nTmFtZSkKIAog
c3RhdGljIHZvaWQgZXh0ZW5kVGV4dENvZGVjTWFwcygpCiB7Ci0jaWYgVVNFKElDVV9VTklDT0RF
KQogICAgIFRleHRDb2RlY0lDVTo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKGFkZFRvVGV4dEVuY29k
aW5nTmFtZU1hcCk7CiAgICAgVGV4dENvZGVjSUNVOjpyZWdpc3RlckNvZGVjcyhhZGRUb1RleHRD
b2RlY01hcCk7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykK
ICAgICBUZXh0Q29kZWNNYWM6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhhZGRUb1RleHRFbmNvZGlu
Z05hbWVNYXApOwogICAgIFRleHRDb2RlY01hYzo6cmVnaXN0ZXJDb2RlY3MoYWRkVG9UZXh0Q29k
ZWNNYXApOwogI2VuZGlmCiAKLSNpZiBPUyhXSU5ET1dTKSAmJiBVU0UoV0NIQVJfVU5JQ09ERSkK
LSAgICBUZXh0Q29kZWNXaW46OnJlZ2lzdGVyRXh0ZW5kZWRFbmNvZGluZ05hbWVzKGFkZFRvVGV4
dEVuY29kaW5nTmFtZU1hcCk7Ci0gICAgVGV4dENvZGVjV2luOjpyZWdpc3RlckV4dGVuZGVkQ29k
ZWNzKGFkZFRvVGV4dENvZGVjTWFwKTsKLSNlbmRpZgotCiAgICAgcHJ1bmVCbGFja2xpc3RlZENv
ZGVjcygpOwogICAgIGJ1aWxkUXVpcmtzU2V0cygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRl
eCA1ZTgwNmJiMzI2NjQ2MWI3NmMxZmRiNDBiZGZjMWRiMTUwZmVlYmRkLi5iNGU4MjA2MjM3YjY0
NWFjNjU4ODc3NGM5NmY3NmNmNjM5YWJhMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMjgs
MTMgKzI4LDExIEBAIGZpbmRfcGFja2FnZShaTElCIFJFUVVJUkVEKQogZmluZF9wYWNrYWdlKEdM
SUIgMi4zNi4wIFJFUVVJUkVEIENPTVBPTkVOVFMgZ2lvIGdvYmplY3QgZ3RocmVhZCkKIGZpbmRf
cGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKIAotc2V0KFdURl9VU0VfSUNVX1VOSUNP
REUgMSkKIHNldChXVEZfVVNFX1NPVVAgMSkKIHNldChXVEZfVVNFX1VESVM4NiAxKQogCiBhZGRf
ZGVmaW5pdGlvbnMoLURXVEZfVVNFX0dMSUI9MSkKIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0Vf
U09VUD0xKQotYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9JQ1VfVU5JQ09ERT0xKQogYWRkX2Rl
ZmluaXRpb25zKC1EV1RGX1VTRV9DQUlSTz0xKQogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9D
Uk9TU19QTEFURk9STV9DT05URVhUX01FTlVTPTEpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXgg
OTNlZmQ4NWFhN2NiZDJmMTEzMDBiZTMxYjcxMDkzMjIxNmEwMjI3OS4uMjQ2YTYyYTU4ZTUzMzg2
OGYxNGQyODExMTk2YTJlNmI1MDA2NTRkMSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTExMSw3
ICsxMTEsNiBAQCBzZXQoRU5BQkxFX1BMVUdJTl9QUk9DRVNTIE9OKQogc2V0KEVOQUJMRV9XRUJL
SVQgT04pCiBzZXQoRU5BQkxFX1dFQktJVDIgT04pCiAKLXNldChXVEZfVVNFX0lDVV9VTklDT0RF
IDEpCiBzZXQoV1RGX1VTRV9TT1VQIDEpCiAKIHNldChXVEZfT1VUUFVUX05BTUUgV1RGR1RLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9PcHRpb25zV2luQ0UuY21ha2UKaW5kZXggODc3OGM0ZDllOWZiY2I5YTYxN2Q2YjNhMzEwMTM5
MzdiYzg5NWNhMy4uNDMzN2E0ODJlZWFhZDM2MzJlZDBmYTk4YzU4ZWNkNGI1MWVmNjg5YiAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dpbkNFLmNtYWtlCkBAIC0xLDExICsxLDkgQEAKIGluY2x1ZGUoT3B0aW9uc1dp
bmRvd3MpCiAKIHNldChQT1JUX0ZBTExCQUNLIFdpbikKLXNldChXVEZfVVNFX1dDSEFSX1VOSUNP
REUgMSkKIAogYWRkX2RlZmluaXRpb25zKC1EX0NFX0NSVF9BTExPV19XSU5fTUlOTUFYKQogYWRk
X2RlZmluaXRpb25zKC1EV1RGX1VTRV9FWFBPUlRfTUFDUk9TPTApCi1hZGRfZGVmaW5pdGlvbnMo
LURXVEZfVVNFX1dDSEFSX1VOSUNPREU9MSkKIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfV0lO
R0RJPTEpCiBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX1dJTklORVQ9MSkKIGFkZF9kZWZpbml0
aW9ucygtRFdJTkNFQkFTSUMpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5k
ZXggMTlkZDdkZWYwYWQ0YjhlMTA5OTQ2M2E4MGUyNGY1Y2VjZmQ1MjkzZS4uZTg4MDE2M2RhM2M0
YWJkYmI4ODA2YzQ1ZWYxNGFjYzIxMjI3ZWIzYyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RFIGFuZCBXQ0hB
Ul9VTklDT0RFIHJlbW5hbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjc2MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOiBSZW1vdmVkIElDVV9V
TklDT0RFIGFuZCBXQ0hBUl9VTklDT0RFIGZsYWdzLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dp
bkNFLmNtYWtlOiBEaXR0by4KKwogMjAxNC0wMS0yMyAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0Bh
ZG9iZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENTUyBDdXN0b20gRmlsdGVycyBjb2RlIGFuZCB0
ZXN0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222221</attachid>
            <date>2014-01-25 11:42:09 -0800</date>
            <delta_ts>2014-01-25 11:43:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127623-20140125114208.patch</filename>
            <type>text/plain</type>
            <size>34984</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
M2U4MDVkYzlkZjA4N2I5MzM0ZWNjYWY5NGQ1MTQzODdkOTlkMmYyLi4wMGYyZTFkOTUzZmQ2N2Jj
NTdiMTkxY2JiZTZjNDdmMGU3ZWJmMjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNC0wMS0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgR2V0IHJpZCBvZiBJQ1VfVU5JQ09ERSBhbmQgV0NIQVJfVU5JQ09ERSByZW1uYW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwOiBSZW1vdmVkIFVTRShJQ1VfVU5JQ09ERSkgY2hlY2tzLCBz
aW5jZSB0aGF0J3MgYWx3YXlzIHRydWUgbm93LgorCiAyMDE0LTAxLTI0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQgaW50byBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlM2MxYWQxMDIx
ZmY5ZjFiY2VkOTdhZGIzNjljMjNhOTVhNDMwYjQyLi4zNWEwZGJjM2NjNmIyMmY5MTUwYmExODdm
OTVhYTFhYzc1MjE5Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE0LTAxLTI1ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RF
IGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5hbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCBXVEZfVVNF
X0lDVV9VTklDT0RFIGFuZAorICAgICAgICBXVEZfVVNFX1dDSEFSX1VOSUNPREUgc2luY2UgdGhl
eSBhcmUgdHJ1ZSBhbmQgZmFsc2UgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6IFJlbW92ZWQgY29kZSB0byBzZXQgV1RGX1VTRV9JQ1VfVU5JQ09ERS4KKworICAgICAg
ICAqIHd0Zi91bmljb2RlL0NvbGxhdG9yLmg6IFJlbW92ZWQgaWZkZWZzLgorICAgICAgICAqIHd0
Zi91bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHA6IERpdHRvLgorICAgICAgICAqIHd0Zi91bmlj
b2RlL1VuaWNvZGUuaDogRGl0dG8uCisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9y
SUNVLmNwcDogRGl0dG8uCisKKzIwMTQtMDEtMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCiAgICAgICAgIFJlc3RvcmUgYWxwaGFiZXRpY2FsIG9yZGVyIGluIENvbXBpbGVyLmgK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyMAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggOWM1OTE3ODAzNzhkM2RlOWNjOTY5NTMyYjYzOGY1YjQ1NzE4MWUyYy4u
YTJhODg1MWU5MWI1YTc2MjcyYjEwOWQ5ZjQ2NjM5MWM5Y2RlYmFjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RFIGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5h
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OiBSZW1vdmVkIFNtYXJ0UmVwbGFjZUlDVS5jcHAuCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IERp
dHRvLgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKworICAgICAgICAqIGVk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246Om1vZGlmeU1vdmluZ1JpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5TW92aW5nTGVmdCk6IERpdHRvLgorCisgICAgICAgICogZWRpdGluZy9T
bWFydFJlcGxhY2UuY3BwOiBNb3ZlZCBjb2RlIGhlcmUgZnJvbSBTbWFydFJlcGxhY2VJQ1UsCisg
ICAgICAgIHNpbmNlIHdlIGFsd2F5cyBzdXBwb3J0IElDVSBub3cuIEFkZGVkIHNvbWUgRklYTUUg
Y29tbWVudHMgYWJvdXQKKyAgICAgICAgYnVncyBhbmQgbWlzdGFrZXMgSSBzcG90dGVkIGluIHRo
ZSBjb2RlIGFzIEkgd2FzIG1vdmluZyBpdC4KKyAgICAgICAgKiBlZGl0aW5nL1NtYXJ0UmVwbGFj
ZUlDVS5jcHA6IFJlbW92ZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6
IFJlbW92ZWQgdW5uZWVkZWQgY2hlY2tzLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xv
YmFsRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6ZGVz
dHJveSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaCBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5k
RW5jb2RlZEhvc3RuYW1lKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU3Vy
cm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcDogRGl0dG8uCisgICAgICAgIEFsc28gcmVt
b3ZlZCB1bm5lZWRlZCAidXNpbmcgbmFtZXNwYWNlIi4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L1RleHRDb2RlY0lDVS5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRFbmNvZGluZzo6ZW5jb2RlKTogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpleHRlbmRUZXh0Q29kZWNNYXBzKTogRGl0dG8uCisKIDIwMTQtMDEt
MjUgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIE1vdmUg
Q1NTR3JvdXBpbmdSdWxlLCBDU1NTdHlsZVNoZWV0LCBFbGVtZW50UnVsZUNvbGxlY3RvciB0byBz
dGQ6OnVuaXF1ZV9wdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKaW5kZXggOTkxMTQ4N2UwOTMyZjI4YzIzNTIxOTllZThlYjIzOTI2ZDc0ZGU2
Yi4uYmFlYTNkMjhhYmNkZjY0ZmUyMzk1MTIxYzc1ZWI3MDhiZmVlODAwYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTM0LDIwICsz
NCwyMCBAQAogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKLQotI2lmICFQTEFURk9STShNQUMpICYmIEhBVkUo
TEFOR0lORk9fSCkKLSNpbmNsdWRlIDxsYW5naW5mby5oPgotI2VuZGlmCi0KICNpbmNsdWRlIDxs
aW1pdHMuaD4KICNpbmNsdWRlIDxsb2NhbGUuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdC5o
PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAKKyNpZiBIQVZFKExBTkdJTkZPX0gp
CisjaW5jbHVkZSA8bGFuZ2luZm8uaD4KKyNlbmRpZgorCiAjaWYgSEFWRShTWVNfUEFSQU1fSCkK
ICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNlbmRpZgpAQCAtNjAsMTAgKzYwLDggQEAKICNpbmNs
dWRlIDxzeXMvdGltZWIuaD4KICNlbmRpZgogCi0jaWYgT1MoREFSV0lOKSAmJiBVU0UoQ0YpCisj
aWYgVVNFKENGKQogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0j
ZWxpZiBVU0UoSUNVX1VOSUNPREUpCi0jaW5jbHVkZSA8dW5pY29kZS91ZGF0Lmg+CiAjZW5kaWYK
IAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTE5MSw3ICsxODksNyBAQCBzdGF0aWMgSlNDZWxs
KiBmb3JtYXRMb2NhbGVEYXRlKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZUluc3RhbmNlKiwgZG91Ymxl
IHRpbWVJbk1pbAogICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgU3RyaW5nKGJ1
ZmZlciwgbGVuZ3RoKSk7CiB9CiAKLSNlbGlmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdf
Tk9fRk9STUFUVElORworI2VsaWYgIVVDT05GSUdfTk9fRk9STUFUVElORwogCiBzdGF0aWMgSlND
ZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZUluc3RhbmNlKiwgZG91
YmxlIHRpbWVJbk1pbGxpc2Vjb25kcywgTG9jYWxlRGF0ZVRpbWVGb3JtYXQgZm9ybWF0KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA1NmFhMTE0NWVjZmUzYWI4YTkwNTQ5YzBkOWU5NTFkYTEw
MjdhMDk2Li45OGJhZmI5YjYxNjAzM2E3MTVlNjI3OTBhNmFlYWJkOTdmM2EzYzE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dApAQCAtMjIyLDMwICsyMjIsMTkgQEAgc2V0KFdURl9MSUJSQVJJRVMKICAg
ICAke0NNQUtFX0RMX0xJQlN9CiApCiAKLWlmIChXVEZfVVNFX0lDVV9VTklDT0RFKQotICAgIGxp
c3QoQVBQRU5EIFdURl9IRUFERVJTCi0gICAgICAgIHVuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAot
ICAgICkKLSAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgICAgICB1bmljb2RlL2ljdS9D
b2xsYXRvcklDVS5jcHAKLSAgICApCi0gICAgbGlzdChBUFBFTkQgV1RGX0lOQ0xVREVfRElSRUNU
T1JJRVMKLSAgICAgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQotICAgICkKLSAgICBsaXN0KEFQUEVO
RCBXVEZfTElCUkFSSUVTCi0gICAgICAgICR7SUNVX0kxOE5fTElCUkFSSUVTfQotICAgICAgICAk
e0lDVV9MSUJSQVJJRVN9Ci0gICAgKQotZWxzZWlmIChXVEZfVVNFX1dDSEFSX1VOSUNPREUpCi0g
ICAgbGlzdChBUFBFTkQgV1RGX0hFQURFUlMKLSAgICAgICAgdW5pY29kZS93Y2hhci9Vbmljb2Rl
V2NoYXIuaAotICAgICkKLSAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgICAgICB1bmlj
b2RlL0NvbGxhdG9yRGVmYXVsdC5jcHAKLQotICAgICAgICB1bmljb2RlL3djaGFyL1VuaWNvZGVX
Y2hhci5jcHAKLSAgICApCi1lbmRpZiAoKQorbGlzdChBUFBFTkQgV1RGX0hFQURFUlMKKyAgICB1
bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKKykKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAg
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCispCitsaXN0KEFQUEVORCBXVEZfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICR7SUNVX0lOQ0xVREVfRElSU30KKykKK2xpc3QoQVBQRU5EIFdURl9M
SUJSQVJJRVMKKyAgICAke0lDVV9JMThOX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9
CispCiAKIGlmIChXSU4zMikKICAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgK
aW5kZXggODI2NTI2ZDE5YmM2ZGZjZDViMDk2ZjNhNmRjMmMyZWJiOWNlMDVhNC4uYWEwYWM1NzM0
MTRiMzI4ZDlhNTlhNzU5MTM4ZmJkNDFjNGZmMGIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC00NzAsMTAg
KzQ3MCw2IEBACiAjZGVmaW5lIFdURl9VU0VfUVVFUllfUEVSRk9STUFOQ0VfQ09VTlRFUiAgMQog
I2VuZGlmCiAKLSNpZiAhVVNFKFdDSEFSX1VOSUNPREUpCi0jZGVmaW5lIFdURl9VU0VfSUNVX1VO
SUNPREUgMQotI2VuZGlmCi0KICNpZiBQTEFURk9STShDT0NPQSkKIAogI2RlZmluZSBXVEZfVVNF
X0NGIDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3IuaCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3IuaAppbmRleCA5MTNiMTM3ODJiNGI0NzIxNjM2
OTM5YTUxY2VlZjliNDdhNzM2NjZhLi42NzQ4NmM3ZDAyYmUxYTgwOGE5MDY4MGM0NmYwNmEwZTgw
MDkzNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yLmgKKysr
IGIvU291cmNlL1dURi93dGYvdW5pY29kZS9Db2xsYXRvci5oCkBAIC0zMyw5ICszMyw3IEBACiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4K
IAotI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9fQ09MTEFUSU9OCiBzdHJ1Y3Qg
VUNvbGxhdG9yOwotI2VuZGlmCiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC01Myw3ICs1MSw3IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmVzdWx0IGNvbGxh
dGUoY29uc3QgOjpVQ2hhciosIHNpemVfdCwgY29uc3QgOjpVQ2hhciosIHNpemVfdCkgY29uc3Q7
CiAKICAgICBwcml2YXRlOgotI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9fQ09M
TEFUSU9OCisjaWYgIVVDT05GSUdfTk9fQ09MTEFUSU9OCiAgICAgICAgIHZvaWQgY3JlYXRlQ29s
bGF0b3IoKSBjb25zdDsKICAgICAgICAgdm9pZCByZWxlYXNlQ29sbGF0b3IoKTsKICAgICAgICAg
bXV0YWJsZSBVQ29sbGF0b3IqIG1fY29sbGF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi91bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL0Nv
bGxhdG9yRGVmYXVsdC5jcHAKaW5kZXggNGU4MWZlZjdjYzBkM2E4MjY3MDRjMjRhOTYxYzdlMDM3
NmZkYWU2ZC4uZDU2YmI1YTM4YTQxZjg0YWIzMTc1N2Y1N2EzZjFiM2ZlOTJlMGRkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9Db2xsYXRvckRlZmF1bHQuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcApAQCAtMjksNyArMjksNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbGxhdG9yLmgiCiAKLSNpZiAhVVNF
KElDVV9VTklDT0RFKSB8fCBVQ09ORklHX05PX0NPTExBVElPTgorI2lmIFVDT05GSUdfTk9fQ09M
TEFUSU9OCiAKIG5hbWVzcGFjZSBXVEYgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bmljb2RlL1VuaWNvZGUuaCBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVW5pY29kZS5oCmluZGV4
IGJmMzhlMmU4YmQ3OWUwZTQyNWYyODkwMmViYWY1MDMxZjc1Y2ZhNzQuLjg0Zjc3NzM0MjJjNGU4
ZTQxOTIzODkxZmRlOTZiOTc1MTE2OWRhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Vu
aWNvZGUvVW5pY29kZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVW5pY29kZS5oCkBA
IC0yOCwxMyArMjgsNyBAQAogLy8gRGVmaW5lIHBsYXRmb3JtIG5ldXRyYWwgOCBiaXQgY2hhcmFj
dGVyIHR5cGUgKEwgaXMgZm9yIExhdGluLTEpLgogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIExDaGFy
OwogCi0jaWYgVVNFKElDVV9VTklDT0RFKQogI2luY2x1ZGUgPHd0Zi91bmljb2RlL2ljdS9Vbmlj
b2RlSWN1Lmg+Ci0jZWxpZiBVU0UoV0NIQVJfVU5JQ09ERSkKLSNpbmNsdWRlIDx3dGYvdW5pY29k
ZS93Y2hhci9Vbmljb2RlV2NoYXIuaD4KLSNlbHNlCi0jZXJyb3IgIlVua25vd24gVW5pY29kZSBp
bXBsZW1lbnRhdGlvbiIKLSNlbmRpZgogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihVQ2hhcikgPT0g
MiwgIlVDaGFyIG11c3QgYmUgdHdvIGJ5dGVzISIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2Rl
L2ljdS9Db2xsYXRvcklDVS5jcHAKaW5kZXggMjA5YzAyMzA4YTUxMTZhZDIxNDJhZjg3OGY2NWRl
ZTU5MTU5Mzg5MS4uZTQwNTliY2RjZmFhOWZjMDJlMTgzMmNkMjIyNzNmMzU2ZGM2ZmY1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcApAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NvbGxhdG9y
Lmg+CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0NPTExBVElPTgorI2lm
ICFVQ09ORklHX05PX0NPTExBVElPTgogCiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KQEAgLTE1Niw0ICsxNTYsNCBAQCB2b2lkIENvbGxhdG9yOjpyZWxlYXNl
Q29sbGF0b3IoKQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI2VuZGlmIC8vIFVTRShJQ1VfVU5J
Q09ERSkgJiYgIVVDT05GSUdfTk9fQ09MTEFUSU9OCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggZDAzZThhZDZhYTMyYjk1NDZiMmMyYTU0YWE1YzFiMDQ0N2Y3OWJlNi4uMzY5MjEzMWJk
YjM4ODBmNjc5NDNmZmRmNzZmYWU0NmZjNzExMGVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTI3NzAsMjkgKzI3NzAsMTkgQEAgaWYgKEVOQUJMRV9RVU9UQSkKICAgICApCiBlbmRpZiAoKQog
Ci0KLWlmIChXVEZfVVNFX0lDVV9VTklDT0RFKQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUwotICAgICAgICBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyLmNwcAotICAgICAg
ICBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcAotICAgICAgICBwbGF0
Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyVVRGMTYuY3BwCi0gICAgICAgIHBsYXRmb3JtL3Rl
eHQvVGV4dENvZGVjSUNVLmNwcAotICAgICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ0Rl
dGVjdG9ySUNVLmNwcAotICAgICkKLSAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElS
RUNUT1JJRVMKLSAgICAgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQotICAgICkKLSAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX0xJQlJBUklFUwotICAgICAgICAke0lDVV9MSUJSQVJJRVN9Ci0gICAgKQot
ZWxzZWlmIChXVEZfVVNFX1dDSEFSX1VOSUNPREUpCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCi0gICAgICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JOb25lLmNw
cAotCi0gICAgICAgIHBsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5j
cHAKLSAgICApCi1lbmRpZiAoKQotCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBw
bGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyLmNwcAorICAgIHBsYXRmb3JtL3RleHQvaWN1
L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92
aWRlclVURjE2LmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCispCitsaXN0KEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0lDVV9JTkNMVURFX0RJUlN9CispCits
aXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICR7SUNVX0xJQlJBUklFU30KKykKIAog
aWYgKFdURl9VU0VfTEVWRUxEQikKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElS
RUNUT1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1ZDQwN2I1ZTA0MThl
ODdhMjMyMjM2YmUwZGVmZWNjNzg4YmI1YTEuLmJjMTBjZTcxODFkN2U1NDc0YjBiZDgyODQ5ZGY0
NTgwNmM5ZDEyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzEzNSw3ICsz
MTM1LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Np
bXBsaWZ5TWFya3VwQ29tbWFuZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVw
bGFjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmggXAotCVNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlv
bkNvbW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNzEwNWVjNGJjZjA4
Yjg5YmU1MTBlYjdkMjAyMjk4MDlhMDhiMGIzNi4uOTk2Yjc2ZjJlOGY2YTU5MjdjN2E4M2MzOGZh
YTY5ODQ2OTYwZmQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTM0LDcgKzM0LDcg
QEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZVV0aWwuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNz
aWJsZVdyYXBwZXJBdGsuY3BwCiAKLSAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAKKyAg
ICBlZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKIAogICAgIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0
aW9uQXRrLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGRmZTM4Y2NlNTAxZTI1
ZTRiNzRlZTA4ODdlODM1ZWIxYWViNWZiMDEuLmZmNmU3ZWU4YjlmNzgzY2E2OTYwNTE1YjFkNDdi
Y2FiOTNjMDdjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yNSw3ICsyNSw3IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKLSAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAKKyAgICBl
ZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKIAogICAgIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNH
dGsuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXgg
Y2YwZmVhZjE5ODY0Y2EzYmYxMzcwMWYxMGIxNjc2NDE0OGRjZjhmZi4uZmNkZjY3NzNiZDAyZDI3
YWIyMjhlMTA5ZjJmMmIwYjkzZmM5YTQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKQEAgLTcxMiwxMyArNzEyLDExIEBAIFZpc2libGVQb3NpdGlvbiBGcmFt
ZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nUmlnaHQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQogICAgICAgICAgICAgcG9zID0gVmlzaWJsZVBvc2l0aW9uKG1fc2VsZWN0aW9uLmV4dGVudCgp
LCBtX3NlbGVjdGlvbi5hZmZpbml0eSgpKS5yaWdodCh0cnVlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6IHsKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgICAg
IC8vIFZpc3VhbCB3b3JkIG1vdmVtZW50IHJlbGllcyBvbiBpc1dvcmRUZXh0QnJlYWsgd2hpY2gg
aXMgbm90IGltcGxlbWVudGVkIGluIFdpbkNFIGFuZCBRVC4KICAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMTM2LgogICAgICAgICBib29sIHNraXBz
U3BhY2VXaGVuTW92aW5nUmlnaHQgPSBtX2ZyYW1lICYmIG1fZnJhbWUtPmVkaXRvcigpLmJlaGF2
aW9yKCkuc2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0KCk7CiAgICAgICAgIHBvcyA9IHJp
Z2h0V29yZFBvc2l0aW9uKFZpc2libGVQb3NpdGlvbihtX3NlbGVjdGlvbi5leHRlbnQoKSwgbV9z
ZWxlY3Rpb24uYWZmaW5pdHkoKSksIHNraXBzU3BhY2VXaGVuTW92aW5nUmlnaHQpOwogICAgICAg
ICBicmVhazsKLSNlbmRpZgogICAgIH0KICAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CiAg
ICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CkBAIC05MDgsMTEgKzkwNiw5IEBAIFZpc2libGVQb3Np
dGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nTGVmdChUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCiAgICAgICAgICAgICBwb3MgPSBWaXNpYmxlUG9zaXRpb24obV9zZWxlY3Rpb24u
ZXh0ZW50KCksIG1fc2VsZWN0aW9uLmFmZmluaXR5KCkpLmxlZnQodHJ1ZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OiB7Ci0jaWYgVVNFKElDVV9VTklDT0RFKQog
ICAgICAgICBib29sIHNraXBzU3BhY2VXaGVuTW92aW5nUmlnaHQgPSBtX2ZyYW1lICYmIG1fZnJh
bWUtPmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0KCk7
CiAgICAgICAgIHBvcyA9IGxlZnRXb3JkUG9zaXRpb24oVmlzaWJsZVBvc2l0aW9uKG1fc2VsZWN0
aW9uLmV4dGVudCgpLCBtX3NlbGVjdGlvbi5hZmZpbml0eSgpKSwgc2tpcHNTcGFjZVdoZW5Nb3Zp
bmdSaWdodCk7CiAgICAgICAgIGJyZWFrOwotI2VuZGlmCiAgICAgfQogICAgIGNhc2UgU2VudGVu
Y2VHcmFudWxhcml0eToKICAgICBjYXNlIExpbmVHcmFudWxhcml0eToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU21hcnRSZXBsYWNlLmNwcAppbmRleCA3YjhjYTQ1NjQzMTFjMTI5OTU4ZjM1ZWIyOTcz
MWFhYzI4YzhlZDhhLi4wMzRkYmZlYmIyOWEyOGIwZWQ5Mzc2YzAxMjI0MzJiMWEyZDk5MDdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvbnkgQ2hhbmcgPGlkZWFsaXNtc0BnbWFpbC5jb20+
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEzICszMCw3MyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogCi0jaWYgIVVTRShD
RikgJiYgIVVTRShJQ1VfVU5JQ09ERSkKKyNpZiAhVVNFKENGKQorCisjaW5jbHVkZSA8dW5pY29k
ZS91c2V0Lmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgdm9pZCBhZGRB
bGxDb2RlUG9pbnRzKFVTZXQqIHNtYXJ0U2V0LCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAg
ICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHN0cmluZy5jaGFyYWN0ZXJzKCk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoKCk7IGkrKykKKyAgICAgICAgdXNldF9h
ZGQoc21hcnRTZXQsIGNoYXJhY3RlcnNbaV0pOworfQorCisvLyBUaGlzIGlzIG1vc3RseSBhIHBv
cnQgb2YgdGhlIGNvZGUgaW4gV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZUNGLmNwcAorLy8g
ZXhjZXB0IHdlIHVzZSBJQ1UgaW5zdGVhZCBvZiBDb3JlRm91bmRhdGlvbiBjaGFyYWN0ZXIgY2xh
c3Nlcy4KK3N0YXRpYyBVU2V0KiBnZXRTbWFydFNldChib29sIGlzUHJldmlvdXNDaGFyYWN0ZXIp
Cit7CisgICAgc3RhdGljIFVTZXQqIHByZVNtYXJ0U2V0ID0gbnVsbHB0cjsKKyAgICBzdGF0aWMg
VVNldCogcG9zdFNtYXJ0U2V0ID0gbnVsbHB0cjsKKyAgICBVU2V0KiBzbWFydFNldCA9IGlzUHJl
dmlvdXNDaGFyYWN0ZXIgPyBwcmVTbWFydFNldCA6IHBvc3RTbWFydFNldDsKKyAgICBpZiAoIXNt
YXJ0U2V0KSB7CisgICAgICAgIC8vIFdoaXRlc3BhY2UgYW5kIG5ld2xpbmUgKGtDRkNoYXJhY3Rl
clNldFdoaXRlc3BhY2VBbmROZXdsaW5lKQorICAgICAgICBVRXJyb3JDb2RlIGVjID0gVV9aRVJP
X0VSUk9SOworICAgICAgICBTdHJpbmcgd2hpdGVzcGFjZUFuZE5ld2xpbmUgPSBBU0NJSUxpdGVy
YWwoIltbOldTcGFjZTpdIFtcXHUwMDBBXFx1MDAwQlxcdTAwMENcXHUwMDBEXFx1MDA4NV1dIik7
CisgICAgICAgIHNtYXJ0U2V0ID0gdXNldF9vcGVuUGF0dGVybih3aGl0ZXNwYWNlQW5kTmV3bGlu
ZS5jaGFyYWN0ZXJzKCksIHdoaXRlc3BhY2VBbmROZXdsaW5lLmxlbmd0aCgpLCAmZWMpOworICAg
ICAgICBBU1NFUlQoVV9TVUNDRVNTKGVjKSk7CisKKyAgICAgICAgLy8gQ0pLIHJhbmdlcworICAg
ICAgICAvLyBGSVhNRTogTG9va3MgbGlrZSBhbGwgdGhlc2UgcmFuZ2VzIGluY2x1ZGUgb25lIGV4
dHJhIGNoYXJhY3RlciBwYXN0IHRoZSBlbmQuCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRT
ZXQsIDB4MTEwMCwgMHgxMTAwICsgMjU2KTsgLy8gSGFuZ3VsIEphbW8gKDB4MTEwMCAtIDB4MTFG
RikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgyRTgwLCAweDJFODAgKyAzNTIp
OyAvLyBDSksgJiBLYW5neGkgUmFkaWNhbHMgKDB4MkU4MCAtIDB4MkZERikKKyAgICAgICAgdXNl
dF9hZGRSYW5nZShzbWFydFNldCwgMHgyRkYwLCAweDJGRjAgKyA0NjQpOyAvLyBJZGVvZ3JhcGgg
RGVzY3JpcHRpb25zLCBDSksgU3ltYm9scywgSGlyYWdhbmEsIEthdGFrYW5hLCBCb3BvbW9mbywg
SGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbywgS2FuYnVuLCAmIEJvcG9tb2ZvIEV4dCAoMHgyRkYw
IC0gMHgzMUJGKQorICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0U2V0LCAweDMyMDAsIDB4MzIw
MCArIDI5MzkyKTsgLy8gRW5jbG9zZWQgQ0pLLCBDSksgSWRlb2dyYXBocyAoVW5pIEhhbiAmIEV4
dCBBKSwgJiBZaSAoMHgzMjAwIC0gMHhBNENGKQorICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0
U2V0LCAweEFDMDAsIDB4QUMwMCArIDExMTgzKTsgLy8gSGFuZ3VsIFN5bGxhYmxlcyAoMHhBQzAw
IC0gMHhEN0FGKQorICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0U2V0LCAweEY5MDAsIDB4Rjkw
MCArIDM1Mik7IC8vIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgKDB4RjkwMCAtIDB4RkE1
RikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHhGRTMwLCAweEZFMzAgKyAzMik7
IC8vIENKSyBDb21wYXRpYmlsaXR5IEZyb20gKDB4RkUzMCAtIDB4RkU0RikKKyAgICAgICAgdXNl
dF9hZGRSYW5nZShzbWFydFNldCwgMHhGRjAwLCAweEZGMDAgKyAyNDApOyAvLyBIYWxmL0Z1bGwg
V2lkdGggRm9ybSAoMHhGRjAwIC0gMHhGRkVGKQorICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0
U2V0LCAweDIwMDAwLCAweDIwMDAwICsgMHhBNkQ3KTsgLy8gQ0pLIElkZW9ncmFwaCBFeG50ZW5z
aW9uIEIKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgyRjgwMCwgMHgyRjgwMCAr
IDB4MDIxRSk7IC8vIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgKDB4MkY4MDAgLSAweDJG
QTFEKQorCisgICAgICAgIGlmIChpc1ByZXZpb3VzQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICAv
LyBGSVhNRTogU2lsbHkgdG8gY29udmVydCB0aGlzIHRvIGEgV1RGOjpTdHJpbmcganVzdCB0byBs
b29wIHRocm91Z2ggdGhlIGNoYXJhY3RlcnMuCisgICAgICAgICAgICBhZGRBbGxDb2RlUG9pbnRz
KHNtYXJ0U2V0LCBBU0NJSUxpdGVyYWwoIihbXCJcJyMkLy1geyIpKTsKKyAgICAgICAgICAgIHBy
ZVNtYXJ0U2V0ID0gc21hcnRTZXQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogU2lsbHkgdG8gY29udmVydCB0aGlzIHRvIGEgV1RGOjpTdHJpbmcganVzdCB0byBsb29w
IHRocm91Z2ggdGhlIGNoYXJhY3RlcnMuCisgICAgICAgICAgICBhZGRBbGxDb2RlUG9pbnRzKHNt
YXJ0U2V0LCBBU0NJSUxpdGVyYWwoIildLiw7Oj9cJyFcIiUqLS99IikpOworCisgICAgICAgICAg
ICAvLyBQdW5jdHVhdGlvbiAoa0NGQ2hhcmFjdGVyU2V0UHVuY3R1YXRpb24pCisgICAgICAgICAg
ICBVRXJyb3JDb2RlIGVjID0gVV9aRVJPX0VSUk9SOworICAgICAgICAgICAgU3RyaW5nIHB1bmN0
dWF0aW9uQ2xhc3MgPSBBU0NJSUxpdGVyYWwoIls6UDpdIik7CisgICAgICAgICAgICBVU2V0KiBp
Y3VQdW5jdCA9IHVzZXRfb3BlblBhdHRlcm4ocHVuY3R1YXRpb25DbGFzcy5jaGFyYWN0ZXJzKCks
IHB1bmN0dWF0aW9uQ2xhc3MubGVuZ3RoKCksICZlYyk7CisgICAgICAgICAgICBBU1NFUlQoVV9T
VUNDRVNTKGVjKSk7CisgICAgICAgICAgICB1c2V0X2FkZEFsbChzbWFydFNldCwgaWN1UHVuY3Qp
OworICAgICAgICAgICAgdXNldF9jbG9zZShpY3VQdW5jdCk7CisKKyAgICAgICAgICAgIHBvc3RT
bWFydFNldCA9IHNtYXJ0U2V0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzbWFydFNl
dDsKK30KKwogYm9vbCBpc0NoYXJhY3RlclNtYXJ0UmVwbGFjZUV4ZW1wdChVQ2hhcjMyIGMsIGJv
b2wgaXNQcmV2aW91c0NoYXJhY3RlcikKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHVzZXRfY29udGFpbnMoZ2V0U21hcnRTZXQoaXNQcmV2aW91c0NoYXJhY3RlciksIGMpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2ZWE3ZDYzZDIzMzY2ZmFhMTYyYTkwNzg0OGFiMTYyYzQx
MzUxMmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBUb255IENoYW5nIDxpZGVh
bGlzbXNAZ21haWwuY29tPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgot
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTbWFydFJl
cGxhY2UuaCIKLQotI2lmICFVU0UoQ0YpICYmIFVTRShJQ1VfVU5JQ09ERSkKLSNpbmNsdWRlIDx1
bmljb2RlL3VzZXQuaD4KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyB2b2lk
IGFkZEFsbENvZGVQb2ludHMoVVNldCogc21hcnRTZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQot
ewotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gc3RyaW5nLmNoYXJhY3RlcnMoKTsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGgoKTsgaSsrKQotICAgICAgICB1
c2V0X2FkZChzbWFydFNldCwgY2hhcmFjdGVyc1tpXSk7Ci19Ci0KLS8vIFRoaXMgaXMgbW9zdGx5
IGEgcG9ydCBvZiB0aGUgY29kZSBpbiBXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlQ0YuY3Bw
Ci0vLyBleGNlcHQgd2UgdXNlIGljdSBpbiBwbGFjZSBvZiBDb3JlRm91bmRhdGlvbnMgY2hhcmFj
dGVyIGNsYXNzZXMuCi1zdGF0aWMgVVNldCogZ2V0U21hcnRTZXQoYm9vbCBpc1ByZXZpb3VzQ2hh
cmFjdGVyKQotewotICAgIHN0YXRpYyBVU2V0KiBwcmVTbWFydFNldCA9IE5VTEw7IAotICAgIHN0
YXRpYyBVU2V0KiBwb3N0U21hcnRTZXQgPSBOVUxMOwotICAgIFVTZXQqIHNtYXJ0U2V0ID0gaXNQ
cmV2aW91c0NoYXJhY3RlciA/IHByZVNtYXJ0U2V0IDogcG9zdFNtYXJ0U2V0OwotICAgIGlmICgh
c21hcnRTZXQpIHsKLSAgICAgICAgLy8gV2hpdGVzcGFjZSBhbmQgbmV3bGluZSAoa0NGQ2hhcmFj
dGVyU2V0V2hpdGVzcGFjZUFuZE5ld2xpbmUpCi0gICAgICAgIFVFcnJvckNvZGUgZWMgPSBVX1pF
Uk9fRVJST1I7Ci0gICAgICAgIFN0cmluZyB3aGl0ZXNwYWNlQW5kTmV3bGluZSA9IEFTQ0lJTGl0
ZXJhbCgiW1s6V1NwYWNlOl0gW1xcdTAwMEFcXHUwMDBCXFx1MDAwQ1xcdTAwMERcXHUwMDg1XV0i
KTsKLSAgICAgICAgc21hcnRTZXQgPSB1c2V0X29wZW5QYXR0ZXJuKHdoaXRlc3BhY2VBbmROZXds
aW5lLmNoYXJhY3RlcnMoKSwgd2hpdGVzcGFjZUFuZE5ld2xpbmUubGVuZ3RoKCksICZlYyk7Ci0g
ICAgICAgIEFTU0VSVChVX1NVQ0NFU1MoZWMpKTsKLQotICAgICAgICAvLyBDSksgcmFuZ2VzCi0g
ICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MTEwMCwgMHgxMTAwICsgMjU2KTsgLy8g
SGFuZ3VsIEphbW8gKDB4MTEwMCAtIDB4MTFGRikKLSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFy
dFNldCwgMHgyRTgwLCAweDJFODAgKyAzNTIpOyAvLyBDSksgJiBLYW5neGkgUmFkaWNhbHMgKDB4
MkU4MCAtIDB4MkZERikKLSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgyRkYwLCAw
eDJGRjAgKyA0NjQpOyAvLyBJZGVvZ3JhcGggRGVzY3JpcHRpb25zLCBDSksgU3ltYm9scywgSGly
YWdhbmEsIEthdGFrYW5hLCBCb3BvbW9mbywgSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbywgS2Fu
YnVuLCAmIEJvcG9tb2ZvIEV4dCAoMHgyRkYwIC0gMHgzMUJGKQotICAgICAgICB1c2V0X2FkZFJh
bmdlKHNtYXJ0U2V0LCAweDMyMDAsIDB4MzIwMCArIDI5MzkyKTsgLy8gRW5jbG9zZWQgQ0pLLCBD
SksgSWRlb2dyYXBocyAoVW5pIEhhbiAmIEV4dCBBKSwgJiBZaSAoMHgzMjAwIC0gMHhBNENGKQot
ICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0U2V0LCAweEFDMDAsIDB4QUMwMCArIDExMTgzKTsg
Ly8gSGFuZ3VsIFN5bGxhYmxlcyAoMHhBQzAwIC0gMHhEN0FGKQotICAgICAgICB1c2V0X2FkZFJh
bmdlKHNtYXJ0U2V0LCAweEY5MDAsIDB4RjkwMCArIDM1Mik7IC8vIENKSyBDb21wYXRpYmlsaXR5
IElkZW9ncmFwaHMgKDB4RjkwMCAtIDB4RkE1RikKLSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFy
dFNldCwgMHhGRTMwLCAweEZFMzAgKyAzMik7IC8vIENKSyBDb21wYXRpYmlsaXR5IEZyb20gKDB4
RkUzMCAtIDB4RkU0RikKLSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHhGRjAwLCAw
eEZGMDAgKyAyNDApOyAvLyBIYWxmL0Z1bGwgV2lkdGggRm9ybSAoMHhGRjAwIC0gMHhGRkVGKQot
ICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0U2V0LCAweDIwMDAwLCAweDIwMDAwICsgMHhBNkQ3
KTsgLy8gQ0pLIElkZW9ncmFwaCBFeG50ZW5zaW9uIEIKLSAgICAgICAgdXNldF9hZGRSYW5nZShz
bWFydFNldCwgMHgyRjgwMCwgMHgyRjgwMCArIDB4MDIxRSk7IC8vIENKSyBDb21wYXRpYmlsaXR5
IElkZW9ncmFwaHMgKDB4MkY4MDAgLSAweDJGQTFEKQotCi0gICAgICAgIGlmIChpc1ByZXZpb3Vz
Q2hhcmFjdGVyKSB7Ci0gICAgICAgICAgICBhZGRBbGxDb2RlUG9pbnRzKHNtYXJ0U2V0LCBBU0NJ
SUxpdGVyYWwoIihbXCJcJyMkLy1geyIpKTsKLSAgICAgICAgICAgIHByZVNtYXJ0U2V0ID0gc21h
cnRTZXQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhZGRBbGxDb2RlUG9pbnRzKHNt
YXJ0U2V0LCBBU0NJSUxpdGVyYWwoIildLiw7Oj9cJyFcIiUqLS99IikpOwotCi0gICAgICAgICAg
ICAvLyBQdW5jdHVhdGlvbiAoa0NGQ2hhcmFjdGVyU2V0UHVuY3R1YXRpb24pCi0gICAgICAgICAg
ICBVRXJyb3JDb2RlIGVjID0gVV9aRVJPX0VSUk9SOwotICAgICAgICAgICAgU3RyaW5nIHB1bmN0
dWF0aW9uQ2xhc3MgPSBBU0NJSUxpdGVyYWwoIls6UDpdIik7Ci0gICAgICAgICAgICBVU2V0KiBp
Y3VQdW5jdCA9IHVzZXRfb3BlblBhdHRlcm4ocHVuY3R1YXRpb25DbGFzcy5jaGFyYWN0ZXJzKCks
IHB1bmN0dWF0aW9uQ2xhc3MubGVuZ3RoKCksICZlYyk7Ci0gICAgICAgICAgICBBU1NFUlQoVV9T
VUNDRVNTKGVjKSk7Ci0gICAgICAgICAgICB1c2V0X2FkZEFsbChzbWFydFNldCwgaWN1UHVuY3Qp
OwotICAgICAgICAgICAgdXNldF9jbG9zZShpY3VQdW5jdCk7Ci0KLSAgICAgICAgICAgIHBvc3RT
bWFydFNldCA9IHNtYXJ0U2V0OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBzbWFydFNl
dDsKLX0KLQotYm9vbCBpc0NoYXJhY3RlclNtYXJ0UmVwbGFjZUV4ZW1wdChVQ2hhcjMyIGMsIGJv
b2wgaXNQcmV2aW91c0NoYXJhY3RlcikKLXsKLSAgICByZXR1cm4gdXNldF9jb250YWlucyhnZXRT
bWFydFNldChpc1ByZXZpb3VzQ2hhcmFjdGVyKSwgYyk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vICFV
U0UoQ0YpICYmIFVTRShJQ1VfVU5JQ09ERSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcAppbmRleCA4Y2E3NjdiMDEyNTYxYjdlNDdkMmQxNjE2ZWRiMTRjM2YxOGY1Yjg0Li4x
ZTQwNzgwODYwZmEzYmI4NDdhMGM0YWM1MGEzMmUyY2E2ZDVkYjdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+
CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0NPTExBVElPTgorI2lmICFV
Q09ORklHX05PX0NPTExBVElPTgogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJ
Q1UuaCIKICNpbmNsdWRlIDx1bmljb2RlL3VzZWFyY2guaD4KICNlbmRpZgpAQCAtODYsNyArODYs
NyBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IHNlYXJjaChzaXplX3QmIHN0YXJ0T2Zmc2V0KTsKICAg
ICBib29sIGF0QnJlYWsoKSBjb25zdDsKIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05G
SUdfTk9fQ09MTEFUSU9OCisjaWYgIVVDT05GSUdfTk9fQ09MTEFUSU9OCiAKIHByaXZhdGU6CiAg
ICAgYm9vbCBpc0JhZE1hdGNoKGNvbnN0IFVDaGFyKiwgc2l6ZV90IGxlbmd0aCkgY29uc3Q7CkBA
IC0xNzAyLDcgKzE3MDIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZm9sZFF1b3RlTWFya3NBbmRT
b2Z0SHlwaGVucyhTdHJpbmcmIHMpCiAgICAgcy5yZXBsYWNlKHNvZnRIeXBoZW4sIDApOwogfQog
Ci0jaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19OT19DT0xMQVRJT04KKyNpZiAhVUNP
TkZJR19OT19DT0xMQVRJT04KIAogc3RhdGljIGlubGluZSB2b2lkIGZvbGRRdW90ZU1hcmtzQW5k
U29mdEh5cGhlbnMoVUNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB7CkBAIC0yMzA1LDcgKzIz
MDUsNyBAQCBuZXh0TWF0Y2g6CiAgICAgcmV0dXJuIG1hdGNoZWRMZW5ndGg7CiB9CiAKLSNlbHNl
IC8vICFJQ1VfVU5JQ09ERQorI2Vsc2UKIAogaW5saW5lIFNlYXJjaEJ1ZmZlcjo6U2VhcmNoQnVm
ZmVyKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBGaW5kT3B0aW9ucyBvcHRpb25zKQogICAgIDogbV90
YXJnZXQob3B0aW9ucyAmIENhc2VJbnNlbnNpdGl2ZSA/IHRhcmdldC5mb2xkQ2FzZSgpIDogdGFy
Z2V0KQpAQCAtMjQxNSw3ICsyNDE1LDcgQEAgc2l6ZV90IFNlYXJjaEJ1ZmZlcjo6bGVuZ3RoKCkg
Y29uc3QKICAgICByZXR1cm4gbGVuZ3RoOwogfQogCi0jZW5kaWYgLy8gIUlDVV9VTklDT0RFCisj
ZW5kaWYKIAogLy8gLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmNwcAppbmRleCBjZWZiMTlkZGM3MGU1ZGE5NTUxMTJhODk2ZWM2N2MxOWQ1MDJl
MjQzLi44ZTdlNmUyYjQ3ZDVmMzU1YjEzYzBiYzYwMGFlY2ZhYmYxMTA5ZWNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApAQCAtMzAsMjMgKzMwLDE4
IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgorI2luY2x1
ZGUgIlRleHRDb2RlY0lDVS5oIgogI2luY2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCi0jaWYgVVNFKElDVV9VTklDT0RFKQot
I2luY2x1ZGUgIlRleHRDb2RlY0lDVS5oIgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0j
aW5jbHVkZSAiVGV4dENvZGVjTWFjLmgiCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKQorI2luY2x1ZGUgIlRleHRDb2RlQ01hYy5oIgogI2VuZGlmCiAKLSNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+Ci11c2luZyBuYW1l
c3BhY2UgV1RGOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRocmVhZFNwZWNpZmljPFRocmVh
ZEdsb2JhbERhdGE+KiBUaHJlYWRHbG9iYWxEYXRhOjpzdGF0aWNEYXRhOwpAQCAtNjEsOSArNTYs
NyBAQCBUaHJlYWRHbG9iYWxEYXRhOjpUaHJlYWRHbG9iYWxEYXRhKCkKICNpZm5kZWYgTkRFQlVH
CiAgICAgLCBtX2lzTWFpblRocmVhZChpc01haW5UaHJlYWQoKSkKICNlbmRpZgotI2lmIFVTRShJ
Q1VfVU5JQ09ERSkKICAgICAsIG1fY2FjaGVkQ29udmVydGVySUNVKGFkb3B0UHRyKG5ldyBJQ1VD
b252ZXJ0ZXJXcmFwcGVyKSkKLSNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykKICAgICAsIG1fY2FjaGVkQ29udmVydGVyVEVDKGFkb3B0UHRyKG5ldyBURUNDb252ZXJ0
ZXJXcmFwcGVyKSkKICNlbmRpZgpAQCAtODksOSArODIsNyBAQCB2b2lkIFRocmVhZEdsb2JhbERh
dGE6OmRlc3Ryb3koKQogICAgIG1fY2FjaGVkQ29udmVydGVyVEVDLmNsZWFyKCk7CiAjZW5kaWYK
IAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKICAgICBtX2NhY2hlZENvbnZlcnRlcklDVS5jbGVhcigp
OwotI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIG1faW5zcGVjdG9yQ291bnRl
cnMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEds
b2JhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaApp
bmRleCBmZmIwMThjN2EyMGZlN2VhMzA3OGU4NTE3ZTFmOGYzMTUzMjg4NjQwLi5lMzg2YmUyNDdi
MTkzNGMwZWYzNmRkYWJhYmViOTUwNjE2NTFjMzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oCkBAIC01OCw5ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgRXZlbnROYW1lcyYgZXZlbnROYW1lcygpIHsgcmV0dXJuICptX2V2ZW50TmFt
ZXM7IH0KICAgICAgICAgVGhyZWFkVGltZXJzJiB0aHJlYWRUaW1lcnMoKSB7IHJldHVybiAqbV90
aHJlYWRUaW1lcnM7IH0KIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKICAgICAgICAgSUNVQ29udmVy
dGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVySUNVKCkgeyByZXR1cm4gKm1fY2FjaGVkQ29udmVy
dGVySUNVOyB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykK
ICAgICAgICAgVEVDQ29udmVydGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVyVEVDKCkgeyByZXR1
cm4gKm1fY2FjaGVkQ29udmVydGVyVEVDOyB9CkBAIC04Myw5ICs4MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzTWFpblRocmVhZDsKICNlbmRpZgogCi0jaWYgVVNF
KElDVV9VTklDT0RFKQogICAgICAgICBPd25QdHI8SUNVQ29udmVydGVyV3JhcHBlcj4gbV9jYWNo
ZWRDb252ZXJ0ZXJJQ1U7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykKICAgICAgICAgT3duUHRyPFRFQ0NvbnZlcnRlcldyYXBwZXI+IG1fY2FjaGVkQ29udmVy
dGVyVEVDOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKaW5kZXggMzQ4NjNiZWZlZjYzMzYwMWUyNzE2
NDIzMDI4YTk4ZGQwNzk5NDc3Mi4uMWJjZTJhYWY3YzlkNzg0MTA3OGYzNjAyYThhMTFiYTgwOWZl
NWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pY29kZS91aWRuYS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KQEAgLTM4LDEwICszOSw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFVTRShJ
Q1VfVU5JQ09ERSkKLSNpbmNsdWRlIDx1bmljb2RlL3VpZG5hLmg+Ci0jZW5kaWYKLQogLy8gRklY
TUU6IFRoaXMgZmlsZSBtYWtlcyB0b28gbXVjaCB1c2Ugb2YgdGhlICsgb3BlcmF0b3Igb24gU3Ry
aW5nLgogLy8gV2UgZWl0aGVyIGhhdmUgdG8gb3B0aW1pemUgdGhhdCBvcGVyYXRvciBzbyBpdCBk
b2Vzbid0IGludm9sdmUKIC8vIHNvIG1hbnkgYWxsb2NhdGlvbnMsIG9yIGNoYW5nZSB0aGlzIHRv
IHVzZSBTdHJpbmdCdWZmZXIgaW5zdGVhZC4KQEAgLTE1MDQsMTQgKzE1MDEsMTIgQEAgc3RhdGlj
IHZvaWQgYXBwZW5kRW5jb2RlZEhvc3RuYW1lKFVDaGFyQnVmZmVyJiBidWZmZXIsIGNvbnN0IFVD
aGFyKiBzdHIsIHVuc2lnbmUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIFVTRShJQ1Vf
VU5JQ09ERSkKICAgICBVQ2hhciBob3N0bmFtZUJ1ZmZlcltob3N0bmFtZUJ1ZmZlckxlbmd0aF07
CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVST19FUlJPUjsKICAgICBpbnQzMl90IG51bUNo
YXJhY3RlcnNDb252ZXJ0ZWQgPSB1aWRuYV9JRE5Ub0FTQ0lJKHN0ciwgc3RyTGVuLCBob3N0bmFt
ZUJ1ZmZlciwKICAgICAgICAgaG9zdG5hbWVCdWZmZXJMZW5ndGgsIFVJRE5BX0FMTE9XX1VOQVNT
SUdORUQsIDAsICZlcnJvcik7CiAgICAgaWYgKGVycm9yID09IFVfWkVST19FUlJPUikKICAgICAg
ICAgYnVmZmVyLmFwcGVuZChob3N0bmFtZUJ1ZmZlciwgbnVtQ2hhcmFjdGVyc0NvbnZlcnRlZCk7
Ci0jZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgZmluZEhvc3RuYW1lc0luTWFpbFRvVVJMKGNvbnN0
IFVDaGFyKiBzdHIsIGludCBzdHJMZW4sIFZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiYgbmFt
ZVJhbmdlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1
cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCmluZGV4IGVkNmEz
MzM3NmE1YTg1MjNiYjcxODhiYjRmOTg4MDRlOGFlNDBhYWIuLjkxNTVlNzExYThkYTgwZDRlYjNk
Y2Y1ZGE1YWMzMDVhMjhjYmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9y
LmNwcApAQCAtMjMsMTIgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJT
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCIKIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkK
ICNpbmNsdWRlIDx1bmljb2RlL3Vub3JtLmg+Ci0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdU
RjsKLXVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAppbmRleCBjOTU0
YmYyNjM1ODBlMGMwODRjZGUxNzgzMWE0NDFhYWM4YjFmN2RkLi5mNmQxNmNiZjFmMGUxODA4MGJl
ZDdiZjk2MmI5YmM3MGI3MDc0MGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNJQ1UuY3BwCkBAIC0yNSw3ICsyNSw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2lmIFVTRShJQ1VfVU5JQ09ERSkKICNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIK
IAogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgpAQCAtNTQyLDUgKzU0MSwzIEBAIENTdHJpbmcg
VGV4dENvZGVjSUNVOjplbmNvZGUoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5n
dGgsIFVuZW5jb2RhYmxlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKaW5kZXggZjQ1
N2IxNjQyNWVkYWNmZjI0NGQ3YmViMGUzNWRmOTdjZTFjZWY2ZC4uZDI3MDgyNjcwODc1MDliMDAw
MjlhZWE1Nzc2MTIzZTlhYmRmY2YyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nLmNwcApAQCAtMzAsMTUgKzMwLDEyIEBACiAKICNpbmNsdWRlICJUZXh0
Q29kZWMuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmdSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHVu
aWNvZGUvdW5vcm0uaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKLSNpbmNsdWRlIDx1
bmljb2RlL3Vub3JtLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Y29uc3QgVGV4dEVuY29kaW5nJiBVVEY3RW5jb2RpbmcoKQpAQCAtNzUsNyArNzIsNiBAQCBDU3Ry
aW5nIFRleHRFbmNvZGluZzo6ZW5jb2RlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3Qg
bGVuZ3RoLCBVbmVuY29kYWJsZQogICAgIGlmICghbGVuZ3RoKQogICAgICAgICByZXR1cm4gIiI7
CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgLy8gRklYTUU6IFdoYXQncyB0aGUgcmlnaHQg
cGxhY2UgdG8gZG8gbm9ybWFsaXphdGlvbj8KICAgICAvLyBJdCdzIGEgbGl0dGxlIHN0cmFuZ2Ug
dG8gZG8gaXQgaW5zaWRlIHRoZSBlbmNvZGUgZnVuY3Rpb24uCiAgICAgLy8gUGVyaGFwcyBub3Jt
YWxpemF0aW9uIHNob3VsZCBiZSBhbiBleHBsaWNpdCBzdGVwIGRvbmUgYmVmb3JlIGNhbGxpbmcg
ZW5jb2RlLgpAQCAtMTAxLDExICs5Nyw2IEBAIENTdHJpbmcgVGV4dEVuY29kaW5nOjplbmNvZGUo
Y29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgsIFVuZW5jb2RhYmxlCiAgICAg
ICAgIHNvdXJjZUxlbmd0aCA9IG5vcm1hbGl6ZWRMZW5ndGg7CiAgICAgfQogICAgIHJldHVybiBu
ZXdUZXh0Q29kZWMoKnRoaXMpLT5lbmNvZGUoc291cmNlLCBzb3VyY2VMZW5ndGgsIGhhbmRsaW5n
KTsKLSNlbGlmIE9TKFdJTkRPV1MpICYmIFVTRShXQ0hBUl9VTklDT0RFKQotICAgIC8vIG5vcm1h
bGl6YXRpb24gd2lsbCBiZSBkb25lIGJ5IFdpbmRvd3MgQ0UgQVBJCi0gICAgT3duUHRyPFRleHRD
b2RlYz4gdGV4dENvZGVjID0gbmV3VGV4dENvZGVjKCp0aGlzKTsKLSAgICByZXR1cm4gdGV4dENv
ZGVjLmdldCgpID8gdGV4dENvZGVjLT5lbmNvZGUoY2hhcmFjdGVycywgbGVuZ3RoLCBoYW5kbGlu
ZykgOiBDU3RyaW5nKCk7Ci0jZW5kaWYKIH0KIAogY29uc3QgY2hhciogVGV4dEVuY29kaW5nOjpk
b21OYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKaW5kZXggOGRmZDFmZDIwYjk0NGQxN2U5YWNmYjM0M2Rj
YmFkMzk0MWU2MGFhNC4uNmJkZDhmYWM3ZGFjNzYwMDIwNTA5NjdiMTQ1NTMwZWMwNDE5Zjc4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdp
c3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdS
ZWdpc3RyeS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJUZXh0RW5jb2RpbmdSZWdpc3RyeS5oIgogCisjaW5jbHVkZSAiVGV4dENvZGVjSUNVLmgi
CiAjaW5jbHVkZSAiVGV4dENvZGVjTGF0aW4xLmgiCiAjaW5jbHVkZSAiVGV4dENvZGVjVXNlckRl
ZmluZWQuaCIKICNpbmNsdWRlICJUZXh0Q29kZWNVVEYxNi5oIgpAQCAtNDEsMTUgKzQyLDkgQEAK
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJh
cy5oPgogCi0jaWYgVVNFKElDVV9VTklDT0RFKQotI2luY2x1ZGUgIlRleHRDb2RlY0lDVS5oIgot
I2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgIlRl
eHRDb2RlY01hYy5oIgogI2VuZGlmCi0jaWYgT1MoV0lORE9XUykgJiYgVVNFKFdDSEFSX1VOSUNP
REUpCi0jaW5jbHVkZSAid2luL1RleHRDb2RlY1dpbi5oIgotI2VuZGlmCiAKICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yODEs
MjEgKzI3NiwxNCBAQCBib29sIHNob3VsZFNob3dCYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sSW4o
Y29uc3QgY2hhciogY2Fub25pY2FsRW5jb2RpbmdOYW1lKQogCiBzdGF0aWMgdm9pZCBleHRlbmRU
ZXh0Q29kZWNNYXBzKCkKIHsKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgVGV4dENvZGVjSUNV
OjpyZWdpc3RlckVuY29kaW5nTmFtZXMoYWRkVG9UZXh0RW5jb2RpbmdOYW1lTWFwKTsKICAgICBU
ZXh0Q29kZWNJQ1U6OnJlZ2lzdGVyQ29kZWNzKGFkZFRvVGV4dENvZGVjTWFwKTsKLSNlbmRpZgog
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIFRleHRDb2RlY01hYzo6
cmVnaXN0ZXJFbmNvZGluZ05hbWVzKGFkZFRvVGV4dEVuY29kaW5nTmFtZU1hcCk7CiAgICAgVGV4
dENvZGVjTWFjOjpyZWdpc3RlckNvZGVjcyhhZGRUb1RleHRDb2RlY01hcCk7CiAjZW5kaWYKIAot
I2lmIE9TKFdJTkRPV1MpICYmIFVTRShXQ0hBUl9VTklDT0RFKQotICAgIFRleHRDb2RlY1dpbjo6
cmVnaXN0ZXJFeHRlbmRlZEVuY29kaW5nTmFtZXMoYWRkVG9UZXh0RW5jb2RpbmdOYW1lTWFwKTsK
LSAgICBUZXh0Q29kZWNXaW46OnJlZ2lzdGVyRXh0ZW5kZWRDb2RlY3MoYWRkVG9UZXh0Q29kZWNN
YXApOwotI2VuZGlmCi0KICAgICBwcnVuZUJsYWNrbGlzdGVkQ29kZWNzKCk7CiAgICAgYnVpbGRR
dWlya3NTZXRzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDVlODA2YmIzMjY2NDYxYjc2
YzFmZGI0MGJkZmMxZGIxNTBmZWViZGQuLmI0ZTgyMDYyMzdiNjQ1YWM2NTg4Nzc0Yzk2Zjc2Y2Y2
MzlhYmEwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0yOCwxMyArMjgsMTEgQEAgZmluZF9w
YWNrYWdlKFpMSUIgUkVRVUlSRUQpCiBmaW5kX3BhY2thZ2UoR0xJQiAyLjM2LjAgUkVRVUlSRUQg
Q09NUE9ORU5UUyBnaW8gZ29iamVjdCBndGhyZWFkKQogZmluZF9wYWNrYWdlKExpYlNvdXAgMi40
Mi4wIFJFUVVJUkVEKQogCi1zZXQoV1RGX1VTRV9JQ1VfVU5JQ09ERSAxKQogc2V0KFdURl9VU0Vf
U09VUCAxKQogc2V0KFdURl9VU0VfVURJUzg2IDEpCiAKIGFkZF9kZWZpbml0aW9ucygtRFdURl9V
U0VfR0xJQj0xKQogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9TT1VQPTEpCi1hZGRfZGVmaW5p
dGlvbnMoLURXVEZfVVNFX0lDVV9VTklDT0RFPTEpCiBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNF
X0NBSVJPPTEpCiBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NPTlRF
WFRfTUVOVVM9MSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2Ug
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCA5M2VmZDg1YWE3Y2JkMmYxMTMw
MGJlMzFiNzEwOTMyMjE2YTAyMjc5Li4yNDZhNjJhNThlNTMzODY4ZjE0ZDI4MTExOTZhMmU2YjUw
MDY1NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMTExLDcgKzExMSw2IEBAIHNldChFTkFC
TEVfUExVR0lOX1BST0NFU1MgT04pCiBzZXQoRU5BQkxFX1dFQktJVCBPTikKIHNldChFTkFCTEVf
V0VCS0lUMiBPTikKIAotc2V0KFdURl9VU0VfSUNVX1VOSUNPREUgMSkKIHNldChXVEZfVVNFX1NP
VVAgMSkKIAogc2V0KFdURl9PVVRQVVRfTkFNRSBXVEZHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFr
ZQppbmRleCA4Nzc4YzRkOWU5ZmJjYjlhNjE3ZDZiM2EzMTAxMzkzN2JjODk1Y2EzLi40MzM3YTQ4
MmVlYWFkMzYzMmVkMGZhOThjNThlY2Q0YjUxZWY2ODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21h
a2UKQEAgLTEsMTEgKzEsOSBAQAogaW5jbHVkZShPcHRpb25zV2luZG93cykKIAogc2V0KFBPUlRf
RkFMTEJBQ0sgV2luKQotc2V0KFdURl9VU0VfV0NIQVJfVU5JQ09ERSAxKQogCiBhZGRfZGVmaW5p
dGlvbnMoLURfQ0VfQ1JUX0FMTE9XX1dJTl9NSU5NQVgpCiBhZGRfZGVmaW5pdGlvbnMoLURXVEZf
VVNFX0VYUE9SVF9NQUNST1M9MCkKLWFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfV0NIQVJfVU5J
Q09ERT0xKQogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9XSU5HREk9MSkKIGFkZF9kZWZpbml0
aW9ucygtRFdURl9VU0VfV0lOSU5FVD0xKQogYWRkX2RlZmluaXRpb25zKC1EV0lOQ0VCQVNJQykK
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxOWRkN2RlZjBhZDRiOGUx
MDk5NDYzYTgwZTI0ZjVjZWNmZDUyOTNlLi5lODgwMTYzZGEzYzRhYmRiYjg4MDZjNDVlZjE0YWNj
MjEyMjdlYjNjIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTQtMDEtMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIEdldCByaWQgb2YgSUNVX1VOSUNPREUgYW5kIFdDSEFSX1VOSUNPREUgcmVtbmFudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNl
L2NtYWtlL09wdGlvbnNFZmwuY21ha2U6IFJlbW92ZWQgSUNVX1VOSUNPREUgYW5kIFdDSEFSX1VO
SUNPREUgZmxhZ3MuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6IERp
dHRvLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2U6IERpdHRvLgor
CiAyMDE0LTAxLTIzICBNYXggVnVqb3ZpYyAgPG12dWpvdmljQGFkb2JlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgQ1NTIEN1c3RvbSBGaWx0ZXJzIGNvZGUgYW5kIHRlc3RzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222222</attachid>
            <date>2014-01-25 11:43:09 -0800</date>
            <delta_ts>2014-01-25 11:59:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127623-20140125114308.patch</filename>
            <type>text/plain</type>
            <size>34985</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
M2U4MDVkYzlkZjA4N2I5MzM0ZWNjYWY5NGQ1MTQzODdkOTlkMmYyLi4wMGYyZTFkOTUzZmQ2N2Jj
NTdiMTkxY2JiZTZjNDdmMGU3ZWJmMjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNC0wMS0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgR2V0IHJpZCBvZiBJQ1VfVU5JQ09ERSBhbmQgV0NIQVJfVU5JQ09ERSByZW1uYW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwOiBSZW1vdmVkIFVTRShJQ1VfVU5JQ09ERSkgY2hlY2tzLCBz
aW5jZSB0aGF0J3MgYWx3YXlzIHRydWUgbm93LgorCiAyMDE0LTAxLTI0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQgaW50byBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlM2MxYWQxMDIx
ZmY5ZjFiY2VkOTdhZGIzNjljMjNhOTVhNDMwYjQyLi4zNWEwZGJjM2NjNmIyMmY5MTUwYmExODdm
OTVhYTFhYzc1MjE5Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE0LTAxLTI1ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RF
IGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5hbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCBXVEZfVVNF
X0lDVV9VTklDT0RFIGFuZAorICAgICAgICBXVEZfVVNFX1dDSEFSX1VOSUNPREUgc2luY2UgdGhl
eSBhcmUgdHJ1ZSBhbmQgZmFsc2UgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6IFJlbW92ZWQgY29kZSB0byBzZXQgV1RGX1VTRV9JQ1VfVU5JQ09ERS4KKworICAgICAg
ICAqIHd0Zi91bmljb2RlL0NvbGxhdG9yLmg6IFJlbW92ZWQgaWZkZWZzLgorICAgICAgICAqIHd0
Zi91bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHA6IERpdHRvLgorICAgICAgICAqIHd0Zi91bmlj
b2RlL1VuaWNvZGUuaDogRGl0dG8uCisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9y
SUNVLmNwcDogRGl0dG8uCisKKzIwMTQtMDEtMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCiAgICAgICAgIFJlc3RvcmUgYWxwaGFiZXRpY2FsIG9yZGVyIGluIENvbXBpbGVyLmgK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyMAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggOWM1OTE3ODAzNzhkM2RlOWNjOTY5NTMyYjYzOGY1YjQ1NzE4MWUyYy4u
ZWM5ZGZjYTExNGE5ZTkwNmU3NTExNDdmOGY5N2JlNDJiOWNjNTBlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RFIGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5h
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OiBSZW1vdmVkIFNtYXJ0UmVwbGFjZUlDVS5jcHAuCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IERp
dHRvLgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKworICAgICAgICAqIGVk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246Om1vZGlmeU1vdmluZ1JpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5TW92aW5nTGVmdCk6IERpdHRvLgorCisgICAgICAgICogZWRpdGluZy9T
bWFydFJlcGxhY2UuY3BwOiBNb3ZlZCBjb2RlIGhlcmUgZnJvbSBTbWFydFJlcGxhY2VJQ1UsCisg
ICAgICAgIHNpbmNlIHdlIGFsd2F5cyBzdXBwb3J0IElDVSBub3cuIEFkZGVkIHNvbWUgRklYTUUg
Y29tbWVudHMgYWJvdXQKKyAgICAgICAgYnVncyBhbmQgbWlzdGFrZXMgSSBzcG90dGVkIGluIHRo
ZSBjb2RlIGFzIEkgd2FzIG1vdmluZyBpdC4KKyAgICAgICAgKiBlZGl0aW5nL1NtYXJ0UmVwbGFj
ZUlDVS5jcHA6IFJlbW92ZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6
IFJlbW92ZWQgdW5uZWVkZWQgY2hlY2tzLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xv
YmFsRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6ZGVz
dHJveSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVu
ZEVuY29kZWRIb3N0bmFtZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N1
cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA6IERpdHRvLgorICAgICAgICBBbHNvIHJl
bW92ZWQgdW5uZWVkZWQgInVzaW5nIG5hbWVzcGFjZSIuCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNJQ1UuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRF
bmNvZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RW5jb2Rpbmc6OmVuY29kZSk6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXh0ZW5kVGV4dENvZGVjTWFwcyk6IERpdHRvLgorCiAyMDE0LTAx
LTI1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBNb3Zl
IENTU0dyb3VwaW5nUnVsZSwgQ1NTU3R5bGVTaGVldCwgRWxlbWVudFJ1bGVDb2xsZWN0b3IgdG8g
c3RkOjp1bmlxdWVfcHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwCmluZGV4IDk5MTE0ODdlMDkzMmYyOGMyMzUyMTk5ZWU4ZWIyMzkyNmQ3NGRl
NmIuLmJhZWEzZDI4YWJjZGY2NGZlMjM5NTEyMWM3NWViNzA4YmZlZTgwMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC0zNCwyMCAr
MzQsMjAgQEAKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUu
aCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCi0KLSNpZiAhUExBVEZPUk0oTUFDKSAmJiBIQVZF
KExBTkdJTkZPX0gpCi0jaW5jbHVkZSA8bGFuZ2luZm8uaD4KLSNlbmRpZgotCiAjaW5jbHVkZSA8
bGltaXRzLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1
ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXQu
aD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCisjaWYgSEFWRShMQU5HSU5GT19I
KQorI2luY2x1ZGUgPGxhbmdpbmZvLmg+CisjZW5kaWYKKwogI2lmIEhBVkUoU1lTX1BBUkFNX0gp
CiAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAjZW5kaWYKQEAgLTYwLDEwICs2MCw4IEBACiAjaW5j
bHVkZSA8c3lzL3RpbWViLmg+CiAjZW5kaWYKIAotI2lmIE9TKERBUldJTikgJiYgVVNFKENGKQor
I2lmIFVTRShDRikKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgot
I2VsaWYgVVNFKElDVV9VTklDT0RFKQotI2luY2x1ZGUgPHVuaWNvZGUvdWRhdC5oPgogI2VuZGlm
CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xOTEsNyArMTg5LDcgQEAgc3RhdGljIEpTQ2Vs
bCogZm9ybWF0TG9jYWxlRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIERhdGVJbnN0YW5jZSosIGRvdWJs
ZSB0aW1lSW5NaWwKICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIFN0cmluZyhi
dWZmZXIsIGxlbmd0aCkpOwogfQogCi0jZWxpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklH
X05PX0ZPUk1BVFRJTkcKKyNlbGlmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcKIAogc3RhdGljIEpT
Q2VsbCogZm9ybWF0TG9jYWxlRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIERhdGVJbnN0YW5jZSosIGRv
dWJsZSB0aW1lSW5NaWxsaXNlY29uZHMsIExvY2FsZURhdGVUaW1lRm9ybWF0IGZvcm1hdCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNTZhYTExNDVlY2ZlM2FiOGE5MDU0OWMwZDllOTUxZGEx
MDI3YTA5Ni4uOThiYWZiOWI2MTYwMzNhNzE1ZTYyNzkwYTZhZWFiZDk3ZjNhM2MxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTIyMiwzMCArMjIyLDE5IEBAIHNldChXVEZfTElCUkFSSUVTCiAg
ICAgJHtDTUFLRV9ETF9MSUJTfQogKQogCi1pZiAoV1RGX1VTRV9JQ1VfVU5JQ09ERSkKLSAgICBs
aXN0KEFQUEVORCBXVEZfSEVBREVSUwotICAgICAgICB1bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgK
LSAgICApCi0gICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICAgICAgdW5pY29kZS9pY3Uv
Q29sbGF0b3JJQ1UuY3BwCi0gICAgKQotICAgIGxpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVD
VE9SSUVTCi0gICAgICAgICR7SUNVX0lOQ0xVREVfRElSU30KLSAgICApCi0gICAgbGlzdChBUFBF
TkQgV1RGX0xJQlJBUklFUwotICAgICAgICAke0lDVV9JMThOX0xJQlJBUklFU30KLSAgICAgICAg
JHtJQ1VfTElCUkFSSUVTfQotICAgICkKLWVsc2VpZiAoV1RGX1VTRV9XQ0hBUl9VTklDT0RFKQot
ICAgIGxpc3QoQVBQRU5EIFdURl9IRUFERVJTCi0gICAgICAgIHVuaWNvZGUvd2NoYXIvVW5pY29k
ZVdjaGFyLmgKLSAgICApCi0gICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKLSAgICAgICAgdW5p
Y29kZS9Db2xsYXRvckRlZmF1bHQuY3BwCi0KLSAgICAgICAgdW5pY29kZS93Y2hhci9Vbmljb2Rl
V2NoYXIuY3BwCi0gICAgKQotZW5kaWYgKCkKK2xpc3QoQVBQRU5EIFdURl9IRUFERVJTCisgICAg
dW5pY29kZS9pY3UvVW5pY29kZUljdS5oCispCitsaXN0KEFQUEVORCBXVEZfU09VUkNFUworICAg
IHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAorKQorbGlzdChBUFBFTkQgV1RGX0lOQ0xVREVf
RElSRUNUT1JJRVMKKyAgICAke0lDVV9JTkNMVURFX0RJUlN9CispCitsaXN0KEFQUEVORCBXVEZf
TElCUkFSSUVTCisgICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9CisgICAgJHtJQ1VfTElCUkFSSUVT
fQorKQogCiBpZiAoV0lOMzIpCiAgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CmluZGV4IDgyNjUyNmQxOWJjNmRmY2Q1YjA5NmYzYTZkYzJjMmViYjljZTA1YTQuLmFhMGFjNTcz
NDE0YjMyOGQ5YTU5YTc1OTEzOGZiZDQxYzRmZjBiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtNDcwLDEw
ICs0NzAsNiBAQAogI2RlZmluZSBXVEZfVVNFX1FVRVJZX1BFUkZPUk1BTkNFX0NPVU5URVIgIDEK
ICNlbmRpZgogCi0jaWYgIVVTRShXQ0hBUl9VTklDT0RFKQotI2RlZmluZSBXVEZfVVNFX0lDVV9V
TklDT0RFIDEKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKICNkZWZpbmUgV1RGX1VT
RV9DRiAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yLmggYi9T
b3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yLmgKaW5kZXggOTEzYjEzNzgyYjRiNDcyMTYz
NjkzOWE1MWNlZWY5YjQ3YTczNjY2YS4uNjc0ODZjN2QwMmJlMWE4MDhhOTA2ODBjNDZmMDZhMGU4
MDA5MzRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9Db2xsYXRvci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3IuaApAQCAtMzMsOSArMzMsNyBAQAog
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+
CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0NPTExBVElPTgogc3RydWN0
IFVDb2xsYXRvcjsKLSNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNTMsNyArNTEsNyBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlc3VsdCBjb2xs
YXRlKGNvbnN0IDo6VUNoYXIqLCBzaXplX3QsIGNvbnN0IDo6VUNoYXIqLCBzaXplX3QpIGNvbnN0
OwogCiAgICAgcHJpdmF0ZToKLSNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0NP
TExBVElPTgorI2lmICFVQ09ORklHX05PX0NPTExBVElPTgogICAgICAgICB2b2lkIGNyZWF0ZUNv
bGxhdG9yKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgcmVsZWFzZUNvbGxhdG9yKCk7CiAgICAgICAg
IG11dGFibGUgVUNvbGxhdG9yKiBtX2NvbGxhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdW5pY29kZS9Db2xsYXRvckRlZmF1bHQuY3BwIGIvU291cmNlL1dURi93dGYvdW5pY29kZS9D
b2xsYXRvckRlZmF1bHQuY3BwCmluZGV4IDRlODFmZWY3Y2MwZDNhODI2NzA0YzI0YTk2MWM3ZTAz
NzZmZGFlNmQuLmQ1NmJiNWEzOGE0MWY4NGFiMzE3NTdmNTdhM2YxYjNmZTkyZTBkZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHAKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xsYXRvci5oIgogCi0jaWYgIVVT
RShJQ1VfVU5JQ09ERSkgfHwgVUNPTkZJR19OT19DT0xMQVRJT04KKyNpZiBVQ09ORklHX05PX0NP
TExBVElPTgogCiBuYW1lc3BhY2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dW5pY29kZS9Vbmljb2RlLmggYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VuaWNvZGUuaAppbmRl
eCBiZjM4ZTJlOGJkNzllMGU0MjVmMjg5MDJlYmFmNTAzMWY3NWNmYTc0Li44NGY3NzczNDIyYzRl
OGU0MTkyMzg5MWZkZTk2Yjk3NTExNjlkYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91
bmljb2RlL1VuaWNvZGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VuaWNvZGUuaApA
QCAtMjgsMTMgKzI4LDcgQEAKIC8vIERlZmluZSBwbGF0Zm9ybSBuZXV0cmFsIDggYml0IGNoYXJh
Y3RlciB0eXBlIChMIGlzIGZvciBMYXRpbi0xKS4KIHR5cGVkZWYgdW5zaWduZWQgY2hhciBMQ2hh
cjsKIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9pY3UvVW5p
Y29kZUljdS5oPgotI2VsaWYgVVNFKFdDSEFSX1VOSUNPREUpCi0jaW5jbHVkZSA8d3RmL3VuaWNv
ZGUvd2NoYXIvVW5pY29kZVdjaGFyLmg+Ci0jZWxzZQotI2Vycm9yICJVbmtub3duIFVuaWNvZGUg
aW1wbGVtZW50YXRpb24iCi0jZW5kaWYKIAogc3RhdGljX2Fzc2VydChzaXplb2YoVUNoYXIpID09
IDIsICJVQ2hhciBtdXN0IGJlIHR3byBieXRlcyEiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIGIvU291cmNlL1dURi93dGYvdW5pY29k
ZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCmluZGV4IDIwOWMwMjMwOGE1MTE2YWQyMTQyYWY4NzhmNjVk
ZWU1OTE1OTM4OTEuLmU0MDU5YmNkY2ZhYTlmYzAyZTE4MzJjZDIyMjczZjM1NmRjNmZmNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKQEAgLTI5LDcgKzI5
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Db2xsYXRv
ci5oPgogCi0jaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19OT19DT0xMQVRJT04KKyNp
ZiAhVUNPTkZJR19OT19DT0xMQVRJT04KIAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CkBAIC0xNTYsNCArMTU2LDQgQEAgdm9pZCBDb2xsYXRvcjo6cmVsZWFz
ZUNvbGxhdG9yKCkKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNlbmRpZiAvLyBVU0UoSUNVX1VO
SUNPREUpICYmICFVQ09ORklHX05PX0NPTExBVElPTgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGQwM2U4YWQ2YWEzMmI5NTQ2YjJjMmE1NGFhNWMxYjA0NDdmNzliZTYuLjM2OTIxMzFi
ZGIzODgwZjY3OTQzZmZkZjc2ZmFlNDZmYzcxMTBlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yNzcwLDI5ICsyNzcwLDE5IEBAIGlmIChFTkFCTEVfUVVPVEEpCiAgICAgKQogZW5kaWYgKCkK
IAotCi1pZiAoV1RGX1VTRV9JQ1VfVU5JQ09ERSkKLSAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKLSAgICAgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlci5jcHAKLSAgICAg
ICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGluMS5jcHAKLSAgICAgICAgcGxh
dGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlclVURjE2LmNwcAotICAgICAgICBwbGF0Zm9ybS90
ZXh0L1RleHRDb2RlY0lDVS5jcHAKLSAgICAgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdE
ZXRlY3RvcklDVS5jcHAKLSAgICApCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJ
UkVDVE9SSUVTCi0gICAgICAgICR7SUNVX0lOQ0xVREVfRElSU30KLSAgICApCi0gICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKLSAgICAgICAgJHtJQ1VfTElCUkFSSUVTfQotICAgICkK
LWVsc2VpZiAoV1RGX1VTRV9XQ0hBUl9VTklDT0RFKQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwotICAgICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ0RldGVjdG9yTm9uZS5j
cHAKLQotICAgICAgICBwbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRCcmVha0l0ZXJhdG9yV2NoYXIu
Y3BwCi0gICAgKQotZW5kaWYgKCkKLQorbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAg
cGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlci5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L2lj
dS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcAorICAgIHBsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJv
dmlkZXJVVEYxNi5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKKyAgICBw
bGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcAorKQorbGlzdChBUFBFTkQg
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQorKQor
bGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0lDVV9MSUJSQVJJRVN9CispCiAK
IGlmIChXVEZfVVNFX0xFVkVMREIpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJ
UkVDVE9SSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWQ0MDdiNWUwNDE4
ZTg3YTIzMjIzNmJlMGRlZmVjYzc4OGJiNWExLi5iYzEwY2U3MTgxZDdlNTQ3NGIwYmQ4Mjg0OWRm
NDU4MDZjOWQxMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMxMzUsNyAr
MzEzNSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
aW1wbGlmeU1hcmt1cENvbW1hbmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFydFJl
cGxhY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGVsbENoZWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rp
b25Db21tYW5kLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDcxMDVlYzRiY2Yw
OGI4OWJlNTEwZWI3ZDIwMjI5ODA5YTA4YjBiMzYuLjk5NmI3NmYyZThmNmE1OTI3YzdhODNjMzhm
YWE2OTg0Njk2MGZkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zNCw3ICszNCw3
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVVdGlsLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vz
c2libGVXcmFwcGVyQXRrLmNwcAogCi0gICAgZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwCisg
ICAgZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwCiAKICAgICBlZGl0aW5nL2F0ay9GcmFtZVNlbGVj
dGlvbkF0ay5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBkZmUzOGNjZTUwMWUy
NWU0Yjc0ZWUwODg3ZTgzNWViMWFlYjVmYjAxLi5mZjZlN2VlOGI5Zjc4M2NhNjk2MDUxNWIxZDQ3
YmNhYjkzYzA3Y2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMjUsNyArMjUsNyBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCi0gICAgZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwCisgICAg
ZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwCiAKICAgICBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
R3RrLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4
IGNmMGZlYWYxOTg2NGNhM2JmMTM3MDFmMTBiMTY3NjQxNDhkY2Y4ZmYuLmZjZGY2NzczYmQwMmQy
N2FiMjI4ZTEwOWYyZjJiMGI5M2ZjOWE0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCkBAIC03MTIsMTMgKzcxMiwxMSBAQCBWaXNpYmxlUG9zaXRpb24gRnJh
bWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ1JpZ2h0KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eSkKICAgICAgICAgICAgIHBvcyA9IFZpc2libGVQb3NpdGlvbihtX3NlbGVjdGlvbi5leHRlbnQo
KSwgbV9zZWxlY3Rpb24uYWZmaW5pdHkoKSkucmlnaHQodHJ1ZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OiB7Ci0jaWYgVVNFKElDVV9VTklDT0RFKQogICAgICAg
ICAvLyBWaXN1YWwgd29yZCBtb3ZlbWVudCByZWxpZXMgb24gaXNXb3JkVGV4dEJyZWFrIHdoaWNo
IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBXaW5DRSBhbmQgUVQuCiAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTEzNi4KICAgICAgICAgYm9vbCBza2lw
c1NwYWNlV2hlbk1vdmluZ1JpZ2h0ID0gbV9mcmFtZSAmJiBtX2ZyYW1lLT5lZGl0b3IoKS5iZWhh
dmlvcigpLnNob3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgpOwogICAgICAgICBwb3MgPSBy
aWdodFdvcmRQb3NpdGlvbihWaXNpYmxlUG9zaXRpb24obV9zZWxlY3Rpb24uZXh0ZW50KCksIG1f
c2VsZWN0aW9uLmFmZmluaXR5KCkpLCBza2lwc1NwYWNlV2hlbk1vdmluZ1JpZ2h0KTsKICAgICAg
ICAgYnJlYWs7Ci0jZW5kaWYKICAgICB9CiAgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5Ogog
ICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgpAQCAtOTA4LDExICs5MDYsOSBAQCBWaXNpYmxlUG9z
aXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0xlZnQoVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQogICAgICAgICAgICAgcG9zID0gVmlzaWJsZVBvc2l0aW9uKG1fc2VsZWN0aW9u
LmV4dGVudCgpLCBtX3NlbGVjdGlvbi5hZmZpbml0eSgpKS5sZWZ0KHRydWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdvcmRHcmFudWxhcml0eTogewotI2lmIFVTRShJQ1VfVU5JQ09ERSkK
ICAgICAgICAgYm9vbCBza2lwc1NwYWNlV2hlbk1vdmluZ1JpZ2h0ID0gbV9mcmFtZSAmJiBtX2Zy
YW1lLT5lZGl0b3IoKS5iZWhhdmlvcigpLnNob3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgp
OwogICAgICAgICBwb3MgPSBsZWZ0V29yZFBvc2l0aW9uKFZpc2libGVQb3NpdGlvbihtX3NlbGVj
dGlvbi5leHRlbnQoKSwgbV9zZWxlY3Rpb24uYWZmaW5pdHkoKSksIHNraXBzU3BhY2VXaGVuTW92
aW5nUmlnaHQpOwogICAgICAgICBicmVhazsKLSNlbmRpZgogICAgIH0KICAgICBjYXNlIFNlbnRl
bmNlR3JhbnVsYXJpdHk6CiAgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKaW5kZXggN2I4Y2E0NTY0MzExYzEyOTk1OGYzNWViMjk3
MzFhYWMyOGM4ZWQ4YS4uMDM0ZGJmZWJiMjlhMjhiMGVkOTM3NmMwMTIyNDMyYjFhMmQ5OTA3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBUb255IENoYW5nIDxpZGVhbGlzbXNAZ21haWwuY29t
PgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMyArMzAsNzMgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKIAotI2lmICFVU0Uo
Q0YpICYmICFVU0UoSUNVX1VOSUNPREUpCisjaWYgIVVTRShDRikKKworI2luY2x1ZGUgPHVuaWNv
ZGUvdXNldC5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIHZvaWQgYWRk
QWxsQ29kZVBvaW50cyhVU2V0KiBzbWFydFNldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7Cisg
ICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBzdHJpbmcuY2hhcmFjdGVycygpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aCgpOyBpKyspCisgICAgICAgIHVzZXRf
YWRkKHNtYXJ0U2V0LCBjaGFyYWN0ZXJzW2ldKTsKK30KKworLy8gVGhpcyBpcyBtb3N0bHkgYSBw
b3J0IG9mIHRoZSBjb2RlIGluIFdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2VDRi5jcHAKKy8v
IGV4Y2VwdCB3ZSB1c2UgSUNVIGluc3RlYWQgb2YgQ29yZUZvdW5kYXRpb24gY2hhcmFjdGVyIGNs
YXNzZXMuCitzdGF0aWMgVVNldCogZ2V0U21hcnRTZXQoYm9vbCBpc1ByZXZpb3VzQ2hhcmFjdGVy
KQoreworICAgIHN0YXRpYyBVU2V0KiBwcmVTbWFydFNldCA9IG51bGxwdHI7CisgICAgc3RhdGlj
IFVTZXQqIHBvc3RTbWFydFNldCA9IG51bGxwdHI7CisgICAgVVNldCogc21hcnRTZXQgPSBpc1By
ZXZpb3VzQ2hhcmFjdGVyID8gcHJlU21hcnRTZXQgOiBwb3N0U21hcnRTZXQ7CisgICAgaWYgKCFz
bWFydFNldCkgeworICAgICAgICAvLyBXaGl0ZXNwYWNlIGFuZCBuZXdsaW5lIChrQ0ZDaGFyYWN0
ZXJTZXRXaGl0ZXNwYWNlQW5kTmV3bGluZSkKKyAgICAgICAgVUVycm9yQ29kZSBlYyA9IFVfWkVS
T19FUlJPUjsKKyAgICAgICAgU3RyaW5nIHdoaXRlc3BhY2VBbmROZXdsaW5lID0gQVNDSUlMaXRl
cmFsKCJbWzpXU3BhY2U6XSBbXFx1MDAwQVxcdTAwMEJcXHUwMDBDXFx1MDAwRFxcdTAwODVdXSIp
OworICAgICAgICBzbWFydFNldCA9IHVzZXRfb3BlblBhdHRlcm4od2hpdGVzcGFjZUFuZE5ld2xp
bmUuY2hhcmFjdGVycygpLCB3aGl0ZXNwYWNlQW5kTmV3bGluZS5sZW5ndGgoKSwgJmVjKTsKKyAg
ICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhlYykpOworCisgICAgICAgIC8vIENKSyByYW5nZXMKKyAg
ICAgICAgLy8gRklYTUU6IExvb2tzIGxpa2UgYWxsIHRoZXNlIHJhbmdlcyBpbmNsdWRlIG9uZSBl
eHRyYSBjaGFyYWN0ZXIgcGFzdCB0aGUgZW5kLgorICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0
U2V0LCAweDExMDAsIDB4MTEwMCArIDI1Nik7IC8vIEhhbmd1bCBKYW1vICgweDExMDAgLSAweDEx
RkYpCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MkU4MCwgMHgyRTgwICsgMzUy
KTsgLy8gQ0pLICYgS2FuZ3hpIFJhZGljYWxzICgweDJFODAgLSAweDJGREYpCisgICAgICAgIHVz
ZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MkZGMCwgMHgyRkYwICsgNDY0KTsgLy8gSWRlb2dyYXBo
IERlc2NyaXB0aW9ucywgQ0pLIFN5bWJvbHMsIEhpcmFnYW5hLCBLYXRha2FuYSwgQm9wb21vZm8s
IEhhbmd1bCBDb21wYXRpYmlsaXR5IEphbW8sIEthbmJ1biwgJiBCb3BvbW9mbyBFeHQgKDB4MkZG
MCAtIDB4MzFCRikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgzMjAwLCAweDMy
MDAgKyAyOTM5Mik7IC8vIEVuY2xvc2VkIENKSywgQ0pLIElkZW9ncmFwaHMgKFVuaSBIYW4gJiBF
eHQgQSksICYgWWkgKDB4MzIwMCAtIDB4QTRDRikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFy
dFNldCwgMHhBQzAwLCAweEFDMDAgKyAxMTE4Myk7IC8vIEhhbmd1bCBTeWxsYWJsZXMgKDB4QUMw
MCAtIDB4RDdBRikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHhGOTAwLCAweEY5
MDAgKyAzNTIpOyAvLyBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzICgweEY5MDAgLSAweEZB
NUYpCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4RkUzMCwgMHhGRTMwICsgMzIp
OyAvLyBDSksgQ29tcGF0aWJpbGl0eSBGcm9tICgweEZFMzAgLSAweEZFNEYpCisgICAgICAgIHVz
ZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4RkYwMCwgMHhGRjAwICsgMjQwKTsgLy8gSGFsZi9GdWxs
IFdpZHRoIEZvcm0gKDB4RkYwMCAtIDB4RkZFRikKKyAgICAgICAgdXNldF9hZGRSYW5nZShzbWFy
dFNldCwgMHgyMDAwMCwgMHgyMDAwMCArIDB4QTZENyk7IC8vIENKSyBJZGVvZ3JhcGggRXhudGVu
c2lvbiBCCisgICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MkY4MDAsIDB4MkY4MDAg
KyAweDAyMUUpOyAvLyBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzICgweDJGODAwIC0gMHgy
RkExRCkKKworICAgICAgICBpZiAoaXNQcmV2aW91c0NoYXJhY3RlcikgeworICAgICAgICAgICAg
Ly8gRklYTUU6IFNpbGx5IHRvIGNvbnZlcnQgdGhpcyB0byBhIFdURjo6U3RyaW5nIGp1c3QgdG8g
bG9vcCB0aHJvdWdoIHRoZSBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgYWRkQWxsQ29kZVBvaW50
cyhzbWFydFNldCwgQVNDSUlMaXRlcmFsKCIoW1wiXCcjJC8tYHsiKSk7CisgICAgICAgICAgICBw
cmVTbWFydFNldCA9IHNtYXJ0U2V0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8g
RklYTUU6IFNpbGx5IHRvIGNvbnZlcnQgdGhpcyB0byBhIFdURjo6U3RyaW5nIGp1c3QgdG8gbG9v
cCB0aHJvdWdoIHRoZSBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgYWRkQWxsQ29kZVBvaW50cyhz
bWFydFNldCwgQVNDSUlMaXRlcmFsKCIpXS4sOzo/XCchXCIlKi0vfSIpKTsKKworICAgICAgICAg
ICAgLy8gUHVuY3R1YXRpb24gKGtDRkNoYXJhY3RlclNldFB1bmN0dWF0aW9uKQorICAgICAgICAg
ICAgVUVycm9yQ29kZSBlYyA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgICAgIFN0cmluZyBwdW5j
dHVhdGlvbkNsYXNzID0gQVNDSUlMaXRlcmFsKCJbOlA6XSIpOworICAgICAgICAgICAgVVNldCog
aWN1UHVuY3QgPSB1c2V0X29wZW5QYXR0ZXJuKHB1bmN0dWF0aW9uQ2xhc3MuY2hhcmFjdGVycygp
LCBwdW5jdHVhdGlvbkNsYXNzLmxlbmd0aCgpLCAmZWMpOworICAgICAgICAgICAgQVNTRVJUKFVf
U1VDQ0VTUyhlYykpOworICAgICAgICAgICAgdXNldF9hZGRBbGwoc21hcnRTZXQsIGljdVB1bmN0
KTsKKyAgICAgICAgICAgIHVzZXRfY2xvc2UoaWN1UHVuY3QpOworCisgICAgICAgICAgICBwb3N0
U21hcnRTZXQgPSBzbWFydFNldDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc21hcnRT
ZXQ7Cit9CisKIGJvb2wgaXNDaGFyYWN0ZXJTbWFydFJlcGxhY2VFeGVtcHQoVUNoYXIzMiBjLCBi
b29sIGlzUHJldmlvdXNDaGFyYWN0ZXIpCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biB1c2V0X2NvbnRhaW5zKGdldFNtYXJ0U2V0KGlzUHJldmlvdXNDaGFyYWN0ZXIpLCBjKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2VJQ1Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNmVhN2Q2M2QyMzM2NmZhYTE2MmE5MDc4NDhhYjE2MmM0
MTM1MTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEwMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9ueSBDaGFuZyA8aWRl
YWxpc21zQGdtYWlsLmNvbT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
LSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU21hcnRS
ZXBsYWNlLmgiCi0KLSNpZiAhVVNFKENGKSAmJiBVU0UoSUNVX1VOSUNPREUpCi0jaW5jbHVkZSA8
dW5pY29kZS91c2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgdm9p
ZCBhZGRBbGxDb2RlUG9pbnRzKFVTZXQqIHNtYXJ0U2V0LCBjb25zdCBTdHJpbmcmIHN0cmluZykK
LXsKLSAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHN0cmluZy5jaGFyYWN0ZXJzKCk7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoKCk7IGkrKykKLSAgICAgICAg
dXNldF9hZGQoc21hcnRTZXQsIGNoYXJhY3RlcnNbaV0pOwotfQotCi0vLyBUaGlzIGlzIG1vc3Rs
eSBhIHBvcnQgb2YgdGhlIGNvZGUgaW4gV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZUNGLmNw
cAotLy8gZXhjZXB0IHdlIHVzZSBpY3UgaW4gcGxhY2Ugb2YgQ29yZUZvdW5kYXRpb25zIGNoYXJh
Y3RlciBjbGFzc2VzLgotc3RhdGljIFVTZXQqIGdldFNtYXJ0U2V0KGJvb2wgaXNQcmV2aW91c0No
YXJhY3RlcikKLXsKLSAgICBzdGF0aWMgVVNldCogcHJlU21hcnRTZXQgPSBOVUxMOyAKLSAgICBz
dGF0aWMgVVNldCogcG9zdFNtYXJ0U2V0ID0gTlVMTDsKLSAgICBVU2V0KiBzbWFydFNldCA9IGlz
UHJldmlvdXNDaGFyYWN0ZXIgPyBwcmVTbWFydFNldCA6IHBvc3RTbWFydFNldDsKLSAgICBpZiAo
IXNtYXJ0U2V0KSB7Ci0gICAgICAgIC8vIFdoaXRlc3BhY2UgYW5kIG5ld2xpbmUgKGtDRkNoYXJh
Y3RlclNldFdoaXRlc3BhY2VBbmROZXdsaW5lKQotICAgICAgICBVRXJyb3JDb2RlIGVjID0gVV9a
RVJPX0VSUk9SOwotICAgICAgICBTdHJpbmcgd2hpdGVzcGFjZUFuZE5ld2xpbmUgPSBBU0NJSUxp
dGVyYWwoIltbOldTcGFjZTpdIFtcXHUwMDBBXFx1MDAwQlxcdTAwMENcXHUwMDBEXFx1MDA4NV1d
Iik7Ci0gICAgICAgIHNtYXJ0U2V0ID0gdXNldF9vcGVuUGF0dGVybih3aGl0ZXNwYWNlQW5kTmV3
bGluZS5jaGFyYWN0ZXJzKCksIHdoaXRlc3BhY2VBbmROZXdsaW5lLmxlbmd0aCgpLCAmZWMpOwot
ICAgICAgICBBU1NFUlQoVV9TVUNDRVNTKGVjKSk7Ci0KLSAgICAgICAgLy8gQ0pLIHJhbmdlcwot
ICAgICAgICB1c2V0X2FkZFJhbmdlKHNtYXJ0U2V0LCAweDExMDAsIDB4MTEwMCArIDI1Nik7IC8v
IEhhbmd1bCBKYW1vICgweDExMDAgLSAweDExRkYpCi0gICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21h
cnRTZXQsIDB4MkU4MCwgMHgyRTgwICsgMzUyKTsgLy8gQ0pLICYgS2FuZ3hpIFJhZGljYWxzICgw
eDJFODAgLSAweDJGREYpCi0gICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4MkZGMCwg
MHgyRkYwICsgNDY0KTsgLy8gSWRlb2dyYXBoIERlc2NyaXB0aW9ucywgQ0pLIFN5bWJvbHMsIEhp
cmFnYW5hLCBLYXRha2FuYSwgQm9wb21vZm8sIEhhbmd1bCBDb21wYXRpYmlsaXR5IEphbW8sIEth
bmJ1biwgJiBCb3BvbW9mbyBFeHQgKDB4MkZGMCAtIDB4MzFCRikKLSAgICAgICAgdXNldF9hZGRS
YW5nZShzbWFydFNldCwgMHgzMjAwLCAweDMyMDAgKyAyOTM5Mik7IC8vIEVuY2xvc2VkIENKSywg
Q0pLIElkZW9ncmFwaHMgKFVuaSBIYW4gJiBFeHQgQSksICYgWWkgKDB4MzIwMCAtIDB4QTRDRikK
LSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHhBQzAwLCAweEFDMDAgKyAxMTE4Myk7
IC8vIEhhbmd1bCBTeWxsYWJsZXMgKDB4QUMwMCAtIDB4RDdBRikKLSAgICAgICAgdXNldF9hZGRS
YW5nZShzbWFydFNldCwgMHhGOTAwLCAweEY5MDAgKyAzNTIpOyAvLyBDSksgQ29tcGF0aWJpbGl0
eSBJZGVvZ3JhcGhzICgweEY5MDAgLSAweEZBNUYpCi0gICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21h
cnRTZXQsIDB4RkUzMCwgMHhGRTMwICsgMzIpOyAvLyBDSksgQ29tcGF0aWJpbGl0eSBGcm9tICgw
eEZFMzAgLSAweEZFNEYpCi0gICAgICAgIHVzZXRfYWRkUmFuZ2Uoc21hcnRTZXQsIDB4RkYwMCwg
MHhGRjAwICsgMjQwKTsgLy8gSGFsZi9GdWxsIFdpZHRoIEZvcm0gKDB4RkYwMCAtIDB4RkZFRikK
LSAgICAgICAgdXNldF9hZGRSYW5nZShzbWFydFNldCwgMHgyMDAwMCwgMHgyMDAwMCArIDB4QTZE
Nyk7IC8vIENKSyBJZGVvZ3JhcGggRXhudGVuc2lvbiBCCi0gICAgICAgIHVzZXRfYWRkUmFuZ2Uo
c21hcnRTZXQsIDB4MkY4MDAsIDB4MkY4MDAgKyAweDAyMUUpOyAvLyBDSksgQ29tcGF0aWJpbGl0
eSBJZGVvZ3JhcGhzICgweDJGODAwIC0gMHgyRkExRCkKLQotICAgICAgICBpZiAoaXNQcmV2aW91
c0NoYXJhY3RlcikgewotICAgICAgICAgICAgYWRkQWxsQ29kZVBvaW50cyhzbWFydFNldCwgQVND
SUlMaXRlcmFsKCIoW1wiXCcjJC8tYHsiKSk7Ci0gICAgICAgICAgICBwcmVTbWFydFNldCA9IHNt
YXJ0U2V0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYWRkQWxsQ29kZVBvaW50cyhz
bWFydFNldCwgQVNDSUlMaXRlcmFsKCIpXS4sOzo/XCchXCIlKi0vfSIpKTsKLQotICAgICAgICAg
ICAgLy8gUHVuY3R1YXRpb24gKGtDRkNoYXJhY3RlclNldFB1bmN0dWF0aW9uKQotICAgICAgICAg
ICAgVUVycm9yQ29kZSBlYyA9IFVfWkVST19FUlJPUjsKLSAgICAgICAgICAgIFN0cmluZyBwdW5j
dHVhdGlvbkNsYXNzID0gQVNDSUlMaXRlcmFsKCJbOlA6XSIpOwotICAgICAgICAgICAgVVNldCog
aWN1UHVuY3QgPSB1c2V0X29wZW5QYXR0ZXJuKHB1bmN0dWF0aW9uQ2xhc3MuY2hhcmFjdGVycygp
LCBwdW5jdHVhdGlvbkNsYXNzLmxlbmd0aCgpLCAmZWMpOwotICAgICAgICAgICAgQVNTRVJUKFVf
U1VDQ0VTUyhlYykpOwotICAgICAgICAgICAgdXNldF9hZGRBbGwoc21hcnRTZXQsIGljdVB1bmN0
KTsKLSAgICAgICAgICAgIHVzZXRfY2xvc2UoaWN1UHVuY3QpOwotCi0gICAgICAgICAgICBwb3N0
U21hcnRTZXQgPSBzbWFydFNldDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gc21hcnRT
ZXQ7Ci19Ci0KLWJvb2wgaXNDaGFyYWN0ZXJTbWFydFJlcGxhY2VFeGVtcHQoVUNoYXIzMiBjLCBi
b29sIGlzUHJldmlvdXNDaGFyYWN0ZXIpCi17Ci0gICAgcmV0dXJuIHVzZXRfY29udGFpbnMoZ2V0
U21hcnRTZXQoaXNQcmV2aW91c0NoYXJhY3RlciksIGMpOwotfQotCi19Ci0KLSNlbmRpZiAvLyAh
VVNFKENGKSAmJiBVU0UoSUNVX1VOSUNPREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKaW5kZXggOGNhNzY3YjAxMjU2MWI3ZTQ3ZDJkMTYxNmVkYjE0YzNmMThmNWI4NC4u
MWU0MDc4MDg2MGZhM2JiODQ3YTBjNGFjNTBhMzJlMmNhNmQ1ZGI3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNTIsNyArNTIsNyBAQAogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5o
PgogCi0jaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19OT19DT0xMQVRJT04KKyNpZiAh
VUNPTkZJR19OT19DT0xMQVRJT04KICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVLmgiCiAjaW5jbHVkZSA8dW5pY29kZS91c2VhcmNoLmg+CiAjZW5kaWYKQEAgLTg2LDcgKzg2
LDcgQEAgcHVibGljOgogICAgIHNpemVfdCBzZWFyY2goc2l6ZV90JiBzdGFydE9mZnNldCk7CiAg
ICAgYm9vbCBhdEJyZWFrKCkgY29uc3Q7CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09O
RklHX05PX0NPTExBVElPTgorI2lmICFVQ09ORklHX05PX0NPTExBVElPTgogCiBwcml2YXRlOgog
ICAgIGJvb2wgaXNCYWRNYXRjaChjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgpIGNvbnN0OwpA
QCAtMTcwMiw3ICsxNzAyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZvbGRRdW90ZU1hcmtzQW5k
U29mdEh5cGhlbnMoU3RyaW5nJiBzKQogICAgIHMucmVwbGFjZShzb2Z0SHlwaGVuLCAwKTsKIH0K
IAotI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9fQ09MTEFUSU9OCisjaWYgIVVD
T05GSUdfTk9fQ09MTEFUSU9OCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBmb2xkUXVvdGVNYXJrc0Fu
ZFNvZnRIeXBoZW5zKFVDaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogewpAQCAtMjMwNSw3ICsy
MzA1LDcgQEAgbmV4dE1hdGNoOgogICAgIHJldHVybiBtYXRjaGVkTGVuZ3RoOwogfQogCi0jZWxz
ZSAvLyAhSUNVX1VOSUNPREUKKyNlbHNlCiAKIGlubGluZSBTZWFyY2hCdWZmZXI6OlNlYXJjaEJ1
ZmZlcihjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucykKICAgICA6IG1f
dGFyZ2V0KG9wdGlvbnMgJiBDYXNlSW5zZW5zaXRpdmUgPyB0YXJnZXQuZm9sZENhc2UoKSA6IHRh
cmdldCkKQEAgLTI0MTUsNyArMjQxNSw3IEBAIHNpemVfdCBTZWFyY2hCdWZmZXI6Omxlbmd0aCgp
IGNvbnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotI2VuZGlmIC8vICFJQ1VfVU5JQ09ERQor
I2VuZGlmCiAKIC8vIC0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFk
R2xvYmFsRGF0YS5jcHAKaW5kZXggY2VmYjE5ZGRjNzBlNWRhOTU1MTEyYTg5NmVjNjdjMTlkNTAy
ZTI0My4uOGU3ZTZlMmI0N2Q1ZjM1NWIxM2MwYmM2MDBhZWNmYWJmMTEwOWVjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKQEAgLTMwLDIzICszMCwx
OCBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ291bnRlcnMuaCIKKyNpbmNs
dWRlICJUZXh0Q29kZWNJQ1UuaCIKICNpbmNsdWRlICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgorI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkK
LSNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQot
I2luY2x1ZGUgIlRleHRDb2RlY01hYy5oIgorI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykKKyNpbmNsdWRlICJUZXh0Q29kZUNNYWMuaCIKICNlbmRpZgogCi0jaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgotdXNpbmcgbmFt
ZXNwYWNlIFdURjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBUaHJlYWRTcGVjaWZpYzxUaHJl
YWRHbG9iYWxEYXRhPiogVGhyZWFkR2xvYmFsRGF0YTo6c3RhdGljRGF0YTsKQEAgLTYxLDkgKzU2
LDcgQEAgVGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0YSgpCiAjaWZuZGVmIE5ERUJV
RwogICAgICwgbV9pc01haW5UaHJlYWQoaXNNYWluVGhyZWFkKCkpCiAjZW5kaWYKLSNpZiBVU0Uo
SUNVX1VOSUNPREUpCiAgICAgLCBtX2NhY2hlZENvbnZlcnRlcklDVShhZG9wdFB0cihuZXcgSUNV
Q29udmVydGVyV3JhcHBlcikpCi0jZW5kaWYKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShJT1MpCiAgICAgLCBtX2NhY2hlZENvbnZlcnRlclRFQyhhZG9wdFB0cihuZXcgVEVDQ29udmVy
dGVyV3JhcHBlcikpCiAjZW5kaWYKQEAgLTg5LDkgKzgyLDcgQEAgdm9pZCBUaHJlYWRHbG9iYWxE
YXRhOjpkZXN0cm95KCkKICAgICBtX2NhY2hlZENvbnZlcnRlclRFQy5jbGVhcigpOwogI2VuZGlm
CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgbV9jYWNoZWRDb252ZXJ0ZXJJQ1UuY2xlYXIo
KTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBtX2luc3BlY3RvckNvdW50
ZXJzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgK
aW5kZXggZmZiMDE4YzdhMjBmZTdlYTMwNzhlODUxN2UxZjhmMzE1MzI4ODY0MC4uZTM4NmJlMjQ3
YjE5MzRjMGVmMzZkZGFiYWJlYjk1MDYxNjUxYzM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtNTgsOSArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEV2ZW50TmFtZXMmIGV2ZW50TmFtZXMoKSB7IHJldHVybiAqbV9ldmVudE5h
bWVzOyB9CiAgICAgICAgIFRocmVhZFRpbWVycyYgdGhyZWFkVGltZXJzKCkgeyByZXR1cm4gKm1f
dGhyZWFkVGltZXJzOyB9CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAgICAgICAgIElDVUNvbnZl
cnRlcldyYXBwZXImIGNhY2hlZENvbnZlcnRlcklDVSgpIHsgcmV0dXJuICptX2NhY2hlZENvbnZl
cnRlcklDVTsgfQotI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
CiAgICAgICAgIFRFQ0NvbnZlcnRlcldyYXBwZXImIGNhY2hlZENvbnZlcnRlclRFQygpIHsgcmV0
dXJuICptX2NhY2hlZENvbnZlcnRlclRFQzsgfQpAQCAtODMsOSArODEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9pc01haW5UaHJlYWQ7CiAjZW5kaWYKIAotI2lmIFVT
RShJQ1VfVU5JQ09ERSkKICAgICAgICAgT3duUHRyPElDVUNvbnZlcnRlcldyYXBwZXI+IG1fY2Fj
aGVkQ29udmVydGVySUNVOwotI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShJT1MpCiAgICAgICAgIE93blB0cjxURUNDb252ZXJ0ZXJXcmFwcGVyPiBtX2NhY2hlZENvbnZl
cnRlclRFQzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCmluZGV4IDM0ODYzYmVmZWY2MzM2MDFlMjcx
NjQyMzAyOGE5OGRkMDc5OTQ3NzIuLjFiY2UyYWFmN2M5ZDc4NDEwNzhmMzYwMmE4YTExYmE4MDlm
ZTVlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNs
dWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWlkbmEuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CkBAIC0zOCwxMCArMzksNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLSNpZiBVU0Uo
SUNVX1VOSUNPREUpCi0jaW5jbHVkZSA8dW5pY29kZS91aWRuYS5oPgotI2VuZGlmCi0KIC8vIEZJ
WE1FOiBUaGlzIGZpbGUgbWFrZXMgdG9vIG11Y2ggdXNlIG9mIHRoZSArIG9wZXJhdG9yIG9uIFN0
cmluZy4KIC8vIFdlIGVpdGhlciBoYXZlIHRvIG9wdGltaXplIHRoYXQgb3BlcmF0b3Igc28gaXQg
ZG9lc24ndCBpbnZvbHZlCiAvLyBzbyBtYW55IGFsbG9jYXRpb25zLCBvciBjaGFuZ2UgdGhpcyB0
byB1c2UgU3RyaW5nQnVmZmVyIGluc3RlYWQuCkBAIC0xNTA0LDE0ICsxNTAxLDEyIEBAIHN0YXRp
YyB2b2lkIGFwcGVuZEVuY29kZWRIb3N0bmFtZShVQ2hhckJ1ZmZlciYgYnVmZmVyLCBjb25zdCBV
Q2hhciogc3RyLCB1bnNpZ25lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBVU0UoSUNV
X1VOSUNPREUpCiAgICAgVUNoYXIgaG9zdG5hbWVCdWZmZXJbaG9zdG5hbWVCdWZmZXJMZW5ndGhd
OwogICAgIFVFcnJvckNvZGUgZXJyb3IgPSBVX1pFUk9fRVJST1I7CiAgICAgaW50MzJfdCBudW1D
aGFyYWN0ZXJzQ29udmVydGVkID0gdWlkbmFfSUROVG9BU0NJSShzdHIsIHN0ckxlbiwgaG9zdG5h
bWVCdWZmZXIsCiAgICAgICAgIGhvc3RuYW1lQnVmZmVyTGVuZ3RoLCBVSUROQV9BTExPV19VTkFT
U0lHTkVELCAwLCAmZXJyb3IpOwogICAgIGlmIChlcnJvciA9PSBVX1pFUk9fRVJST1IpCiAgICAg
ICAgIGJ1ZmZlci5hcHBlbmQoaG9zdG5hbWVCdWZmZXIsIG51bUNoYXJhY3RlcnNDb252ZXJ0ZWQp
OwotI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIGZpbmRIb3N0bmFtZXNJbk1haWxUb1VSTChjb25z
dCBVQ2hhciogc3RyLCBpbnQgc3RyTGVuLCBWZWN0b3I8c3RkOjpwYWlyPGludCwgaW50Pj4mIG5h
bWVSYW5nZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAppbmRleCBlZDZh
MzMzNzZhNWE4NTIzYmI3MTg4YmI0Zjk4ODA0ZThhZTQwYWFiLi45MTU1ZTcxMWE4ZGE4MGQ0ZWIz
ZGNmNWRhNWFjMzA1YTI4Y2JlYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRv
ci5jcHAKQEAgLTIzLDEyICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmgiCiAKLSNpZiBVU0UoSUNVX1VOSUNPREUp
CiAjaW5jbHVkZSA8dW5pY29kZS91bm9ybS5oPgotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBX
VEY7Ci11c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKaW5kZXggYzk1
NGJmMjYzNTgwZTBjMDg0Y2RlMTc4MzFhNDQxYWFjOGIxZjdkZC4uZjZkMTZjYmYxZjBlMTgwODBi
ZWQ3YmY5NjJiOWJjNzBiNzA3NDBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENvZGVjSUNVLmNwcApAQCAtMjUsNyArMjUsNiBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVkZSAiVGV4dENvZGVjSUNVLmgi
CiAKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKQEAgLTU0Miw1ICs1NDEsMyBAQCBDU3RyaW5n
IFRleHRDb2RlY0lDVTo6ZW5jb2RlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVu
Z3RoLCBVbmVuY29kYWJsZQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCmluZGV4IGY0
NTdiMTY0MjVlZGFjZmYyNDRkN2JlYjBlMzVkZjk3Y2UxY2VmNmQuLmQyNzA4MjY3MDg3NTA5YjAw
MDI5YWVhNTc3NjEyM2U5YWJkZmNmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRFbmNvZGluZy5jcHAKQEAgLTMwLDE1ICszMCwxMiBAQAogCiAjaW5jbHVkZSAiVGV4
dENvZGVjLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx1
bmljb2RlL3Vub3JtLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCi0jaW5jbHVkZSA8
dW5pY29kZS91bm9ybS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGlj
IGNvbnN0IFRleHRFbmNvZGluZyYgVVRGN0VuY29kaW5nKCkKQEAgLTc1LDcgKzcyLDYgQEAgQ1N0
cmluZyBUZXh0RW5jb2Rpbmc6OmVuY29kZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgc2l6ZV90
IGxlbmd0aCwgVW5lbmNvZGFibGUKICAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJuICIi
OwogCi0jaWYgVVNFKElDVV9VTklDT0RFKQogICAgIC8vIEZJWE1FOiBXaGF0J3MgdGhlIHJpZ2h0
IHBsYWNlIHRvIGRvIG5vcm1hbGl6YXRpb24/CiAgICAgLy8gSXQncyBhIGxpdHRsZSBzdHJhbmdl
IHRvIGRvIGl0IGluc2lkZSB0aGUgZW5jb2RlIGZ1bmN0aW9uLgogICAgIC8vIFBlcmhhcHMgbm9y
bWFsaXphdGlvbiBzaG91bGQgYmUgYW4gZXhwbGljaXQgc3RlcCBkb25lIGJlZm9yZSBjYWxsaW5n
IGVuY29kZS4KQEAgLTEwMSwxMSArOTcsNiBAQCBDU3RyaW5nIFRleHRFbmNvZGluZzo6ZW5jb2Rl
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoLCBVbmVuY29kYWJsZQogICAg
ICAgICBzb3VyY2VMZW5ndGggPSBub3JtYWxpemVkTGVuZ3RoOwogICAgIH0KICAgICByZXR1cm4g
bmV3VGV4dENvZGVjKCp0aGlzKS0+ZW5jb2RlKHNvdXJjZSwgc291cmNlTGVuZ3RoLCBoYW5kbGlu
Zyk7Ci0jZWxpZiBPUyhXSU5ET1dTKSAmJiBVU0UoV0NIQVJfVU5JQ09ERSkKLSAgICAvLyBub3Jt
YWxpemF0aW9uIHdpbGwgYmUgZG9uZSBieSBXaW5kb3dzIENFIEFQSQotICAgIE93blB0cjxUZXh0
Q29kZWM+IHRleHRDb2RlYyA9IG5ld1RleHRDb2RlYygqdGhpcyk7Ci0gICAgcmV0dXJuIHRleHRD
b2RlYy5nZXQoKSA/IHRleHRDb2RlYy0+ZW5jb2RlKGNoYXJhY3RlcnMsIGxlbmd0aCwgaGFuZGxp
bmcpIDogQ1N0cmluZygpOwotI2VuZGlmCiB9CiAKIGNvbnN0IGNoYXIqIFRleHRFbmNvZGluZzo6
ZG9tTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCmluZGV4IDhkZmQxZmQyMGI5NDRkMTdlOWFjZmIzNDNk
Y2JhZDM5NDFlNjBhYTQuLjZiZGQ4ZmFjN2RhYzc2MDAyMDUwOTY3YjE0NTUzMGVjMDQxOWY3OGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVn
aXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
UmVnaXN0cnkuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiVGV4dEVuY29kaW5nUmVnaXN0cnkuaCIKIAorI2luY2x1ZGUgIlRleHRDb2RlY0lDVS5o
IgogI2luY2x1ZGUgIlRleHRDb2RlY0xhdGluMS5oIgogI2luY2x1ZGUgIlRleHRDb2RlY1VzZXJE
ZWZpbmVkLmgiCiAjaW5jbHVkZSAiVGV4dENvZGVjVVRGMTYuaCIKQEAgLTQxLDE1ICs0Miw5IEBA
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRy
YXMuaD4KIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkKLSNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIK
LSNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKICNpbmNsdWRlICJU
ZXh0Q29kZWNNYWMuaCIKICNlbmRpZgotI2lmIE9TKFdJTkRPV1MpICYmIFVTRShXQ0hBUl9VTklD
T0RFKQotI2luY2x1ZGUgIndpbi9UZXh0Q29kZWNXaW4uaCIKLSNlbmRpZgogCiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjgx
LDIxICsyNzYsMTQgQEAgYm9vbCBzaG91bGRTaG93QmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbElu
KGNvbnN0IGNoYXIqIGNhbm9uaWNhbEVuY29kaW5nTmFtZSkKIAogc3RhdGljIHZvaWQgZXh0ZW5k
VGV4dENvZGVjTWFwcygpCiB7Ci0jaWYgVVNFKElDVV9VTklDT0RFKQogICAgIFRleHRDb2RlY0lD
VTo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKGFkZFRvVGV4dEVuY29kaW5nTmFtZU1hcCk7CiAgICAg
VGV4dENvZGVjSUNVOjpyZWdpc3RlckNvZGVjcyhhZGRUb1RleHRDb2RlY01hcCk7Ci0jZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKICAgICBUZXh0Q29kZWNNYWM6
OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhhZGRUb1RleHRFbmNvZGluZ05hbWVNYXApOwogICAgIFRl
eHRDb2RlY01hYzo6cmVnaXN0ZXJDb2RlY3MoYWRkVG9UZXh0Q29kZWNNYXApOwogI2VuZGlmCiAK
LSNpZiBPUyhXSU5ET1dTKSAmJiBVU0UoV0NIQVJfVU5JQ09ERSkKLSAgICBUZXh0Q29kZWNXaW46
OnJlZ2lzdGVyRXh0ZW5kZWRFbmNvZGluZ05hbWVzKGFkZFRvVGV4dEVuY29kaW5nTmFtZU1hcCk7
Ci0gICAgVGV4dENvZGVjV2luOjpyZWdpc3RlckV4dGVuZGVkQ29kZWNzKGFkZFRvVGV4dENvZGVj
TWFwKTsKLSNlbmRpZgotCiAgICAgcHJ1bmVCbGFja2xpc3RlZENvZGVjcygpOwogICAgIGJ1aWxk
UXVpcmtzU2V0cygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCA1ZTgwNmJiMzI2NjQ2MWI3
NmMxZmRiNDBiZGZjMWRiMTUwZmVlYmRkLi5iNGU4MjA2MjM3YjY0NWFjNjU4ODc3NGM5NmY3NmNm
NjM5YWJhMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMjgsMTMgKzI4LDExIEBAIGZpbmRf
cGFja2FnZShaTElCIFJFUVVJUkVEKQogZmluZF9wYWNrYWdlKEdMSUIgMi4zNi4wIFJFUVVJUkVE
IENPTVBPTkVOVFMgZ2lvIGdvYmplY3QgZ3RocmVhZCkKIGZpbmRfcGFja2FnZShMaWJTb3VwIDIu
NDIuMCBSRVFVSVJFRCkKIAotc2V0KFdURl9VU0VfSUNVX1VOSUNPREUgMSkKIHNldChXVEZfVVNF
X1NPVVAgMSkKIHNldChXVEZfVVNFX1VESVM4NiAxKQogCiBhZGRfZGVmaW5pdGlvbnMoLURXVEZf
VVNFX0dMSUI9MSkKIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfU09VUD0xKQotYWRkX2RlZmlu
aXRpb25zKC1EV1RGX1VTRV9JQ1VfVU5JQ09ERT0xKQogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VT
RV9DQUlSTz0xKQogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9DUk9TU19QTEFURk9STV9DT05U
RVhUX01FTlVTPTEpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
IGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggOTNlZmQ4NWFhN2NiZDJmMTEz
MDBiZTMxYjcxMDkzMjIxNmEwMjI3OS4uMjQ2YTYyYTU4ZTUzMzg2OGYxNGQyODExMTk2YTJlNmI1
MDA2NTRkMSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTExMSw3ICsxMTEsNiBAQCBzZXQoRU5B
QkxFX1BMVUdJTl9QUk9DRVNTIE9OKQogc2V0KEVOQUJMRV9XRUJLSVQgT04pCiBzZXQoRU5BQkxF
X1dFQktJVDIgT04pCiAKLXNldChXVEZfVVNFX0lDVV9VTklDT0RFIDEpCiBzZXQoV1RGX1VTRV9T
T1VQIDEpCiAKIHNldChXVEZfT1VUUFVUX05BTUUgV1RGR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21h
a2UKaW5kZXggODc3OGM0ZDllOWZiY2I5YTYxN2Q2YjNhMzEwMTM5MzdiYzg5NWNhMy4uNDMzN2E0
ODJlZWFhZDM2MzJlZDBmYTk4YzU4ZWNkNGI1MWVmNjg5YiAxMDA2NDQKLS0tIGEvU291cmNlL2Nt
YWtlL09wdGlvbnNXaW5DRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNt
YWtlCkBAIC0xLDExICsxLDkgQEAKIGluY2x1ZGUoT3B0aW9uc1dpbmRvd3MpCiAKIHNldChQT1JU
X0ZBTExCQUNLIFdpbikKLXNldChXVEZfVVNFX1dDSEFSX1VOSUNPREUgMSkKIAogYWRkX2RlZmlu
aXRpb25zKC1EX0NFX0NSVF9BTExPV19XSU5fTUlOTUFYKQogYWRkX2RlZmluaXRpb25zKC1EV1RG
X1VTRV9FWFBPUlRfTUFDUk9TPTApCi1hZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX1dDSEFSX1VO
SUNPREU9MSkKIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfV0lOR0RJPTEpCiBhZGRfZGVmaW5p
dGlvbnMoLURXVEZfVVNFX1dJTklORVQ9MSkKIGFkZF9kZWZpbml0aW9ucygtRFdJTkNFQkFTSUMp
CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMTlkZDdkZWYwYWQ0Yjhl
MTA5OTQ2M2E4MGUyNGY1Y2VjZmQ1MjkzZS4uZTg4MDE2M2RhM2M0YWJkYmI4ODA2YzQ1ZWYxNGFj
YzIxMjI3ZWIzYyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKwor
ICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RFIGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5hbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOiBSZW1vdmVkIElDVV9VTklDT0RFIGFuZCBXQ0hBUl9V
TklDT0RFIGZsYWdzLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOiBE
aXR0by4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlOiBEaXR0by4K
KwogMjAxNC0wMS0yMyAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIENTUyBDdXN0b20gRmlsdGVycyBjb2RlIGFuZCB0ZXN0cwo=
</data>
<flag name="review"
          id="246201"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>