<?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>202024</bug_id>
          
          <creation_ts>2019-09-19 20:34:07 -0700</creation_ts>
          <short_desc>Document no longer needs to store a SessionID</short_desc>
          <delta_ts>2019-09-20 16:00:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572622</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-19 20:34:07 -0700</bug_when>
    <thetext>Document no longer needs to store a SessionID, now that we have a single session per WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572623</commentid>
    <comment_count>1</comment_count>
      <attachid>379201</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-19 20:35:46 -0700</bug_when>
    <thetext>Created attachment 379201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572829</commentid>
    <comment_count>2</comment_count>
      <attachid>379201</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-09-20 13:10:18 -0700</bug_when>
    <thetext>Comment on attachment 379201
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572893</commentid>
    <comment_count>3</comment_count>
      <attachid>379201</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-20 14:36:04 -0700</bug_when>
    <thetext>Comment on attachment 379201
Patch

Clearing flags on attachment: 379201

Committed r250153: &lt;https://trac.webkit.org/changeset/250153&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572894</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-20 14:36:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572895</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-20 14:37:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/55572582&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379201</attachid>
            <date>2019-09-19 20:35:46 -0700</date>
            <delta_ts>2019-09-20 14:36:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202024-20190919203544.patch</filename>
            <type>text/plain</type>
            <size>59748</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFlMjU4YWNlMTc5Njhh
N2I4YjIzOWIxYTgyODY4ZTY1ZWYxZDlhNy4uZjExMWVkM2QxMDkxY2Q2ZWZkN2Y1ZWU3OGE2YzQ5
MDgzY2Q1OWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAorMjAxOS0wOS0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERvY3VtZW50IG5vIGxvbmdl
ciBuZWVkcyB0byBzdG9yZSBhIFNlc3Npb25JRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRG9jdW1lbnQgbm8gbG9uZ2VyIG5lZWRzIHRvIHN0b3JlIGEg
U2Vzc2lvbklELCBub3cgdGhhdCB3ZSBoYXZlIGEgc2luZ2xlCisgICAgICAgIHNlc3Npb24gcGVy
IFdlYlByb2Nlc3MuIEl0IGNhbiBzaW1wbHkgZ2V0IGl0cyBzZXNzaW9uSUQgZnJvbSBpdHMgUGFn
ZS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3BlblNvY2tldFN0cmVhbSk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlWE1MRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
SW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUlt
cGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBs
ZW1lbnRhdGlvbi5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb25SZW5kZXJlZFBsYWNlaG9sZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjplbnN1cmVUZW1wbGF0ZURvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojpsb2dnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZExvZ01lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1hNTERvY3VtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TERvY3VtZW50OjpjcmVhdGVYSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudDo6
WE1MRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZUUERpcmVjdG9yeURvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9y
RWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmlidXRpb24gY29uc3QpOgorICAgICAgICAqIGh0bWwv
SFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6Y3JlYXRl
U3ludGhlc2l6ZWREb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OkhU
TUxEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmNsb25lRG9jdW1l
bnRXaXRob3V0Q2hpbGRyZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9JbWFnZURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRG9jdW1lbnQ6Oklt
YWdlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvTWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYURvY3VtZW50OjpNZWRpYURvY3VtZW50KToKKyAgICAgICAgKiBodG1s
L01lZGlhRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50OjpQbHVnaW5Eb2N1bWVudCk6CisgICAgICAg
ICogaHRtbC9UZXh0RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50
OjpUZXh0RG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvVGV4dERvY3VtZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01Q
YXRjaFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvQ29va2llSmFyLmg6CisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50V3JpdGVyOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL1NpbmtEb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW5rRG9jdW1lbnQ6OlNpbmtEb2N1bWVudCk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlOjpzZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6dmFyeUhlYWRlclZhbHVlc01hdGNoKToKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRG9j
dW1lbnQ6OmZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdG
b250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0ZvbnQ6OmVuc3VyZUN1c3RvbUZv
bnREYXRhKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6Y29uZmlndXJlTG9nZ2luZ0NoYW5uZWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Q2FjaGVWYWxpZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhl
YWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6dmVyaWZ5VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5oOgorICAgICAgICAq
IHN2Zy9TVkdEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudDo6U1ZH
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRX
aXRob3V0Q2hpbGRyZW4gY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNvbnRhaW5lcjo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkIGNvbnN0KToKKyAg
ICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHhtbC9ET01QYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NUGFyc2VyOjpwYXJzZUZyb21TdHJpbmcpOgorICAgICAg
ICAqIHhtbC9ET01QYXJzZXIuaDoKKyAgICAgICAgKiB4bWwvRE9NUGFyc2VyLmlkbDoKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OmNyZWF0ZURvY3VtZW50RnJv
bVNvdXJjZSk6CisKIDIwMTktMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSBkb2VzIG5vdCBuZWVkIGEgU2Vzc2lvbklECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDIwYmY1OWMzZjVjNzQyMTY1NDU1YTAyNTAyYTlkM2VjNTgwM2JlOWMuLjFjZGQ4
MTQyMzhmNWZlNDkwODU0NzA4OTIxMmViMzI2MWI1ZThlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTktMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEb2N1bWVudCBubyBsb25nZXIgbmVlZHMgdG8gc3RvcmUgYSBTZXNzaW9uSUQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjAyNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvY3VtZW50IG5vIGxv
bmdlciBuZWVkcyB0byBzdG9yZSBhIFNlc3Npb25JRCwgbm93IHRoYXQgd2UgaGF2ZSBhIHNpbmds
ZQorICAgICAgICBzZXNzaW9uIHBlciBXZWJQcm9jZXNzLiBJdCBjYW4gc2ltcGx5IGdldCBpdHMg
c2Vzc2lvbklEIGZyb20gaXRzIFBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkNvb2tpZUphci5oOgorCiAyMDE5LTA5LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUgZG9lcyBub3QgbmVlZCBhIFNl
c3Npb25JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA3ZWEzMzJiZDU0OGQ3NTgwNTY3OGRlMGUzMWZh
OTkzMDA2NWY3MWM1Li5lMGYzMWE3MDQzMjFlMGQ5MWE3MTI1NDU0NzJhMzc0ZjNmZDgwNmYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcApAQCAtNzYsNyArNzYsNyBAQCBSZWY8UlRDUGVlckNvbm5lY3Rpb24+
IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dAogICAgICAgICBwZWVyQ29ubmVjdGlvbi0+bV9wZW5kaW5nQWN0aXZpdHkgPSBwZWVyQ29ubmVj
dGlvbi0+bWFrZVBlbmRpbmdBY3Rpdml0eShwZWVyQ29ubmVjdGlvbi5nZXQoKSk7CiAgICAgICAg
IGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CiAgICAgICAgICAgICBwZWVyQ29u
bmVjdGlvbi0+cmVnaXN0ZXJUb0NvbnRyb2xsZXIocGFnZS0+cnRjQ29udHJvbGxlcigpKTsKLSAg
ICAgICAgICAgIHBhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuc2V0RW5hYmxlTG9nZ2luZyghZG9j
dW1lbnQuc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSk7CisgICAgICAgICAgICBwYWdlLT5saWJX
ZWJSVENQcm92aWRlcigpLnNldEVuYWJsZUxvZ2dpbmcoIXBhZ2UtPnNlc3Npb25JRCgpLmlzRXBo
ZW1lcmFsKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBwZWVyQ29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsLmNwcAppbmRleCBhMDdhODc2M2FmYjk2OWI0MjA3MGJjNDlhODYyMzliNzgzZDZlYmJj
Li5kYmIxYjQ1NDkwYzZmZjY3M2RkZWRlNmZhN2JlYjQ4NTQ2N2ZhNDAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CkBAIC0yNzEsOCArMjcxLDggQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRPcGVuU29ja2V0
U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlKQogICAgIH0KICAgICBhdXRvIGhhbmRz
aGFrZU1lc3NhZ2UgPSBtX2hhbmRzaGFrZS0+Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpOwogICAg
IE9wdGlvbmFsPENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5PiBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRQcm94eTsKLSAgICBpZiAobV9hbGxvd0Nvb2tpZXMpCi0gICAgICAgIGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFByb3h5ID0gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRQcm94eSgqbV9kb2N1bWVudCwgbV9oYW5kc2hha2UtPmh0dHBVUkxGb3JBdXRoZW50aWNhdGlv
bkFuZENvb2tpZXMoKSk7CisgICAgaWYgKG1fYWxsb3dDb29raWVzICYmIG1fZG9jdW1lbnQtPnBh
Z2UoKSkKKyAgICAgICAgY29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgPSBDb29raWVKYXI6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KG1fZG9jdW1lbnQtPnBhZ2UoKS0+c2Vzc2lv
bklEKCksICptX2RvY3VtZW50LCBtX2hhbmRzaGFrZS0+aHR0cFVSTEZvckF1dGhlbnRpY2F0aW9u
QW5kQ29va2llcygpKTsKICAgICBoYW5kbGUuc2VuZEhhbmRzaGFrZShXVEZNb3ZlKGhhbmRzaGFr
ZU1lc3NhZ2UpLCBXVEZNb3ZlKGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKGJvb2wgc3VjY2VzcywgYm9vbCBkaWRB
Y2Nlc3NTZWN1cmVDb29raWVzKSB7CiAgICAgICAgIGlmICghc3VjY2VzcykKICAgICAgICAgICAg
IGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBoYW5kc2hha2UuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDUzYzI3MjgzYWY2YmNlNjdkYmFhZTBl
ODA0YmQ5NWQ1MzIyN2Q1ZTQuLjYyMjQ3ZTdkYTY1YjU1YTk3OTIzZjBiNjQ1Njk0MWQ1ZGVkZTkx
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0yNzUwLDgg
KzI3NTAsMTAgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAg
IGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q2FyZXRC
cm93c2luZ0VuYWJsZWRBdHRyaWJ1dGVdKQogICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBu
dW1iZXJXaXRoQm9vbDptX29iamVjdC0+Y2FyZXRCcm93c2luZ0VuYWJsZWQoKV07CiAgICAgICAg
IGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5V2ViU2Vz
c2lvbklEQXR0cmlidXRlXSkgewotICAgICAgICAgICAgaWYgKERvY3VtZW50KiBkb2MgPSBtX29i
amVjdC0+dG9wRG9jdW1lbnQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51
bWJlcldpdGhVbnNpZ25lZExvbmdMb25nOmRvYy0+c2Vzc2lvbklEKCkudG9VSW50NjQoKV07Cisg
ICAgICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBtX29iamVjdC0+dG9wRG9jdW1lbnQoKSkg
eworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRMb25n
TG9uZzpwYWdlLT5zZXNzaW9uSUQoKS50b1VJbnQ2NCgpXTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
CmluZGV4IDUwMzBiN2ViYzc2NDQ5M2NiZmYyNzE3OTJhZGVkNjY2ODM1ZGI5YmUuLjE0NjZlYWFl
MmUxNjJkMmVmODdhOTdhZDE3ZmZhZmIxMjc0ODYwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmNwcApAQCAtNzcsMTggKzc3LDE4IEBAIEV4Y2VwdGlvbk9yPFJlZjxE
b2N1bWVudFR5cGU+PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnRUeXBlKGNvbnN0
IFN0cmluCiAgICAgcmV0dXJuIERvY3VtZW50VHlwZTo6Y3JlYXRlKG1fZG9jdW1lbnQsIHF1YWxp
ZmllZE5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVmPFhN
TERvY3VtZW50PiBjcmVhdGVYTUxEb2N1bWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJKQorc3RhdGljIGlubGluZSBSZWY8WE1MRG9jdW1lbnQ+
IGNyZWF0ZVhNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJKQogewogICAgIGlm
IChuYW1lc3BhY2VVUkkgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkKLSAgICAgICAgcmV0
dXJuIFNWR0RvY3VtZW50OjpjcmVhdGUoc2Vzc2lvbklELCBudWxscHRyLCBVUkwoKSk7CisgICAg
ICAgIHJldHVybiBTVkdEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIFVSTCgpKTsKICAgICBpZiAo
bmFtZXNwYWNlVVJJID09IEhUTUxOYW1lczo6eGh0bWxOYW1lc3BhY2VVUkkpCi0gICAgICAgIHJl
dHVybiBYTUxEb2N1bWVudDo6Y3JlYXRlWEhUTUwoc2Vzc2lvbklELCBudWxscHRyLCBVUkwoKSk7
Ci0gICAgcmV0dXJuIFhNTERvY3VtZW50OjpjcmVhdGUoc2Vzc2lvbklELCBudWxscHRyLCBVUkwo
KSk7CisgICAgICAgIHJldHVybiBYTUxEb2N1bWVudDo6Y3JlYXRlWEhUTUwobnVsbHB0ciwgVVJM
KCkpOworICAgIHJldHVybiBYTUxEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIFVSTCgpKTsKIH0K
IAogRXhjZXB0aW9uT3I8UmVmPFhNTERvY3VtZW50Pj4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0
ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxp
ZmllZE5hbWUsIERvY3VtZW50VHlwZSogZG9jdW1lbnRUeXBlKQogewotICAgIGF1dG8gZG9jdW1l
bnQgPSBjcmVhdGVYTUxEb2N1bWVudChtX2RvY3VtZW50LnNlc3Npb25JRCgpLCBuYW1lc3BhY2VV
UkkpOworICAgIGF1dG8gZG9jdW1lbnQgPSBjcmVhdGVYTUxEb2N1bWVudChuYW1lc3BhY2VVUkkp
OwogICAgIGRvY3VtZW50LT5zZXRDb250ZXh0RG9jdW1lbnQobV9kb2N1bWVudC5jb250ZXh0RG9j
dW1lbnQoKSk7CiAgICAgZG9jdW1lbnQtPnNldFNlY3VyaXR5T3JpZ2luUG9saWN5KG1fZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7CiAKQEAgLTEyMCw3ICsxMjAsNyBAQCBSZWY8Q1NT
U3R5bGVTaGVldD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUNTU1N0eWxlU2hlZXQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgUwogCiBSZWY8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7Ci0gICAgYXV0byBkb2N1
bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKG1fZG9jdW1lbnQuc2Vzc2lvbklEKCksIG51bGxw
dHIsIFVSTCgpKTsKKyAgICBhdXRvIGRvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVs
bHB0ciwgVVJMKCkpOwogICAgIGRvY3VtZW50LT5vcGVuKCk7CiAgICAgZG9jdW1lbnQtPndyaXRl
KG51bGxwdHIsIHsgIjwhZG9jdHlwZSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48L2Jv
ZHk+PC9odG1sPiJfcyB9KTsKICAgICBpZiAoIXRpdGxlLmlzTnVsbCgpKSB7CkBAIC0xMzQsNyAr
MTM0LDcgQEAgUmVmPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUhUTUxE
b2N1bWVudChjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIHJldHVybiBkb2N1bWVudDsKIH0KIAot
UmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZSwgY29uc3Qg
VVJMJiB1cmwpCitSZWY8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVu
dChjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7CiAg
ICAgLy8gRklYTUU6IEluZWxlZ2FudCB0byBoYXZlIHRoaXMgaGVyZSBqdXN0IGJlY2F1c2UgdGhp
cyBpcyB0aGUgaG9tZSBvZiBET00gQVBJcyBmb3IgY3JlYXRpbmcgZG9jdW1lbnRzLgogICAgIC8v
IFRoaXMgaXMgaW50ZXJuYWwsIG5vdCBhIERPTSBBUEkuIE1heWJlIHdlIHNob3VsZCBwdXQgaXQg
aW4gYSBuZXcgY2xhc3MgY2FsbGVkIERvY3VtZW50RmFjdG9yeSwKQEAgLTE0MiwxMSArMTQyLDEx
IEBAIFJlZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKIAogICAgIC8vIFBsdWctaW5zIGNhbm5vdCB0YWtl
IG92ZXIgZm9yIEhUTUwsIFhIVE1MLCBwbGFpbiB0ZXh0LCBvciBub24tUERGIGltYWdlcy4KICAg
ICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInRleHQvaHRtbCIpKQot
ICAgICAgICByZXR1cm4gSFRNTERvY3VtZW50OjpjcmVhdGUoc2Vzc2lvbklELCBmcmFtZSwgdXJs
KTsKKyAgICAgICAgcmV0dXJuIEhUTUxEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwogICAg
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAiYXBwbGljYXRpb24veGh0
bWwreG1sIikpCi0gICAgICAgIHJldHVybiBYTUxEb2N1bWVudDo6Y3JlYXRlWEhUTUwoc2Vzc2lv
bklELCBmcmFtZSwgdXJsKTsKKyAgICAgICAgcmV0dXJuIFhNTERvY3VtZW50OjpjcmVhdGVYSFRN
TChmcmFtZSwgdXJsKTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlw
ZSwgInRleHQvcGxhaW4iKSkKLSAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudDo6Y3JlYXRlKHNl
c3Npb25JRCwgZnJhbWUsIHVybCk7CisgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0
ZShmcmFtZSwgdXJsKTsKICAgICBib29sIGlzSW1hZ2UgPSBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1
cHBvcnRlZEltYWdlTUlNRVR5cGUodHlwZSk7CiAgICAgaWYgKGZyYW1lICYmIGlzSW1hZ2UgJiYg
IU1JTUVUeXBlUmVnaXN0cnk6OmlzUERGT3JQb3N0U2NyaXB0TUlNRVR5cGUodHlwZSkpCiAgICAg
ICAgIHJldHVybiBJbWFnZURvY3VtZW50OjpjcmVhdGUoKmZyYW1lLCB1cmwpOwpAQCAtMTYwLDEy
ICsxNjAsMTIgQEAgUmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1l
bnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdAogICAgIHBhcmFtZXRlcnMudHlwZSA9
IENvbnRlbnRUeXBlIHsgdHlwZSB9OwogICAgIHBhcmFtZXRlcnMudXJsID0gdXJsOwogICAgIGlm
IChNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpKQotICAgICAgICByZXR1cm4g
TWVkaWFEb2N1bWVudDo6Y3JlYXRlKHNlc3Npb25JRCwgZnJhbWUsIHVybCk7CisgICAgICAgIHJl
dHVybiBNZWRpYURvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHVybCk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShGVFBESVIpCiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHR5cGUs
ICJhcHBsaWNhdGlvbi94LWZ0cC1kaXJlY3RvcnkiKSkKLSAgICAgICAgcmV0dXJuIEZUUERpcmVj
dG9yeURvY3VtZW50OjpjcmVhdGUoc2Vzc2lvbklELCBmcmFtZSwgdXJsKTsKKyAgICAgICAgcmV0
dXJuIEZUUERpcmVjdG9yeURvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHVybCk7CiAjZW5kaWYKIAog
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuc2hvdWxkQWx3YXlzVXNl
UGx1Z2luRG9jdW1lbnQodHlwZSkpCkBAIC0xODQsMTIgKzE4NCwxMiBAQCBSZWY8RG9jdW1lbnQ+
IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0CiAgICAgaWYgKGZyYW1lICYmIGlzSW1hZ2UpCiAgICAgICAgIHJldHVybiBJbWFn
ZURvY3VtZW50OjpjcmVhdGUoKmZyYW1lLCB1cmwpOwogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1RleHRNSU1FVHlwZSh0eXBlKSkKLSAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudDo6Y3Jl
YXRlKHNlc3Npb25JRCwgZnJhbWUsIHVybCk7CisgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6
OmNyZWF0ZShmcmFtZSwgdXJsKTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UodHlwZSwgImltYWdlL3N2Zyt4bWwiKSkKLSAgICAgICAgcmV0dXJuIFNWR0RvY3VtZW50Ojpj
cmVhdGUoc2Vzc2lvbklELCBmcmFtZSwgdXJsKTsKKyAgICAgICAgcmV0dXJuIFNWR0RvY3VtZW50
OjpjcmVhdGUoZnJhbWUsIHVybCk7CiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzWE1MTUlN
RVR5cGUodHlwZSkpCi0gICAgICAgIHJldHVybiBYTUxEb2N1bWVudDo6Y3JlYXRlKHNlc3Npb25J
RCwgZnJhbWUsIHVybCk7Ci0gICAgcmV0dXJuIEhUTUxEb2N1bWVudDo6Y3JlYXRlKHNlc3Npb25J
RCwgZnJhbWUsIHVybCk7CisgICAgICAgIHJldHVybiBYTUxEb2N1bWVudDo6Y3JlYXRlKGZyYW1l
LCB1cmwpOworICAgIHJldHVybiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAppbmRleCAzNzU3ZjM3MzUx
ZTdmMjdmNDYzOTQ3Mjk0NDJjYzdlZjlmZjFkNmE1Li40Y2RjYWNmMzE2YThjZGQ3Zjc1YjYxNjk0
ZWM5ZDUwNGZiZGEwMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaApA
QCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaGFzRmVhdHVyZSgpIHsg
cmV0dXJuIHRydWU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPENTU1N0eWxlU2hl
ZXQ+IGNyZWF0ZUNTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiBtZWRpYSk7CiAKLSAgICBzdGF0aWMgUmVmPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChQQUw6
OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgRnJhbWUqLCBjb25zdCBVUkwmKTsK
KyAgICBzdGF0aWMgUmVmPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIE1J
TUVUeXBlLCBGcmFtZSosIGNvbnN0IFVSTCYpOwogCiBwcml2YXRlOgogICAgIERvY3VtZW50JiBt
X2RvY3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTY4NDNiMTlmMjZkMGYwNmZj
YzNjY2RmZTkyNDFmNGNmODJiYzc1MS4uOGVkMmY4ODE4YTU3YmRkOWMwY2NmMjZlYmE4Zjc2YzJm
Njc5MDA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MTEsNyArNTExLDcgQEAgc3Rh
dGljIGlubGluZSBpbnQgY3VycmVudE9yaWVudGF0aW9uKEZyYW1lKiBmcmFtZSkKICAgICByZXR1
cm4gMDsKIH0KIAotRG9jdW1lbnQ6OkRvY3VtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
RnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1
bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncykKK0RvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJh
bWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1bWVudENsYXNzZXMsIHVuc2lnbmVkIGNv
bnN0cnVjdGlvbkZsYWdzKQogICAgIDogQ29udGFpbmVyTm9kZSgqdGhpcywgQ3JlYXRlRG9jdW1l
bnQpCiAgICAgLCBUcmVlU2NvcGUoKnRoaXMpCiAgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIoZnJhbWUpCkBAIC01NjEsMTIgKzU2MSw5IEBAIERvY3VtZW50OjpEb2N1bWVudChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIHVuc2lnCiAg
ICAgLCBtX2lzU3ludGhlc2l6ZWQoY29uc3RydWN0aW9uRmxhZ3MgJiBTeW50aGVzaXplZCkKICAg
ICAsIG1faXNOb25SZW5kZXJlZFBsYWNlaG9sZGVyKGNvbnN0cnVjdGlvbkZsYWdzICYgTm9uUmVu
ZGVyZWRQbGFjZWhvbGRlcikKICAgICAsIG1fb3JpZW50YXRpb25Ob3RpZmllcihjdXJyZW50T3Jp
ZW50YXRpb24oZnJhbWUpKQotICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9p
ZGVudGlmaWVyKERvY3VtZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fdW5kb01h
bmFnZXIoVW5kb01hbmFnZXI6OmNyZWF0ZSgqdGhpcykpCiB7Ci0gICAgQVNTRVJUKCFmcmFtZSB8
fCBmcmFtZS0+c2Vzc2lvbklEKCkgPT0gbV9zZXNzaW9uSUQpOwotCiAgICAgYXV0byBhZGRSZXN1
bHQgPSBhbGxEb2N1bWVudHNNYXAoKS5hZGQobV9pZGVudGlmaWVyLCB0aGlzKTsKICAgICBBU1NF
UlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogCkBAIC01OTcsNyAr
NTk0LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnJh
bWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWcKIAogUmVmPERvY3VtZW50PiBEb2N1bWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0RG9jdW1lbnQpCiB7Ci0gICAgYXV0byBkb2N1bWVu
dCA9IGFkb3B0UmVmKCpuZXcgRG9jdW1lbnQoY29udGV4dERvY3VtZW50LnNlc3Npb25JRCgpLCBu
dWxscHRyLCBVUkwoKSkpOworICAgIGF1dG8gZG9jdW1lbnQgPSBhZG9wdFJlZigqbmV3IERvY3Vt
ZW50KG51bGxwdHIsIFVSTCgpKSk7CiAgICAgZG9jdW1lbnQtPnNldENvbnRleHREb2N1bWVudChj
b250ZXh0RG9jdW1lbnQpOwogICAgIGRvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpblBvbGljeShj
b250ZXh0RG9jdW1lbnQuc2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7CiAgICAgcmV0dXJuIGRvY3Vt
ZW50OwpAQCAtNjA1LDcgKzYwMiw3IEBAIFJlZjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCYgY29udGV4dERvY3VtZW50KQogCiBSZWY8RG9jdW1lbnQ+IERvY3VtZW50OjpjcmVh
dGVOb25SZW5kZXJlZFBsYWNlaG9sZGVyKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRG9jdW1lbnQoZnJhbWUuc2Vzc2lvbklEKCksICZm
cmFtZSwgdXJsLCBEZWZhdWx0RG9jdW1lbnRDbGFzcywgTm9uUmVuZGVyZWRQbGFjZWhvbGRlcikp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERvY3VtZW50KCZmcmFtZSwgdXJsLCBEZWZhdWx0
RG9jdW1lbnRDbGFzcywgTm9uUmVuZGVyZWRQbGFjZWhvbGRlcikpOwogfQogCiBEb2N1bWVudDo6
fkRvY3VtZW50KCkKQEAgLTM4ODEsMTAgKzM4NzgsMTAgQEAgUmVmPERvY3VtZW50PiBEb2N1bWVu
dDo6Y2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgaWYgKGlzWE1M
RG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoaXNYSFRNTERvY3VtZW50KCkpCi0gICAgICAgICAg
ICByZXR1cm4gWE1MRG9jdW1lbnQ6OmNyZWF0ZVhIVE1MKHNlc3Npb25JRCgpLCBudWxscHRyLCB1
cmwoKSk7Ci0gICAgICAgIHJldHVybiBYTUxEb2N1bWVudDo6Y3JlYXRlKHNlc3Npb25JRCgpLCBu
dWxscHRyLCB1cmwoKSk7CisgICAgICAgICAgICByZXR1cm4gWE1MRG9jdW1lbnQ6OmNyZWF0ZVhI
VE1MKG51bGxwdHIsIHVybCgpKTsKKyAgICAgICAgcmV0dXJuIFhNTERvY3VtZW50OjpjcmVhdGUo
bnVsbHB0ciwgdXJsKCkpOwogICAgIH0KLSAgICByZXR1cm4gY3JlYXRlKHNlc3Npb25JRCgpLCB1
cmwoKSk7CisgICAgcmV0dXJuIGNyZWF0ZSh1cmwoKSk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNs
b25lRGF0YUZyb21Eb2N1bWVudChjb25zdCBEb2N1bWVudCYgb3RoZXIpCkBAIC01MDY4LDkgKzUw
NjUsMTAgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29u
c3QKICAgICByZXR1cm4gY29tcGxldGVVUkwodXJsLCBtX2Jhc2VVUkwpOwogfQogCi1QQUw6OlNl
c3Npb25JRCBEb2N1bWVudDo6c2Vzc2lvbklEKCkgY29uc3QKK09wdGlvbmFsPFBBTDo6U2Vzc2lv
bklEPiBEb2N1bWVudDo6c2Vzc2lvbklEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9zZXNzaW9u
SUQ7CisgICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSA/IG1h
a2VPcHRpb25hbChwYWdlLT5zZXNzaW9uSUQoKSkgOiBXVEY6Om51bGxvcHQ7CiB9CiAKIHZvaWQg
RG9jdW1lbnQ6OnNldFBhZ2VDYWNoZVN0YXRlKFBhZ2VDYWNoZVN0YXRlIHN0YXRlKQpAQCAtNTI3
MCw3ICs1MjY4LDYgQEAgdm9pZCBEb2N1bWVudDo6c3RvcmFnZUJsb2NraW5nU3RhdGVEaWRDaGFu
Z2UoKQogCiB2b2lkIERvY3VtZW50Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZURpZENoYW5nZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7CiAg
ICAgaWYgKG1fbG9nZ2VyKQogICAgICAgICBtX2xvZ2dlci0+c2V0RW5hYmxlZCh0aGlzLCBzZXNz
aW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkpOwogCkBAIC02ODkzLDkgKzY4OTAsOSBA
QCBEb2N1bWVudCYgRG9jdW1lbnQ6OmVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKQogICAgICAgICBy
ZXR1cm4gY29uc3RfY2FzdDxEb2N1bWVudCY+KCpkb2N1bWVudCk7CiAKICAgICBpZiAoaXNIVE1M
RG9jdW1lbnQoKSkKLSAgICAgICAgbV90ZW1wbGF0ZURvY3VtZW50ID0gSFRNTERvY3VtZW50Ojpj
cmVhdGUoc2Vzc2lvbklEKCksIG51bGxwdHIsIFdURjo6YmxhbmtVUkwoKSk7CisgICAgICAgIG1f
dGVtcGxhdGVEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIFdURjo6Ymxh
bmtVUkwoKSk7CiAgICAgZWxzZQotICAgICAgICBtX3RlbXBsYXRlRG9jdW1lbnQgPSBjcmVhdGUo
c2Vzc2lvbklEKCksIFdURjo6YmxhbmtVUkwoKSk7CisgICAgICAgIG1fdGVtcGxhdGVEb2N1bWVu
dCA9IGNyZWF0ZShXVEY6OmJsYW5rVVJMKCkpOwogCiAgICAgbV90ZW1wbGF0ZURvY3VtZW50LT5z
ZXRDb250ZXh0RG9jdW1lbnQoY29udGV4dERvY3VtZW50KCkpOwogICAgIG1fdGVtcGxhdGVEb2N1
bWVudC0+c2V0VGVtcGxhdGVEb2N1bWVudEhvc3QodGhpcyk7IC8vIGJhbGFuY2VkIGluIGR0b3Iu
CkBAIC03NzkyLDcgKzc3ODksNyBAQCBMb2dnZXImIERvY3VtZW50Ojpsb2dnZXIoKQogewogICAg
IGlmICghbV9sb2dnZXIpIHsKICAgICAgICAgbV9sb2dnZXIgPSBMb2dnZXI6OmNyZWF0ZSh0aGlz
KTsKLSAgICAgICAgbV9sb2dnZXItPnNldEVuYWJsZWQodGhpcywgc2Vzc2lvbklEKCkuaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkpOworICAgICAgICBtX2xvZ2dlci0+c2V0RW5hYmxlZCh0aGlz
LCBzZXNzaW9uSUQoKSAmJiBzZXNzaW9uSUQoKS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkp
OwogICAgICAgICBtX2xvZ2dlci0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIH0KIApAQCAtODA0
MSwxNyArODAzOCwxOCBAQCB2b2lkIERvY3VtZW50OjpkaWRMb2dNZXNzYWdlKGNvbnN0IFdURkxv
Z0NoYW5uZWwmIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBWZQogICAgICAgICB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAoIXBhZ2UoKSkKKyAgICBhdXRvKiBwYWdlID0g
dGhpcy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKHNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpKTsKKyAgICBBU1NFUlQo
cGFnZS0+c2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkpOwogCiAgICAgYXV0
byBtZXNzYWdlU291cmNlID0gbWVzc2FnZVNvdXJjZUZvcldURkxvZ0NoYW5uZWwoY2hhbm5lbCk7
CiAgICAgaWYgKG1lc3NhZ2VTb3VyY2UgPT0gTWVzc2FnZVNvdXJjZTo6T3RoZXIpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fbG9nTWVzc2FnZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywg
bGV2ZWwsIG1lc3NhZ2VTb3VyY2UsIGxvZ01lc3NhZ2VzID0gV1RGTW92ZShsb2dNZXNzYWdlcyld
KCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghcGFnZSgpKQorICAgICAgICBpZiAoIXRoaXMtPnBh
Z2UoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIG1lc3NhZ2VMZXZlbCA9
IG1lc3NhZ2VMZXZlbEZyb21XVEZMb2dMZXZlbChsZXZlbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDYxNTVhZjdhOWQ4ODkwZTgzMTg0OTQ3Njc0OWM5MWVjY2Q2MDY3YmQuLjhjNDZkN2U3OGFj
ZDZhY2MxYTAwOGRhM2M5OGE0MWY2YzU0YTZjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0z
NTEsNyArMzUxLDcgQEAgY2xhc3MgRG9jdW1lbnQKICAgICAsIHB1YmxpYyBMb2dnZXI6Ok9ic2Vy
dmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERvY3VtZW50KTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPERvY3VtZW50PiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYp
OworICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShjb25zdCBVUkwmKTsKICAgICBzdGF0
aWMgUmVmPERvY3VtZW50PiBjcmVhdGVOb25SZW5kZXJlZFBsYWNlaG9sZGVyKEZyYW1lJiwgY29u
c3QgVVJMJik7CiAgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAK
QEAgLTY4Myw3ICs2ODMsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgY29t
cGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgVVJMIGNvbXBsZXRlVVJM
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYgYmFzZVVSTE92ZXJyaWRlKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBPcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbklEKCkgY29uc3Q7CiAK
ICAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogCkBAIC0xNTM4
LDcgKzE1MzgsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0cnVjdGlv
bkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0gMSA8PCAx
IH07Ci0gICAgRG9jdW1lbnQoUEFMOjpTZXNzaW9uSUQsIEZyYW1lKiwgY29uc3QgVVJMJiwgdW5z
aWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3Mg
PSAwKTsKKyAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVs
dERvY3VtZW50Q2xhc3MsIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CiAKICAgICB2
b2lkIGNsZWFyWE1MVmVyc2lvbigpIHsgbV94bWxWZXJzaW9uID0gU3RyaW5nKCk7IH0KIApAQCAt
MjAxOCw3ICsyMDE4LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgT3JpZW50YXRpb25Ob3Rp
ZmllciBtX29yaWVudGF0aW9uTm90aWZpZXI7Ci0gICAgbXV0YWJsZSBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKICAgICBtdXRhYmxlIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwogICAgIFJl
ZlB0cjxTdHJpbmdDYWxsYmFjaz4gbV9jb25zb2xlTWVzc2FnZUxpc3RlbmVyOwogCkBAIC0yMDgy
LDkgKzIwODEsOSBAQCBpbmxpbmUgQVhPYmplY3RDYWNoZSogRG9jdW1lbnQ6OmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpIGNvbnN0CiAgICAgcmV0dXJuIGV4aXN0aW5nQVhPYmplY3RDYWNoZVNsb3co
KTsKIH0KIAotaW5saW5lIFJlZjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNyZWF0ZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsKQoraW5saW5lIFJlZjxEb2N1bWVudD4gRG9j
dW1lbnQ6OmNyZWF0ZShjb25zdCBVUkwmIHVybCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEb2N1bWVudChzZXNzaW9uSUQsIG51bGxwdHIsIHVybCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERvY3VtZW50KG51bGxwdHIsIHVybCkpOwogfQogCiBpbmxpbmUgdm9pZCBEb2N1bWVu
dDo6aW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50LmgKaW5k
ZXggZDU2ZmViOTAzMWQzZTkwNTIxOWU5MzRiZDU2NDQyYjI1OGZhYzMwMy4uOTY0ZDlkN2M1NTI5
ZjEyYjQ0ZTU2MzJlY2ZkMjRmODc2ZTk0OGIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50LmgK
QEAgLTMyLDE5ICszMiwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBYTUxEb2N1bWVu
dCA6IHB1YmxpYyBEb2N1bWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYTUxEb2N1
bWVudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxYTUxEb2N1bWVudD4gY3JlYXRlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKKyAgICBz
dGF0aWMgUmVmPFhNTERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVy
bCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhNTERvY3VtZW50KHNlc3Np
b25JRCwgZnJhbWUsIHVybCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYTUxEb2N1
bWVudChmcmFtZSwgdXJsKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxYTUxEb2N1bWVudD4g
Y3JlYXRlWEhUTUwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGcmFtZSogZnJhbWUsIGNvbnN0
IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8WE1MRG9jdW1lbnQ+IGNyZWF0ZVhIVE1MKEZyYW1l
KiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBYTUxEb2N1bWVudChzZXNzaW9uSUQsIGZyYW1lLCB1cmwsIFhIVE1MRG9jdW1lbnRDbGFz
cykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYTUxEb2N1bWVudChmcmFtZSwgdXJs
LCBYSFRNTERvY3VtZW50Q2xhc3MpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBYTUxEb2N1
bWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1
cmwsIHVuc2lnbmVkIGRvY3VtZW50Q2xhc3NlcyA9IERlZmF1bHREb2N1bWVudENsYXNzKQotICAg
ICAgICA6IERvY3VtZW50KHNlc3Npb25JRCwgZnJhbWUsIHVybCwgWE1MRG9jdW1lbnRDbGFzcyB8
IGRvY3VtZW50Q2xhc3NlcykKKyAgICBYTUxEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgdXJsLCB1bnNpZ25lZCBkb2N1bWVudENsYXNzZXMgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcykK
KyAgICAgICAgOiBEb2N1bWVudChmcmFtZSwgdXJsLCBYTUxEb2N1bWVudENsYXNzIHwgZG9jdW1l
bnRDbGFzc2VzKQogICAgIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcAppbmRleCA1MWUxZDAwYmU2ZWY4ZTk1ZTIzOTQ4MDdlMjRjYzBkMGQ5
NWJlYTcxLi5mNTYzMDc0OWY0ZTJmYThiZmZmZDM3MTNhNWY2ZjExOWNiNjBiMmZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcApAQCAtNDIxLDggKzQy
MSw4IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgSFRN
TERvY3VtZW50UGFyc2VyOjpmaW5pc2goKTsKIH0KIAotRlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZU
UERpcmVjdG9yeURvY3VtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnJhbWUqIGZyYW1l
LCBjb25zdCBVUkwmIHVybCkKLSAgICA6IEhUTUxEb2N1bWVudChzZXNzaW9uSUQsIGZyYW1lLCB1
cmwpCitGVFBEaXJlY3RvcnlEb2N1bWVudDo6RlRQRGlyZWN0b3J5RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBVUkwmIHVybCkKKyAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgdXJsKQogewog
I2lmICFMT0dfRElTQUJMRUQKICAgICBMb2dGVFAuc3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6
Ok9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oCmluZGV4IGYx
Y2ZkOTM1MDEwMTI4ODUwYzM2ZjkwMmZhMTI0ZmYzNzkxYTBmOWEuLjljYzg3NmM4YzBkZGI0OTQ5
ZjhjYTk3NTkxNWI5NjE1ZTQ4ZTM3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RlRQRGlyZWN0b3J5RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmgKQEAgLTMxLDEzICszMSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBGVFBEaXJlY3RvcnlEb2N1bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRlRQRGlyZWN0b3J5RG9jdW1lbnQpOwogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8RlRQRGlyZWN0b3J5RG9jdW1lbnQ+IGNyZWF0ZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisgICAgc3RhdGlj
IFJlZjxGVFBEaXJlY3RvcnlEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJM
JiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGVFBEaXJlY3RvcnlE
b2N1bWVudChzZXNzaW9uSUQsIGZyYW1lLCB1cmwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRlRQRGlyZWN0b3J5RG9jdW1lbnQoZnJhbWUsIHVybCkpOwogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBGVFBEaXJlY3RvcnlEb2N1bWVudChQQUw6OlNlc3Npb25JRCwgRnJhbWUqLCBjb25z
dCBVUkwmKTsKKyAgICBGVFBEaXJlY3RvcnlEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwog
ICAgIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDUzNWUwZGNmMTM2
ZTAzZmIxNzk0ZThiYWM2NzFlY2U4OWY5OTFmZTkuLmE3YTkyMmE1YmYyNjM5ZDU2ODUwN2UwMzg3
MjEwMzgwMDQxNGVhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCkBAIC00MDcsNyArNDA3LDcgQEAgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiBIVE1M
QW5jaG9yRWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmlidXRpb24oKSBjb25zdAogICAgIHVzaW5n
IFNvdXJjZSA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOwogICAgIHVzaW5nIERlc3RpbmF0
aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbjsKIAotICAgIGlmIChkb2N1bWVu
dCgpLnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkKKyAgICBpZiAoIWRvY3VtZW50KCkuc2Vzc2lv
bklEKCkgfHwgZG9jdW1lbnQoKS5zZXNzaW9uSUQoKS0+aXNFcGhlbWVyYWwoKQogICAgICAgICB8
fCAhUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hZENsaWNrQXR0cmli
dXRpb25FbmFibGVkKCkKICAgICAgICAgfHwgIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCAxYzIxZmI2ODQzNmEzOWM2NDJkZTk0ZGMxODJj
ZGU3YjY1OTNmZjQ5Li45ODg3ZjViMDBjMWYxYmE1NGE4MTU0OGExNmUyNzE1OWEwNDcyN2ZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC04OSwxMSArODksMTEgQEAgdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVmPEhUTUxEb2N1bWVudD4gSFRNTERvY3VtZW50
OjpjcmVhdGVTeW50aGVzaXplZERvY3VtZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTERvY3VtZW50KGZyYW1lLnNlc3Npb25J
RCgpLCAmZnJhbWUsIHVybCwgSFRNTERvY3VtZW50Q2xhc3MsIFN5bnRoZXNpemVkKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTERvY3VtZW50KCZmcmFtZSwgdXJsLCBIVE1MRG9jdW1l
bnRDbGFzcywgU3ludGhlc2l6ZWQpKTsKIH0KIAotSFRNTERvY3VtZW50OjpIVE1MRG9jdW1lbnQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCBE
b2N1bWVudENsYXNzRmxhZ3MgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25G
bGFncykKLSAgICA6IERvY3VtZW50KHNlc3Npb25JRCwgZnJhbWUsIHVybCwgZG9jdW1lbnRDbGFz
c2VzIHwgSFRNTERvY3VtZW50Q2xhc3MsIGNvbnN0cnVjdGlvbkZsYWdzKQorSFRNTERvY3VtZW50
OjpIVE1MRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgRG9jdW1lbnRDbGFz
c0ZsYWdzIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MpCisgICAg
OiBEb2N1bWVudChmcmFtZSwgdXJsLCBkb2N1bWVudENsYXNzZXMgfCBIVE1MRG9jdW1lbnRDbGFz
cywgY29uc3RydWN0aW9uRmxhZ3MpCiB7CiAgICAgY2xlYXJYTUxWZXJzaW9uKCk7CiB9CkBAIC0y
NTIsNyArMjUyLDcgQEAgYm9vbCBIVE1MRG9jdW1lbnQ6OmlzRnJhbWVTZXQoKSBjb25zdAogCiBS
ZWY8RG9jdW1lbnQ+IEhUTUxEb2N1bWVudDo6Y2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNyZWF0ZShzZXNzaW9uSUQoKSwgbnVsbHB0ciwgdXJsKCkp
OworICAgIHJldHVybiBjcmVhdGUobnVsbHB0ciwgdXJsKCkpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuaAppbmRleCA2MjNiNWQ4ZDk2ZGE2ODg5N2YzNDVkZjQ4YzJiM2UzZWE3
ZmI3OTkyLi4xYzQyNGRhOTRjZTUwNmQxZDg2YTVmMzcxM2FiNWE3YTk0ODY0OWE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgSFRNTERvY3VtZW50IDogcHVibGljIERvY3VtZW50IHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKEhUTUxEb2N1bWVudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxI
VE1MRG9jdW1lbnQ+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCwgRnJhbWUqLCBjb25zdCBVUkwmKTsK
KyAgICBzdGF0aWMgUmVmPEhUTUxEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiwgY29uc3QgVVJMJik7
CiAgICAgc3RhdGljIFJlZjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZVN5bnRoZXNpemVkRG9jdW1lbnQo
RnJhbWUmLCBjb25zdCBVUkwmKTsKICAgICB2aXJ0dWFsIH5IVE1MRG9jdW1lbnQoKTsKIApAQCAt
NTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNDYXNlU2Vuc2l0aXZlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAogcHJvdGVjdGVkOgotICAgIEhUTUxEb2N1
bWVudChQQUw6OlNlc3Npb25JRCwgRnJhbWUqLCBjb25zdCBVUkwmLCBEb2N1bWVudENsYXNzRmxh
Z3MgPSAwLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOworICAgIEhUTUxEb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYsIERvY3VtZW50Q2xhc3NGbGFncyA9IDAsIHVuc2lnbmVkIGNv
bnN0cnVjdGlvbkZsYWdzID0gMCk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc0ZyYW1lU2V0KCkg
Y29uc3QgZmluYWw7CkBAIC02NSw5ICs2NSw5IEBAIHByaXZhdGU6CiAgICAgVHJlZVNjb3BlT3Jk
ZXJlZE1hcCBtX3dpbmRvd05hbWVkSXRlbTsKIH07CiAKLWlubGluZSBSZWY8SFRNTERvY3VtZW50
PiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZyYW1lKiBm
cmFtZSwgY29uc3QgVVJMJiB1cmwpCitpbmxpbmUgUmVmPEhUTUxEb2N1bWVudD4gSFRNTERvY3Vt
ZW50OjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MRG9jdW1lbnQoc2Vzc2lvbklELCBmcmFtZSwgdXJsLCBIVE1MRG9j
dW1lbnRDbGFzcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxEb2N1bWVudChmcmFt
ZSwgdXJsLCBIVE1MRG9jdW1lbnRDbGFzcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAppbmRleCAyMmQ5MjdhNDQxODBjZGFh
ZGZkMDU5ZThmMWUwMDNkY2Y1MjdhMWU4Li4xNTFmNDRjOWNkNmUxNTUzZWQ4NWFkNzg5MjQwODJk
YTVlNTgyZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTE5OCw3
ICsxOTgsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiB9CiAKIEltYWdl
RG9jdW1lbnQ6OkltYWdlRG9jdW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKLSAg
ICA6IEhUTUxEb2N1bWVudChmcmFtZS5zZXNzaW9uSUQoKSwgJmZyYW1lLCB1cmwsIEltYWdlRG9j
dW1lbnRDbGFzcykKKyAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIHVybCwgSW1hZ2VEb2N1bWVu
dENsYXNzKQogICAgICwgbV9pbWFnZUVsZW1lbnQobnVsbHB0cikKICAgICAsIG1faW1hZ2VTaXpl
SXNLbm93bihmYWxzZSkKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRG9jdW1lbnQuY3BwCmluZGV4IGEzZTYzYTU3NzA4NDAxNjdhNDM0MTBlYWNjZWI2NDYx
MTY0ZTVlNmEuLmFhZWQ1YWUyM2QyODgxMDQ3ZDE1Mjc0NWM3ZWY4NWE5OTg0ODM4ZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAtMTQ0LDggKzE0NCw4IEBAIHZvaWQg
TWVkaWFEb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBj
aGFyKiwgc2l6ZV90KQogICAgIGZpbmlzaCgpOwogfQogICAgIAotTWVkaWFEb2N1bWVudDo6TWVk
aWFEb2N1bWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZyYW1lKiBmcmFtZSwgY29uc3Qg
VVJMJiB1cmwpCi0gICAgOiBIVE1MRG9jdW1lbnQoc2Vzc2lvbklELCBmcmFtZSwgdXJsLCBNZWRp
YURvY3VtZW50Q2xhc3MpCitNZWRpYURvY3VtZW50OjpNZWRpYURvY3VtZW50KEZyYW1lKiBmcmFt
ZSwgY29uc3QgVVJMJiB1cmwpCisgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHVybCwgTWVkaWFE
b2N1bWVudENsYXNzKQogICAgICwgbV9yZXBsYWNlTWVkaWFFbGVtZW50VGltZXIoKnRoaXMsICZN
ZWRpYURvY3VtZW50OjpyZXBsYWNlTWVkaWFFbGVtZW50VGltZXJGaXJlZCkKIHsKICAgICBzZXRD
b21wYXRpYmlsaXR5TW9kZShEb2N1bWVudENvbXBhdGliaWxpdHlNb2RlOjpRdWlya3NNb2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmgKaW5kZXggOTU1ZDM1ZjQ0NWIzMzYxYTNlODIz
ZTYxZGZjOTlkZGNhYmY1MWU2ZC4uNTJiYzU1MTBiMjllYTMwMjJjZDQ2ZDkwMjdjNDg4MDgxZjNh
OGU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmgKQEAgLTM0LDkgKzM0LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFEb2N1bWVudCBmaW5hbCA6IHB1YmxpYyBI
VE1MRG9jdW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTWVkaWFEb2N1bWVudCk7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNZWRpYURvY3VtZW50PiBjcmVhdGUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRp
YyBSZWY8TWVkaWFEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURvY3VtZW50KHNlc3Np
b25JRCwgZnJhbWUsIHVybCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURv
Y3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAgICAgdmlydHVhbCB+TWVkaWFEb2N1bWVudCgp
OwogCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fb3V0Z29pbmdSZWZlcnJlcjsgfQogCiBwcml2YXRlOgotICAg
IE1lZGlhRG9jdW1lbnQoUEFMOjpTZXNzaW9uSUQsIEZyYW1lKiwgY29uc3QgVVJMJik7CisgICAg
TWVkaWFEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwogCiAgICAgUmVmPERvY3VtZW50UGFy
c2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRv
Y3VtZW50LmNwcAppbmRleCAwZmY3MzY3ZDVkZTU2YWNjMGEyZjY4YzEyYjQ4MmEzYzkxNThlNjcw
Li4yYzRmNzZhMjVjMjczMzRiMTk5ZTdiZDZlNDAzZmIzMzE3ZjEyZjcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgUGx1Z2lu
RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhcios
IHNpemVfdCkKIH0KIAogUGx1Z2luRG9jdW1lbnQ6OlBsdWdpbkRvY3VtZW50KEZyYW1lJiBmcmFt
ZSwgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUuc2Vzc2lvbklEKCks
ICZmcmFtZSwgdXJsLCBQbHVnaW5Eb2N1bWVudENsYXNzKQorICAgIDogSFRNTERvY3VtZW50KCZm
cmFtZSwgdXJsLCBQbHVnaW5Eb2N1bWVudENsYXNzKQogewogICAgIHNldENvbXBhdGliaWxpdHlN
b2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tDb21w
YXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RG9jdW1lbnQuY3BwCmluZGV4IDZm
NTk2ZTJlYmI2OTJlMDE0OWRiYmQyZmMyOWY4MTk4NmRkYzQ1YzYuLmU0OTE1MjZmNDM3NjdlYzE3
ODE0NGJiZTAwMzk3YmI0ZjY3YjFkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dERvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5j
cHAKQEAgLTMyLDggKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoVGV4dERvY3VtZW50KTsKIAotVGV4dERvY3VtZW50OjpUZXh0RG9jdW1l
bnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJs
KQotICAgIDogSFRNTERvY3VtZW50KHNlc3Npb25JRCwgZnJhbWUsIHVybCwgVGV4dERvY3VtZW50
Q2xhc3MpCitUZXh0RG9jdW1lbnQ6OlRleHREb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgdXJsKQorICAgIDogSFRNTERvY3VtZW50KGZyYW1lLCB1cmwsIFRleHREb2N1bWVudENsYXNz
KQogewogICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGU6
OlF1aXJrc01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dERvY3VtZW50LmgKaW5kZXggNDFkMmZkYWYwNzBhZGJlNWEwY2E0MjFmMmI3YWM4OTI2ZDcw
ZjQwZi4uOGM2ZWJiMTA2ZGNhZDgwYzJmZjEyNzBhMjA3MTdjYzZkMWI3N2IwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHREb2N1bWVudC5oCkBAIC0zMSwxMyArMzEsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgVGV4dERvY3VtZW50IGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVudCB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChUZXh0RG9jdW1lbnQpOwogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8VGV4dERvY3VtZW50PiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBG
cmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8VGV4dERvY3VtZW50
PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFRleHREb2N1bWVudChzZXNzaW9uSUQsIGZyYW1lLCB1cmwpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dERvY3VtZW50KGZyYW1lLCB1cmwpKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgVGV4dERvY3VtZW50KFBBTDo6U2Vzc2lvbklELCBGcmFt
ZSosIGNvbnN0IFVSTCYpOworICAgIFRleHREb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwog
ICAgIAogICAgIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAppbmRleCBm
MmU1ODZmZTQzMGI4YmNlODIxYmQ3ZTI3ZjNlZjdmYzI1YTk3Mzc1Li4yZTlkNzU1NjU1YzgzZWY4
ODE1OTZhYWQyMGM5NmUxMGU2ODgyNmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtNzYsMTEgKzc2LDExIEBAIHZvaWQgRE9NUGF0Y2hTdXBw
b3J0OjpwYXRjaERvY3VtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxE
b2N1bWVudD4gbmV3RG9jdW1lbnQ7CiAgICAgaWYgKG1fZG9jdW1lbnQuaXNIVE1MRG9jdW1lbnQo
KSkKLSAgICAgICAgbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShtX2RvY3VtZW50
LnNlc3Npb25JRCgpLCBudWxscHRyLCBVUkwoKSk7CisgICAgICAgIG5ld0RvY3VtZW50ID0gSFRN
TERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgVVJMKCkpOwogICAgIGVsc2UgaWYgKG1fZG9jdW1l
bnQuaXNYSFRNTERvY3VtZW50KCkpCi0gICAgICAgIG5ld0RvY3VtZW50ID0gWE1MRG9jdW1lbnQ6
OmNyZWF0ZVhIVE1MKG1fZG9jdW1lbnQuc2Vzc2lvbklEKCksIG51bGxwdHIsIFVSTCgpKTsKKyAg
ICAgICAgbmV3RG9jdW1lbnQgPSBYTUxEb2N1bWVudDo6Y3JlYXRlWEhUTUwobnVsbHB0ciwgVVJM
KCkpOwogICAgIGVsc2UgaWYgKG1fZG9jdW1lbnQuaXNTVkdEb2N1bWVudCgpKQotICAgICAgICBu
ZXdEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGUobV9kb2N1bWVudC5zZXNzaW9uSUQoKSwg
bnVsbHB0ciwgVVJMKCkpOworICAgICAgICBuZXdEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVh
dGUobnVsbHB0ciwgVVJMKCkpOwogCiAgICAgQVNTRVJUKG5ld0RvY3VtZW50KTsKICAgICBSZWZQ
dHI8RG9jdW1lbnRQYXJzZXI+IHBhcnNlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Db29raWVKYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAK
aW5kZXggNmQwMzYyZTk3NjQxODhiNjA4NGNiYWE4Y2MxNDJkNGQzOTFmNWE4NS4uODM4MjllNzVk
NGU0ZmUxNTY1MTI4MzNmNzQyZTUwZWJiNjBjZjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tp
ZUphci5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llcyhEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiByZXN1bHQu
Zmlyc3Q7CiB9CiAKLUNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IENvb2tpZUphcjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBVUkwmIHVybCkKK0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IENvb2tpZUphcjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQogewogICAgIFRyYWNlU2NvcGUg
c2NvcGUoRmV0Y2hDb29raWVzU3RhcnQsIEZldGNoQ29va2llc0VuZCk7CiAKQEAgLTEwMSw3ICsx
MDEsNyBAQCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvYwogICAgICAgICBwYWdlSUQgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHsgZG9jdW1l
bnQuc2Vzc2lvbklEKCksIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRl
SW5mbyhkb2N1bWVudCksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBzaG91bGRJbmNsdWRlU2VjdXJl
Q29va2llcyhkb2N1bWVudCwgdXJsKSB9OworICAgIHJldHVybiB7IHNlc3Npb25JRCwgZG9jdW1l
bnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRvY3VtZW50KSwgdXJsLCBm
cmFtZUlELCBwYWdlSUQsIHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVzKGRvY3VtZW50LCB1cmwp
IH07CiB9CiAKIHZvaWQgQ29va2llSmFyOjpzZXRDb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQpAQCAtMTI4LDcgKzEy
OCw3IEBAIGJvb2wgQ29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNv
bnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29r
aWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2Vj
dXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcs
IFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1f
c3RvcmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkgewogICAgICAgICBzdGQ6
OnBhaXI8U3RyaW5nLCBib29sPiByZXN1bHQgPSBzZXNzaW9uLT5jb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlE
LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC0xNDgsNyArMTQ4LDcgQEAgU3RyaW5nIENvb2tp
ZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBVUkwmIHUKICAgICAgICAgcGFnZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnBh
Z2VJRCgpOwogICAgIH0KIAotICAgIGF1dG8gcmVzdWx0ID0gY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoZG9jdW1lbnQuc2Vzc2lvbklEKCksIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29r
aWVzKCksIHNhbWVTaXRlSW5mbyhkb2N1bWVudCksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBzaG91
bGRJbmNsdWRlU2VjdXJlQ29va2llcyhkb2N1bWVudCwgdXJsKSk7CisgICAgYXV0byByZXN1bHQg
PSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29v
a2llcygpLCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgc2hv
dWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVybCkpOwogICAgIGlmIChyZXN1bHQu
c2Vjb25kID09IFNlY3VyZUNvb2tpZXNBY2Nlc3NlZDo6WWVzKQogICAgICAgICBkb2N1bWVudC5z
ZXRTZWN1cmVDb29raWVzQWNjZXNzZWQoKTsKICAgICByZXR1cm4gcmVzdWx0LmZpcnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nvb2tpZUphci5oCmluZGV4IDgwODdiOGNkNWI3Y2Y0ZjU2OTNlMmY3ZTk1ZDhl
ZjZhMTc5ODQ2YTkuLmJlODZhMWVlMDRkYWY1NjAxZWY2OWNjMzM1MTE3NDlhNmFmNDlmODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgV0VCQ09S
RV9FWFBPUlQgQ29va2llSmFyIDogcHVibGljIFJlZkNvdW50ZWQ8Q29va2llSmFyPiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxDb29raWVKYXI+IGNyZWF0ZShSZWY8U3RvcmFnZVNlc3Npb25Q
cm92aWRlcj4mJik7CiAgICAgCi0gICAgc3RhdGljIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFBy
b3h5IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvY3VtZW50JiwgY29uc3Qg
VVJMJik7CisgICAgc3RhdGljIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFByb3h5KFBBTDo6U2Vzc2lvbklELCBjb25zdCBEb2N1bWVudCYsIGNv
bnN0IFVSTCYpOwogCiAgICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERv
Y3VtZW50JiwgY29uc3QgVVJMJikgY29uc3Q7CiAKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzKERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBjb29raWVTdHJpbmcpOwogCiAgICAgdmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVk
KGNvbnN0IERvY3VtZW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBT
ZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2aXJ0dWFsIHN0
ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+Jikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGQwMTQ3NTEyZmRhMzI1MDRlYWEzM2QwM2Y4ZTAz
YmFiYmE4NDJjNzkuLmVmMDJkZTE2YmYzNDg5ODMwYWQyNTljMzY3ZTY3M2U5YzMwNGZmYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtMTE1LDcgKzExNSw3
IEBAIFJlZjxEb2N1bWVudD4gRG9jdW1lbnRXcml0ZXI6OmNyZWF0ZURvY3VtZW50KGNvbnN0IFVS
TCYgdXJsKQogI2VuZGlmCiAgICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5oYXNI
VE1MVmlldygpKQogICAgICAgICByZXR1cm4gRG9jdW1lbnQ6OmNyZWF0ZU5vblJlbmRlcmVkUGxh
Y2Vob2xkZXIoKm1fZnJhbWUsIHVybCk7Ci0gICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9uOjpj
cmVhdGVEb2N1bWVudChtX2ZyYW1lLT5zZXNzaW9uSUQoKSwgbV9taW1lVHlwZSwgbV9mcmFtZSwg
dXJsKTsKKyAgICByZXR1cm4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KG1fbWlt
ZVR5cGUsIG1fZnJhbWUsIHVybCk7CiB9CiAKIGJvb2wgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKGNv
bnN0IFVSTCYgdXJsUmVmZXJlbmNlLCBib29sIGRpc3BhdGNoLCBEb2N1bWVudCogb3duZXJEb2N1
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAKaW5kZXggNTA0ZmUyMTBk
ZDkxZDA3OGU4ZTc0OTJjNDQ3MTc0YzhjN2JiOTI1Zi4uYjRiZTM3YWY3N2E4YmM4YTU5NDQwMDcx
MDhiM2UyN2FlMWRlNDU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtE
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAK
QEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIH07CiAKIFNpbmtEb2N1bWVudDo6U2lua0RvY3Vt
ZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1MRG9jdW1lbnQoZnJh
bWUuc2Vzc2lvbklEKCksICZmcmFtZSwgdXJsKQorICAgIDogSFRNTERvY3VtZW50KCZmcmFtZSwg
dXJsKQogewogICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1v
ZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMDU2N2QxZDVk
ZThjNmYxM2UxODY4NDRhZWQ3NTU3NWNmMTdlMTcyZi4uNzYxYTEwYmI4ZDE4MzY5OGE2ODkwODcz
MjEzZjlkNDg4NDYxYTc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC00NzgsNyArNDc4LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6
c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgQVNT
RVJUKG1fcmVzcG9uc2UudHlwZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlR5cGU6OkRlZmF1bHQp
OwogICAgIG1fcmVzcG9uc2UgPSByZXNwb25zZTsKLSAgICBtX3ZhcnlpbmdIZWFkZXJWYWx1ZXMg
PSBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvb2tpZUphcigpLCBtX3Jlc291cmNlUmVx
dWVzdCwgbV9yZXNwb25zZSwgc2Vzc2lvbklEKCkpOworICAgIG1fdmFyeWluZ0hlYWRlclZhbHVl
cyA9IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29va2llSmFyKCksIG1fcmVzb3VyY2VS
ZXF1ZXN0LCBtX3Jlc3BvbnNlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBp
ZiAobV9yZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZp
Y2VXb3JrZXIpIHsKQEAgLTg2MCw3ICs4NjAsNyBAQCBib29sIENhY2hlZFJlc291cmNlOjp2YXJ5
SGVhZGVyVmFsdWVzTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIGlm
IChtX3ZhcnlpbmdIZWFkZXJWYWx1ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIHJldHVybiB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29va2llSmFyKCksIG1f
dmFyeWluZ0hlYWRlclZhbHVlcywgcmVxdWVzdCwgc2Vzc2lvbklEKCkpOworICAgIHJldHVybiB2
ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29va2llSmFyKCksIG1fdmFyeWluZ0hlYWRlclZh
bHVlcywgcmVxdWVzdCk7CiB9CiAKIHVuc2lnbmVkIENhY2hlZFJlc291cmNlOjpvdmVyaGVhZFNp
emUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdE
b2N1bWVudC5jcHAKaW5kZXggNWIxZWMzMmRkOTYyM2Y1ZDE3NDE2ZmRhOTE5OWYyMWQ4MmMyYzcy
Ni4uNzk4MjcwN2NiYmNmNjE5ODRmM2RmMjdhMzk3MTI2NTU4Nzc3ZjFhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCkBAIC00OSw3
ICs0OSw3IEBAIHZvaWQgQ2FjaGVkU1ZHRG9jdW1lbnQ6OmZpbmlzaExvYWRpbmcoU2hhcmVkQnVm
ZmVyKiBkYXRhKQogewogICAgIGlmIChkYXRhKSB7CiAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQg
dG8gY3JlYXRlIGEgbmV3IGZyYW1lIGJlY2F1c2UgdGhlIG5ldyBkb2N1bWVudCBiZWxvbmdzIHRv
IHRoZSBwYXJlbnQgVXNlRWxlbWVudC4KLSAgICAgICAgbV9kb2N1bWVudCA9IFNWR0RvY3VtZW50
OjpjcmVhdGUoc2Vzc2lvbklEKCksIG51bGxwdHIsIHJlc3BvbnNlKCkudXJsKCkpOworICAgICAg
ICBtX2RvY3VtZW50ID0gU1ZHRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCByZXNwb25zZSgpLnVy
bCgpKTsKICAgICAgICAgbV9kb2N1bWVudC0+c2V0Q29udGVudChtX2RlY29kZXItPmRlY29kZUFu
ZEZsdXNoKGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKSk7CiAgICAgfQogICAgIENhY2hlZFJl
c291cmNlOjpmaW5pc2hMb2FkaW5nKGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0ZvbnQuY3BwCmluZGV4IDBlOTM0ZjI3YzRjNGQ5N2E3ZjYxMDU4ZmRlYWJj
YmI5ZDM1YjBlNzUuLmVkMjg4YzFlOGNhMGMyZjA2ZmQwOTQzNGRlZDIwM2ZhOWE3ZDVjNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKQEAgLTY4
LDcgKzY4LDcgQEAgYm9vbCBDYWNoZWRTVkdGb250OjplbnN1cmVDdXN0b21Gb250RGF0YShjb25z
dCBBdG9tU3RyaW5nJiByZW1vdGVVUkkpCiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIFdlIG1h
eSBnZXQgaGVyZSBkdXJpbmcgcmVuZGVyIHRyZWUgdXBkYXRlcyB3aGVuIGV2ZW50cyBhcmUgZm9y
YmlkZGVuLgogICAgICAgICAgICAgLy8gRnJhbWVsZXNzIGRvY3VtZW50IGNhbid0IHJ1biBzY3Jp
cHRzIG9yIGNhbGwgYmFjayB0byB0aGUgY2xpZW50IHNvIHRoaXMgaXMgc2FmZS4KLSAgICAgICAg
ICAgIG1fZXh0ZXJuYWxTVkdEb2N1bWVudCA9IFNWR0RvY3VtZW50OjpjcmVhdGUoc2Vzc2lvbklE
KCksIG51bGxwdHIsIFVSTCgpKTsKKyAgICAgICAgICAgIG1fZXh0ZXJuYWxTVkdEb2N1bWVudCA9
IFNWR0RvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgVVJMKCkpOwogICAgICAgICAgICAgYXV0byBk
ZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlvbi94bWwiKTsK
IAogICAgICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpEaXNhYmxlQXNzZXJ0aW9uc0lu
U2NvcGUgZGlzYWJsZWRTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDQ1Mzg3NzNjNDczZGMy
Mzk5MTRjMDAwZDM2MGRhMDU4Zjg1MzdlZDMuLjcxNTg1OWY2YmJhOGU3MWYzNGQ4NWM1NWRiZTEx
MTM2ZDkzMGY5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjk2Nyw3ICsyOTY3LDcgQEAgdm9p
ZCBQYWdlOjpjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmIGNoYW5uZWxOYW1l
LCBXVEZMb2dDaGFubmVsU3RhdGUKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgICAgIGlmIChj
aGFubmVsID09ICZMb2dXZWJSVEMgJiYgbV9tYWluRnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAg
ICAgICBsaWJXZWJSVENQcm92aWRlcigpLnNldEVuYWJsZUxvZ2dpbmcoIW1fbWFpbkZyYW1lLT5k
b2N1bWVudCgpLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKTsKKyAgICAgICAgICAgIGxpYldl
YlJUQ1Byb3ZpZGVyKCkuc2V0RW5hYmxlTG9nZ2luZyghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwo
KSk7CiAjZW5kaWYKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAppbmRleCA2ZWMxM2IyODAxYjI4MTljZTExNzQyYzUy
NTlmMjI3NjkxOTE0NmRjLi40OTU5MDUwNjc5Y2UwNTA0ODQyNDQ3ZWIxZjVhMGJmOGE2NzY4M2Nl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlk
YXRpb24uY3BwCkBAIC0zMzMsMTIgKzMzMywxMiBAQCBzdGF0aWMgU3RyaW5nIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbgog
ICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHJlcXVlc3Qu
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVhdGUocmVxdWVzdCksIHJl
cXVlc3QudXJsKCksIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0LCByZXF1ZXN0LnVybCgpLnBy
b3RvY29sSXMoImh0dHBzIikgPyBJbmNsdWRlU2VjdXJlQ29va2llczo6WWVzIDogSW5jbHVkZVNl
Y3VyZUNvb2tpZXM6Ok5vKS5maXJzdDsKIH0KIAotc3RhdGljIFN0cmluZyBjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVKYXIqIGNvb2tpZUphciwgY29uc3QgUEFMOjpT
ZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorc3Rh
dGljIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVKYXIq
IGNvb2tpZUphciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlmICgh
Y29va2llSmFyKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIGNvb2tpZUphci0+
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbklELCByZXF1ZXN0LmZpcnN0UGFy
dHlGb3JDb29raWVzKCksIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKHJlcXVlc3QpLCByZXF1ZXN0LnVy
bCgpLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCwgcmVxdWVzdC51cmwoKS5wcm90b2NvbElz
KCJodHRwcyIpID8gSW5jbHVkZVNlY3VyZUNvb2tpZXM6OlllcyA6IEluY2x1ZGVTZWN1cmVDb29r
aWVzOjpObykuZmlyc3Q7CisgICAgcmV0dXJuIGNvb2tpZUphci0+Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUocmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBTYW1lU2l0ZUluZm86
OmNyZWF0ZShyZXF1ZXN0KSwgcmVxdWVzdC51cmwoKSwgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxv
cHQsIHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSA/IEluY2x1ZGVTZWN1cmVDb29r
aWVzOjpZZXMgOiBJbmNsdWRlU2VjdXJlQ29va2llczo6Tm8pLmZpcnN0OwogfQogCiBzdGF0aWMg
U3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgaGVhZGVyTmFtZSwgRnVuY3Rpb248U3RyaW5nKCk+JiYgY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWVGdW5jdGlvbikKQEAgLTM3OSwxMSArMzc5LDExIEBAIFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJz
KE5ldHdvcmtTdG9yYWdlU2VzCiAgICAgfSk7CiB9CiAKLVZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5n
LCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IENvb2tpZUphciog
Y29va2llSmFyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQorVmVj
dG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRl
cnMoY29uc3QgQ29va2llSmFyKiBjb29raWVKYXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgcmV0dXJuIGNv
bGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnNJbnRlcm5hbChyZXNwb25zZSwgWyZdIChjb25zdCBT
dHJpbmcmIGhlYWRlck5hbWUpIHsKICAgICAgICAgcmV0dXJuIGhlYWRlclZhbHVlRm9yVmFyeShy
ZXF1ZXN0LCBoZWFkZXJOYW1lLCBbJl0gewotICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvb2tpZUphciwgc2Vzc2lvbklELCByZXF1ZXN0KTsKKyAgICAg
ICAgICAgIHJldHVybiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb29raWVKYXIsIHJl
cXVlc3QpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KQEAgLTQxMSwxMSArNDExLDExIEBAIGJv
b2wgdmVyaWZ5VmFyeWluZ1JlcXVlc3RIZWFkZXJzKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc3Rv
cmFnZVNlc3Npb24sIGNvbnN0IFZlCiAgICAgfSk7CiB9CiAKLWJvb2wgdmVyaWZ5VmFyeWluZ1Jl
cXVlc3RIZWFkZXJzKGNvbnN0IENvb2tpZUphciogY29va2llSmFyLCBjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHZhcnlpbmdSZXF1ZXN0SGVhZGVycywgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQor
Ym9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgQ29va2llSmFyKiBjb29raWVK
YXIsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdmFyeWluZ1JlcXVl
c3RIZWFkZXJzLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgcmV0dXJu
IHZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVyc0ludGVybmFsKHZhcnlpbmdSZXF1ZXN0SGVhZGVy
cywgWyZdIChjb25zdCBTdHJpbmcmIGhlYWRlck5hbWUpIHsKICAgICAgICAgcmV0dXJuIGhlYWRl
clZhbHVlRm9yVmFyeShyZXF1ZXN0LCBoZWFkZXJOYW1lLCBbJl0gewotICAgICAgICAgICAgcmV0
dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvb2tpZUphciwgc2Vzc2lvbklELCBy
ZXF1ZXN0KTsKKyAgICAgICAgICAgIHJldHVybiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb29raWVKYXIsIHJlcXVlc3QpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5oCmluZGV4IDRj
MmZlYjcwODc5NzhlOTU4YTc0OGJiNjUwM2RjMjgyZGYyZGU0YzIuLmFhN2FkN2YxMzE0YjYzZDM3
M2EyYWM3MTcyMjdjY2NmMWQwY2JhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uaApAQCAtNzcsOSArNzcsOSBAQCBzdHJ1Y3QgQ2Fj
aGVDb250cm9sRGlyZWN0aXZlcyB7CiBXRUJDT1JFX0VYUE9SVCBDYWNoZUNvbnRyb2xEaXJlY3Rp
dmVzIHBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcyhjb25zdCBIVFRQSGVhZGVyTWFwJik7CiAK
IFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0
VmFyeWluZ1JlcXVlc3RIZWFkZXJzKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVdFQkNPUkVfRVhQT1JUIFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFk
ZXJzKGNvbnN0IENvb2tpZUphciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBQQUw6OlNlc3Npb25JRCYpOworV0VCQ09SRV9FWFBPUlQgVmVj
dG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRl
cnMoY29uc3QgQ29va2llSmFyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhl
YWRlcnMoTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJp
bmcsIFN0cmluZz4+JiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpOwotV0VCQ09SRV9FWFBPUlQgYm9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29u
c3QgQ29va2llSmFyKiwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB2
YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFBBTDo6
U2Vzc2lvbklEJik7CitXRUJDT1JFX0VYUE9SVCBib29sIHZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVh
ZGVycyhjb25zdCBDb29raWVKYXIqLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3Ry
aW5nPj4mIHZhcnlpbmdSZXF1ZXN0SGVhZGVycywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAK
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTdGF0dXNDb2RlQ2FjaGVhYmxlQnlEZWZhdWx0KGludCBz
dGF0dXNDb2RlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTdGF0dXNDb2RlUG90ZW50aWFsbHlD
YWNoZWFibGUoaW50IHN0YXR1c0NvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5jcHAKaW5k
ZXggZDRkYzk0YmNhMWE0MjA3YTAzYzNkNmYxYmEyZmVmNWNkMzhmNzRiOC4uNmQyZjA4Njk2ZGRi
NmI4ZmViODkyMGNhOGQwZTk3OTY5YThhMTI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQu
Y3BwCkBAIC0zMCw4ICszMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFNWR0RvY3VtZW50KTsKIAotU1ZHRG9jdW1lbnQ6OlNWR0RvY3VtZW50
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkK
LSAgICA6IFhNTERvY3VtZW50KHNlc3Npb25JRCwgZnJhbWUsIHVybCwgU1ZHRG9jdW1lbnRDbGFz
cykKK1NWR0RvY3VtZW50OjpTVkdEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJs
KQorICAgIDogWE1MRG9jdW1lbnQoZnJhbWUsIHVybCwgU1ZHRG9jdW1lbnRDbGFzcykKIHsKIH0K
IApAQCAtNjksNyArNjksNyBAQCB2b2lkIFNWR0RvY3VtZW50Ojp1cGRhdGVQYW4oY29uc3QgRmxv
YXRQb2ludCYgcG9zaXRpb24pIGNvbnN0CiAKIFJlZjxEb2N1bWVudD4gU1ZHRG9jdW1lbnQ6OmNs
b25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdAogewotICAgIHJldHVybiBjcmVhdGUo
c2Vzc2lvbklEKCksIG51bGxwdHIsIHVybCgpKTsKKyAgICByZXR1cm4gY3JlYXRlKG51bGxwdHIs
IHVybCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaAppbmRleCAwOTAzNDYwMmE2
MGRjYjRmYzBmM2E2YTAxNjAxZTA1YTU2Mzk2ZjIzLi43Njc3NzFjYjUzMjUwYzIzYWM0OTBkZmUy
MDRlZWFjMjlmOTYxZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaApAQCAtMzAsNyArMzAs
NyBAQCBjbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3MgU1ZHRG9jdW1lbnQgZmluYWwgOiBwdWJs
aWMgWE1MRG9jdW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU1ZHRG9jdW1lbnQp
OwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHRG9jdW1lbnQ+IGNyZWF0ZShQQUw6OlNlc3Np
b25JRCwgRnJhbWUqLCBjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0RvY3VtZW50PiBj
cmVhdGUoRnJhbWUqLCBjb25zdCBVUkwmKTsKIAogICAgIHN0YXRpYyBSZWZQdHI8U1ZHU1ZHRWxl
bWVudD4gcm9vdEVsZW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIApAQCAtMzksMTYgKzM5LDE2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVBhbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikg
Y29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRG9jdW1lbnQoUEFMOjpTZXNzaW9uSUQsIEZyYW1l
KiwgY29uc3QgVVJMJik7CisgICAgU1ZHRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmKTsKIAog
ICAgIFJlZjxEb2N1bWVudD4gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgRmxvYXRTaXplIG1fcGFubmluZ09mZnNldDsKIH07CiAKLWlubGluZSBS
ZWY8U1ZHRG9jdW1lbnQ+IFNWR0RvY3VtZW50OjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQoraW5saW5lIFJlZjxTVkdEb2N1bWVu
dD4gU1ZHRG9jdW1lbnQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0RvY3VtZW50KHNlc3Npb25JRCwgZnJhbWUsIHVy
bCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0RvY3VtZW50KGZyYW1lLCB1cmwpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDAzZThh
MWEzYWEzNmZmMzljYjg1M2ZjNWEwMTE1YjE0M2JiZTkyMDMuLmIyNjU0ZDA4ZWJiYmMwZDI2ZTVi
NTZjYTdjNjEyOWQzNDQxMzgxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTYyMSw4ICs2MjEs
MTAgQEAgYm9vbCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSBjb25zdAogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4dCkpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxE
b2N1bWVudD4oKmNvbnRleHQpLnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
OworICAgIGlmIChpczxEb2N1bWVudD4oKmNvbnRleHQpKSB7CisgICAgICAgIGF1dG8gc2Vzc2lv
bklEID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5zZXNzaW9uSUQoKTsKKyAgICAgICAg
cmV0dXJuIHNlc3Npb25JRCAmJiBzZXNzaW9uSUQtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
OworICAgIH0KIAogICAgIC8vIEZJWE1FOiBObyBsb2dnaW5nIGluc2lkZSBzZXJ2aWNlIHdvcmtl
cnMgZm9yIG5vdy4KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBjZWY4MmY3YjQxMWQyMThjNzMzZDY2ZmE5
ZGJhMmQ5MzEyNWFlODIyLi5hNWQ3ZTYxYjFhNjdlNDk4MWE3YTc0ZmI2OTJkMjg1NjBhZmMyZmUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAK
QEAgLTQ4LDcgKzQ4LDYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtsZXRHbG9i
YWxTY29wZSk7CiAKIFdvcmtsZXRHbG9iYWxTY29wZTo6V29ya2xldEdsb2JhbFNjb3BlKERvY3Vt
ZW50JiBkb2N1bWVudCwgU2NyaXB0U291cmNlQ29kZSYmIGNvZGUpCiAgICAgOiBtX2RvY3VtZW50
KG1ha2VXZWFrUHRyKGRvY3VtZW50KSkKLSAgICAsIG1fc2Vzc2lvbklEKG1fZG9jdW1lbnQtPnNl
c3Npb25JRCgpKQogICAgICwgbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcj4odGhpcykpCiAgICAgLCBtX3RvcE9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5p
cXVlKCkpCiAgICAgLCBtX2V2ZW50UXVldWUoKnRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDRkYTIwYThmNDFmYjVkZTI2ZGVjYmMzMjA2
YmJjNDIwNDJjYzI1M2UuLjJkMDNjNzI0NTk4NTczMTRlMGQ4YjE2MDM0MzZiYmIzYTg1NjJlNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0x
MjAsMTQgKzEyMCwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgdW53cmFwQ3J5cHRvS2V5KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYsIFZlY3Rvcjx1aW50OF90PiYpIGZpbmFsIHsgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICBVUkwgY29tcGxl
dGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7Ci0gICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBTdHJpbmcgdXNlckFn
ZW50KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlV2ViQXNzZW1ibHkoY29uc3QgU3RyaW5n
JikgZmluYWw7CiAKICAgICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogCi0gICAgUEFM
OjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyPiBtX3NjcmlwdDsKIAogICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gbV90b3BP
cmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3BwCmluZGV4IGI3MTQ3OTYyMTg5NjBlMzMzMzFh
NjcyNzg5NTczMzkzMjRlNzY2ZWIuLmMzODU2ZDQzMmFjMmQ3MDhiMTcxNzA0YWViZjlhYjlmN2I4
NWI0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuY3BwCkBAIC0zNCwxMSArMzQsMTEgQEAgUmVm
PERPTVBhcnNlcj4gRE9NUGFyc2VyOjpjcmVhdGUoRG9jdW1lbnQmIGNvbnRleHREb2N1bWVudCkK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01QYXJzZXIoY29udGV4dERvY3VtZW50KSk7CiB9
CiAKLUV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudD4+IERPTVBhcnNlcjo6cGFyc2VGcm9tU3RyaW5n
KERvY3VtZW50JiBjYWxsaW5nRG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRUeXBlKQorRXhjZXB0aW9uT3I8UmVmPERvY3VtZW50Pj4gRE9NUGFyc2Vy
OjpwYXJzZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpCiB7CiAgICAgaWYgKGNvbnRlbnRUeXBlICE9ICJ0ZXh0L2h0bWwiICYmIGNvbnRl
bnRUeXBlICE9ICJ0ZXh0L3htbCIgJiYgY29udGVudFR5cGUgIT0gImFwcGxpY2F0aW9uL3htbCIg
JiYgY29udGVudFR5cGUgIT0gImFwcGxpY2F0aW9uL3hodG1sK3htbCIgJiYgY29udGVudFR5cGUg
IT0gImltYWdlL3N2Zyt4bWwiKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
IH07Ci0gICAgYXV0byBkb2N1bWVudCA9IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVu
dChjYWxsaW5nRG9jdW1lbnQuc2Vzc2lvbklEKCksIGNvbnRlbnRUeXBlLCBudWxscHRyLCBVUkwg
eyB9KTsKKyAgICBhdXRvIGRvY3VtZW50ID0gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3Vt
ZW50KGNvbnRlbnRUeXBlLCBudWxscHRyLCBVUkwgeyB9KTsKICAgICBpZiAobV9jb250ZXh0RG9j
dW1lbnQpCiAgICAgICAgIGRvY3VtZW50LT5zZXRDb250ZXh0RG9jdW1lbnQoKm1fY29udGV4dERv
Y3VtZW50LmdldCgpKTsKICAgICBkb2N1bWVudC0+c2V0Q29udGVudChzdHJpbmcpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1s
L0RPTVBhcnNlci5oCmluZGV4IDU1MjQwNjhmNjY4NTk2YTZhM2I5MjY5MDkzMjQ3Y2I5OTk2MGUy
ODcuLjQyY2VlYjlmYTQ3MGNkNjI0NDM1ZTY0MmQ4M2I5NGMxODQ0NGJmYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
RE9NUGFyc2VyLmgKQEAgLTI4LDcgKzI4LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBET01Q
YXJzZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxET01QYXJzZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPERPTVBhcnNlcj4gY3JlYXRlKERvY3VtZW50JiBjb250ZXh0RG9jdW1lbnQpOwotICAg
IEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudD4+IHBhcnNlRnJvbVN0cmluZyhEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOworICAgIEV4Y2VwdGlvbk9y
PFJlZjxEb2N1bWVudD4+IHBhcnNlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBET01QYXJzZXIoRG9j
dW1lbnQmIGNvbnRleHREb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
RE9NUGFyc2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuaWRsCmluZGV4IDlk
NTI1NjU5ZDhlOWYzZDY1MzAwMmIxNWJlNWQ0YjczNTVhYmMxMzkuLjk2NGU0YWQ3Mzg1ZDU2NzY1
OTM1MmVhNGQ3Y2YwNzMxMTQ1MTJiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9E
T01QYXJzZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuaWRsCkBAIC0y
Miw1ICsyMiw1IEBACiAgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1Eb2N1bWVudCwKICAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogXSBpbnRlcmZhY2UgRE9NUGFyc2VyIHsKLSAgICBbTWF5
VGhyb3dFeGNlcHRpb24sIE5ld09iamVjdCwgQ2FsbFdpdGg9RG9jdW1lbnRdIERvY3VtZW50IHBh
cnNlRnJvbVN0cmluZyhET01TdHJpbmcgc3RyaW5nLCBET01TdHJpbmcgY29udGVudFR5cGUpOwor
ICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBEb2N1bWVudCBwYXJzZUZyb21TdHJp
bmcoRE9NU3RyaW5nIHN0cmluZywgRE9NU3RyaW5nIGNvbnRlbnRUeXBlKTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBkMGI0MjQzMWVhNDZlMjE2NTI3YTlkZjA0
NjA4OTdlM2JiY2VhMTI0Li41NTM1ZDdiN2NmYmY4ZThjYzU2N2Q5OGNkNzhjY2JlZmJmMTNlOTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE4NSw5ICsxODUsOSBA
QCBFeGNlcHRpb25PcjxEb2N1bWVudCo+IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCgpCiAg
ICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBudWxscHRyOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgaWYgKGlzSFRNTCkKLSAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShjb250ZXh0LnNlc3Npb25JRCgpLCBudWxscHRy
LCBtX3VybCk7CisgICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gSFRNTERvY3Vt
ZW50OjpjcmVhdGUobnVsbHB0ciwgbV91cmwpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGUoY29udGV4dC5z
ZXNzaW9uSUQoKSwgbnVsbHB0ciwgbV91cmwpOworICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VE
b2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgbV91cmwpOwogICAgICAgICAg
ICAgbV9yZXNwb25zZURvY3VtZW50LT5vdmVycmlkZUxhc3RNb2RpZmllZChtX3Jlc3BvbnNlLmxh
c3RNb2RpZmllZCgpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVu
dChtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CiAgICAgICAg
ICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRleHREb2N1bWVudChjb250ZXh0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAppbmRleCBkNDhjZGViYjQ1ZDc5YzcyNGQ0NTMy
NWI3MTRhZjZiMTJmODAxYWMyLi5hNjhhY2Q3NWRiZTJiZjIxZWFkY2ViYTA1MTEzYTg4MmEyMGRl
ZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC03MiwxMCArNzIsMTAg
QEAgUmVmPERvY3VtZW50PiBYU0xUUHJvY2Vzc29yOjpjcmVhdGVEb2N1bWVudEZyb21Tb3VyY2Uo
Y29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcKIAogICAgIFJlZlB0cjxEb2N1bWVudD4gcmVzdWx0
OwogICAgIGlmIChzb3VyY2VNSU1FVHlwZSA9PSAidGV4dC9wbGFpbiIpIHsKLSAgICAgICAgcmVz
dWx0ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZVhIVE1MKG93bmVyRG9jdW1lbnQtPnNlc3Npb25JRCgp
LCBmcmFtZSwgc291cmNlSXNEb2N1bWVudCA/IG93bmVyRG9jdW1lbnQtPnVybCgpIDogVVJMKCkp
OworICAgICAgICByZXN1bHQgPSBYTUxEb2N1bWVudDo6Y3JlYXRlWEhUTUwoZnJhbWUsIHNvdXJj
ZUlzRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LT51cmwoKSA6IFVSTCgpKTsKICAgICAgICAgdHJh
bnNmb3JtVGV4dFN0cmluZ1RvWEhUTUxEb2N1bWVudFN0cmluZyhkb2N1bWVudFNvdXJjZSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdCA9IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1
bWVudChvd25lckRvY3VtZW50LT5zZXNzaW9uSUQoKSwgc291cmNlTUlNRVR5cGUsIGZyYW1lLCBz
b3VyY2VJc0RvY3VtZW50ID8gb3duZXJEb2N1bWVudC0+dXJsKCkgOiBVUkwoKSk7CisgICAgICAg
IHJlc3VsdCA9IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChzb3VyY2VNSU1FVHlw
ZSwgZnJhbWUsIHNvdXJjZUlzRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LT51cmwoKSA6IFVSTCgp
KTsKIAogICAgIC8vIEJlZm9yZSBwYXJzaW5nLCB3ZSBuZWVkIHRvIHNhdmUgJiBkZXRhY2ggdGhl
IG9sZCBkb2N1bWVudCBhbmQgZ2V0IHRoZSBuZXcgZG9jdW1lbnQKICAgICAvLyBpbiBwbGFjZS4g
V2UgaGF2ZSB0byBkbyB0aGlzIG9ubHkgaWYgd2UncmUgcmVuZGVyaW5nIHRoZSByZXN1bHQgZG9j
dW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJD
b29raWVKYXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2ll
SmFyLmNwcAppbmRleCAzYWI3OGU1MzlkN2VlZDliYzVjMjhhZjNlY2JjZWY1MGYwN2Y3YTZiLi43
MzgyZmQ5YTYxMzgwZjU3M2EzZDhiNDIwMzc0NTdjMTMzNDUxNTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKQEAgLTg1LDcgKzg1
LDcgQEAgYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRv
Y3VtZW50JiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGQ6OnBh
aXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFdlYkNv
cmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3Jl
OjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAg
ICBTdHJpbmcgY29va2llU3RyaW5nOwogICAgIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkID0g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJD
b29raWVKYXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUph
ci5oCmluZGV4IDVkY2FjZGQ5NjhlNmE0YjA2MjdjNzg3YzZkYTFhNTE1NDcxYmY4OGQuLjUyOTQ4
YTkxZGU1ZjE0NTI0OTkxMGRkNDk4MzQ0NTIwMDAxYTk3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCkBAIC0zNiw3ICszNiw3IEBAIHB1
YmxpYzoKICAgICBTdHJpbmcgY29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKSBmaW5hbDsKICAgICBib29sIGNv
b2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JikgY29uc3QgZmluYWw7Ci0gICAg
c3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QgZmluYWw7Cisg
ICAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZ2V0UmF3Q29va2ll
cyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29y
ZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpIGZpbmFs
OwogcHJpdmF0ZToK
</data>

          </attachment>
      

    </bug>

</bugzilla>