<?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>180917</bug_id>
          
          <creation_ts>2017-12-17 10:55:35 -0800</creation_ts>
          <short_desc>[JSC][WebCore][CSSJIT] Remove VM reference in CSSJIT</short_desc>
          <delta_ts>2017-12-17 11:37:23 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1382611</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-17 10:55:35 -0800</bug_when>
    <thetext>[JSC][WebCore][CSSJIT] Remove VM reference in CSSJIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382612</commentid>
    <comment_count>1</comment_count>
      <attachid>329609</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-17 10:57:33 -0800</bug_when>
    <thetext>Created attachment 329609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382614</commentid>
    <comment_count>2</comment_count>
      <attachid>329611</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-17 11:01:13 -0800</bug_when>
    <thetext>Created attachment 329611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382617</commentid>
    <comment_count>3</comment_count>
      <attachid>329611</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-12-17 11:10:50 -0800</bug_when>
    <thetext>Comment on attachment 329611
Patch

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382618</commentid>
    <comment_count>4</comment_count>
      <attachid>329613</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-17 11:14:02 -0800</bug_when>
    <thetext>Created attachment 329613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382619</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-17 11:27:56 -0800</bug_when>
    <thetext>Thanks for your review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382620</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-17 11:35:46 -0800</bug_when>
    <thetext>Committed r226011: &lt;https://trac.webkit.org/changeset/226011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382621</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-17 11:37:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/36096205&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329609</attachid>
            <date>2017-12-17 10:57:33 -0800</date>
            <delta_ts>2017-12-17 11:01:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180917-20171218035732.patch</filename>
            <type>text/plain</type>
            <size>19069</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2EyYzA0ZTIyYjU3MjUyMTQzNWJjMGMwYjhiYzIxN2NhN2M0YjI0Li5lOWVlMDE5M2EyNzZmYWFl
NzNlYjA4NGE5OWYxMGYyNGM2NjEwODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxNy0xMi0xNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXVtXZWJDb3JlXVtDU1NKSVRdIFJlbW92ZSBWTSByZWZlcmVu
Y2UgaW4gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODA5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBkbyBub3QgbmVlZCB0byBob2xkIEpJVCBmbGFncyBpbiBWTS4gV2UgYWRkCisgICAg
ICAgIHN0YXRpYyBWTTo6e2NhblVzZUpJVCxjYW5Vc2VBc3NlbWJsZXIsY2FuVXNlUmVnRXhwSklU
fSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBpbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcDoKKyAg
ICAgICAgKEpTQzo6QWJzdHJhY3RQQzo6QWJzdHJhY3RQQyk6CisgICAgICAgICogaml0L0pJVFRo
dW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbCk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KToKKyAgICAgICAgKEpTQzo6
SklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
Y3RpTmF0aXZlVGFpbENhbGxXaXRob3V0U2F2ZWRUYWdzKToKKyAgICAgICAgKEpTQzo6SklUVGh1
bmtzOjpjdGlJbnRlcm5hbEZ1bmN0aW9uQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
Y3RpSW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1Yik6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoK
KyAgICAgICAgKEpTQzo6TExJbnQ6OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChK
U0M6OkxMSW50OjpzZXRFdmFsRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQ
cm9ncmFtRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRNb2R1bGVQcm9ncmFt
RW50cnlwb2ludCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2hvdWxkSklUKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmVudHJ5T1NS
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZSk6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZU1hdGNoT25seSk6CisgICAgICAgICogcnVudGlt
ZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpjYW5Vc2VBc3NlbWJsZXIpOgorICAgICAgICAo
SlNDOjpWTTo6Y2FuVXNlSklUKToKKyAgICAgICAgKEpTQzo6Vk06OmNhblVzZVJlZ0V4cEpJVCk6
CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAg
ICAoSlNDOjpWTTo6Y2FuVXNlSklUKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Vk06OmNhblVz
ZVJlZ0V4cEpJVCk6IERlbGV0ZWQuCisKIDIwMTctMTItMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gTnVtYmVyIG9mIFNsb3RWaXNpdG9y
cyBjYW4gaW5jcmVhc2UgYWZ0ZXIgc2V0dGluZyB1cCBtX3Zpc2l0Q291bnRlcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0OTYyYTE1ZjQ1NjUxODkzYzA4ZDZlZTRiZTQwZDdjNWNmOTc2NWJkLi4yMmMyMjk3N2Yx
MGE4NTU0YjJkMDZiYmZhMTFhMmQ3ODkzMTcxNzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTctMTItMTcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgW0pTQ11bV2ViQ29yZV1bQ1NTSklUXSBSZW1vdmUgVk0gcmVmZXJlbmNlIGluIENT
U0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
OTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIFZNIHJlZmVyZW5jZSBpbiBDU1NKSVQuIENTU0pJVCBzaG91bGQgbm90IGJlCisgICAgICAg
IGJvdW5kIHRvIGEgc3BlY2lmaWMgVk0uCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyk6CisgICAgICAgICogY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6Y29tcGlsZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5o
OgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yRGF0YUxpc3Q6OmNvbXBpbGVTZWxlY3Rvcik6CisKIDIwMTctMTItMTYgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBXS1dlYlZpZXcgaGFzIG5vIGVxdWl2
YWxlbnQgb2YgLVtXZWJWaWV3IHNldEFsd2F5c1Nob3dWZXJ0aWNhbFNjcm9sbGVyOl0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcAppbmRleCAw
OWIyNGQ1ZGM3Njk0MTExZjJkMDJjMThlZjRjNzYxOWNmNjM0YjY4Li5lNTMwMTE0YTg1OWU3Mjdl
MDg5MWRhOTUyN2E4NzQ0YmFlYjAwYWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0Fic3RyYWN0UEMuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEFic3RyYWN0UEM6
OkFic3RyYWN0UEMoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIAogI2lmIEVOQUJMRShKSVQpCi0gICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7Cisg
ICAgaWYgKFZNOjpjYW5Vc2VKSVQoKSkgewogICAgICAgICBtX3BvaW50ZXIgPSBleGVjLT5yZXR1
cm5QQygpLnZhbHVlKCk7CiAgICAgICAgIG1fbW9kZSA9IEpJVDsKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCmluZGV4IDAzZGVkNmMzMjZhNTVi
MWE3NjE1MjNjOWVlMTk3YmRmYmYyMmFjMmEuLjE0ZjZhYWI2YjA2YmVhMDllM2IwYWEzM2MyYjYz
ZTRjNzkxOGZlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1
bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKQEAg
LTQ3LDQwICs0Nyw0MCBAQCBKSVRUaHVua3M6On5KSVRUaHVua3MoKQogCiBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsKFZNKiB2bSkKIHsKLSAgICBpZiAoIXZt
LT5jYW5Vc2VKSVQoKSkKKyAgICBpZiAoIVZNOjpjYW5Vc2VKSVQoKSkKICAgICAgICAgcmV0dXJu
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9j
YWxsX3RyYW1wb2xpbmUpOwogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRpdmVDYWxsR2VuZXJh
dG9yKS5jb2RlKCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5h
dGl2ZUNvbnN0cnVjdChWTSogdm0pCiB7Ci0gICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCisgICAg
aWYgKCFWTTo6Y2FuVXNlSklUKCkpCiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmUp
OwogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpLmNvZGUo
KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlVGFpbENh
bGwoVk0qIHZtKQogewotICAgIEFTU0VSVCh2bS0+Y2FuVXNlSklUKCkpOworICAgIEFTU0VSVChW
TTo6Y2FuVXNlSklUKCkpOwogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRpdmVUYWlsQ2FsbEdl
bmVyYXRvcikuY29kZSgpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpj
dGlOYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3MoVk0qIHZtKQogewotICAgIEFTU0VSVCh2
bS0+Y2FuVXNlSklUKCkpOworICAgIEFTU0VSVChWTTo6Y2FuVXNlSklUKCkpOwogICAgIHJldHVy
biBjdGlTdHViKHZtLCBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IpLmNv
ZGUoKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpSW50ZXJuYWxG
dW5jdGlvbkNhbGwoVk0qIHZtKQogewotICAgIGlmICghdm0tPmNhblVzZUpJVCgpKQorICAgIGlm
ICghVk06OmNhblVzZUpJVCgpKQogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
OjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9s
aW5lKTsKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgaW50ZXJuYWxGdW5jdGlvbkNhbGxHZW5lcmF0
b3IpLmNvZGUoKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpSW50
ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdChWTSogdm0pCiB7Ci0gICAgaWYgKCF2bS0+Y2FuVXNlSklU
KCkpCisgICAgaWYgKCFWTTo6Y2FuVXNlSklUKCkpCiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9pbnRlcm5hbF9mdW5jdGlvbl9j
b25zdHJ1Y3RfdHJhbXBvbGluZSk7CiAgICAgcmV0dXJuIGN0aVN0dWIodm0sIGludGVybmFsRnVu
Y3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IpLmNvZGUoKTsKIH0KQEAgLTEyMCw3ICsxMjAsNyBAQCBO
YXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIoVk0qIHZtLCBOYXRp
dmVGdW5jdGlvbiBmdW5jdGlvbiwgTgogTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0
RnVuY3Rpb25TdHViKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0
aW9uIGNvbnN0cnVjdG9yLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRy
aW5zaWMsIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUsIGNvbnN0IFN0cmluZyYg
bmFtZSkKIHsKICAgICBBU1NFUlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7ICAgIAotICAgIEFT
U0VSVCh2bS0+Y2FuVXNlSklUKCkpOworICAgIEFTU0VSVChWTTo6Y2FuVXNlSklUKCkpOwogCiAg
ICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlv
blN0dWJNYXAtPmdldChzdGQ6Om1ha2VfdHVwbGUoZnVuY3Rpb24sIGNvbnN0cnVjdG9yLCBuYW1l
KSkpCiAgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAppbmRleCBmN2Q3NjFkYzFkYWMwM2Zm
MTNhMjg5OTNkZjM0YzM1OWNlNGIwNjJmLi43MTZiYjEzN2NhYzU1ODg3YWQ5NjMzMTg5MmU3MDI1
NTc5YTZjOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRF
bnRyeXBvaW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRy
eXBvaW50LmNwcApAQCAtNDMsNyArNDMsNyBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5
cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQgPSBjb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpOwogICAgIAogI2lm
IEVOQUJMRShKSVQpCi0gICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CisgICAgaWYgKFZNOjpjYW5V
c2VKSVQoKSkgewogICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewogICAgICAgICAg
ICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAogICAgICAgICAgICAgICAgIGFkb3B0UmVmKCpuZXcg
RGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEVudHJ5VGh1bmtHZW5l
cmF0b3IpLCB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEFyaXR5Q2hlY2tUaHVua0dlbmVy
YXRvcikuY29kZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwpAQCAtNzAsNyArNzAs
NyBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sq
IGNvZGVCbG9jaykKIHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJs
b2NrKiBjb2RlQmxvY2spCiB7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAodm0uY2FuVXNlSklU
KCkpIHsKKyAgICBpZiAoVk06OmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0
SklUQ29kZSgKICAgICAgICAgICAgIGFkb3B0UmVmKCpuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRD
VElTdHViKGV2YWxFbnRyeVRodW5rR2VuZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCks
IEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTg1LDcg
Kzg1LDcgQEAgc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sq
IGNvZGVCbG9jaykKIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCiB7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAodm0uY2FuVXNl
SklUKCkpIHsKKyAgICBpZiAoVk06OmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+
c2V0SklUQ29kZSgKICAgICAgICAgICAgIGFkb3B0UmVmKCpuZXcgRGlyZWN0SklUQ29kZSh2bS5n
ZXRDVElTdHViKHByb2dyYW1FbnRyeVRodW5rR2VuZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0s
IENvZGVCbG9jayogY29kZUJsb2NrKQogc3RhdGljIHZvaWQgc2V0TW9kdWxlUHJvZ3JhbUVudHJ5
cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICNpZiBFTkFCTEUoSklUKQot
ICAgIGlmICh2bS5jYW5Vc2VKSVQoKSkgeworICAgIGlmIChWTTo6Y2FuVXNlSklUKCkpIHsKICAg
ICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAogICAgICAgICAgICAgYWRvcHRSZWYoKm5ldyBE
aXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIobW9kdWxlUHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0
b3IpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykp
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAKaW5kZXggNjYxNmYyNzJkNmIwMDJmNmU2ZTgxODU5NGQ2YzI0MWExNjkz
OWUzYy4uZDdmM2I4N2Y1NDIwZWRjOGE3OTQyNjZlMGUyNjVhM2I1NjA5NzEwMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0zMTgsMTMg
KzMxOCwxMyBAQCBzdGF0aWMgRnVuY3Rpb25XaGl0ZWxpc3QmIGVuc3VyZUdsb2JhbEpJVFdoaXRl
bGlzdCgpCiAgICAgcmV0dXJuIGJhc2VsaW5lV2hpdGVsaXN0OwogfQogCi1pbmxpbmUgYm9vbCBz
aG91bGRKSVQoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGluZSBi
b29sIHNob3VsZEpJVChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICBpZiAoIU9wdGlvbnM6
OmJ5dGVjb2RlUmFuZ2VUb0pJVENvbXBpbGUoKS5pc0luUmFuZ2UoY29kZUJsb2NrLT5pbnN0cnVj
dGlvbkNvdW50KCkpCiAgICAgICAgIHx8ICFlbnN1cmVHbG9iYWxKSVRXaGl0ZWxpc3QoKS5jb250
YWlucyhjb2RlQmxvY2spKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZXhl
Yy0+dm0oKS5jYW5Vc2VKSVQoKSAmJiBPcHRpb25zOjp1c2VCYXNlbGluZUpJVCgpOworICAgIHJl
dHVybiBWTTo6Y2FuVXNlSklUKCkgJiYgT3B0aW9uczo6dXNlQmFzZWxpbmVKSVQoKTsKIH0KIAog
Ly8gUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCB0cnkgdG8gT1NSLgpAQCAtMzcwLDcgKzM3MCw3
IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgZW50cnlPU1IoRXhlY1N0YXRlKiBleGVjLCBJ
bnN0cnVjdGlvbiosIENvZGVCbG9jayogY29kCiAgICAgICAgICAgICBjb2RlQmxvY2stPmxsaW50
RXhlY3V0ZUNvdW50ZXIoKSwgIlxuIik7CiAgICAgfQogICAgIAotICAgIGlmICghc2hvdWxkSklU
KGV4ZWMsIGNvZGVCbG9jaykpIHsKKyAgICBpZiAoIXNob3VsZEpJVChjb2RlQmxvY2spKSB7CiAg
ICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7CiAgICAgICAgIExMSU5UX1JF
VFVSTl9UV08oMCwgMCk7CiAgICAgfQpAQCAtNDMwLDcgKzQzMCw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKGxvb3Bfb3NyKQogICAgIAogICAgIHVuc2lnbmVkIGxvb3BPU1JFbnRyeUJ5dGVjb2Rl
T2Zmc2V0ID0gcGMgLSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAKLSAgICBp
ZiAoIXNob3VsZEpJVChleGVjLCBjb2RlQmxvY2spKSB7CisgICAgaWYgKCFzaG91bGRKSVQoY29k
ZUJsb2NrKSkgewogICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwogICAg
ICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIH0KQEAgLTQ3MCw3ICs0NzAsNyBAQCBM
TElOVF9TTE9XX1BBVEhfREVDTChyZXBsYWNlKQogICAgICAgICAgICAgY29kZUJsb2NrLT5sbGlu
dEV4ZWN1dGVDb3VudGVyKCksICJcbiIpOwogICAgIH0KICAgICAKLSAgICBpZiAoc2hvdWxkSklU
KGV4ZWMsIGNvZGVCbG9jaykpCisgICAgaWYgKHNob3VsZEpJVChjb2RlQmxvY2spKQogICAgICAg
ICBqaXRDb21waWxlQW5kU2V0SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4ZWMpOwogICAgIGVsc2UK
ICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDZhM2ExNzkxZWRjY2YxYWJkYjk3Y2E3OTFh
NTkzN2QyNmU2ODhlYWUuLjA1MTFkMjI1MmFlZjAxYmY2OTlhZGJjYmEwNWM0NjZiZGNiZTE2YzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtMzE2LDcgKzMx
Niw3IEBAIHZvaWQgUmVnRXhwOjpjb21waWxlKFZNKiB2bSwgWWFycjo6WWFyckNoYXJTaXplIGNo
YXJTaXplKQogICAgIH0KIAogI2lmIEVOQUJMRShZQVJSX0pJVCkKLSAgICBpZiAoIXBhdHRlcm4u
bV9jb250YWluc0JhY2tyZWZlcmVuY2VzICYmICFwYXR0ZXJuLmNvbnRhaW5zVW5zaWduZWRMZW5n
dGhQYXR0ZXJuKCkgJiYgdm0tPmNhblVzZVJlZ0V4cEpJVCgpKSB7CisgICAgaWYgKCFwYXR0ZXJu
Lm1fY29udGFpbnNCYWNrcmVmZXJlbmNlcyAmJiAhcGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVu
Z3RoUGF0dGVybigpICYmIFZNOjpjYW5Vc2VSZWdFeHBKSVQoKSkgewogICAgICAgICBZYXJyOjpq
aXRDb21waWxlKHBhdHRlcm4sIGNoYXJTaXplLCB2bSwgbV9yZWdFeHBKSVRDb2RlKTsKICAgICAg
ICAgaWYgKCFtX3JlZ0V4cEpJVENvZGUuaXNGYWxsQmFjaygpKSB7CiAgICAgICAgICAgICBtX3N0
YXRlID0gSklUQ29kZTsKQEAgLTM3Miw3ICszNzIsNyBAQCB2b2lkIFJlZ0V4cDo6Y29tcGlsZU1h
dGNoT25seShWTSogdm0sIFlhcnI6OllhcnJDaGFyU2l6ZSBjaGFyU2l6ZSkKICAgICB9CiAKICNp
ZiBFTkFCTEUoWUFSUl9KSVQpCi0gICAgaWYgKCFwYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJl
bmNlcyAmJiAhcGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVuZ3RoUGF0dGVybigpICYmIHZtLT5j
YW5Vc2VSZWdFeHBKSVQoKSkgeworICAgIGlmICghcGF0dGVybi5tX2NvbnRhaW5zQmFja3JlZmVy
ZW5jZXMgJiYgIXBhdHRlcm4uY29udGFpbnNVbnNpZ25lZExlbmd0aFBhdHRlcm4oKSAmJiBWTTo6
Y2FuVXNlUmVnRXhwSklUKCkpIHsKICAgICAgICAgWWFycjo6aml0Q29tcGlsZShwYXR0ZXJuLCBj
aGFyU2l6ZSwgdm0sIG1fcmVnRXhwSklUQ29kZSwgWWFycjo6TWF0Y2hPbmx5KTsKICAgICAgICAg
aWYgKCFtX3JlZ0V4cEpJVENvZGUuaXNGYWxsQmFjaygpKSB7CiAgICAgICAgICAgICBtX3N0YXRl
ID0gSklUQ29kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCA4YTM4YTA2
ZjA4YTJhNDI1YmE4Yzg4OGRlYjFkNGNlMDQ5YmE5Mjc4Li42OTM2NDkwNzBlYzk3YzM3YzU5NzBi
OGZkZDc2ZjA4MGU3MmM3NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBA
IC0xNzUsNiArMTc1LDQ4IEBAIHN0YXRpYyBib29sIGVuYWJsZUFzc2VtYmxlcihFeGVjdXRhYmxl
QWxsb2NhdG9yJiBleGVjdXRhYmxlQWxsb2NhdG9yKQogfQogI2VuZGlmIC8vIEVOQUJMRSghQVNT
RU1CTEVSKQogCitib29sIFZNOjpjYW5Vc2VBc3NlbWJsZXIoKQoreworI2lmIEVOQUJMRShBU1NF
TUJMRVIpCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CisgICAgc3RhdGljIGJv
b2wgZW5hYmxlZCA9IGZhbHNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKKyAg
ICAgICAgZW5hYmxlZCA9IGVuYWJsZUFzc2VtYmxlcihFeGVjdXRhYmxlQWxsb2NhdG9yOjpzaW5n
bGV0b24oKSk7CisgICAgfSk7CisgICAgcmV0dXJuIGVuYWJsZWQ7CisjZWxzZQorICAgIHJldHVy
biBmYWxzZTsgLy8gaW50ZXJwcmV0ZXIgb25seQorI2VuZGlmCit9CisKK2Jvb2wgVk06OmNhblVz
ZUpJVCgpCit7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUtleTsKKyAgICBzdGF0aWMgYm9vbCBlbmFibGVkID0gZmFsc2U7CisgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10geworICAgICAgICBlbmFibGVkID0gVk06OmNhblVzZUFzc2VtYmxlcigp
ICYmIE9wdGlvbnM6OnVzZUpJVCgpOworICAgIH0pOworICAgIHJldHVybiBlbmFibGVkOworI2Vs
c2UKKyAgICByZXR1cm4gZmFsc2U7IC8vIGludGVycHJldGVyIG9ubHkKKyNlbmRpZgorfQorCiti
b29sIFZNOjpjYW5Vc2VSZWdFeHBKSVQoKQoreworI2lmIEVOQUJMRShZQVJSX0pJVCkKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKKyAgICBzdGF0aWMgYm9vbCBlbmFibGVkID0g
ZmFsc2U7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgW10geworICAgICAgICBlbmFibGVk
ID0gVk06OmNhblVzZUFzc2VtYmxlcigpICYmIE9wdGlvbnM6OnVzZVJlZ0V4cEpJVCgpOworICAg
IH0pOworICAgIHJldHVybiBlbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7IC8vIGlu
dGVycHJldGVyIG9ubHkKKyNlbmRpZgorfQorCiBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5
cGUgaGVhcFR5cGUpCiAgICAgOiBtX2FwaUxvY2soYWRvcHRSZWYobmV3IEpTTG9jayh0aGlzKSkp
CiAjaWYgVVNFKENGKQpAQCAtMjM3LDE1ICsyNzksNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwg
SGVhcFR5cGUgaGVhcFR5cGUpCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQogICAgICwgbV9y
dFRyYWNlTGlzdChuZXcgUlRUcmFjZUxpc3QoKSkKICNlbmRpZgotI2lmIEVOQUJMRShBU1NFTUJM
RVIpCi0gICAgLCBtX2NhblVzZUFzc2VtYmxlcihlbmFibGVBc3NlbWJsZXIoRXhlY3V0YWJsZUFs
bG9jYXRvcjo6c2luZ2xldG9uKCkpKQotI2VuZGlmCi0jaWYgRU5BQkxFKEpJVCkKLSAgICAsIG1f
Y2FuVXNlSklUKG1fY2FuVXNlQXNzZW1ibGVyICYmIE9wdGlvbnM6OnVzZUpJVCgpKQotI2VuZGlm
Ci0jaWYgRU5BQkxFKFlBUlJfSklUKQotICAgICwgbV9jYW5Vc2VSZWdFeHBKSVQobV9jYW5Vc2VB
c3NlbWJsZXIgJiYgT3B0aW9uczo6dXNlUmVnRXhwSklUKCkpCi0jZW5kaWYKICNpZiBFTkFCTEUo
R0NfVkFMSURBVElPTikKICAgICAsIG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCkKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggMzg0YTM0M2NhMDc1ZmRhNDRjM2M3
NjdjYTZjNDM3M2EzM2I2NTYzMy4uODI1MWE2NTBlMTA1YThkMmIyYzJhOTUzMGFmOWYyZjNlZGI1
Y2U5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC00NzgsMTcgKzQ3OCw5IEBA
IGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJs
eUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgICAgIERlbGV0ZVByb3BlcnR5TW9kZSBtX3ByZXZp
b3VzTW9kZTsKICAgICB9OwogCi0jaWYgRU5BQkxFKEpJVCkKLSAgICBib29sIGNhblVzZUpJVCgp
IHsgcmV0dXJuIG1fY2FuVXNlSklUOyB9Ci0jZWxzZQotICAgIGJvb2wgY2FuVXNlSklUKCkgeyBy
ZXR1cm4gZmFsc2U7IH0gLy8gaW50ZXJwcmV0ZXIgb25seQotI2VuZGlmCi0KLSNpZiBFTkFCTEUo
WUFSUl9KSVQpCi0gICAgYm9vbCBjYW5Vc2VSZWdFeHBKSVQoKSB7IHJldHVybiBtX2NhblVzZVJl
Z0V4cEpJVDsgfQotI2Vsc2UKLSAgICBib29sIGNhblVzZVJlZ0V4cEpJVCgpIHsgcmV0dXJuIGZh
bHNlOyB9IC8vIGludGVycHJldGVyIG9ubHkKLSNlbmRpZgorICAgIHN0YXRpYyBKU19FWFBPUlRf
UFJJVkFURSBib29sIGNhblVzZUFzc2VtYmxlcigpOworICAgIHN0YXRpYyBKU19FWFBPUlRfUFJJ
VkFURSBib29sIGNhblVzZUpJVCgpOworICAgIHN0YXRpYyBKU19FWFBPUlRfUFJJVkFURSBib29s
IGNhblVzZVJlZ0V4cEpJVCgpOwogCiAgICAgU291cmNlUHJvdmlkZXJDYWNoZSogYWRkU291cmNl
UHJvdmlkZXJDYWNoZShTb3VyY2VQcm92aWRlciopOwogICAgIHZvaWQgY2xlYXJTb3VyY2VQcm92
aWRlckNhY2hlcygpOwpAQCAtNzg1LDE1ICs3NzcsNiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewog
ICAgIHN0YXRpYyB2b2lkIHByaW1pdGl2ZUdpZ2FjYWdlRGlzYWJsZWRDYWxsYmFjayh2b2lkKik7
CiAgICAgdm9pZCBwcmltaXRpdmVHaWdhY2FnZURpc2FibGVkKCk7CiAKLSNpZiBFTkFCTEUoQVNT
RU1CTEVSKQotICAgIGJvb2wgbV9jYW5Vc2VBc3NlbWJsZXI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUo
SklUKQotICAgIGJvb2wgbV9jYW5Vc2VKSVQ7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoWUFSUl9KSVQp
Ci0gICAgYm9vbCBtX2NhblVzZVJlZ0V4cEpJVDsKLSNlbmRpZgogI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQogICAgIGNvbnN0IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdPYmplY3RDbGFzczsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5k
ZXggZmYzYTc3MWRmMGFjNzYzNjllOGNiN2QzYWE4MWUzNzU5NGU0Y2IyNi4uZjEwMmE4MGEwNDFj
MWFiOTBmYjI1OTFkYmJiZDRmNGMxMmQwODMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxl
bWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC0zODUsMTAgKzM4NSw5IEBAIGlubGluZSBib29sIEVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEs
IHVuc2lnbmVkCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAgICAgdm9pZCogY29tcGls
ZWRTZWxlY3RvckNoZWNrZXIgPSBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9yQ29kZVJlZigpLmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIGlmICghY29tcGlsZWRTZWxlY3RvckNoZWNr
ZXIgJiYgcnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMoKSA9PSBTZWxlY3RvckNvbXBpbGF0aW9u
U3RhdHVzOjpOb3RDb21waWxlZCkgewotICAgICAgICBKU0M6OlZNJiB2bSA9IG1fZWxlbWVudC5k
b2N1bWVudCgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dm0oKTsKICAgICAgICAgU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1czsKICAgICAgICAgSlNDOjpNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgY29tcGlsZWRTZWxlY3RvckNvZGVSZWY7Ci0gICAgICAgIGNvbXBp
bGF0aW9uU3RhdHVzID0gU2VsZWN0b3JDb21waWxlcjo6Y29tcGlsZVNlbGVjdG9yKHJ1bGVEYXRh
LnNlbGVjdG9yKCksICZ2bSwgU2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb250ZXh0OjpSdWxl
Q29sbGVjdG9yLCBjb21waWxlZFNlbGVjdG9yQ29kZVJlZik7CisgICAgICAgIGNvbXBpbGF0aW9u
U3RhdHVzID0gU2VsZWN0b3JDb21waWxlcjo6Y29tcGlsZVNlbGVjdG9yKHJ1bGVEYXRhLnNlbGVj
dG9yKCksIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29udGV4dDo6UnVsZUNvbGxlY3Rvciwg
Y29tcGlsZWRTZWxlY3RvckNvZGVSZWYpOwogCiAgICAgICAgIHJ1bGVEYXRhLnNldENvbXBpbGVk
U2VsZWN0b3IoY29tcGlsYXRpb25TdGF0dXMsIGNvbXBpbGVkU2VsZWN0b3JDb2RlUmVmKTsKICAg
ICAgICAgY29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9y
Q29kZVJlZigpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDg0MWNkMmU1MWE3ZGNkYzlmMGQ2NGM3ZTg3
MTViZGE5NDFjOGJmOGEuLmI0NTFlYTNiNWI1NTcyNjk4MWY2MDU0YTBhNGQxZjJkYjEyZmJjNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTM5MCw5
ICszOTAsOSBAQCBzdGF0aWMgRnVuY3Rpb25UeXBlIGNvbnN0cnVjdEZyYWdtZW50cyhjb25zdCBD
U1NTZWxlY3Rvciogcm9vdFNlbGVjdG9yLCBTZWxlY3RvcgogCiBzdGF0aWMgdm9pZCBjb21wdXRl
QmFja3RyYWNraW5nSW5mb3JtYXRpb24oU2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9yRnJh
Z21lbnRzLCB1bnNpZ25lZCBsZXZlbCA9IDApOwogCi1TZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
IGNvbXBpbGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciogbGFzdFNlbGVjdG9yLCBKU0M6OlZN
KiB2bSwgU2VsZWN0b3JDb250ZXh0IHNlbGVjdG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYmIGNvZGVSZWYpCitTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGVTZWxl
Y3Rvcihjb25zdCBDU1NTZWxlY3RvciogbGFzdFNlbGVjdG9yLCBTZWxlY3RvckNvbnRleHQgc2Vs
ZWN0b3JDb250ZXh0LCBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZiYgY29kZVJlZikKIHsKLSAg
ICBpZiAoIXZtLT5jYW5Vc2VKSVQoKSkKKyAgICBpZiAoIVZNOjpjYW5Vc2VKSVQoKSkKICAgICAg
ICAgcmV0dXJuIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OkNhbm5vdENvbXBpbGU7CiAgICAg
U2VsZWN0b3JDb2RlR2VuZXJhdG9yIGNvZGVHZW5lcmF0b3IobGFzdFNlbGVjdG9yLCBzZWxlY3Rv
ckNvbnRleHQpOwogICAgIHJldHVybiBjb2RlR2VuZXJhdG9yLmNvbXBpbGUoY29kZVJlZik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oIGIvU291
cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaAppbmRleCA4ZDM4MDVmN2QzZjEw
ZmU1OTYwZGZiOWRhZTljOWIwNjc1M2NjYTBiLi5jMjBmNjc2MTAxMmUxZGUwMzFjY2RkMWM3Yzdj
NThiNjQxM2ZhN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgK
QEAgLTM0LDcgKzM0LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY7Ci1jbGFzcyBWTTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNyAr
ODEsNyBAQCB0eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hl
Y2tlcikoY29uc3QgRWxlbWVudCopOwogdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JT
ZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0
b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCopOwogdHlwZWRlZiB1bnNpZ25l
ZCAoKlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25z
dCBFbGVtZW50KiwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKTsKIAot
U2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0
b3IqLCBKU0M6OlZNKiwgU2VsZWN0b3JDb250ZXh0LCBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiYgb3V0cHV0Q29kZVJlZik7CitTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGVTZWxl
Y3Rvcihjb25zdCBDU1NTZWxlY3RvciosIFNlbGVjdG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYmIG91dHB1dENvZGVSZWYpOwogCiBpbmxpbmUgUnVsZUNvbGxlY3RvclNpbXBs
ZVNlbGVjdG9yQ2hlY2tlciBydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rp
b24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29t
cGlsYXRpb25TdGF0dXMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKaW5kZXgg
ZjNmYzliYjkxYWZlNDMyYTVmOTJiZDI0Njg3YmU0ZjUyNDk0YzU4Yi4uODA5NzNlNmQ5ZTY3NGRi
ZjZlMDU0YjRjNzQzYTQ4NjRmYzgxN2IzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5
LmNwcApAQCAtNDc4LDggKzQ3OCw3IEBAIGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6Y29tcGlsZVNl
bGVjdG9yKGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhLCBjb25zdCBDCiAgICAgaWYg
KHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyAhPSBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzOjpOb3RDb21waWxlZCkKICAgICAgICAgcmV0dXJuIGlzQ29tcGlsZWRTZWxlY3RvcihzZWxl
Y3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOwogCi0gICAgSlNDOjpWTSYgdm0gPSByb290Tm9k
ZS5kb2N1bWVudCgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dm0oKTsKLSAgICBzZWxlY3Rv
ckRhdGEuY29tcGlsYXRpb25TdGF0dXMgPSBTZWxlY3RvckNvbXBpbGVyOjpjb21waWxlU2VsZWN0
b3Ioc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCAmdm0sIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9y
Q29udGV4dDo6UXVlcnlTZWxlY3Rvciwgc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3JDb2Rl
UmVmKTsKKyAgICBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMgPSBTZWxlY3RvckNvbXBp
bGVyOjpjb21waWxlU2VsZWN0b3Ioc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBTZWxlY3RvckNvbXBp
bGVyOjpTZWxlY3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3IsIHNlbGVjdG9yRGF0YS5jb21waWxl
ZFNlbGVjdG9yQ29kZVJlZik7CiAgICAgcmV0dXJuIGlzQ29tcGlsZWRTZWxlY3RvcihzZWxlY3Rv
ckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329611</attachid>
            <date>2017-12-17 11:01:13 -0800</date>
            <delta_ts>2017-12-17 11:10:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180917-20171218040112.patch</filename>
            <type>text/plain</type>
            <size>19074</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2EyYzA0ZTIyYjU3MjUyMTQzNWJjMGMwYjhiYzIxN2NhN2M0YjI0Li5lOWVlMDE5M2EyNzZmYWFl
NzNlYjA4NGE5OWYxMGYyNGM2NjEwODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxNy0xMi0xNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXVtXZWJDb3JlXVtDU1NKSVRdIFJlbW92ZSBWTSByZWZlcmVu
Y2UgaW4gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODA5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBkbyBub3QgbmVlZCB0byBob2xkIEpJVCBmbGFncyBpbiBWTS4gV2UgYWRkCisgICAg
ICAgIHN0YXRpYyBWTTo6e2NhblVzZUpJVCxjYW5Vc2VBc3NlbWJsZXIsY2FuVXNlUmVnRXhwSklU
fSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBpbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcDoKKyAg
ICAgICAgKEpTQzo6QWJzdHJhY3RQQzo6QWJzdHJhY3RQQyk6CisgICAgICAgICogaml0L0pJVFRo
dW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbCk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KToKKyAgICAgICAgKEpTQzo6
SklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
Y3RpTmF0aXZlVGFpbENhbGxXaXRob3V0U2F2ZWRUYWdzKToKKyAgICAgICAgKEpTQzo6SklUVGh1
bmtzOjpjdGlJbnRlcm5hbEZ1bmN0aW9uQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
Y3RpSW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1Yik6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoK
KyAgICAgICAgKEpTQzo6TExJbnQ6OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChK
U0M6OkxMSW50OjpzZXRFdmFsRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQ
cm9ncmFtRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRNb2R1bGVQcm9ncmFt
RW50cnlwb2ludCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2hvdWxkSklUKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmVudHJ5T1NS
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZSk6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZU1hdGNoT25seSk6CisgICAgICAgICogcnVudGlt
ZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpjYW5Vc2VBc3NlbWJsZXIpOgorICAgICAgICAo
SlNDOjpWTTo6Y2FuVXNlSklUKToKKyAgICAgICAgKEpTQzo6Vk06OmNhblVzZVJlZ0V4cEpJVCk6
CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAg
ICAoSlNDOjpWTTo6Y2FuVXNlSklUKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Vk06OmNhblVz
ZVJlZ0V4cEpJVCk6IERlbGV0ZWQuCisKIDIwMTctMTItMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gTnVtYmVyIG9mIFNsb3RWaXNpdG9y
cyBjYW4gaW5jcmVhc2UgYWZ0ZXIgc2V0dGluZyB1cCBtX3Zpc2l0Q291bnRlcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0OTYyYTE1ZjQ1NjUxODkzYzA4ZDZlZTRiZTQwZDdjNWNmOTc2NWJkLi4yMmMyMjk3N2Yx
MGE4NTU0YjJkMDZiYmZhMTFhMmQ3ODkzMTcxNzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTctMTItMTcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgW0pTQ11bV2ViQ29yZV1bQ1NTSklUXSBSZW1vdmUgVk0gcmVmZXJlbmNlIGluIENT
U0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
OTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIFZNIHJlZmVyZW5jZSBpbiBDU1NKSVQuIENTU0pJVCBzaG91bGQgbm90IGJlCisgICAgICAg
IGJvdW5kIHRvIGEgc3BlY2lmaWMgVk0uCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyk6CisgICAgICAgICogY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6Y29tcGlsZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5o
OgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yRGF0YUxpc3Q6OmNvbXBpbGVTZWxlY3Rvcik6CisKIDIwMTctMTItMTYgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBXS1dlYlZpZXcgaGFzIG5vIGVxdWl2
YWxlbnQgb2YgLVtXZWJWaWV3IHNldEFsd2F5c1Nob3dWZXJ0aWNhbFNjcm9sbGVyOl0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcAppbmRleCAw
OWIyNGQ1ZGM3Njk0MTExZjJkMDJjMThlZjRjNzYxOWNmNjM0YjY4Li5lNTMwMTE0YTg1OWU3Mjdl
MDg5MWRhOTUyN2E4NzQ0YmFlYjAwYWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0Fic3RyYWN0UEMuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEFic3RyYWN0UEM6
OkFic3RyYWN0UEMoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIAogI2lmIEVOQUJMRShKSVQpCi0gICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7Cisg
ICAgaWYgKFZNOjpjYW5Vc2VKSVQoKSkgewogICAgICAgICBtX3BvaW50ZXIgPSBleGVjLT5yZXR1
cm5QQygpLnZhbHVlKCk7CiAgICAgICAgIG1fbW9kZSA9IEpJVDsKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCmluZGV4IDAzZGVkNmMzMjZhNTVi
MWE3NjE1MjNjOWVlMTk3YmRmYmYyMmFjMmEuLjE0ZjZhYWI2YjA2YmVhMDllM2IwYWEzM2MyYjYz
ZTRjNzkxOGZlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1
bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKQEAg
LTQ3LDQwICs0Nyw0MCBAQCBKSVRUaHVua3M6On5KSVRUaHVua3MoKQogCiBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsKFZNKiB2bSkKIHsKLSAgICBpZiAoIXZt
LT5jYW5Vc2VKSVQoKSkKKyAgICBpZiAoIVZNOjpjYW5Vc2VKSVQoKSkKICAgICAgICAgcmV0dXJu
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9j
YWxsX3RyYW1wb2xpbmUpOwogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRpdmVDYWxsR2VuZXJh
dG9yKS5jb2RlKCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5h
dGl2ZUNvbnN0cnVjdChWTSogdm0pCiB7Ci0gICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCisgICAg
aWYgKCFWTTo6Y2FuVXNlSklUKCkpCiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmUp
OwogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpLmNvZGUo
KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlVGFpbENh
bGwoVk0qIHZtKQogewotICAgIEFTU0VSVCh2bS0+Y2FuVXNlSklUKCkpOworICAgIEFTU0VSVChW
TTo6Y2FuVXNlSklUKCkpOwogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRpdmVUYWlsQ2FsbEdl
bmVyYXRvcikuY29kZSgpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpj
dGlOYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3MoVk0qIHZtKQogewotICAgIEFTU0VSVCh2
bS0+Y2FuVXNlSklUKCkpOworICAgIEFTU0VSVChWTTo6Y2FuVXNlSklUKCkpOwogICAgIHJldHVy
biBjdGlTdHViKHZtLCBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IpLmNv
ZGUoKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpSW50ZXJuYWxG
dW5jdGlvbkNhbGwoVk0qIHZtKQogewotICAgIGlmICghdm0tPmNhblVzZUpJVCgpKQorICAgIGlm
ICghVk06OmNhblVzZUpJVCgpKQogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
OjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9s
aW5lKTsKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgaW50ZXJuYWxGdW5jdGlvbkNhbGxHZW5lcmF0
b3IpLmNvZGUoKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpSW50
ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdChWTSogdm0pCiB7Ci0gICAgaWYgKCF2bS0+Y2FuVXNlSklU
KCkpCisgICAgaWYgKCFWTTo6Y2FuVXNlSklUKCkpCiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9pbnRlcm5hbF9mdW5jdGlvbl9j
b25zdHJ1Y3RfdHJhbXBvbGluZSk7CiAgICAgcmV0dXJuIGN0aVN0dWIodm0sIGludGVybmFsRnVu
Y3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IpLmNvZGUoKTsKIH0KQEAgLTEyMCw3ICsxMjAsNyBAQCBO
YXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIoVk0qIHZtLCBOYXRp
dmVGdW5jdGlvbiBmdW5jdGlvbiwgTgogTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0
RnVuY3Rpb25TdHViKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0
aW9uIGNvbnN0cnVjdG9yLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRy
aW5zaWMsIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUsIGNvbnN0IFN0cmluZyYg
bmFtZSkKIHsKICAgICBBU1NFUlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7ICAgIAotICAgIEFT
U0VSVCh2bS0+Y2FuVXNlSklUKCkpOworICAgIEFTU0VSVChWTTo6Y2FuVXNlSklUKCkpOwogCiAg
ICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlv
blN0dWJNYXAtPmdldChzdGQ6Om1ha2VfdHVwbGUoZnVuY3Rpb24sIGNvbnN0cnVjdG9yLCBuYW1l
KSkpCiAgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAppbmRleCBmN2Q3NjFkYzFkYWMwM2Zm
MTNhMjg5OTNkZjM0YzM1OWNlNGIwNjJmLi43MTZiYjEzN2NhYzU1ODg3YWQ5NjMzMTg5MmU3MDI1
NTc5YTZjOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRF
bnRyeXBvaW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRy
eXBvaW50LmNwcApAQCAtNDMsNyArNDMsNyBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5
cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQgPSBjb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpOwogICAgIAogI2lm
IEVOQUJMRShKSVQpCi0gICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CisgICAgaWYgKFZNOjpjYW5V
c2VKSVQoKSkgewogICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewogICAgICAgICAg
ICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAogICAgICAgICAgICAgICAgIGFkb3B0UmVmKCpuZXcg
RGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEVudHJ5VGh1bmtHZW5l
cmF0b3IpLCB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEFyaXR5Q2hlY2tUaHVua0dlbmVy
YXRvcikuY29kZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwpAQCAtNzAsNyArNzAs
NyBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sq
IGNvZGVCbG9jaykKIHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJs
b2NrKiBjb2RlQmxvY2spCiB7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAodm0uY2FuVXNlSklU
KCkpIHsKKyAgICBpZiAoVk06OmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0
SklUQ29kZSgKICAgICAgICAgICAgIGFkb3B0UmVmKCpuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRD
VElTdHViKGV2YWxFbnRyeVRodW5rR2VuZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCks
IEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTg1LDcg
Kzg1LDcgQEAgc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sq
IGNvZGVCbG9jaykKIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCiB7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAodm0uY2FuVXNl
SklUKCkpIHsKKyAgICBpZiAoVk06OmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+
c2V0SklUQ29kZSgKICAgICAgICAgICAgIGFkb3B0UmVmKCpuZXcgRGlyZWN0SklUQ29kZSh2bS5n
ZXRDVElTdHViKHByb2dyYW1FbnRyeVRodW5rR2VuZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0s
IENvZGVCbG9jayogY29kZUJsb2NrKQogc3RhdGljIHZvaWQgc2V0TW9kdWxlUHJvZ3JhbUVudHJ5
cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICNpZiBFTkFCTEUoSklUKQot
ICAgIGlmICh2bS5jYW5Vc2VKSVQoKSkgeworICAgIGlmIChWTTo6Y2FuVXNlSklUKCkpIHsKICAg
ICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAogICAgICAgICAgICAgYWRvcHRSZWYoKm5ldyBE
aXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIobW9kdWxlUHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0
b3IpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykp
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAKaW5kZXggNjYxNmYyNzJkNmIwMDJmNmU2ZTgxODU5NGQ2YzI0MWExNjkz
OWUzYy4uZDdmM2I4N2Y1NDIwZWRjOGE3OTQyNjZlMGUyNjVhM2I1NjA5NzEwMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0zMTgsMTMg
KzMxOCwxMyBAQCBzdGF0aWMgRnVuY3Rpb25XaGl0ZWxpc3QmIGVuc3VyZUdsb2JhbEpJVFdoaXRl
bGlzdCgpCiAgICAgcmV0dXJuIGJhc2VsaW5lV2hpdGVsaXN0OwogfQogCi1pbmxpbmUgYm9vbCBz
aG91bGRKSVQoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGluZSBi
b29sIHNob3VsZEpJVChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICBpZiAoIU9wdGlvbnM6
OmJ5dGVjb2RlUmFuZ2VUb0pJVENvbXBpbGUoKS5pc0luUmFuZ2UoY29kZUJsb2NrLT5pbnN0cnVj
dGlvbkNvdW50KCkpCiAgICAgICAgIHx8ICFlbnN1cmVHbG9iYWxKSVRXaGl0ZWxpc3QoKS5jb250
YWlucyhjb2RlQmxvY2spKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZXhl
Yy0+dm0oKS5jYW5Vc2VKSVQoKSAmJiBPcHRpb25zOjp1c2VCYXNlbGluZUpJVCgpOworICAgIHJl
dHVybiBWTTo6Y2FuVXNlSklUKCkgJiYgT3B0aW9uczo6dXNlQmFzZWxpbmVKSVQoKTsKIH0KIAog
Ly8gUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCB0cnkgdG8gT1NSLgpAQCAtMzcwLDcgKzM3MCw3
IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgZW50cnlPU1IoRXhlY1N0YXRlKiBleGVjLCBJ
bnN0cnVjdGlvbiosIENvZGVCbG9jayogY29kCiAgICAgICAgICAgICBjb2RlQmxvY2stPmxsaW50
RXhlY3V0ZUNvdW50ZXIoKSwgIlxuIik7CiAgICAgfQogICAgIAotICAgIGlmICghc2hvdWxkSklU
KGV4ZWMsIGNvZGVCbG9jaykpIHsKKyAgICBpZiAoIXNob3VsZEpJVChjb2RlQmxvY2spKSB7CiAg
ICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7CiAgICAgICAgIExMSU5UX1JF
VFVSTl9UV08oMCwgMCk7CiAgICAgfQpAQCAtNDMwLDcgKzQzMCw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKGxvb3Bfb3NyKQogICAgIAogICAgIHVuc2lnbmVkIGxvb3BPU1JFbnRyeUJ5dGVjb2Rl
T2Zmc2V0ID0gcGMgLSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAKLSAgICBp
ZiAoIXNob3VsZEpJVChleGVjLCBjb2RlQmxvY2spKSB7CisgICAgaWYgKCFzaG91bGRKSVQoY29k
ZUJsb2NrKSkgewogICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwogICAg
ICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIH0KQEAgLTQ3MCw3ICs0NzAsNyBAQCBM
TElOVF9TTE9XX1BBVEhfREVDTChyZXBsYWNlKQogICAgICAgICAgICAgY29kZUJsb2NrLT5sbGlu
dEV4ZWN1dGVDb3VudGVyKCksICJcbiIpOwogICAgIH0KICAgICAKLSAgICBpZiAoc2hvdWxkSklU
KGV4ZWMsIGNvZGVCbG9jaykpCisgICAgaWYgKHNob3VsZEpJVChjb2RlQmxvY2spKQogICAgICAg
ICBqaXRDb21waWxlQW5kU2V0SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4ZWMpOwogICAgIGVsc2UK
ICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDZhM2ExNzkxZWRjY2YxYWJkYjk3Y2E3OTFh
NTkzN2QyNmU2ODhlYWUuLjA1MTFkMjI1MmFlZjAxYmY2OTlhZGJjYmEwNWM0NjZiZGNiZTE2YzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtMzE2LDcgKzMx
Niw3IEBAIHZvaWQgUmVnRXhwOjpjb21waWxlKFZNKiB2bSwgWWFycjo6WWFyckNoYXJTaXplIGNo
YXJTaXplKQogICAgIH0KIAogI2lmIEVOQUJMRShZQVJSX0pJVCkKLSAgICBpZiAoIXBhdHRlcm4u
bV9jb250YWluc0JhY2tyZWZlcmVuY2VzICYmICFwYXR0ZXJuLmNvbnRhaW5zVW5zaWduZWRMZW5n
dGhQYXR0ZXJuKCkgJiYgdm0tPmNhblVzZVJlZ0V4cEpJVCgpKSB7CisgICAgaWYgKCFwYXR0ZXJu
Lm1fY29udGFpbnNCYWNrcmVmZXJlbmNlcyAmJiAhcGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVu
Z3RoUGF0dGVybigpICYmIFZNOjpjYW5Vc2VSZWdFeHBKSVQoKSkgewogICAgICAgICBZYXJyOjpq
aXRDb21waWxlKHBhdHRlcm4sIGNoYXJTaXplLCB2bSwgbV9yZWdFeHBKSVRDb2RlKTsKICAgICAg
ICAgaWYgKCFtX3JlZ0V4cEpJVENvZGUuaXNGYWxsQmFjaygpKSB7CiAgICAgICAgICAgICBtX3N0
YXRlID0gSklUQ29kZTsKQEAgLTM3Miw3ICszNzIsNyBAQCB2b2lkIFJlZ0V4cDo6Y29tcGlsZU1h
dGNoT25seShWTSogdm0sIFlhcnI6OllhcnJDaGFyU2l6ZSBjaGFyU2l6ZSkKICAgICB9CiAKICNp
ZiBFTkFCTEUoWUFSUl9KSVQpCi0gICAgaWYgKCFwYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJl
bmNlcyAmJiAhcGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVuZ3RoUGF0dGVybigpICYmIHZtLT5j
YW5Vc2VSZWdFeHBKSVQoKSkgeworICAgIGlmICghcGF0dGVybi5tX2NvbnRhaW5zQmFja3JlZmVy
ZW5jZXMgJiYgIXBhdHRlcm4uY29udGFpbnNVbnNpZ25lZExlbmd0aFBhdHRlcm4oKSAmJiBWTTo6
Y2FuVXNlUmVnRXhwSklUKCkpIHsKICAgICAgICAgWWFycjo6aml0Q29tcGlsZShwYXR0ZXJuLCBj
aGFyU2l6ZSwgdm0sIG1fcmVnRXhwSklUQ29kZSwgWWFycjo6TWF0Y2hPbmx5KTsKICAgICAgICAg
aWYgKCFtX3JlZ0V4cEpJVENvZGUuaXNGYWxsQmFjaygpKSB7CiAgICAgICAgICAgICBtX3N0YXRl
ID0gSklUQ29kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCA4YTM4YTA2
ZjA4YTJhNDI1YmE4Yzg4OGRlYjFkNGNlMDQ5YmE5Mjc4Li42OTM2NDkwNzBlYzk3YzM3YzU5NzBi
OGZkZDc2ZjA4MGU3MmM3NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBA
IC0xNzUsNiArMTc1LDQ4IEBAIHN0YXRpYyBib29sIGVuYWJsZUFzc2VtYmxlcihFeGVjdXRhYmxl
QWxsb2NhdG9yJiBleGVjdXRhYmxlQWxsb2NhdG9yKQogfQogI2VuZGlmIC8vIEVOQUJMRSghQVNT
RU1CTEVSKQogCitib29sIFZNOjpjYW5Vc2VBc3NlbWJsZXIoKQoreworI2lmIEVOQUJMRShBU1NF
TUJMRVIpCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CisgICAgc3RhdGljIGJv
b2wgZW5hYmxlZCA9IGZhbHNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKKyAg
ICAgICAgZW5hYmxlZCA9IGVuYWJsZUFzc2VtYmxlcihFeGVjdXRhYmxlQWxsb2NhdG9yOjpzaW5n
bGV0b24oKSk7CisgICAgfSk7CisgICAgcmV0dXJuIGVuYWJsZWQ7CisjZWxzZQorICAgIHJldHVy
biBmYWxzZTsgLy8gaW50ZXJwcmV0ZXIgb25seQorI2VuZGlmCit9CisKK2Jvb2wgVk06OmNhblVz
ZUpJVCgpCit7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUtleTsKKyAgICBzdGF0aWMgYm9vbCBlbmFibGVkID0gZmFsc2U7CisgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10geworICAgICAgICBlbmFibGVkID0gVk06OmNhblVzZUFzc2VtYmxlcigp
ICYmIE9wdGlvbnM6OnVzZUpJVCgpOworICAgIH0pOworICAgIHJldHVybiBlbmFibGVkOworI2Vs
c2UKKyAgICByZXR1cm4gZmFsc2U7IC8vIGludGVycHJldGVyIG9ubHkKKyNlbmRpZgorfQorCiti
b29sIFZNOjpjYW5Vc2VSZWdFeHBKSVQoKQoreworI2lmIEVOQUJMRShZQVJSX0pJVCkKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKKyAgICBzdGF0aWMgYm9vbCBlbmFibGVkID0g
ZmFsc2U7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgW10geworICAgICAgICBlbmFibGVk
ID0gVk06OmNhblVzZUFzc2VtYmxlcigpICYmIE9wdGlvbnM6OnVzZVJlZ0V4cEpJVCgpOworICAg
IH0pOworICAgIHJldHVybiBlbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7IC8vIGlu
dGVycHJldGVyIG9ubHkKKyNlbmRpZgorfQorCiBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5
cGUgaGVhcFR5cGUpCiAgICAgOiBtX2FwaUxvY2soYWRvcHRSZWYobmV3IEpTTG9jayh0aGlzKSkp
CiAjaWYgVVNFKENGKQpAQCAtMjM3LDE1ICsyNzksNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwg
SGVhcFR5cGUgaGVhcFR5cGUpCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQogICAgICwgbV9y
dFRyYWNlTGlzdChuZXcgUlRUcmFjZUxpc3QoKSkKICNlbmRpZgotI2lmIEVOQUJMRShBU1NFTUJM
RVIpCi0gICAgLCBtX2NhblVzZUFzc2VtYmxlcihlbmFibGVBc3NlbWJsZXIoRXhlY3V0YWJsZUFs
bG9jYXRvcjo6c2luZ2xldG9uKCkpKQotI2VuZGlmCi0jaWYgRU5BQkxFKEpJVCkKLSAgICAsIG1f
Y2FuVXNlSklUKG1fY2FuVXNlQXNzZW1ibGVyICYmIE9wdGlvbnM6OnVzZUpJVCgpKQotI2VuZGlm
Ci0jaWYgRU5BQkxFKFlBUlJfSklUKQotICAgICwgbV9jYW5Vc2VSZWdFeHBKSVQobV9jYW5Vc2VB
c3NlbWJsZXIgJiYgT3B0aW9uczo6dXNlUmVnRXhwSklUKCkpCi0jZW5kaWYKICNpZiBFTkFCTEUo
R0NfVkFMSURBVElPTikKICAgICAsIG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCkKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggMzg0YTM0M2NhMDc1ZmRhNDRjM2M3
NjdjYTZjNDM3M2EzM2I2NTYzMy4uODI1MWE2NTBlMTA1YThkMmIyYzJhOTUzMGFmOWYyZjNlZGI1
Y2U5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC00NzgsMTcgKzQ3OCw5IEBA
IGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJs
eUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgICAgIERlbGV0ZVByb3BlcnR5TW9kZSBtX3ByZXZp
b3VzTW9kZTsKICAgICB9OwogCi0jaWYgRU5BQkxFKEpJVCkKLSAgICBib29sIGNhblVzZUpJVCgp
IHsgcmV0dXJuIG1fY2FuVXNlSklUOyB9Ci0jZWxzZQotICAgIGJvb2wgY2FuVXNlSklUKCkgeyBy
ZXR1cm4gZmFsc2U7IH0gLy8gaW50ZXJwcmV0ZXIgb25seQotI2VuZGlmCi0KLSNpZiBFTkFCTEUo
WUFSUl9KSVQpCi0gICAgYm9vbCBjYW5Vc2VSZWdFeHBKSVQoKSB7IHJldHVybiBtX2NhblVzZVJl
Z0V4cEpJVDsgfQotI2Vsc2UKLSAgICBib29sIGNhblVzZVJlZ0V4cEpJVCgpIHsgcmV0dXJuIGZh
bHNlOyB9IC8vIGludGVycHJldGVyIG9ubHkKLSNlbmRpZgorICAgIHN0YXRpYyBKU19FWFBPUlRf
UFJJVkFURSBib29sIGNhblVzZUFzc2VtYmxlcigpOworICAgIHN0YXRpYyBKU19FWFBPUlRfUFJJ
VkFURSBib29sIGNhblVzZUpJVCgpOworICAgIHN0YXRpYyBKU19FWFBPUlRfUFJJVkFURSBib29s
IGNhblVzZVJlZ0V4cEpJVCgpOwogCiAgICAgU291cmNlUHJvdmlkZXJDYWNoZSogYWRkU291cmNl
UHJvdmlkZXJDYWNoZShTb3VyY2VQcm92aWRlciopOwogICAgIHZvaWQgY2xlYXJTb3VyY2VQcm92
aWRlckNhY2hlcygpOwpAQCAtNzg1LDE1ICs3NzcsNiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewog
ICAgIHN0YXRpYyB2b2lkIHByaW1pdGl2ZUdpZ2FjYWdlRGlzYWJsZWRDYWxsYmFjayh2b2lkKik7
CiAgICAgdm9pZCBwcmltaXRpdmVHaWdhY2FnZURpc2FibGVkKCk7CiAKLSNpZiBFTkFCTEUoQVNT
RU1CTEVSKQotICAgIGJvb2wgbV9jYW5Vc2VBc3NlbWJsZXI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUo
SklUKQotICAgIGJvb2wgbV9jYW5Vc2VKSVQ7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoWUFSUl9KSVQp
Ci0gICAgYm9vbCBtX2NhblVzZVJlZ0V4cEpJVDsKLSNlbmRpZgogI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQogICAgIGNvbnN0IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdPYmplY3RDbGFzczsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5k
ZXggZmYzYTc3MWRmMGFjNzYzNjllOGNiN2QzYWE4MWUzNzU5NGU0Y2IyNi4uZjEwMmE4MGEwNDFj
MWFiOTBmYjI1OTFkYmJiZDRmNGMxMmQwODMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxl
bWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC0zODUsMTAgKzM4NSw5IEBAIGlubGluZSBib29sIEVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEs
IHVuc2lnbmVkCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAgICAgdm9pZCogY29tcGls
ZWRTZWxlY3RvckNoZWNrZXIgPSBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9yQ29kZVJlZigpLmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIGlmICghY29tcGlsZWRTZWxlY3RvckNoZWNr
ZXIgJiYgcnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMoKSA9PSBTZWxlY3RvckNvbXBpbGF0aW9u
U3RhdHVzOjpOb3RDb21waWxlZCkgewotICAgICAgICBKU0M6OlZNJiB2bSA9IG1fZWxlbWVudC5k
b2N1bWVudCgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dm0oKTsKICAgICAgICAgU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1czsKICAgICAgICAgSlNDOjpNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgY29tcGlsZWRTZWxlY3RvckNvZGVSZWY7Ci0gICAgICAgIGNvbXBp
bGF0aW9uU3RhdHVzID0gU2VsZWN0b3JDb21waWxlcjo6Y29tcGlsZVNlbGVjdG9yKHJ1bGVEYXRh
LnNlbGVjdG9yKCksICZ2bSwgU2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb250ZXh0OjpSdWxl
Q29sbGVjdG9yLCBjb21waWxlZFNlbGVjdG9yQ29kZVJlZik7CisgICAgICAgIGNvbXBpbGF0aW9u
U3RhdHVzID0gU2VsZWN0b3JDb21waWxlcjo6Y29tcGlsZVNlbGVjdG9yKHJ1bGVEYXRhLnNlbGVj
dG9yKCksIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29udGV4dDo6UnVsZUNvbGxlY3Rvciwg
Y29tcGlsZWRTZWxlY3RvckNvZGVSZWYpOwogCiAgICAgICAgIHJ1bGVEYXRhLnNldENvbXBpbGVk
U2VsZWN0b3IoY29tcGlsYXRpb25TdGF0dXMsIGNvbXBpbGVkU2VsZWN0b3JDb2RlUmVmKTsKICAg
ICAgICAgY29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9y
Q29kZVJlZigpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDg0MWNkMmU1MWE3ZGNkYzlmMGQ2NGM3ZTg3
MTViZGE5NDFjOGJmOGEuLjg5MjYzNjcxOTI4ZTMzYjJlZmY1ZTk2NTZmYzI4ZTkwNDI1NTc2ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTM5MCw5
ICszOTAsOSBAQCBzdGF0aWMgRnVuY3Rpb25UeXBlIGNvbnN0cnVjdEZyYWdtZW50cyhjb25zdCBD
U1NTZWxlY3Rvciogcm9vdFNlbGVjdG9yLCBTZWxlY3RvcgogCiBzdGF0aWMgdm9pZCBjb21wdXRl
QmFja3RyYWNraW5nSW5mb3JtYXRpb24oU2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9yRnJh
Z21lbnRzLCB1bnNpZ25lZCBsZXZlbCA9IDApOwogCi1TZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
IGNvbXBpbGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciogbGFzdFNlbGVjdG9yLCBKU0M6OlZN
KiB2bSwgU2VsZWN0b3JDb250ZXh0IHNlbGVjdG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYmIGNvZGVSZWYpCitTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGVTZWxl
Y3Rvcihjb25zdCBDU1NTZWxlY3RvciogbGFzdFNlbGVjdG9yLCBTZWxlY3RvckNvbnRleHQgc2Vs
ZWN0b3JDb250ZXh0LCBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZiYgY29kZVJlZikKIHsKLSAg
ICBpZiAoIXZtLT5jYW5Vc2VKSVQoKSkKKyAgICBpZiAoIUpTQzo6Vk06OmNhblVzZUpJVCgpKQog
ICAgICAgICByZXR1cm4gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Q2Fubm90Q29tcGlsZTsK
ICAgICBTZWxlY3RvckNvZGVHZW5lcmF0b3IgY29kZUdlbmVyYXRvcihsYXN0U2VsZWN0b3IsIHNl
bGVjdG9yQ29udGV4dCk7CiAgICAgcmV0dXJuIGNvZGVHZW5lcmF0b3IuY29tcGlsZShjb2RlUmVm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCmluZGV4IDhkMzgwNWY3
ZDNmMTBmZTU5NjBkZmI5ZGFlOWM5YjA2NzUzY2NhMGIuLmMyMGY2NzYxMDEyZTFkZTAzMWNjZGQx
YzdjN2M1OGI2NDEzZmE3ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGls
ZXIuaApAQCAtMzQsNyArMzQsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjsKLWNsYXNzIFZNOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04
Miw3ICs4MSw3IEBAIHR5cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyKShjb25zdCBFbGVtZW50Kik7CiB0eXBlZGVmIHVuc2lnbmVkICgqUnVsZUNvbGxl
Y3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1lbnQqLCBT
ZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCosIHVuc2lnbmVkKik7CiB0eXBlZGVmIHVu
c2lnbmVkICgqUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQp
KGNvbnN0IEVsZW1lbnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCop
OwogCi1TZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBDU1NT
ZWxlY3RvciosIEpTQzo6Vk0qLCBTZWxlY3RvckNvbnRleHQsIEpTQzo6TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmJiBvdXRwdXRDb2RlUmVmKTsKK1NlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGls
ZVNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiwgU2VsZWN0b3JDb250ZXh0LCBKU0M6Ok1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiYgb3V0cHV0Q29kZVJlZik7CiAKIGlubGluZSBSdWxlQ29sbGVjdG9y
U2ltcGxlU2VsZWN0b3JDaGVja2VyIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJG
dW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1
cyBjb21waWxhdGlvblN0YXR1cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcApp
bmRleCBmM2ZjOWJiOTFhZmU0MzJhNWY5MmJkMjQ2ODdiZTRmNTI0OTRjNThiLi44MDk3M2U2ZDll
Njc0ZGJmNmUwNTRiNGM3NDNhNDg2NGZjODE3YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9y
UXVlcnkuY3BwCkBAIC00NzgsOCArNDc4LDcgQEAgYm9vbCBTZWxlY3RvckRhdGFMaXN0Ojpjb21w
aWxlU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEsIGNvbnN0IEMKICAg
ICBpZiAoc2VsZWN0b3JEYXRhLmNvbXBpbGF0aW9uU3RhdHVzICE9IFNlbGVjdG9yQ29tcGlsYXRp
b25TdGF0dXM6Ok5vdENvbXBpbGVkKQogICAgICAgICByZXR1cm4gaXNDb21waWxlZFNlbGVjdG9y
KHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyk7CiAKLSAgICBKU0M6OlZNJiB2bSA9IHJv
b3ROb2RlLmRvY3VtZW50KCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT52bSgpOwotICAgIHNl
bGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyA9IFNlbGVjdG9yQ29tcGlsZXI6OmNvbXBpbGVT
ZWxlY3RvcihzZWxlY3RvckRhdGEuc2VsZWN0b3IsICZ2bSwgU2VsZWN0b3JDb21waWxlcjo6U2Vs
ZWN0b3JDb250ZXh0OjpRdWVyeVNlbGVjdG9yLCBzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rv
ckNvZGVSZWYpOworICAgIHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyA9IFNlbGVjdG9y
Q29tcGlsZXI6OmNvbXBpbGVTZWxlY3RvcihzZWxlY3RvckRhdGEuc2VsZWN0b3IsIFNlbGVjdG9y
Q29tcGlsZXI6OlNlbGVjdG9yQ29udGV4dDo6UXVlcnlTZWxlY3Rvciwgc2VsZWN0b3JEYXRhLmNv
bXBpbGVkU2VsZWN0b3JDb2RlUmVmKTsKICAgICByZXR1cm4gaXNDb21waWxlZFNlbGVjdG9yKHNl
bGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyk7CiB9CiAK
</data>
<flag name="review"
          id="348678"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329613</attachid>
            <date>2017-12-17 11:14:02 -0800</date>
            <delta_ts>2017-12-17 11:14:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180917-20171218041401.patch</filename>
            <type>text/plain</type>
            <size>22149</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2EyYzA0ZTIyYjU3MjUyMTQzNWJjMGMwYjhiYzIxN2NhN2M0YjI0Li5lOWVlMDE5M2EyNzZmYWFl
NzNlYjA4NGE5OWYxMGYyNGM2NjEwODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxNy0xMi0xNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXVtXZWJDb3JlXVtDU1NKSVRdIFJlbW92ZSBWTSByZWZlcmVu
Y2UgaW4gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODA5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBkbyBub3QgbmVlZCB0byBob2xkIEpJVCBmbGFncyBpbiBWTS4gV2UgYWRkCisgICAg
ICAgIHN0YXRpYyBWTTo6e2NhblVzZUpJVCxjYW5Vc2VBc3NlbWJsZXIsY2FuVXNlUmVnRXhwSklU
fSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBpbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcDoKKyAg
ICAgICAgKEpTQzo6QWJzdHJhY3RQQzo6QWJzdHJhY3RQQyk6CisgICAgICAgICogaml0L0pJVFRo
dW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbCk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KToKKyAgICAgICAgKEpTQzo6
SklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
Y3RpTmF0aXZlVGFpbENhbGxXaXRob3V0U2F2ZWRUYWdzKToKKyAgICAgICAgKEpTQzo6SklUVGh1
bmtzOjpjdGlJbnRlcm5hbEZ1bmN0aW9uQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
Y3RpSW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1Yik6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoK
KyAgICAgICAgKEpTQzo6TExJbnQ6OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChK
U0M6OkxMSW50OjpzZXRFdmFsRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQ
cm9ncmFtRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRNb2R1bGVQcm9ncmFt
RW50cnlwb2ludCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2hvdWxkSklUKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmVudHJ5T1NS
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZSk6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZU1hdGNoT25seSk6CisgICAgICAgICogcnVudGlt
ZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpjYW5Vc2VBc3NlbWJsZXIpOgorICAgICAgICAo
SlNDOjpWTTo6Y2FuVXNlSklUKToKKyAgICAgICAgKEpTQzo6Vk06OmNhblVzZVJlZ0V4cEpJVCk6
CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAg
ICAoSlNDOjpWTTo6Y2FuVXNlSklUKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Vk06OmNhblVz
ZVJlZ0V4cEpJVCk6IERlbGV0ZWQuCisKIDIwMTctMTItMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gTnVtYmVyIG9mIFNsb3RWaXNpdG9y
cyBjYW4gaW5jcmVhc2UgYWZ0ZXIgc2V0dGluZyB1cCBtX3Zpc2l0Q291bnRlcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0OTYyYTE1ZjQ1NjUxODkzYzA4ZDZlZTRiZTQwZDdjNWNmOTc2NWJkLi5jMjAxNWE5NDcx
YTFiYWRhNTgzMjE5ODJkODA5NWM3ODgyODc0M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTctMTItMTcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgW0pTQ11bV2ViQ29yZV1bQ1NTSklUXSBSZW1vdmUgVk0gcmVmZXJlbmNlIGluIENT
U0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
OTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIFZNIHJlZmVyZW5jZSBpbiBDU1NKSVQuIENTU0pJVCBzaG91bGQgbm90IGJlCisgICAgICAg
IGJvdW5kIHRvIGEgc3BlY2lmaWMgVk0uCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyk6CisgICAgICAgICogY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6Y29tcGlsZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5o
OgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yRGF0YUxpc3Q6OmNvbXBpbGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpleGVjdXRlIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVy
eS5oOgorCiAyMDE3LTEyLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgV0tXZWJWaWV3IGhhcyBubyBlcXVpdmFsZW50IG9mIC1bV2ViVmlldyBzZXRBbHdheXNT
aG93VmVydGljYWxTY3JvbGxlcjpdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQWJzdHJhY3RQQy5jcHAKaW5kZXggMDliMjRkNWRjNzY5NDExMWYyZDAyYzE4ZWY0Yzc2
MTljZjYzNGI2OC4uZTUzMDExNGE4NTllNzI3ZTA4OTFkYTk1MjdhODc0NGJhZWIwMGFkMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Fic3RyYWN0UEMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcApA
QCAtMzksNyArMzksNyBAQCBBYnN0cmFjdFBDOjpBYnN0cmFjdFBDKFZNJiB2bSwgRXhlY1N0YXRl
KiBleGVjKQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICAKICNpZiBFTkFCTEUoSklUKQot
ICAgIGlmICh2bS5jYW5Vc2VKSVQoKSkgeworICAgIGlmIChWTTo6Y2FuVXNlSklUKCkpIHsKICAg
ICAgICAgbV9wb2ludGVyID0gZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpOwogICAgICAgICBtX21v
ZGUgPSBKSVQ7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1
bmtzLmNwcAppbmRleCAwM2RlZDZjMzI2YTU1YjFhNzYxNTIzYzllZTE5N2JkZmJmMjJhYzJhLi4x
NGY2YWFiNmIwNmJlYTA5ZTNiMGFhMzNjMmI2M2U0Yzc5MThmZWI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCkBAIC00Nyw0MCArNDcsNDAgQEAgSklUVGh1bmtzOjp+
SklUVGh1bmtzKCkKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZl
Q2FsbChWTSogdm0pCiB7Ci0gICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCisgICAgaWYgKCFWTTo6
Y2FuVXNlSklUKCkpCiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0
ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsKICAgICByZXR1cm4g
Y3RpU3R1Yih2bSwgbmF0aXZlQ2FsbEdlbmVyYXRvcikuY29kZSgpOwogfQogCiBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qIHZtKQogewotICAg
IGlmICghdm0tPmNhblVzZUpJVCgpKQorICAgIGlmICghVk06OmNhblVzZUpJVCgpKQogICAgICAg
ICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRf
bmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0
aXZlQ29uc3RydWN0R2VuZXJhdG9yKS5jb2RlKCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBKSVRUaHVua3M6OmN0aU5hdGl2ZVRhaWxDYWxsKFZNKiB2bSkKIHsKLSAgICBBU1NFUlQodm0t
PmNhblVzZUpJVCgpKTsKKyAgICBBU1NFUlQoVk06OmNhblVzZUpJVCgpKTsKICAgICByZXR1cm4g
Y3RpU3R1Yih2bSwgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpLmNvZGUoKTsKIH0KIAogTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlVGFpbENhbGxXaXRob3V0U2F2ZWRU
YWdzKFZNKiB2bSkKIHsKLSAgICBBU1NFUlQodm0tPmNhblVzZUpJVCgpKTsKKyAgICBBU1NFUlQo
Vk06OmNhblVzZUpJVCgpKTsKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlVGFpbENhbGxX
aXRob3V0U2F2ZWRUYWdzR2VuZXJhdG9yKS5jb2RlKCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBKSVRUaHVua3M6OmN0aUludGVybmFsRnVuY3Rpb25DYWxsKFZNKiB2bSkKIHsKLSAgICBp
ZiAoIXZtLT5jYW5Vc2VKSVQoKSkKKyAgICBpZiAoIVZNOjpjYW5Vc2VKSVQoKSkKICAgICAgICAg
cmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2lu
dGVybmFsX2Z1bmN0aW9uX2NhbGxfdHJhbXBvbGluZSk7CiAgICAgcmV0dXJuIGN0aVN0dWIodm0s
IGludGVybmFsRnVuY3Rpb25DYWxsR2VuZXJhdG9yKS5jb2RlKCk7CiB9CiAKIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aUludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3QoVk0qIHZt
KQogewotICAgIGlmICghdm0tPmNhblVzZUpJVCgpKQorICAgIGlmICghVk06OmNhblVzZUpJVCgp
KQogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQ
dHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29uc3RydWN0X3RyYW1wb2xpbmUpOwogICAgIHJl
dHVybiBjdGlTdHViKHZtLCBpbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yKS5jb2Rl
KCk7CiB9CkBAIC0xMjAsNyArMTIwLDcgQEAgTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpo
b3N0RnVuY3Rpb25TdHViKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE4KIE5hdGl2
ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihWTSogdm0sIE5hdGl2ZUZ1
bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgVGh1bmtHZW5lcmF0
b3IgZ2VuZXJhdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljLCBjb25zdCBET01KSVQ6OlNpZ25hdHVy
ZSogc2lnbmF0dXJlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgQVNTRVJUKCFpc0NvbXBp
bGF0aW9uVGhyZWFkKCkpOyAgICAKLSAgICBBU1NFUlQodm0tPmNhblVzZUpJVCgpKTsKKyAgICBB
U1NFUlQoVk06OmNhblVzZUpJVCgpKTsKIAogICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBuYXRp
dmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoc3RkOjptYWtlX3R1cGxl
KGZ1bmN0aW9uLCBjb25zdHJ1Y3RvciwgbmFtZSkpKQogICAgICAgICByZXR1cm4gbmF0aXZlRXhl
Y3V0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVu
dHJ5cG9pbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2lu
dC5jcHAKaW5kZXggZjdkNzYxZGMxZGFjMDNmZjEzYTI4OTkzZGYzNGMzNTljZTRiMDYyZi4uNzE2
YmIxMzdjYWM1NTg4N2FkOTYzMzE4OTJlNzAyNTU3OWE2Yzk2YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAg
c3RhdGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiAgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kID0gY29kZUJsb2NrLT5zcGVj
aWFsaXphdGlvbktpbmQoKTsKICAgICAKICNpZiBFTkFCTEUoSklUKQotICAgIGlmICh2bS5jYW5V
c2VKSVQoKSkgeworICAgIGlmIChWTTo6Y2FuVXNlSklUKCkpIHsKICAgICAgICAgaWYgKGtpbmQg
PT0gQ29kZUZvckNhbGwpIHsKICAgICAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKICAg
ICAgICAgICAgICAgICBhZG9wdFJlZigqbmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihm
dW5jdGlvbkZvckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlv
bkZvckNhbGxBcml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSwgSklUQ29kZTo6SW50ZXJw
cmV0ZXJUaHVuaykpKTsKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIHZvaWQgc2V0RnVuY3Rpb25F
bnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiBzdGF0aWMgdm9pZCBzZXRF
dmFsRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQogewogI2lmIEVOQUJM
RShKSVQpCi0gICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CisgICAgaWYgKFZNOjpjYW5Vc2VKSVQo
KSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCiAgICAgICAgICAgICBhZG9wdFJl
ZigqbmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50cnlUaHVua0dlbmVyYXRv
ciksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkp
OwogICAgICAgICByZXR1cm47CkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyB2b2lkIHNldEV2YWxF
bnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiBzdGF0aWMgdm9pZCBzZXRQ
cm9ncmFtRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQogewogI2lmIEVO
QUJMRShKSVQpCi0gICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CisgICAgaWYgKFZNOjpjYW5Vc2VK
SVQoKSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCiAgICAgICAgICAgICBhZG9w
dFJlZigqbmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVua0dl
bmVyYXRvciksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRo
dW5rKSkpOwogICAgICAgICByZXR1cm47CkBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIHZvaWQg
c2V0UHJvZ3JhbUVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHN0YXRp
YyB2b2lkIHNldE1vZHVsZVByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiB7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKKyAg
ICBpZiAoVk06OmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgK
ICAgICAgICAgICAgIGFkb3B0UmVmKCpuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKG1v
ZHVsZVByb2dyYW1FbnRyeVRodW5rR2VuZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCks
IEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDY2MTZmMjcy
ZDZiMDAyZjZlNmU4MTg1OTRkNmMyNDFhMTY5MzllM2MuLmQ3ZjNiODdmNTQyMGVkYzhhNzk0MjY2
ZTBlMjY1YTNiNTYwOTcxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcApAQCAtMzE4LDEzICszMTgsMTMgQEAgc3RhdGljIEZ1bmN0aW9uV2hp
dGVsaXN0JiBlbnN1cmVHbG9iYWxKSVRXaGl0ZWxpc3QoKQogICAgIHJldHVybiBiYXNlbGluZVdo
aXRlbGlzdDsKIH0KIAotaW5saW5lIGJvb2wgc2hvdWxkSklUKEV4ZWNTdGF0ZSogZXhlYywgQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgYm9vbCBzaG91bGRKSVQoQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiB7CiAgICAgaWYgKCFPcHRpb25zOjpieXRlY29kZVJhbmdlVG9KSVRDb21waWxlKCku
aXNJblJhbmdlKGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25Db3VudCgpKQogICAgICAgICB8fCAhZW5z
dXJlR2xvYmFsSklUV2hpdGVsaXN0KCkuY29udGFpbnMoY29kZUJsb2NrKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGV4ZWMtPnZtKCkuY2FuVXNlSklUKCkgJiYgT3B0aW9u
czo6dXNlQmFzZWxpbmVKSVQoKTsKKyAgICByZXR1cm4gVk06OmNhblVzZUpJVCgpICYmIE9wdGlv
bnM6OnVzZUJhc2VsaW5lSklUKCk7CiB9CiAKIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQg
dHJ5IHRvIE9TUi4KQEAgLTM3MCw3ICszNzAsNyBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBl
IGVudHJ5T1NSKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qLCBDb2RlQmxvY2sqIGNvZAog
ICAgICAgICAgICAgY29kZUJsb2NrLT5sbGludEV4ZWN1dGVDb3VudGVyKCksICJcbiIpOwogICAg
IH0KICAgICAKLSAgICBpZiAoIXNob3VsZEpJVChleGVjLCBjb2RlQmxvY2spKSB7CisgICAgaWYg
KCFzaG91bGRKSVQoY29kZUJsb2NrKSkgewogICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0
aW1lU29vbigpOwogICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIH0KQEAgLTQz
MCw3ICs0MzAsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICAKICAgICB1
bnNpZ25lZCBsb29wT1NSRW50cnlCeXRlY29kZU9mZnNldCA9IHBjIC0gY29kZUJsb2NrLT5pbnN0
cnVjdGlvbnMoKS5iZWdpbigpOwogCi0gICAgaWYgKCFzaG91bGRKSVQoZXhlYywgY29kZUJsb2Nr
KSkgeworICAgIGlmICghc2hvdWxkSklUKGNvZGVCbG9jaykpIHsKICAgICAgICAgY29kZUJsb2Nr
LT5kb250SklUQW55dGltZVNvb24oKTsKICAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsK
ICAgICB9CkBAIC00NzAsNyArNDcwLDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wocmVwbGFjZSkK
ICAgICAgICAgICAgIGNvZGVCbG9jay0+bGxpbnRFeGVjdXRlQ291bnRlcigpLCAiXG4iKTsKICAg
ICB9CiAgICAgCi0gICAgaWYgKHNob3VsZEpJVChleGVjLCBjb2RlQmxvY2spKQorICAgIGlmIChz
aG91bGRKSVQoY29kZUJsb2NrKSkKICAgICAgICAgaml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3Mo
Y29kZUJsb2NrLCBleGVjKTsKICAgICBlbHNlCiAgICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFu
eXRpbWVTb29uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAppbmRl
eCA2YTNhMTc5MWVkY2NmMWFiZGI5N2NhNzkxYTU5MzdkMjZlNjg4ZWFlLi4wNTExZDIyNTJhZWYw
MWJmNjk5YWRiY2JhMDVjNDY2YmRjYmUxNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cC5jcHAKQEAgLTMxNiw3ICszMTYsNyBAQCB2b2lkIFJlZ0V4cDo6Y29tcGlsZShW
TSogdm0sIFlhcnI6OllhcnJDaGFyU2l6ZSBjaGFyU2l6ZSkKICAgICB9CiAKICNpZiBFTkFCTEUo
WUFSUl9KSVQpCi0gICAgaWYgKCFwYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJlbmNlcyAmJiAh
cGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVuZ3RoUGF0dGVybigpICYmIHZtLT5jYW5Vc2VSZWdF
eHBKSVQoKSkgeworICAgIGlmICghcGF0dGVybi5tX2NvbnRhaW5zQmFja3JlZmVyZW5jZXMgJiYg
IXBhdHRlcm4uY29udGFpbnNVbnNpZ25lZExlbmd0aFBhdHRlcm4oKSAmJiBWTTo6Y2FuVXNlUmVn
RXhwSklUKCkpIHsKICAgICAgICAgWWFycjo6aml0Q29tcGlsZShwYXR0ZXJuLCBjaGFyU2l6ZSwg
dm0sIG1fcmVnRXhwSklUQ29kZSk7CiAgICAgICAgIGlmICghbV9yZWdFeHBKSVRDb2RlLmlzRmFs
bEJhY2soKSkgewogICAgICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7CkBAIC0zNzIsNyArMzcy
LDcgQEAgdm9pZCBSZWdFeHA6OmNvbXBpbGVNYXRjaE9ubHkoVk0qIHZtLCBZYXJyOjpZYXJyQ2hh
clNpemUgY2hhclNpemUpCiAgICAgfQogCiAjaWYgRU5BQkxFKFlBUlJfSklUKQotICAgIGlmICgh
cGF0dGVybi5tX2NvbnRhaW5zQmFja3JlZmVyZW5jZXMgJiYgIXBhdHRlcm4uY29udGFpbnNVbnNp
Z25lZExlbmd0aFBhdHRlcm4oKSAmJiB2bS0+Y2FuVXNlUmVnRXhwSklUKCkpIHsKKyAgICBpZiAo
IXBhdHRlcm4ubV9jb250YWluc0JhY2tyZWZlcmVuY2VzICYmICFwYXR0ZXJuLmNvbnRhaW5zVW5z
aWduZWRMZW5ndGhQYXR0ZXJuKCkgJiYgVk06OmNhblVzZVJlZ0V4cEpJVCgpKSB7CiAgICAgICAg
IFlhcnI6OmppdENvbXBpbGUocGF0dGVybiwgY2hhclNpemUsIHZtLCBtX3JlZ0V4cEpJVENvZGUs
IFlhcnI6Ok1hdGNoT25seSk7CiAgICAgICAgIGlmICghbV9yZWdFeHBKSVRDb2RlLmlzRmFsbEJh
Y2soKSkgewogICAgICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5jcHAKaW5kZXggOGEzOGEwNmYwOGEyYTQyNWJhOGM4ODhkZWIxZDRjZTA0OWJh
OTI3OC4uNjkzNjQ5MDcwZWM5N2MzN2M1OTcwYjhmZGQ3NmYwODBlNzJjNzc3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTc1LDYgKzE3NSw0OCBAQCBzdGF0aWMgYm9v
bCBlbmFibGVBc3NlbWJsZXIoRXhlY3V0YWJsZUFsbG9jYXRvciYgZXhlY3V0YWJsZUFsbG9jYXRv
cikKIH0KICNlbmRpZiAvLyBFTkFCTEUoIUFTU0VNQkxFUikKIAorYm9vbCBWTTo6Y2FuVXNlQXNz
ZW1ibGVyKCkKK3sKKyNpZiBFTkFCTEUoQVNTRU1CTEVSKQorICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBvbmNlS2V5OworICAgIHN0YXRpYyBib29sIGVuYWJsZWQgPSBmYWxzZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlS2V5LCBbXSB7CisgICAgICAgIGVuYWJsZWQgPSBlbmFibGVBc3NlbWJs
ZXIoRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9uKCkpOworICAgIH0pOworICAgIHJldHVy
biBlbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7IC8vIGludGVycHJldGVyIG9ubHkK
KyNlbmRpZgorfQorCitib29sIFZNOjpjYW5Vc2VKSVQoKQoreworI2lmIEVOQUJMRShKSVQpCisg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CisgICAgc3RhdGljIGJvb2wgZW5hYmxl
ZCA9IGZhbHNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKKyAgICAgICAgZW5h
YmxlZCA9IFZNOjpjYW5Vc2VBc3NlbWJsZXIoKSAmJiBPcHRpb25zOjp1c2VKSVQoKTsKKyAgICB9
KTsKKyAgICByZXR1cm4gZW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOyAvLyBpbnRl
cnByZXRlciBvbmx5CisjZW5kaWYKK30KKworYm9vbCBWTTo6Y2FuVXNlUmVnRXhwSklUKCkKK3sK
KyNpZiBFTkFCTEUoWUFSUl9KSVQpCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7
CisgICAgc3RhdGljIGJvb2wgZW5hYmxlZCA9IGZhbHNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2VLZXksIFtdIHsKKyAgICAgICAgZW5hYmxlZCA9IFZNOjpjYW5Vc2VBc3NlbWJsZXIoKSAmJiBP
cHRpb25zOjp1c2VSZWdFeHBKSVQoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gZW5hYmxlZDsKKyNl
bHNlCisgICAgcmV0dXJuIGZhbHNlOyAvLyBpbnRlcnByZXRlciBvbmx5CisjZW5kaWYKK30KKwog
Vk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIDogbV9hcGlMb2Nr
KGFkb3B0UmVmKG5ldyBKU0xvY2sodGhpcykpKQogI2lmIFVTRShDRikKQEAgLTIzNywxNSArMjc5
LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogI2lmIEVOQUJM
RShSRUdFWFBfVFJBQ0lORykKICAgICAsIG1fcnRUcmFjZUxpc3QobmV3IFJUVHJhY2VMaXN0KCkp
CiAjZW5kaWYKLSNpZiBFTkFCTEUoQVNTRU1CTEVSKQotICAgICwgbV9jYW5Vc2VBc3NlbWJsZXIo
ZW5hYmxlQXNzZW1ibGVyKEV4ZWN1dGFibGVBbGxvY2F0b3I6OnNpbmdsZXRvbigpKSkKLSNlbmRp
ZgotI2lmIEVOQUJMRShKSVQpCi0gICAgLCBtX2NhblVzZUpJVChtX2NhblVzZUFzc2VtYmxlciAm
JiBPcHRpb25zOjp1c2VKSVQoKSkKLSNlbmRpZgotI2lmIEVOQUJMRShZQVJSX0pJVCkKLSAgICAs
IG1fY2FuVXNlUmVnRXhwSklUKG1fY2FuVXNlQXNzZW1ibGVyICYmIE9wdGlvbnM6OnVzZVJlZ0V4
cEpJVCgpKQotI2VuZGlmCiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAgICAgLCBtX2luaXRp
YWxpemluZ09iamVjdENsYXNzKDApCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
CmluZGV4IDM4NGEzNDNjYTA3NWZkYTQ0YzNjNzY3Y2E2YzQzNzNhMzNiNjU2MzMuLjgyNTFhNjUw
ZTEwNWE4ZDJiMmMyYTk1MzBhZjlmMmYzZWRiNWNlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uaApAQCAtNDc4LDE3ICs0NzgsOSBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgICAg
ICBEZWxldGVQcm9wZXJ0eU1vZGUgbV9wcmV2aW91c01vZGU7CiAgICAgfTsKIAotI2lmIEVOQUJM
RShKSVQpCi0gICAgYm9vbCBjYW5Vc2VKSVQoKSB7IHJldHVybiBtX2NhblVzZUpJVDsgfQotI2Vs
c2UKLSAgICBib29sIGNhblVzZUpJVCgpIHsgcmV0dXJuIGZhbHNlOyB9IC8vIGludGVycHJldGVy
IG9ubHkKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFlBUlJfSklUKQotICAgIGJvb2wgY2FuVXNlUmVn
RXhwSklUKCkgeyByZXR1cm4gbV9jYW5Vc2VSZWdFeHBKSVQ7IH0KLSNlbHNlCi0gICAgYm9vbCBj
YW5Vc2VSZWdFeHBKSVQoKSB7IHJldHVybiBmYWxzZTsgfSAvLyBpbnRlcnByZXRlciBvbmx5Ci0j
ZW5kaWYKKyAgICBzdGF0aWMgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5Vc2VBc3NlbWJsZXIo
KTsKKyAgICBzdGF0aWMgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5Vc2VKSVQoKTsKKyAgICBz
dGF0aWMgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5Vc2VSZWdFeHBKSVQoKTsKIAogICAgIFNv
dXJjZVByb3ZpZGVyQ2FjaGUqIGFkZFNvdXJjZVByb3ZpZGVyQ2FjaGUoU291cmNlUHJvdmlkZXIq
KTsKICAgICB2b2lkIGNsZWFyU291cmNlUHJvdmlkZXJDYWNoZXMoKTsKQEAgLTc4NSwxNSArNzc3
LDYgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMg
RG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBzdGF0aWMgdm9pZCBwcmltaXRpdmVHaWdh
Y2FnZURpc2FibGVkQ2FsbGJhY2sodm9pZCopOwogICAgIHZvaWQgcHJpbWl0aXZlR2lnYWNhZ2VE
aXNhYmxlZCgpOwogCi0jaWYgRU5BQkxFKEFTU0VNQkxFUikKLSAgICBib29sIG1fY2FuVXNlQXNz
ZW1ibGVyOwotI2VuZGlmCi0jaWYgRU5BQkxFKEpJVCkKLSAgICBib29sIG1fY2FuVXNlSklUOwot
I2VuZGlmCi0jaWYgRU5BQkxFKFlBUlJfSklUKQotICAgIGJvb2wgbV9jYW5Vc2VSZWdFeHBKSVQ7
Ci0jZW5kaWYKICNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKICAgICBjb25zdCBDbGFzc0luZm8q
IG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3M7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IGZmM2E3NzFkZjBhYzc2MzY5ZThjYjdkM2Fh
ODFlMzc1OTRlNGNiMjYuLmYxMDJhODBhMDQxYzFhYjkwZmIyNTkxZGJiYmQ0ZjRjMTJkMDgzMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtMzg1
LDEwICszODUsOSBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNo
ZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogI2lmIEVOQUJMRShDU1NfU0VM
RUNUT1JfSklUKQogICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyID0gcnVsZURhdGEu
Y29tcGlsZWRTZWxlY3RvckNvZGVSZWYoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKICAg
ICBpZiAoIWNvbXBpbGVkU2VsZWN0b3JDaGVja2VyICYmIHJ1bGVEYXRhLmNvbXBpbGF0aW9uU3Rh
dHVzKCkgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Tm90Q29tcGlsZWQpIHsKLSAgICAg
ICAgSlNDOjpWTSYgdm0gPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnZtKCk7CiAgICAgICAgIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRp
b25TdGF0dXM7CiAgICAgICAgIEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvbXBpbGVkU2Vs
ZWN0b3JDb2RlUmVmOwotICAgICAgICBjb21waWxhdGlvblN0YXR1cyA9IFNlbGVjdG9yQ29tcGls
ZXI6OmNvbXBpbGVTZWxlY3RvcihydWxlRGF0YS5zZWxlY3RvcigpLCAmdm0sIFNlbGVjdG9yQ29t
cGlsZXI6OlNlbGVjdG9yQ29udGV4dDo6UnVsZUNvbGxlY3RvciwgY29tcGlsZWRTZWxlY3RvckNv
ZGVSZWYpOworICAgICAgICBjb21waWxhdGlvblN0YXR1cyA9IFNlbGVjdG9yQ29tcGlsZXI6OmNv
bXBpbGVTZWxlY3RvcihydWxlRGF0YS5zZWxlY3RvcigpLCBTZWxlY3RvckNvbXBpbGVyOjpTZWxl
Y3RvckNvbnRleHQ6OlJ1bGVDb2xsZWN0b3IsIGNvbXBpbGVkU2VsZWN0b3JDb2RlUmVmKTsKIAog
ICAgICAgICBydWxlRGF0YS5zZXRDb21waWxlZFNlbGVjdG9yKGNvbXBpbGF0aW9uU3RhdHVzLCBj
b21waWxlZFNlbGVjdG9yQ29kZVJlZik7CiAgICAgICAgIGNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
ID0gcnVsZURhdGEuY29tcGlsZWRTZWxlY3RvckNvZGVSZWYoKS5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRl
eCA4NDFjZDJlNTFhN2RjZGM5ZjBkNjRjN2U4NzE1YmRhOTQxYzhiZjhhLi44OTI2MzY3MTkyOGUz
M2IyZWZmNWU5NjU2ZmMyOGU5MDQyNTU3NmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1Nl
bGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0zOTAsOSArMzkwLDkgQEAgc3RhdGljIEZ1bmN0aW9uVHlw
ZSBjb25zdHJ1Y3RGcmFnbWVudHMoY29uc3QgQ1NTU2VsZWN0b3IqIHJvb3RTZWxlY3RvciwgU2Vs
ZWN0b3IKIAogc3RhdGljIHZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKFNlbGVj
dG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cywgdW5zaWduZWQgbGV2ZWwgPSAwKTsK
IAotU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxlU2VsZWN0b3IoY29uc3QgQ1NTU2Vs
ZWN0b3IqIGxhc3RTZWxlY3RvciwgSlNDOjpWTSogdm0sIFNlbGVjdG9yQ29udGV4dCBzZWxlY3Rv
ckNvbnRleHQsIEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmJiBjb2RlUmVmKQorU2VsZWN0b3JD
b21waWxhdGlvblN0YXR1cyBjb21waWxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIGxhc3RT
ZWxlY3RvciwgU2VsZWN0b3JDb250ZXh0IHNlbGVjdG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYmIGNvZGVSZWYpCiB7Ci0gICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCisgICAg
aWYgKCFKU0M6OlZNOjpjYW5Vc2VKSVQoKSkKICAgICAgICAgcmV0dXJuIFNlbGVjdG9yQ29tcGls
YXRpb25TdGF0dXM6OkNhbm5vdENvbXBpbGU7CiAgICAgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIGNv
ZGVHZW5lcmF0b3IobGFzdFNlbGVjdG9yLCBzZWxlY3RvckNvbnRleHQpOwogICAgIHJldHVybiBj
b2RlR2VuZXJhdG9yLmNvbXBpbGUoY29kZVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVj
dG9yQ29tcGlsZXIuaAppbmRleCA4ZDM4MDVmN2QzZjEwZmU1OTYwZGZiOWRhZTljOWIwNjc1M2Nj
YTBiLi5jMjBmNjc2MTAxMmUxZGUwMzFjY2RkMWM3YzdjNThiNjQxM2ZhN2Y0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKQEAgLTM0LDcgKzM0LDYgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiBjbGFzcyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY7Ci1jbGFzcyBWTTsKIH0K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNyArODEsNyBAQCB0eXBlZGVmIHVuc2lnbmVk
ICgqUXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcikoY29uc3QgRWxlbWVudCopOwog
dHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRl
eHQqLCB1bnNpZ25lZCopOwogdHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2VsZWN0b3JTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgY29uc3QgU2VsZWN0
b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKTsKIAotU2VsZWN0b3JDb21waWxhdGlvblN0YXR1
cyBjb21waWxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqLCBKU0M6OlZNKiwgU2VsZWN0b3JD
b250ZXh0LCBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZiYgb3V0cHV0Q29kZVJlZik7CitTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvcios
IFNlbGVjdG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWYmIG91dHB1dENvZGVS
ZWYpOwogCiBpbmxpbmUgUnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBydWxlQ29s
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJl
c3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKaW5kZXggZjNmYzliYjkxYWZlNDMyYTVmOTJiZDI0
Njg3YmU0ZjUyNDk0YzU4Yi4uYTVhZjRhZmFhNDdjMTBlNTEyYjllZDQwODdjODU0ZTZlYjZjNzdj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcApAQCAtNDczLDEzICs0NzMsMTIg
QEAgc3RhdGljIGJvb2wgaXNDb21waWxlZFNlbGVjdG9yKFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0
dXMgY29tcGlsYXRpb25TdGF0dXMpCiAgICAgcmV0dXJuIGNvbXBpbGF0aW9uU3RhdHVzID09IFNl
bGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlciB8fCBjb21waWxh
dGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJX
aXRoQ2hlY2tpbmdDb250ZXh0OwogfQogCi1ib29sIFNlbGVjdG9yRGF0YUxpc3Q6OmNvbXBpbGVT
ZWxlY3Rvcihjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSwgY29uc3QgQ29udGFpbmVy
Tm9kZSYgcm9vdE5vZGUpCitib29sIFNlbGVjdG9yRGF0YUxpc3Q6OmNvbXBpbGVTZWxlY3Rvcihj
b25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSkKIHsKICAgICBpZiAoc2VsZWN0b3JEYXRh
LmNvbXBpbGF0aW9uU3RhdHVzICE9IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6Ok5vdENvbXBp
bGVkKQogICAgICAgICByZXR1cm4gaXNDb21waWxlZFNlbGVjdG9yKHNlbGVjdG9yRGF0YS5jb21w
aWxhdGlvblN0YXR1cyk7CiAKLSAgICBKU0M6OlZNJiB2bSA9IHJvb3ROb2RlLmRvY3VtZW50KCku
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT52bSgpOwotICAgIHNlbGVjdG9yRGF0YS5jb21waWxh
dGlvblN0YXR1cyA9IFNlbGVjdG9yQ29tcGlsZXI6OmNvbXBpbGVTZWxlY3RvcihzZWxlY3RvckRh
dGEuc2VsZWN0b3IsICZ2bSwgU2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb250ZXh0OjpRdWVy
eVNlbGVjdG9yLCBzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3RvckNvZGVSZWYpOworICAgIHNl
bGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyA9IFNlbGVjdG9yQ29tcGlsZXI6OmNvbXBpbGVT
ZWxlY3RvcihzZWxlY3RvckRhdGEuc2VsZWN0b3IsIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9y
Q29udGV4dDo6UXVlcnlTZWxlY3Rvciwgc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3JDb2Rl
UmVmKTsKICAgICByZXR1cm4gaXNDb21waWxlZFNlbGVjdG9yKHNlbGVjdG9yRGF0YS5jb21waWxh
dGlvblN0YXR1cyk7CiB9CiAKQEAgLTQ5OSw3ICs0OTgsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQg
U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5h
bWUgUwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoQ1NTX1NFTEVD
VE9SX0pJVCkKLSAgICAgICAgaWYgKGNvbXBpbGVTZWxlY3RvcihzZWxlY3RvckRhdGEsICpzZWFy
Y2hSb290Tm9kZSkpCisgICAgICAgIGlmIChjb21waWxlU2VsZWN0b3Ioc2VsZWN0b3JEYXRhKSkK
ICAgICAgICAgICAgIGdvdG8gQ29tcGlsZWRTaW5nbGVDYXNlOwogI2VuZGlmIC8vIEVOQUJMRShD
U1NfU0VMRUNUT1JfSklUKQogICAgICAgICBnb3RvIFNpbmdsZVNlbGVjdG9yQ2FzZTsKQEAgLTUx
Myw3ICs1MTIsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0
ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwogICAgICAgICBjb25zdCBTZWxl
Y3RvckRhdGEmIHNlbGVjdG9yRGF0YSA9IG1fc2VsZWN0b3JzLmZpcnN0KCk7CiAgICAgICAgIEFT
U0VSVChzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlv
blN0YXR1czo6Tm90Q29tcGlsZWQpOwogICAgICAgICBBU1NFUlQobV9tYXRjaFR5cGUgPT0gQ29t
cGlsYWJsZVNpbmdsZSB8fCBtX21hdGNoVHlwZSA9PSBDb21waWxhYmxlU2luZ2xlV2l0aFJvb3RG
aWx0ZXIpOwotICAgICAgICBpZiAoY29tcGlsZVNlbGVjdG9yKHNlbGVjdG9yRGF0YSwgKnNlYXJj
aFJvb3ROb2RlKSkgeworICAgICAgICBpZiAoY29tcGlsZVNlbGVjdG9yKHNlbGVjdG9yRGF0YSkp
IHsKICAgICAgICAgICAgIGlmIChtX21hdGNoVHlwZSA9PSBDb21waWxhYmxlU2luZ2xlKSB7CiAg
ICAgICAgICAgICAgICAgbV9tYXRjaFR5cGUgPSBDb21waWxlZFNpbmdsZTsKICAgICAgICAgICAg
ICAgICBnb3RvIENvbXBpbGVkU2luZ2xlQ2FzZTsKQEAgLTU4MSw3ICs1ODAsNyBAQCBBTFdBWVNf
SU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290
Tm9kZSwgdHlwZW5hbWUgUwogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogICAgICAgICB7
CiAgICAgICAgIGZvciAoYXV0byYgc2VsZWN0b3IgOiBtX3NlbGVjdG9ycykgewotICAgICAgICAg
ICAgaWYgKCFjb21waWxlU2VsZWN0b3Ioc2VsZWN0b3IsICpzZWFyY2hSb290Tm9kZSkpIHsKKyAg
ICAgICAgICAgIGlmICghY29tcGlsZVNlbGVjdG9yKHNlbGVjdG9yKSkgewogICAgICAgICAgICAg
ICAgIG1fbWF0Y2hUeXBlID0gTXVsdGlwbGVTZWxlY3Rvck1hdGNoOwogICAgICAgICAgICAgICAg
IGdvdG8gTXVsdGlwbGVTZWxlY3Rvck1hdGNoOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmgKaW5kZXggOGMxYjBlZDlhZTA0ZmJjYThhOTkwNjEyYmQ4MWZiNTUxYWFl
ZGZkMy4uMTk3YjEwZDcwZDMzZGZmZDQzMTgyMmFlZjUzMDdlZGViYWMyOGFhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VsZWN0b3JRdWVyeS5oCkBAIC04Nyw3ICs4Nyw3IEBAIGNsYXNzIFNlbGVjdG9yRGF0
YUxpc3QgewogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQg
ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUm
IHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBj
b25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0
b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRhaW5l
ck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2Vs
ZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0OjpPdXRwdXRUeXBlJiwgY29uc3QgU2VsZWN0b3JEYXRhJikgY29uc3Q7CiAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlQ29tcGlsZWRTaW5n
bGVNdWx0aVNlbGVjdG9yRGF0YShjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5h
bWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7Ci0gICAgc3RhdGljIGJv
b2wgY29tcGlsZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yRGF0YSYsIGNvbnN0IENvbnRhaW5lck5v
ZGUmIHJvb3ROb2RlKTsKKyAgICBzdGF0aWMgYm9vbCBjb21waWxlU2VsZWN0b3IoY29uc3QgU2Vs
ZWN0b3JEYXRhJik7CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAKICAgICBW
ZWN0b3I8U2VsZWN0b3JEYXRhPiBtX3NlbGVjdG9yczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>