<?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>200811</bug_id>
          
          <creation_ts>2019-08-16 03:38:04 -0700</creation_ts>
          <short_desc>Remove SessionID::emptySessionID()</short_desc>
          <delta_ts>2019-08-19 09:35:03 -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>Page Loading</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>achristensen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1562000</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 03:38:04 -0700</bug_when>
    <thetext>Remove SessionID::emptySessionID()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562003</commentid>
    <comment_count>1</comment_count>
      <attachid>376490</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 03:56:46 -0700</bug_when>
    <thetext>Created attachment 376490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562024</commentid>
    <comment_count>2</comment_count>
      <attachid>376498</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 07:07:30 -0700</bug_when>
    <thetext>Created attachment 376498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562049</commentid>
    <comment_count>3</comment_count>
      <attachid>376501</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 09:09:38 -0700</bug_when>
    <thetext>Created attachment 376501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562114</commentid>
    <comment_count>4</comment_count>
      <attachid>376512</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 11:58:37 -0700</bug_when>
    <thetext>Created attachment 376512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562264</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-16 15:58:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/54411240&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562268</commentid>
    <comment_count>6</comment_count>
      <attachid>376512</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-16 16:00:08 -0700</bug_when>
    <thetext>Comment on attachment 376512
Patch

Need to update the patch for wincairo, which seems straightforward.
Adding r? in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562661</commentid>
    <comment_count>7</comment_count>
      <attachid>376668</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-19 00:22:43 -0700</bug_when>
    <thetext>Created attachment 376668
WinCairo fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562723</commentid>
    <comment_count>8</comment_count>
      <attachid>376687</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-19 08:21:10 -0700</bug_when>
    <thetext>Created attachment 376687
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562729</commentid>
    <comment_count>9</comment_count>
      <attachid>376687</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 09:10:37 -0700</bug_when>
    <thetext>Comment on attachment 376687
Rebasing

Clearing flags on attachment: 376687

Committed r248854: &lt;https://trac.webkit.org/changeset/248854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562730</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 09:10:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376490</attachid>
            <date>2019-08-16 03:56:46 -0700</date>
            <delta_ts>2019-08-16 07:07:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200811-20190816125644.patch</filename>
            <type>text/plain</type>
            <size>35055</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMTQ3NTA0YmEwZjhm
MjljNzBmMjllYmRjMWJjNDUzNTllZjJmNC4uYTJiODMzYzA5ZWMwNzdmYjFjYzg3N2QxMWRjZGE0
NWQzZmRkODlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA4LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklE
OjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IsIHVwZGF0ZSBTZXNzaW9uSUQgY2FsbCBz
aXRlcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9uSUQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6cmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50cyk6CisKIDIwMTktMDgtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGVudW1lcmF0ZURldmljZXMgc2hvdWxkIHJldHVybiB0aGUgc2FtZSBK
UyBvYmplY3RzIGlmIGNhbGxlZCB0d2ljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNjBlN2ZiNTZj
OTcwNWUxOWZjODliYzhhNmJkNGY0MjNlZjE2MjViZS4uODI2OGFhNmRhODgzODk1N2ZiOTEwMGQ5
MThlMDUzNGEyOWZjOWM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIw
MTktMDgtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJl
bW92ZSBTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklE
IGFuZCBtYWtlIGl0IGNsb3NlciB0byBhIHJlZ3VsYXIgT2JqZWN0SWRlbnRpZmllci4KKworICAg
ICAgICAqIHBhbC9TZXNzaW9uSUQuY3BwOgorICAgICAgICAqIHBhbC9TZXNzaW9uSUQuaDoKKyAg
ICAgICAgKFBBTDo6U2Vzc2lvbklEOjpTZXNzaW9uSUQpOgorICAgICAgICAoUEFMOjpTZXNzaW9u
SUQ6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OmlzRXBoZW1lcmFs
IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6dG9VSW50NjQgY29uc3QpOgorICAg
ICAgICAoUEFMOjpTZXNzaW9uSUQ6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoUEFMOjpT
ZXNzaW9uSUQ6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6Omlz
b2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6b3BlcmF0b3IgYm9v
bCBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNWYWxpZFNlc3Npb25JRFZhbHVl
KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoUEFM
OjpTZXNzaW9uSUQ6OmRlY29kZSk6CisgICAgICAgIChXVEY6OlNlc3Npb25JREhhc2g6Omhhc2gp
OgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6ZW1wdHlWYWx1ZSk6
CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxl
dGVkVmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6aXNE
ZWxldGVkVmFsdWUpOgorCiAyMDE5LTA4LTE0ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgbWFjT1MgPCAxMC4xMwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA4NDZjOTUyZGJkNTA3NTE1YjliNmZmMDY4MzUwYjNiZDA0Njc0MjQ5Li4zYTI1YTA4ZmFm
Y2IzZDhhNGRkYjBlNDY1ZTVhZGMyMDk2Y2U3MmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBA
CisyMDE5LTA4LTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgU2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgU2Vzc2lvbklEIGNhbGwgc2l0ZXMg
dG8gdXNlIHRvVUludDY0LgorICAgICAgICBSZW1vdmUgZGVidWcgYXNzZXJ0cyB0byBpc1ZhbGlk
IHNpbmNlIGNvbnN0cnVjdGlvbiBvZiBpbnZhbGlkIHNlc3Npb24gSURzIGNhbiBvbmx5IGhhcHBl
biBpbiB2ZXJ5IHNwZWNpZmljIGNhc2VzCisgICAgICAgIHR5cGljYWxseSBmb3IgSGFzaE1hcHMu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURh
dGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZXhpc3RpbmdTV09yaWdpblN0
b3JlRm9yU2Vzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjp3
ZWJQcm9jZXNzV2FzRGlzY29ubmVjdGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnRO
ZXR3b3JrTG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpyZXRyaWV2ZUNhY2hlU3RvcmFnZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjptYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmV4aXN0aW5nTm9uRGVmYXVsdERhdGFTdG9y
ZUZvclNlc3Npb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlU3RvcmFnZVByb3ZpZGVy
OjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nh
Y2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6V2ViU1dDbGllbnRDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dDbGllbnRDb25uZWN0aW9uOjppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpleGlzdGluZ1NlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3RleHRBdXRvU2l6aW5nQWRqdXN0
bWVudFRpbWVyKToKKwogMjAxOS0wOC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIEpT
IG9iamVjdHMgaWYgY2FsbGVkIHR3aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IGQ3YmZmY2Jk
MzdiZmUyMjcxNzA4YTYzMmEzMWY5NDdiZmJjM2MxMWYuLjlhNzM0NGIzYTg4NzVmZDNjZTEyODc5
NTY1NTFhOTNlNTI2YTZlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTktMDgtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVy
LmNwcDoKKyAgICAgICAgKFdlYkRhdGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZl
ckZvclNlc3Npb24pOgorICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oOgor
CiAyMDE5LTA4LTE0ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDg1MjYuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nl
c3Npb25JRC5jcHAKaW5kZXggYzQyMzVlNGQ5N2JhOThhMWZiNjFkMzNmOGFlYzUwN2VkOGI0MmZk
MS4uNmIzMGI0YTA2YmFiNDhjYTY5ZTQ5NTVlNTJjYjQxNjJiYjIwNzgwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvU2Vzc2lvbklELmNwcApAQCAtNTUsOSArNTUsNCBAQCB2b2lkIFNlc3Npb25JRDo6
ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKQogICAgIGdlbmVyYXRpb25Qcm90ZWN0aW9uRW5h
YmxlZCA9IHRydWU7CiB9CiAKLVNlc3Npb25JRCBTZXNzaW9uSUQ6Omlzb2xhdGVkQ29weSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIFNlc3Npb25JRCB7IG1fc2Vzc2lvbklEIH07Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9u
SUQuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lvbklELmgKaW5kZXggMGJkZGRlN2I4
ZTMzYjk2OTA1MTU3OTEzMjJmMDhkZWY2MWNiNTkwMC4uYWU3ZjQxNWNkZmRhM2M1YWFlNDAxNTEw
YjIwMDdhNTAzMGRiMWRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNz
aW9uSUQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5oCkBAIC00Miw1
OCArNDIsNTUgQEAgcHVibGljOgogICAgICAgICBIYXNoVGFibGVEZWxldGVkVmFsdWVJRCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSwKICAgICB9OwogCi0gICAgc3RhdGlj
IFNlc3Npb25JRCBlbXB0eVNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRChIYXNoVGFibGVF
bXB0eVZhbHVlSUQpOyB9Ci0gICAgc3RhdGljIFNlc3Npb25JRCBoYXNoVGFibGVEZWxldGVkVmFs
dWUoKSB7IHJldHVybiBTZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQpOyB9CiAgICAg
c3RhdGljIFNlc3Npb25JRCBkZWZhdWx0U2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKERl
ZmF1bHRTZXNzaW9uSUQpOyB9CiAgICAgc3RhdGljIFNlc3Npb25JRCBsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKExlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOyB9CiAK
LSAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vzc2lvbklEVmFsdWUo
bV9zZXNzaW9uSUQpOyB9Ci0gICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Vzc2lvbklEICYgRXBoZW1lcmFsU2Vzc2lvbk1hc2sgJiYgbV9zZXNzaW9uSUQgIT0gSGFzaFRh
YmxlRGVsZXRlZFZhbHVlSUQ7IH0KKyAgICBleHBsaWNpdCBTZXNzaW9uSUQoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICA6IG1faWRlbnRpZmllcihIYXNoVGFibGVEZWxl
dGVkVmFsdWVJRCkKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQgU2Vzc2lvbklEKFdURjo6
SGFzaFRhYmxlRW1wdHlWYWx1ZVR5cGUpCisgICAgICAgIDogbV9pZGVudGlmaWVyKEhhc2hUYWJs
ZUVtcHR5VmFsdWVJRCkKKyAgICB7CisgICAgfQogCiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vz
c2lvbklEIGdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7CiAgICAgUEFMX0VYUE9SVCBzdGF0
aWMgU2Vzc2lvbklEIGdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgpOwogICAgIFBBTF9FWFBP
UlQgc3RhdGljIHZvaWQgZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKTsKIAotICAgIHVpbnQ2
NF90IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9Ci0gICAgYm9vbCBv
cGVyYXRvcj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
ID09IHNlc3Npb25JRC5tX3Nlc3Npb25JRDsgfQotICAgIGJvb2wgb3BlcmF0b3IhPShTZXNzaW9u
SUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRCAhPSBzZXNzaW9uSUQubV9z
ZXNzaW9uSUQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vz
c2lvbklEVmFsdWUobV9pZGVudGlmaWVyKTsgfQorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXIgJiBFcGhlbWVyYWxTZXNzaW9uTWFzayAmJiBtX2lkZW50
aWZpZXIgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0KKyAgICBib29sIGlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IEhhc2hUYWJsZURl
bGV0ZWRWYWx1ZUlEOyB9CisKKyAgICB1aW50NjRfdCB0b1VJbnQ2NCgpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQorICAgIGJvb2wgb3BlcmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklE
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXIgPT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsg
fQorICAgIGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXIgIT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsgfQogICAgIGJvb2wgaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gIWlzRXBoZW1lcmFsKCk7IH0K
IAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFNlc3Npb25JRCYpOwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxTZXNzaW9uSUQ+IGRlY29kZShEZWNvZGVyJik7CiAKLSAgICBTZXNzaW9uSUQgaXNvbGF0
ZWRDb3B5KCkgY29uc3Q7CisgICAgU2Vzc2lvbklEIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0
dXJuICp0aGlzOyB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2Vzc2lvbklEKHVp
bnQ2NF90IHNlc3Npb25JRCkKLSAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAg
ZXhwbGljaXQgU2Vzc2lvbklEKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgICAgIDogbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGlzVmFs
aWRTZXNzaW9uSURWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAh
PSBIYXNoVGFibGVFbXB0eVZhbHVlSUQgJiYgc2Vzc2lvbklEICE9IEhhc2hUYWJsZURlbGV0ZWRW
YWx1ZUlEOyB9CisgICAgc3RhdGljIGJvb2wgaXNWYWxpZFNlc3Npb25JRFZhbHVlKHVpbnQ2NF90
IGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVl
SUQ7IH0KIAotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIHVpbnQ2NF90IG1faWRlbnRp
ZmllcjsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlc3Npb25JRDo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSB0byBh
IHJlZ3VsYXIgQVNTRVJULgotICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWQoKSk7Ci0gICAgZW5j
b2RlciA8PCBtX3Nlc3Npb25JRDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wg
U2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQp
Ci17Ci0gICAgT3B0aW9uYWw8U2Vzc2lvbklEPiBkZWNvZGVkU2Vzc2lvbklEOwotICAgIGRlY29k
ZXIgPj4gZGVjb2RlZFNlc3Npb25JRDsKLSAgICBpZiAoIWRlY29kZWRTZXNzaW9uSUQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHNlc3Npb25JRCA9ICpkZWNvZGVkU2Vzc2lvbklEOwot
ICAgIHJldHVybiB0cnVlOworICAgIEFTU0VSVChpc1ZhbGlkKCkpOworICAgIGVuY29kZXIgPDwg
bV9pZGVudGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTAxLDkgKzk4
LDkgQEAgT3B0aW9uYWw8U2Vzc2lvbklEPiBTZXNzaW9uSUQ6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogewogICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBzZXNzaW9uSUQ7CiAgICAgZGVjb2RlciA+
PiBzZXNzaW9uSUQ7Ci0gICAgaWYgKCFzZXNzaW9uSUQgfHwgIWlzVmFsaWRTZXNzaW9uSURWYWx1
ZSgqc2Vzc2lvbklEKSkKKyAgICBpZiAoIXNlc3Npb25JRCkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLQorICAgIEFTU0VSVChpc1ZhbGlkU2Vzc2lvbklEVmFsdWUoKnNlc3Npb25JRCkp
OwogICAgIHJldHVybiBTZXNzaW9uSUQgeyAqc2Vzc2lvbklEIH07CiB9CiAKQEAgLTExMiwxNiAr
MTA5LDE3IEBAIE9wdGlvbmFsPFNlc3Npb25JRD4gU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKIG5hbWVzcGFjZSBXVEYgewogCiBzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7Ci0gICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGlu
dEhhc2gocC5zZXNzaW9uSUQoKSk7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQ
QUw6OlNlc3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnRvVUludDY0KCkpOyB9CiAgICAg
c3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUEFMOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxQQUw6OlNlc3Np
b25JRD4gewotICAgIHN0YXRpYyBQQUw6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4g
UEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7IH0KIAotICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpT
ZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNE
ZWxldGVkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0g
UEFMOjpTZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFBBTDo6
U2Vzc2lvbklEPiB7CisgICAgc3RhdGljIFBBTDo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJl
dHVybiBQQUw6OlNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZhbHVlKTsgfQorICAgIHN0YXRpYyB2
b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0g
UEFMOjpTZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQorICAgIHN0YXRpYyBib29s
IGlzRGVsZXRlZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIH07CisKIHRlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPFBBTDo6U2Vzc2lvbklEPiB7CiAgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhh
c2g7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAxMTlh
YTg3NDc0ZjllMWY1ZjA3Y2EzNzI0Njk4OWE0ODlkNTQ1NmQ5Li4wYWYxOGI1MTJiYjc0YzQ5ZTk0
OWQ1OGY3NmM2MmIxYzA1NDVjYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbQpAQCAtMjczMiw3ICsyNzMyLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOm1f
b2JqZWN0LT5jYXJldEJyb3dzaW5nRW5hYmxlZCgpXTsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVO
YW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlXZWJTZXNzaW9uSURBdHRyaWJ1dGVd
KSB7CiAgICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IG1fb2JqZWN0LT50b3BEb2N1bWVu
dCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVk
TG9uZ0xvbmc6ZG9jLT5zZXNzaW9uSUQoKS5zZXNzaW9uSUQoKV07CisgICAgICAgICAgICAgICAg
cmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpkb2MtPnNlc3Npb25J
RCgpLnRvVUludDY0KCldOwogICAgICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggMDE2ZDA3YTYyZmUyMDA4NWJmYTBmMDY5NmM2ZTFlNDYyMWMxZmMxZS4uMzZk
MmNlZGUxOTFmNWJhZmM1OGRhNjFjNTA3NWViODdhMjljMWM5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC01MDY2LDEyICs1MDY2LDYgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChj
b25zdCBTdHJpbmcmIHVybCkgY29uc3QKIAogUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Np
b25JRCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAg
cmV0dXJuIG1fc2Vzc2lvbklEOwotCi0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkp
Ci0gICAgICAgIG1fc2Vzc2lvbklEID0gcGFnZS0+c2Vzc2lvbklEKCk7Ci0KICAgICByZXR1cm4g
bV9zZXNzaW9uSUQ7CiB9CiAKQEAgLTUyODAsOCArNTI3NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnBy
aXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAg
ICAgICAgZWxlbWVudC0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Uoc2Vzc2lvbklEKTsK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uICYmIHNl
c3Npb25JRC5pc1ZhbGlkKCkpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uKQogICAgICAgICBzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigmU2VydmljZVdvcmtl
clByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24o
c2Vzc2lvbklEKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKaW5kZXggZjYzMGU4NjYxMmQ5
M2VjZmJiNmEyZjg0NzRiZDc0MzA4NGI3YjRhMi4uN2JiYWM1Y2E0MTQwYjNjNzY4MzFjYmFkN2Y0
Mzc2YTRmOWFkZDk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKQEAgLTY2LDkgKzY2LDYgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoKQogICAg
IHNldE1heUhhdmVSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoKTsKICAgICBmb3IgKGF1dG8qIGRv
Y3VtZW50IDogRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpKSB7CiAgICAgICAgIGF1dG8gc2Vzc2lv
bklEID0gZG9jdW1lbnQtPnNlc3Npb25JRCgpOwotICAgICAgICBpZiAoIXNlc3Npb25JRC5pc1Zh
bGlkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQogICAgICAgICBpZiAoU2NoZW1lUmVnaXN0
cnk6OmNhblNlcnZpY2VXb3JrZXJzSGFuZGxlVVJMU2NoZW1lKGRvY3VtZW50LT51cmwoKS5wcm90
b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCiAgICAgICAgICAgICBkb2N1bWVudC0+
c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oJnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vz
c2lvbihzZXNzaW9uSUQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCmluZGV4IDc0ZWQxM2JlNjEz
ZDcxZmQzMzI0MTY5NWU1ZGIzNjE2YzI0NTA4OTcuLjM3ZGI1ZTRiNTRmMWJkOTI4YjhlNDU0MDBh
MmYyN2NkMWFmYjY4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCkBAIC03Myw3ICs3Myw3IEBAIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uRm9yRG93bmxvYWRzKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIEF1dGhlbnRpY2F0aW9uTWFu
YWdlciYgZG93bmxvYWRzQXV0aGVudGljYXRpb25NYW5hZ2VyKCkgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcGVuZGluZ0Rvd25sb2FkQ2FuY2VsZWQoRG93bmxvYWRJRCkgPSAwOwotICAgICAg
ICB2aXJ0dWFsIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBOZXR3b3JrU2Vzc2lvbiogbmV0d29y
a1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IHJlZigpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgY29uc3QgPSAw
OwogICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGll
cigpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMGMyYzk3NmZl
ZTIwZDMyOWI0MDdlMDRkYjk2MmZiNjc5OWFmNDMxOC4uYTFhYzRiYjYyYzlmMjk0YTg2Nzg0OTVm
N2JkMjFiZTYwM2FkYTg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ4OSw3
ICs0ODksNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQ
cmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3RpbwogCiBzdGF0aWMgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihjb25zdCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1By
b2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklE
LmlzVmFsaWQoKSk7CiAgICAgaWYgKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdv
cmtQcm9jZXNzLnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgICAgICByZXR1cm4g
KnN0b3JhZ2VTZXNzaW9uOwpAQCAtNjg0LDEwICs2ODMsNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0
aXN0aQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dVc2VySW50ZXJh
Y3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZG9tYWluKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNl
c3Npb25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChhdXRvKiBuZXR3
b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkg
ewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNz
aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCiAgICAgICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5sb2dVc2VySW50ZXJhY3Rpb24oZG9tYWluLCBbXSB7IH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBlODIwYjI5
YzIwZjUxOWZiNWUzZGQ4OGE4YmVmNjQ2NTQwNjg2YjBiLi5hYzY5YTM4ZTgxYTgxMGZiMzBjNmFl
ZWYxYjNkMjU4YjM2ZWMyNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNTYyLDM2ICs1NjIsMjcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Zm9yRWFjaE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihjb25zdCBGdW5jdGlvbjx2b2lkKFdl
YkNvcmU6Ok4KICAgICAgICAgZnVuY3Rvcigqc3RvcmFnZVNlc3Npb24pOwogfQogCi1OZXR3b3Jr
U2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQpIGNvbnN0CitOZXR3b3JrU2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6Om5l
dHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsK
LSAgICByZXR1cm4gc2Vzc2lvbklELmlzVmFsaWQoKSA/IG1fbmV0d29ya1Nlc3Npb25zLmdldChz
ZXNzaW9uSUQpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gbV9uZXR3b3JrU2Vzc2lvbnMuZ2V0KHNl
c3Npb25JRCk7CiB9CiAKIE5ldHdvcmtTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6bmV0d29ya1Nl
c3Npb25CeUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSBjb25zdAogewot
ICAgIGF1dG8gc2Vzc2lvbklEID0gbV9zZXNzaW9uQnlDb25uZWN0aW9uLmdldChjb25uZWN0aW9u
LnVuaXF1ZUlEKCkpOwotICAgIHJldHVybiBzZXNzaW9uSUQuaXNWYWxpZCgpID8gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSA6IG51bGxwdHI7CisgICAgYXV0byBpdGVyYXRvciA9IG1fc2Vzc2lv
bkJ5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7CisgICAgcmV0dXJuIGl0
ZXJhdG9yICE9IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbi5lbmQoKSA/IG5ldHdvcmtTZXNzaW9uKGl0
ZXJhdG9yLT52YWx1ZSkgOiBudWxscHRyOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRT
ZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrU2Vzc2lvbj4mJiBzZXNzaW9uKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lv
bj4mJiBzZXNzaW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNT
RVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkK
LSAgICAgICAgcmV0dXJuOwotCiAgICAgbV9uZXR3b3JrU2Vzc2lvbnMuc2V0KHNlc3Npb25JRCwg
V1RGTW92ZShzZXNzaW9uKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNz
aW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0g
ICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICNpZiAhVVNF
KFNPVVApCiAgICAgLy8gU291cCBiYXNlZCBwb3J0cyBkZXN0cm95IHRoZSBkZWZhdWx0IHNlc3Np
b24gcmlnaHQgYmVmb3JlIHRoZSBwcm9jZXNzIGV4aXRzIHRvIGF2b2lkIGxlYWtpbmcKICAgICAv
LyBuZXR3b3JrIHJlc291cmNlcyBsaWtlIHRoZSBjb29raWVzIGRhdGFiYXNlLgpAQCAtMTI5Mywx
MCArMTI4NCw2IEBAIHN0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhOZXR3b3JrQ2Fj
aGU6OkNhY2hlKiBjYWNoZSwgUEFMOjpTZXNzaW9uSUQgc2VzCiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFG
ZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIEFT
U0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgZmluYWwg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CiAgICAg
ICAgIGV4cGxpY2l0IENhbGxiYWNrQWdncmVnYXRvcihGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0
YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCkBAIC0xMzk1LDEwICsxMzgyLDYgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXQKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0
ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxs
YmFja0lEKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNl
c3Npb25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6SFNU
U0NhY2hlKSkgewogICAgICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3Rv
cmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAgLTE2MTEsMTAgKzE1OTQsNiBAQCBzdGF0aWMgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZmlsdGVyRm9yUmVnaXN0cmFibGVEb21h
aW5zKGNvbnN0IEhhcwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZv
clJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIEhhc2hNYXA8UmVnaXN0cmFibGVEb21h
aW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+JiYgZG9tYWlucywgYm9vbCBzaG91bGROb3RpZnlQYWdl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlk
KCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucyA9IFdlYnNp
dGVEYXRhRmV0Y2hPcHRpb246OkRvTm90Q3JlYXRlUHJvY2Vzc2VzOwogCiAgICAgc3RydWN0IENh
bGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDYWxs
YmFja0FnZ3JlZ2F0b3I+IHsKQEAgLTE4MjEsMTAgKzE4MDAsNiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpkZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJl
Z2lzdHJhYgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vi
c2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vz
c2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucyA9IFdlYnNpdGVEYXRhRmV0Y2hPcHRpb246
OkRvTm90Q3JlYXRlUHJvY2Vzc2VzOwogICAgIAogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0
b3IgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9y
PiB7CkBAIC0yNDY0LDEwICsyNDM5LDYgQEAgU1dTZXJ2ZXImIE5ldHdvcmtQcm9jZXNzOjpzd1Nl
cnZlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiBXZWJTV09yaWdpblN0
b3JlKiBOZXR3b3JrUHJvY2Vzczo6ZXhpc3RpbmdTV09yaWdpblN0b3JlRm9yU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1Zh
bGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0KICAgICBhdXRvKiBzd1NlcnZlciA9IG1fc3dTZXJ2ZXJzLmdldChzZXNzaW9uSUQp
OwogICAgIGlmICghc3dTZXJ2ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjc0Niw3
ICsyNzE3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6d2ViUGFnZVdhc1JlbW92ZWQoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb24KIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OndlYlByb2Nlc3NXYXNEaXNjb25uZWN0ZWQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQog
ewogICAgIGF1dG8gc2Vzc2lvbklEID0gbV9zZXNzaW9uQnlDb25uZWN0aW9uLnRha2UoY29ubmVj
dGlvbi51bmlxdWVJRCgpKTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkpCisgICAgaWYg
KCFzZXNzaW9uSUQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA2MTIxYmFkYmEzZmU0OWFmMDg3M2I4NTczMmVjODAy
MDU2ZmZlODAwLi5mYjFjZWE5YzhkNDNmNjcwOTdmNTg2YjBmMDA0OTJlY2NkMmY5MDI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNTks
MTAgKzE1OSwxMCBAQCBwdWJsaWM6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBhdXRoZW50
aWNhdGlvbk1hbmFnZXIoKTsKICAgICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigp
OwogCi0gICAgdm9pZCBzZXRTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtTZXNzaW9uPiYmKTsKLSAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nl
c3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFNl
c3Npb24oUEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJik7
CisgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKSBjb25z
dCBmaW5hbDsKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb25CeUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uJikgY29uc3Q7Ci0gICAgdm9pZCBkZXN0cm95U2Vzc2lvbihjb25zdCBQ
QUw6OlNlc3Npb25JRCYpOworICAgIHZvaWQgZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQp
OwogCiAgICAgdm9pZCBmb3JFYWNoTmV0d29ya1Nlc3Npb24oY29uc3QgRnVuY3Rpb248dm9pZChO
ZXR3b3JrU2Vzc2lvbiYpPiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZWM2YTgwYzg0ODlkZWYzMmQ3
ODliNzRiZWMxMjczNTdiZWM1NTgzNS4uZjNlMmRjMjFjYzA5OTRmMDJlOWM2ZGU4ZDhjYmEwMjEx
MTE1MGY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzA3LDggKzMwNyw4IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IEZpcnN0TG9hCiAgICAgICAgIG5ldHdvcmtTZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3Jr
UHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklEKTsKICAgICB9CiAg
ICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRl
ZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIp
IHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkp
OwotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2Fk
OiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBk
b2VzIG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQu
c2Vzc2lvbklEKCkpOworICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUg
YSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBu
b3QgZXhpc3QuIiwgcGFyYW1ldGVycy5zZXNzaW9uSUQudG9VSW50NjQoKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0
byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC50b1VJbnQ2NCgpKTsK
ICAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNz
YWdlKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5
czo6aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Omlu
dmFsaWRTZXNzaW9uSURLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAg
IGRpZEZhaWxMb2FkaW5nKGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9SZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDcxMjk3NTE1ODk2MGQ1MzQyM2I5MTFl
M2Y4MGYxM2IxYTIwNjVlOGEuLmUzZGM2MzEyZjRlNzgyNjk4YTkxMjEzMTFiZDQwMTFhY2MwM2Yz
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKE5ldHdvcmtQ
cm9jZXNzJiBuZXR3CiAgICAgaWYgKCFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSAmJiAhcGFyYW1l
dGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpCiAgICAgICAg
IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2UgPSBjb29raWVTdG9yYWdlRnJvbUlkZW50aWZ5aW5nRGF0
YShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKTsKIAotICAgIG5l
dHdvcmtQcm9jZXNzLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBtYWtlU3RyaW5nKGJhc2UsICcu
Jywgc2Vzc2lvbklELnNlc3Npb25JRCgpKSwgV1RGTW92ZSh1aVByb2Nlc3NDb29raWVTdG9yYWdl
KSk7CisgICAgbmV0d29ya1Byb2Nlc3MuZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIG1ha2VTdHJp
bmcoYmFzZSwgJy4nLCBzZXNzaW9uSUQudG9VSW50NjQoKSksIFdURk1vdmUodWlQcm9jZXNzQ29v
a2llU3RvcmFnZSkpOwogCiAgICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzLnN0b3Jh
Z2VTZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjb29raWUgOiBwYXJh
bWV0ZXJzLnBlbmRpbmdDb29raWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggOTFlY2UxZjBkYWZmZTNl
YTYzYWRiYzBkOTFlYWM0ZDE4MTExMzA5YS4uMDNmNGRkMWFjN2JmMGFlNjBiMTg1ODk0YjY1MDVh
ZGJmZTY0NDEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTA0LDcgKzExMDQsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJldHJpZXZlQ2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSQogICAgIGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21T
ZXNzaW9uSUQoc2Vzc2lvbklEKTsKIAogICAgIGlmICghc3RvcmUpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHVu
YWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRoZSBnaXZlbiBz
ZXNzaW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1By
b3h5IGlzIHVuYWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRo
ZSBnaXZlbiBzZXNzaW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnRvVUludDY0KCkp
OwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2FjaGVTdG9yYWdl
UGFyYW1ldGVycyB7IHNlc3Npb25JRCwgeyB9LCB7IH0gfSwgMCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDAyNTg3YjE5ZTE5NGU2MWRmMzFlMzExYzg2MmFk
YjFjZmJjMWNiZDUuLmNhMjljMTcyODIwZTdjNDIwYTRmYWFmYzIyYjU2Yjg4NTFlM2FhZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldl
YnNpdGVEYXRhU3RvcmUoKQogCiAgICAgcGxhdGZvcm1EZXN0cm95KCk7CiAKLSAgICBpZiAobV9z
ZXNzaW9uSUQuaXNWYWxpZCgpICYmIG1fc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAobV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAgICBBU1NFUlQobm9uRGVmYXVsdERhdGFTdG9y
ZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAgICBub25EZWZhdWx0RGF0YVN0
b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bv
b2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKQEAgLTE1Nyw3ICsxNTcs
NyBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAKIHZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKQogewotICAgIGlmICht
X3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlmIChtX3Nlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gbm9uRGVmYXVs
dERhdGFTdG9yZXMoKS5hZGQobV9zZXNzaW9uSUQsIHRoaXMpOwogICAgICAgICBBU1NFUlRfVU5V
U0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogICAgIH0KQEAgLTE2NSw3ICsxNjUsNyBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCkK
IAogV2Vic2l0ZURhdGFTdG9yZSogV2Vic2l0ZURhdGFTdG9yZTo6ZXhpc3RpbmdOb25EZWZhdWx0
RGF0YVN0b3JlRm9yU2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBy
ZXR1cm4gc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KHNlc3Npb25J
RCkgOiBudWxscHRyOworICAgIHJldHVybiBzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KHNlc3Npb25JRCkg
OiBudWxscHRyOwogfQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlZ2lzdGVyUHJvY2VzcyhX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcAppbmRleCA5YWIwZTBm
NmE1M2Y0ZWYwYmE0ZmY4M2RiY2M1ZDlkMTc5MjVhNTA1Li41MDFjYjcyMDYyNDgyNDFmOTQyNjg1
YWFjY2Q0NzBiZjQ2MjIxZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Q2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAKQEAgLTM3LDE0ICszNywx
NCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFJlZjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uPiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVt
ZXJhbCgpKSB7Ci0gICAgICAgIHJldHVybiBtX2Nvbm5lY3Rpb25zLmVuc3VyZShzZXNzaW9uSUQu
c2Vzc2lvbklEKCksIFs9XSgpIHsKKyAgICAgICAgcmV0dXJuIG1fY29ubmVjdGlvbnMuZW5zdXJl
KHNlc3Npb25JRCwgWz1dKCkgewogICAgICAgICAgICAgcmV0dXJuIFdlYkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklEKTsKICAgICAgICAgfSkuaXRlcmF0b3It
PnZhbHVlLmNvcHlSZWYoKTsKICAgICB9CiAKICAgICBpZiAoIW1fZGVmYXVsdENvbm5lY3Rpb24p
IHsKICAgICAgICAgbV9kZWZhdWx0Q29ubmVjdGlvbiA9IFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklEKTsKLSAgICAgICAgbV9jb25uZWN0aW9ucy5zZXQo
c2Vzc2lvbklELnNlc3Npb25JRCgpLCAqbV9kZWZhdWx0Q29ubmVjdGlvbik7CisgICAgICAgIG1f
Y29ubmVjdGlvbnMuc2V0KHNlc3Npb25JRCwgKm1fZGVmYXVsdENvbm5lY3Rpb24pOwogICAgIH0K
ICAgICByZXR1cm4gKm1fZGVmYXVsdENvbm5lY3Rpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCmluZGV4
IGNiMTZkMzJlNzc5NjI3NmY2YzllNWUwODY3ZmNiZDAwNmU1Y2Y5NDkuLjM4YWVlNmNlNjEyMTQ3
ZTVmZGQzZjY2NzcwOWQ5NTFkNDUzZjI3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCkBAIC00Nyw3ICs0
Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIoKSA9IGRlZmF1bHQ7
CiAKICAgICBSZWZQdHI8V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gbV9kZWZhdWx0Q29ubmVj
dGlvbjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bj4+IG1fY29ubmVjdGlvbnM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmPFdlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24+PiBtX2Nvbm5lY3Rpb25zOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKaW5kZXggMmI1ZWQ3MGQ2NzdiYTZmNThmZmQ5NzgxM2Y1NWVlOTY1MWI4MTRiYi4u
MzMyNzkzMzk1ZTBkOGM1NzFmZWEyODgxZjdiNzFmYTY2NWQwYWU5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCkBAIC01Niw2ICs1Niw3IEBAIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6V2ViU1dDbGll
bnRDb25uZWN0aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiAgICAgLCBtX3N3T3JpZ2luVGFibGUobWFrZVVuaXF1ZVJlZjxXZWJTV09yaWdpblRh
YmxlPigpKQogeworICAgIEFTU0VSVChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIGluaXRp
YWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKIH0KIApAQCAtNjcsMTAgKzY4LDYgQEAgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjp+V2ViU1dDbGllbnRDb25uZWN0aW9uKCkKIAogdm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKQogewotICAgIEFT
U0VSVChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghbV9zZXNzaW9uSUQuaXNWYWxp
ZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9jb25uZWN0aW9uKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCmluZGV4IDliN2JlYTM3NWViNmI0OTcx
ODJmNjQxNDkwOWVkNGZhNDAwMTdhZGYuLjE2Mzc3NzliM2RiZjM2MjI4MmZmOTA5MmM2NDc3MDgy
YTk3M2Y0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtNjIsNyArNjIsNiBAQCBX
ZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24mIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2Vy
dmljZVdvcmtlckNvbm5lY3Rpb25GbwogCiBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24qIFdl
YlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZv
clNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlz
VmFsaWQoKSk7CiAgICAgYXV0byogbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBp
ZiAoIW5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDllMDBm
NTNmZDJlYTZkMzQ1YzBhNGRhNzAzZWVjYjhkMTEwODRiNTEuLjliZTUyZmY3ZGRjNzM3OTE3ZmI4
MTU5ZDJjMGI1MGMxMjZhNTA0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC01MDIsOSArNTAyLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdl
SWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQogCiAgICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uKSk7CiAKLSAgICAvLyBTZXQgdGhlIHNlc3Npb25JRCAqYmVmb3JlKiB1cGRhdGlu
ZyB0aGUgcHJlZmVyZW5jZXMgYXMgdGhlIHByaXZhdGVCcm93c2luZ0VuYWJsZWQgcHJlZmVyZW5j
ZXMgbWF5IG5lZWQgdG8gb3ZlcnJpZGUgaXQuCi0gICAgaWYgKHBhcmFtZXRlcnMuc2Vzc2lvbklE
LmlzVmFsaWQoKSkKLSAgICAgICAgc2V0U2Vzc2lvbklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKTsK
KyAgICBzZXRTZXNzaW9uSUQocGFyYW1ldGVycy5zZXNzaW9uSUQpOwogCiAgICAgdXBkYXRlUHJl
ZmVyZW5jZXMocGFyYW1ldGVycy5zdG9yZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCA1ZWU1YTdiMjliZWY0NTM5
OWRmZDc4YjMxMjNjMGUwYjJmYzlhY2ExLi40ODVjMmNiYzg4MDc3NGZkOGFkZjY0YzY1MGE4OWU2
ZDhhMDY0YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0
YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRh
dGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00NSwxNyArNDUsOSBAQCBXZWJEYXRhYmFzZVByb3ZpZGVy
Ojp+V2ViRGF0YWJhc2VQcm92aWRlcigpCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiBX
ZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViRGF0YWJhc2VQcm92
aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25J
RCYgc2Vzc2lvbklEKQogewotICAgIGF1dG8gcmVzdWx0ID0gbV9pZGJTZXJ2ZXJNYXAuYWRkKHNl
c3Npb25JRC5zZXNzaW9uSUQoKSwgbnVsbHB0cik7Ci0gICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5
KSB7Ci0gICAgICAgIGlmIChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgICAgIHJl
c3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0
ZShzZXNzaW9uSUQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQuaXRlcmF0b3It
PnZhbHVlID0gV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBp
bmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkpOwotICAgIH0KLQotICAgIHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUtPmlkYlNlcnZlcigpLnNldFBlck9yaWdpblF1b3RhKG1faWRiUGVyT3JpZ2lu
UXVvdGEpOwotCi0gICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmNvbm5lY3Rpb25U
b1NlcnZlcigpOworICAgIHJldHVybiBtX2lkYlNlcnZlck1hcC5lbnN1cmUoc2Vzc2lvbklELCBb
JnNlc3Npb25JRF0geworICAgICAgICByZXR1cm4gc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBX
ZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQpIDogV2ViQ29yZTo6
SW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBpbmRleGVkRGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKCkpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+Y29ubmVjdGlvblRvU2VydmVy
KCk7CiB9CiAKIHZvaWQgV2ViRGF0YWJhc2VQcm92aWRlcjo6ZGVsZXRlQWxsRGF0YWJhc2VzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5o
CmluZGV4IDUyMjIzMzA5YjM5YmUzZWNhY2ViNjlmYzY5ZjIwMDdlMmM5YjNlZGEuLjk2YTczZGNl
NDM1NWM2MTM5YmM3MTIwNDlhYWQ5N2M2ZjI4NzdlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAtNTQsNyArNTQsNyBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgp
OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcj4+IG1faWRiU2VydmVyTWFwOworICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2
ZXI+PiBtX2lkYlNlcnZlck1hcDsKICAgICB1aW50NjRfdCBtX2lkYlBlck9yaWdpblF1b3RhIHsg
V2ViQ29yZTo6SURCU2VydmVyOjpkZWZhdWx0UGVyT3JpZ2luUXVvdGEgfTsKICNlbmRpZgogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376498</attachid>
            <date>2019-08-16 07:07:30 -0700</date>
            <delta_ts>2019-08-16 09:09:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200811-20190816160727.patch</filename>
            <type>text/plain</type>
            <size>35525</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVlYTE4ZGFmYTdiMTEy
MzE2MWVlZGVjZGU2ZGY3YWU0YTlmNDA2ZS4uMTNmN2M1NTg5Mjk3NGE2NDQyNjc3OTc3ZjdkMTVj
NGI4NmJmM2ExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA4LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklE
OjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IsIHVwZGF0ZSBTZXNzaW9uSUQgY2FsbCBz
aXRlcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9uSUQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6cmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50cyk6CisKIDIwMTktMDgtMTYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzcGVjdWxhdGl2ZSBidWlsZCBmaXggZm9yIFdp
bkNhaXJvLCBwYXJ0IDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDYwZTdmYjU2Yzk3MDVlMTlmYzg5
YmM4YTZiZDRmNDIzZWYxNjI1YmUuLjgyNjhhYTZkYTg4Mzg5NTdmYjkxMDBkOTE4ZTA1MzRhMjlm
YzljNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA4LTE2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lv
bklEOjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCBhbmQgbWFrZSBp
dCBjbG9zZXIgdG8gYSByZWd1bGFyIE9iamVjdElkZW50aWZpZXIuCisKKyAgICAgICAgKiBwYWwv
U2Vzc2lvbklELmNwcDoKKyAgICAgICAgKiBwYWwvU2Vzc2lvbklELmg6CisgICAgICAgIChQQUw6
OlNlc3Npb25JRDo6U2Vzc2lvbklEKToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc1ZhbGlk
IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc0VwaGVtZXJhbCBjb25zdCk6Cisg
ICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgor
ICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OnRvVUludDY0IGNvbnN0KToKKyAgICAgICAgKFBBTDo6
U2Vzc2lvbklEOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjpv
cGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgor
ICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OmlzVmFsaWRTZXNzaW9uSURWYWx1ZSk6CisgICAgICAg
IChQQUw6OlNlc3Npb25JRDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklE
OjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKToKKyAgICAgICAg
KFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD46OmVtcHR5VmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToK
KyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD46OmlzRGVsZXRlZFZhbHVl
KToKKwogMjAxOS0wOC0xNCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIG1hY09TIDwgMTAuMTMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmI3YWU3
Y2QzZDk1OGRjMzE5NGVmM2FiMjIxOGUyZDVhNTcwMTk3Ni4uYmE3N2M0M2RlNTc2ZjBhZWMyM2E5
ZmNmNzYzMDVjZjFhNDI1OWJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxOS0wOC0x
NiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNl
c3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIFNlc3Npb25JRCBjYWxsIHNpdGVzIHRvIHVzZSB0b1VJ
bnQ2NC4KKyAgICAgICAgUmVtb3ZlIGRlYnVnIGFzc2VydHMgdG8gaXNWYWxpZCBzaW5jZSBjb25z
dHJ1Y3Rpb24gb2YgaW52YWxpZCBzZXNzaW9uIElEcyBjYW4gb25seSBoYXBwZW4gaW4gdmVyeSBz
cGVjaWZpYyBjYXNlcworICAgICAgICB0eXBpY2FsbHkgZm9yIEhhc2hNYXBzLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpuZXR3b3JrU2Vzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpuZXR3b3JrU2Vzc2lvbkJ5Q29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6cmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmV4aXN0aW5nU1dPcmlnaW5TdG9yZUZvclNlc3Np
b24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6d2ViUHJvY2Vzc1dh
c0Rpc2Nvbm5lY3RlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNp
dGVEYXRhU3RvcmVTZXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXApOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ05vbkRlZmF1bHREYXRhU3RvcmVGb3JTZXNzaW9u
SUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNo
ZVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rp
b246OldlYlNXQ2xpZW50Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbkZvclNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcik6
CisKIDIwMTktMDgtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV1RGXSBBZGQgbWFrZVVuaXF1ZTxUPiwgd2hpY2ggZW5zdXJlcyBUIGlzIGZhc3QtYWxs
b2NhdGVkLCBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRCBhbm5vdGF0aW9uIHBhcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKaW5kZXggOTNlN2U4MzU4ZWM2YjFhYTA3NzkzOTExMjkwZmY4N2UxMjNmYjQ0NS4u
MTc2YzMyZGZlOGMyNDM0NmIwNDFmYTI2YjQ1MGI0NWQ3NGMwNDY3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wOC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODEx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9y
YWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViRGF0YWJhc2VQcm92aWRl
cjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICogU3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisKIDIwMTktMDgtMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW0ZUV10gRW5hYmxlIENvcmVGb3VuZGF0aW9uIHVz
ZSBpZiBidWlsZGluZyBmb3IgQXBwbGUgdGFyZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL1Nlc3Npb25JRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25J
RC5jcHAKaW5kZXggYzQyMzVlNGQ5N2JhOThhMWZiNjFkMzNmOGFlYzUwN2VkOGI0MmZkMS4uNmIz
MGI0YTA2YmFiNDhjYTY5ZTQ5NTVlNTJjYjQxNjJiYjIwNzgwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvU2Vzc2lvbklELmNwcApAQCAtNTUsOSArNTUsNCBAQCB2b2lkIFNlc3Npb25JRDo6ZW5hYmxl
R2VuZXJhdGlvblByb3RlY3Rpb24oKQogICAgIGdlbmVyYXRpb25Qcm90ZWN0aW9uRW5hYmxlZCA9
IHRydWU7CiB9CiAKLVNlc3Npb25JRCBTZXNzaW9uSUQ6Omlzb2xhdGVkQ29weSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIFNlc3Npb25JRCB7IG1fc2Vzc2lvbklEIH07Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lvbklELmgKaW5kZXggMGJkZGRlN2I4ZTMzYjk2
OTA1MTU3OTEzMjJmMDhkZWY2MWNiNTkwMC4uYWU3ZjQxNWNkZmRhM2M1YWFlNDAxNTEwYjIwMDdh
NTAzMGRiMWRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5oCkBAIC00Miw1OCArNDIs
NTUgQEAgcHVibGljOgogICAgICAgICBIYXNoVGFibGVEZWxldGVkVmFsdWVJRCA9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSwKICAgICB9OwogCi0gICAgc3RhdGljIFNlc3Np
b25JRCBlbXB0eVNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZh
bHVlSUQpOyB9Ci0gICAgc3RhdGljIFNlc3Npb25JRCBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSB7
IHJldHVybiBTZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQpOyB9CiAgICAgc3RhdGlj
IFNlc3Npb25JRCBkZWZhdWx0U2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKERlZmF1bHRT
ZXNzaW9uSUQpOyB9CiAgICAgc3RhdGljIFNlc3Npb25JRCBsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkgeyByZXR1cm4gU2Vzc2lvbklEKExlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOyB9CiAKLSAgICBi
b29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vzc2lvbklEVmFsdWUobV9zZXNz
aW9uSUQpOyB9Ci0gICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEICYgRXBoZW1lcmFsU2Vzc2lvbk1hc2sgJiYgbV9zZXNzaW9uSUQgIT0gSGFzaFRhYmxlRGVs
ZXRlZFZhbHVlSUQ7IH0KKyAgICBleHBsaWNpdCBTZXNzaW9uSUQoV1RGOjpIYXNoVGFibGVEZWxl
dGVkVmFsdWVUeXBlKQorICAgICAgICA6IG1faWRlbnRpZmllcihIYXNoVGFibGVEZWxldGVkVmFs
dWVJRCkKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQgU2Vzc2lvbklEKFdURjo6SGFzaFRh
YmxlRW1wdHlWYWx1ZVR5cGUpCisgICAgICAgIDogbV9pZGVudGlmaWVyKEhhc2hUYWJsZUVtcHR5
VmFsdWVJRCkKKyAgICB7CisgICAgfQogCiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklE
IGdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7CiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vz
c2lvbklEIGdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgpOwogICAgIFBBTF9FWFBPUlQgc3Rh
dGljIHZvaWQgZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKTsKIAotICAgIHVpbnQ2NF90IHNl
c3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9Ci0gICAgYm9vbCBvcGVyYXRv
cj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEID09IHNl
c3Npb25JRC5tX3Nlc3Npb25JRDsgfQotICAgIGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vz
c2lvbklEKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRCAhPSBzZXNzaW9uSUQubV9zZXNzaW9u
SUQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vzc2lvbklE
VmFsdWUobV9pZGVudGlmaWVyKTsgfQorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXIgJiBFcGhlbWVyYWxTZXNzaW9uTWFzayAmJiBtX2lkZW50aWZpZXIg
IT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0KKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IEhhc2hUYWJsZURlbGV0ZWRW
YWx1ZUlEOyB9CisKKyAgICB1aW50NjRfdCB0b1VJbnQ2NCgpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorICAgIGJvb2wgb3BlcmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXIgPT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsgfQorICAg
IGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXIgIT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsgfQogICAgIGJvb2wgaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gIWlzRXBoZW1lcmFsKCk7IH0KIAogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFNl
c3Npb25JRCYpOwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxT
ZXNzaW9uSUQ+IGRlY29kZShEZWNvZGVyJik7CiAKLSAgICBTZXNzaW9uSUQgaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7CisgICAgU2Vzc2lvbklEIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuICp0
aGlzOyB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2Vzc2lvbklEKHVpbnQ2NF90
IHNlc3Npb25JRCkKLSAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgZXhwbGlj
aXQgU2Vzc2lvbklEKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgICAgIDogbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGlzVmFsaWRTZXNz
aW9uSURWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBIYXNo
VGFibGVFbXB0eVZhbHVlSUQgJiYgc2Vzc2lvbklEICE9IEhhc2hUYWJsZURlbGV0ZWRWYWx1ZUlE
OyB9CisgICAgc3RhdGljIGJvb2wgaXNWYWxpZFNlc3Npb25JRFZhbHVlKHVpbnQ2NF90IGlkZW50
aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0K
IAotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsK
IH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlc3Npb25JRDo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSB0byBhIHJlZ3Vs
YXIgQVNTRVJULgotICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWQoKSk7Ci0gICAgZW5jb2RlciA8
PCBtX3Nlc3Npb25JRDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wgU2Vzc2lv
bklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCi17Ci0g
ICAgT3B0aW9uYWw8U2Vzc2lvbklEPiBkZWNvZGVkU2Vzc2lvbklEOwotICAgIGRlY29kZXIgPj4g
ZGVjb2RlZFNlc3Npb25JRDsKLSAgICBpZiAoIWRlY29kZWRTZXNzaW9uSUQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHNlc3Npb25JRCA9ICpkZWNvZGVkU2Vzc2lvbklEOwotICAgIHJl
dHVybiB0cnVlOworICAgIEFTU0VSVChpc1ZhbGlkKCkpOworICAgIGVuY29kZXIgPDwgbV9pZGVu
dGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTAxLDkgKzk4LDkgQEAg
T3B0aW9uYWw8U2Vzc2lvbklEPiBTZXNzaW9uSUQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBzZXNzaW9uSUQ7CiAgICAgZGVjb2RlciA+PiBzZXNz
aW9uSUQ7Ci0gICAgaWYgKCFzZXNzaW9uSUQgfHwgIWlzVmFsaWRTZXNzaW9uSURWYWx1ZSgqc2Vz
c2lvbklEKSkKKyAgICBpZiAoIXNlc3Npb25JRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLQorICAgIEFTU0VSVChpc1ZhbGlkU2Vzc2lvbklEVmFsdWUoKnNlc3Npb25JRCkpOwogICAg
IHJldHVybiBTZXNzaW9uSUQgeyAqc2Vzc2lvbklEIH07CiB9CiAKQEAgLTExMiwxNiArMTA5LDE3
IEBAIE9wdGlvbmFsPFNlc3Npb25JRD4gU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKIG5hbWVzcGFjZSBXVEYgewogCiBzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7Ci0gICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2go
cC5zZXNzaW9uSUQoKSk7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQQUw6OlNl
c3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnRvVUludDY0KCkpOyB9CiAgICAgc3RhdGlj
IGJvb2wgZXF1YWwoY29uc3QgUEFMOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFBBTDo6U2Vzc2lvbklE
JiBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRy
YWl0czxQQUw6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4g
ewotICAgIHN0YXRpYyBQQUw6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gUEFMOjpT
ZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7IH0KIAotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVj
dERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpTZXNzaW9u
SUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVk
VmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gUEFMOjpT
ZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFBBTDo6U2Vzc2lv
bklEPiB7CisgICAgc3RhdGljIFBBTDo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJldHVybiBQ
QUw6OlNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpT
ZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVs
ZXRlZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90LmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIH07CisKIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRI
YXNoPFBBTDo6U2Vzc2lvbklEPiB7CiAgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhhc2g7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAxMTlhYTg3NDc0
ZjllMWY1ZjA3Y2EzNzI0Njk4OWE0ODlkNTQ1NmQ5Li4wYWYxOGI1MTJiYjc0YzQ5ZTk0OWQ1OGY3
NmM2MmIxYzA1NDVjYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQpAQCAtMjczMiw3ICsyNzMyLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOm1fb2JqZWN0
LT5jYXJldEJyb3dzaW5nRW5hYmxlZCgpXTsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlz
RXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlXZWJTZXNzaW9uSURBdHRyaWJ1dGVdKSB7CiAg
ICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IG1fb2JqZWN0LT50b3BEb2N1bWVudCgpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZ0xv
bmc6ZG9jLT5zZXNzaW9uSUQoKS5zZXNzaW9uSUQoKV07CisgICAgICAgICAgICAgICAgcmV0dXJu
IFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpkb2MtPnNlc3Npb25JRCgpLnRv
VUludDY0KCldOwogICAgICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMDE2ZDA3YTYyZmUyMDA4NWJmYTBmMDY5NmM2ZTFlNDYyMWMxZmMxZS4uMzZkMmNlZGUx
OTFmNWJhZmM1OGRhNjFjNTA3NWViODdhMjljMWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC01MDY2LDEyICs1MDY2LDYgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBT
dHJpbmcmIHVybCkgY29uc3QKIAogUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJu
IG1fc2Vzc2lvbklEOwotCi0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAg
ICAgIG1fc2Vzc2lvbklEID0gcGFnZS0+c2Vzc2lvbklEKCk7Ci0KICAgICByZXR1cm4gbV9zZXNz
aW9uSUQ7CiB9CiAKQEAgLTUyODAsOCArNTI3NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnByaXZhdGVC
cm93c2luZ1N0YXRlRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
ZWxlbWVudC0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Uoc2Vzc2lvbklEKTsKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7
Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Vydmlj
ZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uICYmIHNlc3Npb25J
RC5pc1ZhbGlkKCkpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9u
KQogICAgICAgICBzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigmU2VydmljZVdvcmtlclByb3Zp
ZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lv
bklEKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKaW5kZXggZjYzMGU4NjYxMmQ5M2VjZmJi
NmEyZjg0NzRiZDc0MzA4NGI3YjRhMi4uN2JiYWM1Y2E0MTQwYjNjNzY4MzFjYmFkN2Y0Mzc2YTRm
OWFkZDk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKQEAgLTY2LDkgKzY2LDYgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyUHJvdmlkZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoKQogICAgIHNldE1h
eUhhdmVSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoKTsKICAgICBmb3IgKGF1dG8qIGRvY3VtZW50
IDogRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpKSB7CiAgICAgICAgIGF1dG8gc2Vzc2lvbklEID0g
ZG9jdW1lbnQtPnNlc3Npb25JRCgpOwotICAgICAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkp
Ci0gICAgICAgICAgICBjb250aW51ZTsKLQogICAgICAgICBpZiAoU2NoZW1lUmVnaXN0cnk6OmNh
blNlcnZpY2VXb3JrZXJzSGFuZGxlVVJMU2NoZW1lKGRvY3VtZW50LT51cmwoKS5wcm90b2NvbCgp
LnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCiAgICAgICAgICAgICBkb2N1bWVudC0+c2V0U2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24oJnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihz
ZXNzaW9uSUQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCmluZGV4IDc0ZWQxM2JlNjEzZDcxZmQz
MzI0MTY5NWU1ZGIzNjE2YzI0NTA4OTcuLjM3ZGI1ZTRiNTRmMWJkOTI4YjhlNDU0MDBhMmYyN2Nk
MWFmYjY4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uRm9y
RG93bmxvYWRzKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYg
ZG93bmxvYWRzQXV0aGVudGljYXRpb25NYW5hZ2VyKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcGVuZGluZ0Rvd25sb2FkQ2FuY2VsZWQoRG93bmxvYWRJRCkgPSAwOwotICAgICAgICB2aXJ0
dWFsIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYp
IGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Np
b24oUEFMOjpTZXNzaW9uSUQpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZigp
IGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgY29uc3QgPSAwOwogICAg
ICAgICB2aXJ0dWFsIHVpbnQzMl90IGRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllcigpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYmJlOWE5YWE0NmE5NjM0
MDI4MmY3MGQyZDNkNGZjMmRkM2M0ZTgyZC4uOTFiZTA5ZGQzNDAwZDJmYjNjZDFiZmRlZGZmZDUz
NThmZTI2NTZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ4OCw3ICs0ODgs
NiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQcmVjb25u
ZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3RpbwogCiBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzdG9yYWdlU2Vzc2lvbihjb25zdCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7CiAgICAgaWYgKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9j
ZXNzLnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgICAgICByZXR1cm4gKnN0b3Jh
Z2VTZXNzaW9uOwpAQCAtNjgzLDEwICs2ODIsNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aQog
CiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
KQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25J
RC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vz
c2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAg
ICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCiAgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5sb2dVc2VySW50ZXJhY3Rpb24oZG9tYWluLCBbXSB7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBjNzc2N2QyY2VlZDcx
YTAwNDFlNjBmOWFjYThiYjhkMjIxNzI2M2Q0Li5kYzQzMGMwNGYzNGZkMDQ2MGJjZGMyZTUwYzQz
YWYyNGU5YTI1OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcApAQCAtNTY4LDM2ICs1NjgsMjcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
Zm9yRWFjaE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihjb25zdCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6
Ok4KICAgICAgICAgZnVuY3Rvcigqc3RvcmFnZVNlc3Npb24pOwogfQogCi1OZXR3b3JrU2Vzc2lv
biogTmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBz
ZXNzaW9uSUQpIGNvbnN0CitOZXR3b3JrU2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBy
ZXR1cm4gc2Vzc2lvbklELmlzVmFsaWQoKSA/IG1fbmV0d29ya1Nlc3Npb25zLmdldChzZXNzaW9u
SUQpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gbV9uZXR3b3JrU2Vzc2lvbnMuZ2V0KHNlc3Npb25J
RCk7CiB9CiAKIE5ldHdvcmtTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6bmV0d29ya1Nlc3Npb25C
eUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSBjb25zdAogewotICAgIGF1
dG8gc2Vzc2lvbklEID0gbV9zZXNzaW9uQnlDb25uZWN0aW9uLmdldChjb25uZWN0aW9uLnVuaXF1
ZUlEKCkpOwotICAgIHJldHVybiBzZXNzaW9uSUQuaXNWYWxpZCgpID8gbmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSA6IG51bGxwdHI7CisgICAgYXV0byBpdGVyYXRvciA9IG1fc2Vzc2lvbkJ5Q29u
bmVjdGlvbi5maW5kKGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9y
ICE9IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbi5lbmQoKSA/IG5ldHdvcmtTZXNzaW9uKGl0ZXJhdG9y
LT52YWx1ZSkgOiBudWxscHRyOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9u
KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
U2Vzc2lvbj4mJiBzZXNzaW9uKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJiBz
ZXNzaW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNTRVJUKHNl
c3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAg
ICAgcmV0dXJuOwotCiAgICAgbV9uZXR3b3JrU2Vzc2lvbnMuc2V0KHNlc3Npb25JRCwgV1RGTW92
ZShzZXNzaW9uKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKGNv
bnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0
cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYg
KCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICNpZiAhVVNFKFNPVVAp
CiAgICAgLy8gU291cCBiYXNlZCBwb3J0cyBkZXN0cm95IHRoZSBkZWZhdWx0IHNlc3Npb24gcmln
aHQgYmVmb3JlIHRoZSBwcm9jZXNzIGV4aXRzIHRvIGF2b2lkIGxlYWtpbmcKICAgICAvLyBuZXR3
b3JrIHJlc291cmNlcyBsaWtlIHRoZSBjb29raWVzIGRhdGFiYXNlLgpAQCAtMTMwMSwxMCArMTI5
Miw2IEBAIHN0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhOZXR3b3JrQ2FjaGU6OkNh
Y2hlKiBjYWNoZSwgUEFMOjpTZXNzaW9uSUQgc2VzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZl
dGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4gZmV0Y2hPcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkpCi0gICAg
ICAgIHJldHVybjsKLQogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgZmluYWwgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CiAgICAgICAgIGV4
cGxpY2l0IENhbGxiYWNrQWdncmVnYXRvcihGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpCkBAIC0xNDAyLDEwICsxMzg5LDYgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXQKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lE
KQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25J
RC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6SFNUU0NhY2hl
KSkgewogICAgICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNl
c3Npb24oc2Vzc2lvbklEKSkKQEAgLTE2MTYsMTAgKzE1OTksNiBAQCBzdGF0aWMgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZmlsdGVyRm9yUmVnaXN0cmFibGVEb21haW5zKGNv
bnN0IEhhcwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lz
dHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFdl
YnNpdGVEYXRhVG9SZW1vdmU+JiYgZG9tYWlucywgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwot
ICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucyA9IFdlYnNpdGVEYXRh
RmV0Y2hPcHRpb246OkRvTm90Q3JlYXRlUHJvY2Vzc2VzOwogCiAgICAgc3RydWN0IENhbGxiYWNr
QWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDYWxsYmFja0Fn
Z3JlZ2F0b3I+IHsKQEAgLTE4MjQsMTAgKzE4MDMsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpk
ZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJlZ2lzdHJh
YgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklE
LmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
RmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucyA9IFdlYnNpdGVEYXRhRmV0Y2hPcHRpb246OkRvTm90
Q3JlYXRlUHJvY2Vzc2VzOwogICAgIAogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgZmlu
YWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CkBA
IC0yNDU2LDE0ICsyNDMxLDEyIEBAIGJvb2wgTmV0d29ya1Byb2Nlc3M6Om5lZWRzU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlCiAKIFNXU2VydmVy
JiBOZXR3b3JrUHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0KICAgICBhdXRvIHJl
c3VsdCA9IG1fc3dTZXJ2ZXJzLmVuc3VyZShzZXNzaW9uSUQsIFsmXSB7CiAgICAgICAgIGF1dG8g
cGF0aCA9IG1fc3dEYXRhYmFzZVBhdGhzLmdldChzZXNzaW9uSUQpOwogICAgICAgICAvLyBUaGVy
ZSBzaG91bGQgYWxyZWFkeSBiZSBhIHJlZ2lzdGVyZWQgcGF0aCBmb3IgdGhpcyBQQUw6OlNlc3Np
b25JRC4KICAgICAgICAgLy8gSWYgdGhlcmUncyBub3QsIHRoZW4gd2hlcmUgZGlkIHRoaXMgUEFM
OjpTZXNzaW9uSUQgY29tZSBmcm9tPwogICAgICAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1l
cmFsKCkgfHwgIXBhdGguaXNFbXB0eSgpKTsKLSAgICAgICAgCisKICAgICAgICAgYXV0byB2YWx1
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1dTZXJ2ZXI+KG1ha2VVbmlxdWVSZWY8V2ViU1dPcmlnaW5T
dG9yZT4oKSwgV1RGTW92ZShwYXRoKSwgc2Vzc2lvbklEKTsKICAgICAgICAgaWYgKG1fc2hvdWxk
RGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSkKICAgICAgICAgICAg
IHZhbHVlLT5kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCk7CkBA
IC0yNDc1LDEwICsyNDQ4LDYgQEAgU1dTZXJ2ZXImIE5ldHdvcmtQcm9jZXNzOjpzd1NlcnZlckZv
clNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiBXZWJTV09yaWdpblN0b3JlKiBO
ZXR3b3JrUHJvY2Vzczo6ZXhpc3RpbmdTV09yaWdpblN0b3JlRm9yU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkp
OwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KICAgICBhdXRvKiBzd1NlcnZlciA9IG1fc3dTZXJ2ZXJzLmdldChzZXNzaW9uSUQpOwogICAg
IGlmICghc3dTZXJ2ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDMyMTFlOTBmNjUxODM2YTNi
MDc2YzMyMmFhYjg2MzQ4MTdkNGM3M2EuLmYxMDIxOGM4MTZiMzI0NDYwY2QzYTBiN2JhZjQ3MTdl
NWJlNzU5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKQEAgLTE2MCwxMCArMTYwLDEwIEBAIHB1YmxpYzoKICAgICBBdXRoZW50aWNhdGlvbk1h
bmFnZXImIGF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogICAgIERvd25sb2FkTWFuYWdlciYgZG93
bmxvYWRNYW5hZ2VyKCk7CiAKLSAgICB2b2lkIHNldFNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9u
SUQmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYpOwotICAgIE5ldHdvcmtTZXNz
aW9uKiBuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpIGNvbnN0IGZpbmFsOwor
ICAgIHZvaWQgc2V0U2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdv
cmtTZXNzaW9uPiYmKTsKKyAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oUEFMOjpT
ZXNzaW9uSUQpIGNvbnN0IGZpbmFsOwogICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lv
bkJ5Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKSBjb25zdDsKLSAgICB2b2lkIGRlc3Ryb3lT
ZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7CisgICAgdm9pZCBkZXN0cm95U2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihjb25zdCBG
dW5jdGlvbjx2b2lkKE5ldHdvcmtTZXNzaW9uJik+Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBlYzZh
ODBjODQ4OWRlZjMyZDc4OWI3NGJlYzEyNzM1N2JlYzU1ODM1Li5mM2UyZGMyMWNjMDk5NGYwMmU5
YzZkZThkOGNiYTAyMTExMTUwZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zMDcsOCArMzA3LDggQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICAgICAgbmV0d29ya1Nlc3Npb24gPSBtX2Nvbm5l
Y3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24ocGFyYW1ldGVycy5zZXNzaW9u
SUQpOwogICAgIH0KICAgICBpZiAoIW5ldHdvcmtTZXNzaW9uKSB7Ci0gICAgICAgIFdURkxvZ0Fs
d2F5cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25J
RC5zZXNzaW9uSUQoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0
YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEg
c2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQ
Ukl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0
ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQXR0ZW1w
dGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0lIiBQUkl1NjQg
IikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC50b1VJbnQ2NCgp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9h
ZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQg
ZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklE
LnRvVUludDY0KCkpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubG9n
RGlhZ25vc3RpY01lc3NhZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6aW52YWxpZFNlc3Npb25JREtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6
Ok5vKTsKICAgICAgICAgZGlkRmFpbExvYWRpbmcoaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgp
KSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggNzEyOTc1MTU4
OTYwZDUzNDIzYjkxMWUzZjgwZjEzYjFhMjA2NWU4YS4uZTNkYzYzMTJmNGU3ODI2OThhOTEyMTMx
MWJkNDAxMWFjYzAzZjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTU4LDcgKzU4LDcg
QEAgdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNl
c3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHcKICAgICBpZiAoIXNlc3Npb25JRC5pc0VwaGVtZXJh
bCgpICYmICFwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1w
dHkoKSkKICAgICAgICAgdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGNvb2tpZVN0b3JhZ2VGcm9t
SWRlbnRpZnlpbmdEYXRhKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZp
ZXIpOwogCi0gICAgbmV0d29ya1Byb2Nlc3MuZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIG1ha2VT
dHJpbmcoYmFzZSwgJy4nLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpLCBXVEZNb3ZlKHVpUHJvY2Vz
c0Nvb2tpZVN0b3JhZ2UpKTsKKyAgICBuZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Np
b25JRCwgbWFrZVN0cmluZyhiYXNlLCAnLicsIHNlc3Npb25JRC50b1VJbnQ2NCgpKSwgV1RGTW92
ZSh1aVByb2Nlc3NDb29raWVTdG9yYWdlKSk7CiAKICAgICBhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3Muc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKTsKICAgICBmb3IgKGNvbnN0IGF1dG8m
IGNvb2tpZSA6IHBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5
MWVjZTFmMGRhZmZlM2VhNjNhZGJjMGQ5MWVhYzRkMTgxMTEzMDlhLi4wM2Y0ZGQxYWM3YmYwYWU2
MGIxODU4OTRiNjUwNWFkYmZlNjQ0MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTExMDQsNyArMTEw
NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJh
bWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JCiAgICAgYXV0byogc3RvcmUgPSB3ZWJzaXRl
RGF0YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQpOwogCiAgICAgaWYgKCFzdG9yZSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihDYWNoZVN0b3JhZ2UsICIlcCAtIE5ldHdvcmtQcm9j
ZXNzUHJveHkgaXMgdW5hYmxlIHRvIHJldHJpZXZlIENhY2hlU3RvcmFnZSBwYXJhbWV0ZXJzIGZy
b20gdGhlIGdpdmVuIHNlc3Npb24gSUQgJSIgUFJJdTY0LCB0aGlzLCBzZXNzaW9uSUQuc2Vzc2lv
bklEKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihDYWNoZVN0b3JhZ2UsICIlcCAtIE5l
dHdvcmtQcm9jZXNzUHJveHkgaXMgdW5hYmxlIHRvIHJldHJpZXZlIENhY2hlU3RvcmFnZSBwYXJh
bWV0ZXJzIGZyb20gdGhlIGdpdmVuIHNlc3Npb24gSUQgJSIgUFJJdTY0LCB0aGlzLCBzZXNzaW9u
SUQudG9VSW50NjQoKSk7CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpT
ZXRDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklELCB7IH0sIHsgfSB9LCAwKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggNmZmMWJjZDFhNmNlZmRi
MDgzM2RjMmM2NGE1OTM0YjUzYTVkOWE4MS4uZTJkZjQxN2QyZTgwNGQzMDdkZTQ0OTZjMjViNGYz
YTEzY2IyYjE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBXZWJzaXRl
RGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsK
IAotICAgIGlmIChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlmIChtX3Nlc3Npb25JRCAhPSBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVChub25E
ZWZhdWx0RGF0YVN0b3JlcygpLmdldChtX3Nlc3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5v
bkRlZmF1bHREYXRhU3RvcmVzKCkucmVtb3ZlKG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChh
dXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgewpA
QCAtMTU3LDcgKzE1Nyw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCkK
IAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjptYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCgp
CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBtX3Nlc3Npb25JRCAhPSBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CisgICAgaWYgKG1fc2Vzc2lvbklEICE9
IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKICAgICAgICAgYXV0byByZXN1
bHQgPSBub25EZWZhdWx0RGF0YVN0b3JlcygpLmFkZChtX3Nlc3Npb25JRCwgdGhpcyk7CiAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiAgICAgfQpAQCAt
MTY1LDcgKzE2NSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhT
ZXNzaW9uSURNYXAoKQogCiBXZWJzaXRlRGF0YVN0b3JlKiBXZWJzaXRlRGF0YVN0b3JlOjpleGlz
dGluZ05vbkRlZmF1bHREYXRhU3RvcmVGb3JTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogewotICAgIHJldHVybiBzZXNzaW9uSUQuaXNWYWxpZCgpICYmIHNlc3Npb25JRCAhPSBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpID8gbm9uRGVmYXVsdERhdGFTdG9yZXMo
KS5nZXQoc2Vzc2lvbklEKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHNlc3Npb25JRCAhPSBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpID8gbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5n
ZXQoc2Vzc2lvbklEKSA6IG51bGxwdHI7CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVn
aXN0ZXJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3Bw
CmluZGV4IDlhYjBlMGY2YTUzZjRlZjBiYTRmZjgzZGJjYzVkOWQxNzkyNWE1MDUuLjUwMWNiNzIw
NjI0ODI0MWY5NDI2ODVhYWNjZDQ3MGJmNDYyMjFmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcApA
QCAtMzcsMTQgKzM3LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUmVmPFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24+IFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkpIHsKLSAgICAgICAgcmV0dXJuIG1fY29ubmVjdGlvbnMuZW5z
dXJlKHNlc3Npb25JRC5zZXNzaW9uSUQoKSwgWz1dKCkgeworICAgICAgICByZXR1cm4gbV9jb25u
ZWN0aW9ucy5lbnN1cmUoc2Vzc2lvbklELCBbPV0oKSB7CiAgICAgICAgICAgICByZXR1cm4gV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCp0aGlzLCBzZXNzaW9uSUQpOwogICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUuY29weVJlZigpOwogICAgIH0KIAogICAgIGlmICghbV9kZWZh
dWx0Q29ubmVjdGlvbikgewogICAgICAgICBtX2RlZmF1bHRDb25uZWN0aW9uID0gV2ViQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCp0aGlzLCBzZXNzaW9uSUQpOwotICAgICAgICBtX2Nv
bm5lY3Rpb25zLnNldChzZXNzaW9uSUQuc2Vzc2lvbklEKCksICptX2RlZmF1bHRDb25uZWN0aW9u
KTsKKyAgICAgICAgbV9jb25uZWN0aW9ucy5zZXQoc2Vzc2lvbklELCAqbV9kZWZhdWx0Q29ubmVj
dGlvbik7CiAgICAgfQogICAgIHJldHVybiAqbV9kZWZhdWx0Q29ubmVjdGlvbjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92
aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyLmgKaW5kZXggY2IxNmQzMmU3Nzk2Mjc2ZjZjOWU1ZTA4NjdmY2JkMDA2ZTVjZjk0OS4u
MzhhZWU2Y2U2MTIxNDdlNWZkZDNmNjY3NzA5ZDk1MWQ0NTNmMjdkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVy
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDYWNoZVN0b3JhZ2VQcm92aWRl
cigpID0gZGVmYXVsdDsKIAogICAgIFJlZlB0cjxXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBt
X2RlZmF1bHRDb25uZWN0aW9uOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZjxXZWJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uPj4gbV9jb25uZWN0aW9uczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lv
bklELCBSZWY8V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4+IG1fY29ubmVjdGlvbnM7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCAyYjVlZDcwZDY3N2JhNmY1OGZmZDk3ODEzZjU1
ZWU5NjUxYjgxNGJiLi4zMzI3OTMzOTVlMGQ4YzU3MWZlYTI4ODFmN2I3MWZhNjY1ZDBhZTk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjpXZWJTV0NsaWVudENvbm5lY3Rpb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fc3dPcmlnaW5UYWJsZShtYWtlVW5pcXVlUmVm
PFdlYlNXT3JpZ2luVGFibGU+KCkpCiB7CisgICAgQVNTRVJUKG1fc2Vzc2lvbklELmlzVmFsaWQo
KSk7CiAgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOwogfQogCkBAIC02NywxMCAr
NjgsNiBAQCBXZWJTV0NsaWVudENvbm5lY3Rpb246On5XZWJTV0NsaWVudENvbm5lY3Rpb24oKQog
CiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRl
ZCgpCiB7Ci0gICAgQVNTRVJUKG1fc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFtX3Nl
c3Npb25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChtX2Nvbm5lY3Rp
b24pCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKaW5kZXggOWI3
YmVhMzc1ZWI2YjQ5NzE4MmY2NDE0OTA5ZWQ0ZmE0MDAxN2FkZi4uMTYzNzc3OWIzZGJmMzYyMjgy
ZmY5MDkyYzY0NzcwODJhOTczZjQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCkBAIC02
Miw3ICs2Miw2IEBAIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiYgV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyOjpzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvCiAKIFdlYkNvcmU6OlNXQ2xpZW50
Q29ubmVjdGlvbiogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpleGlzdGluZ1NlcnZpY2VXb3Jr
ZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VS
VChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKICAgICBhdXRvKiBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpOwogICAgIGlmICghbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggMDFmZjFhNGY0NTdlNTM5MzU2MTQzMjRhMDk0ODg0MDNhNzUwNTVhMS4uNmU1ZDA1
MWU0ZDgyMDA5ODYyOGFhNWEwYmNiMzFjN2Y4NmU4MGE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUwMiw5ICs1MDIsNyBAQCBXZWJQYWdl
OjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCiAKICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKIAotICAgIC8vIFNldCB0aGUgc2Vzc2lvbklEICpi
ZWZvcmUqIHVwZGF0aW5nIHRoZSBwcmVmZXJlbmNlcyBhcyB0aGUgcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCBwcmVmZXJlbmNlcyBtYXkgbmVlZCB0byBvdmVycmlkZSBpdC4KLSAgICBpZiAocGFyYW1l
dGVycy5zZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICBzZXRTZXNzaW9uSUQocGFyYW1ldGVy
cy5zZXNzaW9uSUQpOworICAgIHNldFNlc3Npb25JRChwYXJhbWV0ZXJzLnNlc3Npb25JRCk7CiAK
ICAgICB1cGRhdGVQcmVmZXJlbmNlcyhwYXJhbWV0ZXJzLnN0b3JlKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4IDVl
ZTVhN2IyOWJlZjQ1Mzk5ZGZkNzhiMzEyM2MwZTBiMmZjOWFjYTEuLjQ4NWMyY2JjODgwNzc0ZmQ4
YWRmNjRjNjUwYTg5ZTZkOGEwNjRiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
U3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTQ1LDE3ICs0NSw5IEBAIFdlYkRh
dGFiYXNlUHJvdmlkZXI6On5XZWJEYXRhYmFzZVByb3ZpZGVyKCkKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKIFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBX
ZWJEYXRhYmFzZVByb3ZpZGVyOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX2lkYlNl
cnZlck1hcC5hZGQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCBudWxscHRyKTsKLSAgICBpZiAocmVz
dWx0LmlzTmV3RW50cnkpIHsKLSAgICAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQot
ICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdlYkNvcmU6OkluUHJvY2Vzc0lE
QlNlcnZlcjo6Y3JlYXRlKHNlc3Npb25JRCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJl
c3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0
ZShzZXNzaW9uSUQsIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKSk7Ci0gICAgfQotCi0g
ICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+aWRiU2VydmVyKCkuc2V0UGVyT3JpZ2luUXVvdGEo
bV9pZGJQZXJPcmlnaW5RdW90YSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZS0+Y29ubmVjdGlvblRvU2VydmVyKCk7CisgICAgcmV0dXJuIG1faWRiU2VydmVyTWFwLmVuc3Vy
ZShzZXNzaW9uSUQsIFsmc2Vzc2lvbklEXSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uSUQuaXNF
cGhlbWVyYWwoKSA/IFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6Y3JlYXRlKHNlc3Npb25J
RCkgOiBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQsIGluZGV4
ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKSk7CisgICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5jb25u
ZWN0aW9uVG9TZXJ2ZXIoKTsKIH0KIAogdm9pZCBXZWJEYXRhYmFzZVByb3ZpZGVyOjpkZWxldGVB
bGxEYXRhYmFzZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dl
YkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLmgKaW5kZXggNTIyMjMzMDliMzliZTNlY2FjZWI2OWZjNjlmMjAwN2UyYzli
M2VkYS4uOTZhNzNkY2U0MzU1YzYxMzliYzcxMjA0OWFhZDk3YzZmMjg3N2VlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC01
NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFN0cmluZyBpbmRleGVkRGF0YWJhc2VE
aXJlY3RvcnlQYXRoKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyPj4gbV9pZGJT
ZXJ2ZXJNYXA7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6Oklu
UHJvY2Vzc0lEQlNlcnZlcj4+IG1faWRiU2VydmVyTWFwOwogICAgIHVpbnQ2NF90IG1faWRiUGVy
T3JpZ2luUXVvdGEgeyBXZWJDb3JlOjpJREJTZXJ2ZXI6OmRlZmF1bHRQZXJPcmlnaW5RdW90YSB9
OwogI2VuZGlmCiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376501</attachid>
            <date>2019-08-16 09:09:38 -0700</date>
            <delta_ts>2019-08-16 11:58:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200811-20190816180936.patch</filename>
            <type>text/plain</type>
            <size>38130</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVlYTE4ZGFmYTdiMTEy
MzE2MWVlZGVjZGU2ZGY3YWU0YTlmNDA2ZS4uMTNmN2M1NTg5Mjk3NGE2NDQyNjc3OTc3ZjdkMTVj
NGI4NmJmM2ExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA4LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklE
OjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IsIHVwZGF0ZSBTZXNzaW9uSUQgY2FsbCBz
aXRlcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9uSUQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6cmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50cyk6CisKIDIwMTktMDgtMTYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzcGVjdWxhdGl2ZSBidWlsZCBmaXggZm9yIFdp
bkNhaXJvLCBwYXJ0IDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDYwZTdmYjU2Yzk3MDVlMTlmYzg5
YmM4YTZiZDRmNDIzZWYxNjI1YmUuLjgyNjhhYTZkYTg4Mzg5NTdmYjkxMDBkOTE4ZTA1MzRhMjlm
YzljNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA4LTE2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lv
bklEOjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCBhbmQgbWFrZSBp
dCBjbG9zZXIgdG8gYSByZWd1bGFyIE9iamVjdElkZW50aWZpZXIuCisKKyAgICAgICAgKiBwYWwv
U2Vzc2lvbklELmNwcDoKKyAgICAgICAgKiBwYWwvU2Vzc2lvbklELmg6CisgICAgICAgIChQQUw6
OlNlc3Npb25JRDo6U2Vzc2lvbklEKToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc1ZhbGlk
IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc0VwaGVtZXJhbCBjb25zdCk6Cisg
ICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgor
ICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OnRvVUludDY0IGNvbnN0KToKKyAgICAgICAgKFBBTDo6
U2Vzc2lvbklEOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjpv
cGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgor
ICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OmlzVmFsaWRTZXNzaW9uSURWYWx1ZSk6CisgICAgICAg
IChQQUw6OlNlc3Npb25JRDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklE
OjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKToKKyAgICAgICAg
KFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD46OmVtcHR5VmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToK
KyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD46OmlzRGVsZXRlZFZhbHVl
KToKKwogMjAxOS0wOC0xNCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIG1hY09TIDwgMTAuMTMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmI3YWU3
Y2QzZDk1OGRjMzE5NGVmM2FiMjIxOGUyZDVhNTcwMTk3Ni4uYmE3N2M0M2RlNTc2ZjBhZWMyM2E5
ZmNmNzYzMDVjZjFhNDI1OWJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxOS0wOC0x
NiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNl
c3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIFNlc3Npb25JRCBjYWxsIHNpdGVzIHRvIHVzZSB0b1VJ
bnQ2NC4KKyAgICAgICAgUmVtb3ZlIGRlYnVnIGFzc2VydHMgdG8gaXNWYWxpZCBzaW5jZSBjb25z
dHJ1Y3Rpb24gb2YgaW52YWxpZCBzZXNzaW9uIElEcyBjYW4gb25seSBoYXBwZW4gaW4gdmVyeSBz
cGVjaWZpYyBjYXNlcworICAgICAgICB0eXBpY2FsbHkgZm9yIEhhc2hNYXBzLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpuZXR3b3JrU2Vzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpuZXR3b3JrU2Vzc2lvbkJ5Q29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6cmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmV4aXN0aW5nU1dPcmlnaW5TdG9yZUZvclNlc3Np
b24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6d2ViUHJvY2Vzc1dh
c0Rpc2Nvbm5lY3RlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNp
dGVEYXRhU3RvcmVTZXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXApOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ05vbkRlZmF1bHREYXRhU3RvcmVGb3JTZXNzaW9u
SUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNo
ZVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rp
b246OldlYlNXQ2xpZW50Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbkZvclNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcik6
CisKIDIwMTktMDgtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV1RGXSBBZGQgbWFrZVVuaXF1ZTxUPiwgd2hpY2ggZW5zdXJlcyBUIGlzIGZhc3QtYWxs
b2NhdGVkLCBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRCBhbm5vdGF0aW9uIHBhcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKaW5kZXggOTNlN2U4MzU4ZWM2YjFhYTA3NzkzOTExMjkwZmY4N2UxMjNmYjQ0NS4u
MTc2YzMyZGZlOGMyNDM0NmIwNDFmYTI2YjQ1MGI0NWQ3NGMwNDY3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wOC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODEx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9y
YWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViRGF0YWJhc2VQcm92aWRl
cjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICogU3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisKIDIwMTktMDgtMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW0ZUV10gRW5hYmxlIENvcmVGb3VuZGF0aW9uIHVz
ZSBpZiBidWlsZGluZyBmb3IgQXBwbGUgdGFyZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL1Nlc3Npb25JRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25J
RC5jcHAKaW5kZXggYzQyMzVlNGQ5N2JhOThhMWZiNjFkMzNmOGFlYzUwN2VkOGI0MmZkMS4uNmIz
MGI0YTA2YmFiNDhjYTY5ZTQ5NTVlNTJjYjQxNjJiYjIwNzgwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvU2Vzc2lvbklELmNwcApAQCAtNTUsOSArNTUsNCBAQCB2b2lkIFNlc3Npb25JRDo6ZW5hYmxl
R2VuZXJhdGlvblByb3RlY3Rpb24oKQogICAgIGdlbmVyYXRpb25Qcm90ZWN0aW9uRW5hYmxlZCA9
IHRydWU7CiB9CiAKLVNlc3Npb25JRCBTZXNzaW9uSUQ6Omlzb2xhdGVkQ29weSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIFNlc3Npb25JRCB7IG1fc2Vzc2lvbklEIH07Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lvbklELmgKaW5kZXggMGJkZGRlN2I4ZTMzYjk2
OTA1MTU3OTEzMjJmMDhkZWY2MWNiNTkwMC4uYWU3ZjQxNWNkZmRhM2M1YWFlNDAxNTEwYjIwMDdh
NTAzMGRiMWRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5oCkBAIC00Miw1OCArNDIs
NTUgQEAgcHVibGljOgogICAgICAgICBIYXNoVGFibGVEZWxldGVkVmFsdWVJRCA9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSwKICAgICB9OwogCi0gICAgc3RhdGljIFNlc3Np
b25JRCBlbXB0eVNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZh
bHVlSUQpOyB9Ci0gICAgc3RhdGljIFNlc3Npb25JRCBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSB7
IHJldHVybiBTZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQpOyB9CiAgICAgc3RhdGlj
IFNlc3Npb25JRCBkZWZhdWx0U2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKERlZmF1bHRT
ZXNzaW9uSUQpOyB9CiAgICAgc3RhdGljIFNlc3Npb25JRCBsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkgeyByZXR1cm4gU2Vzc2lvbklEKExlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOyB9CiAKLSAgICBi
b29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vzc2lvbklEVmFsdWUobV9zZXNz
aW9uSUQpOyB9Ci0gICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEICYgRXBoZW1lcmFsU2Vzc2lvbk1hc2sgJiYgbV9zZXNzaW9uSUQgIT0gSGFzaFRhYmxlRGVs
ZXRlZFZhbHVlSUQ7IH0KKyAgICBleHBsaWNpdCBTZXNzaW9uSUQoV1RGOjpIYXNoVGFibGVEZWxl
dGVkVmFsdWVUeXBlKQorICAgICAgICA6IG1faWRlbnRpZmllcihIYXNoVGFibGVEZWxldGVkVmFs
dWVJRCkKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQgU2Vzc2lvbklEKFdURjo6SGFzaFRh
YmxlRW1wdHlWYWx1ZVR5cGUpCisgICAgICAgIDogbV9pZGVudGlmaWVyKEhhc2hUYWJsZUVtcHR5
VmFsdWVJRCkKKyAgICB7CisgICAgfQogCiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklE
IGdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7CiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vz
c2lvbklEIGdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgpOwogICAgIFBBTF9FWFBPUlQgc3Rh
dGljIHZvaWQgZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKTsKIAotICAgIHVpbnQ2NF90IHNl
c3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9Ci0gICAgYm9vbCBvcGVyYXRv
cj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEID09IHNl
c3Npb25JRC5tX3Nlc3Npb25JRDsgfQotICAgIGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vz
c2lvbklEKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRCAhPSBzZXNzaW9uSUQubV9zZXNzaW9u
SUQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vzc2lvbklE
VmFsdWUobV9pZGVudGlmaWVyKTsgfQorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXIgJiBFcGhlbWVyYWxTZXNzaW9uTWFzayAmJiBtX2lkZW50aWZpZXIg
IT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0KKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IEhhc2hUYWJsZURlbGV0ZWRW
YWx1ZUlEOyB9CisKKyAgICB1aW50NjRfdCB0b1VJbnQ2NCgpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorICAgIGJvb2wgb3BlcmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXIgPT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsgfQorICAg
IGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXIgIT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsgfQogICAgIGJvb2wgaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gIWlzRXBoZW1lcmFsKCk7IH0KIAogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFNl
c3Npb25JRCYpOwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxT
ZXNzaW9uSUQ+IGRlY29kZShEZWNvZGVyJik7CiAKLSAgICBTZXNzaW9uSUQgaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7CisgICAgU2Vzc2lvbklEIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuICp0
aGlzOyB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2Vzc2lvbklEKHVpbnQ2NF90
IHNlc3Npb25JRCkKLSAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgZXhwbGlj
aXQgU2Vzc2lvbklEKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgICAgIDogbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGlzVmFsaWRTZXNz
aW9uSURWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBIYXNo
VGFibGVFbXB0eVZhbHVlSUQgJiYgc2Vzc2lvbklEICE9IEhhc2hUYWJsZURlbGV0ZWRWYWx1ZUlE
OyB9CisgICAgc3RhdGljIGJvb2wgaXNWYWxpZFNlc3Npb25JRFZhbHVlKHVpbnQ2NF90IGlkZW50
aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0K
IAotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsK
IH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlc3Npb25JRDo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSB0byBhIHJlZ3Vs
YXIgQVNTRVJULgotICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWQoKSk7Ci0gICAgZW5jb2RlciA8
PCBtX3Nlc3Npb25JRDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wgU2Vzc2lv
bklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCi17Ci0g
ICAgT3B0aW9uYWw8U2Vzc2lvbklEPiBkZWNvZGVkU2Vzc2lvbklEOwotICAgIGRlY29kZXIgPj4g
ZGVjb2RlZFNlc3Npb25JRDsKLSAgICBpZiAoIWRlY29kZWRTZXNzaW9uSUQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHNlc3Npb25JRCA9ICpkZWNvZGVkU2Vzc2lvbklEOwotICAgIHJl
dHVybiB0cnVlOworICAgIEFTU0VSVChpc1ZhbGlkKCkpOworICAgIGVuY29kZXIgPDwgbV9pZGVu
dGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTAxLDkgKzk4LDkgQEAg
T3B0aW9uYWw8U2Vzc2lvbklEPiBTZXNzaW9uSUQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBzZXNzaW9uSUQ7CiAgICAgZGVjb2RlciA+PiBzZXNz
aW9uSUQ7Ci0gICAgaWYgKCFzZXNzaW9uSUQgfHwgIWlzVmFsaWRTZXNzaW9uSURWYWx1ZSgqc2Vz
c2lvbklEKSkKKyAgICBpZiAoIXNlc3Npb25JRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLQorICAgIEFTU0VSVChpc1ZhbGlkU2Vzc2lvbklEVmFsdWUoKnNlc3Npb25JRCkpOwogICAg
IHJldHVybiBTZXNzaW9uSUQgeyAqc2Vzc2lvbklEIH07CiB9CiAKQEAgLTExMiwxNiArMTA5LDE3
IEBAIE9wdGlvbmFsPFNlc3Npb25JRD4gU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKIG5hbWVzcGFjZSBXVEYgewogCiBzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7Ci0gICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2go
cC5zZXNzaW9uSUQoKSk7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQQUw6OlNl
c3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnRvVUludDY0KCkpOyB9CiAgICAgc3RhdGlj
IGJvb2wgZXF1YWwoY29uc3QgUEFMOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFBBTDo6U2Vzc2lvbklE
JiBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRy
YWl0czxQQUw6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4g
ewotICAgIHN0YXRpYyBQQUw6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gUEFMOjpT
ZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7IH0KIAotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVj
dERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpTZXNzaW9u
SUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVk
VmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gUEFMOjpT
ZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFBBTDo6U2Vzc2lv
bklEPiB7CisgICAgc3RhdGljIFBBTDo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJldHVybiBQ
QUw6OlNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpT
ZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVs
ZXRlZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90LmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIH07CisKIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRI
YXNoPFBBTDo6U2Vzc2lvbklEPiB7CiAgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhhc2g7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAxMTlhYTg3NDc0
ZjllMWY1ZjA3Y2EzNzI0Njk4OWE0ODlkNTQ1NmQ5Li4wYWYxOGI1MTJiYjc0YzQ5ZTk0OWQ1OGY3
NmM2MmIxYzA1NDVjYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQpAQCAtMjczMiw3ICsyNzMyLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOm1fb2JqZWN0
LT5jYXJldEJyb3dzaW5nRW5hYmxlZCgpXTsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlz
RXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlXZWJTZXNzaW9uSURBdHRyaWJ1dGVdKSB7CiAg
ICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IG1fb2JqZWN0LT50b3BEb2N1bWVudCgpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZ0xv
bmc6ZG9jLT5zZXNzaW9uSUQoKS5zZXNzaW9uSUQoKV07CisgICAgICAgICAgICAgICAgcmV0dXJu
IFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpkb2MtPnNlc3Npb25JRCgpLnRv
VUludDY0KCldOwogICAgICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMDE2ZDA3YTYyZmUyMDA4NWJmYTBmMDY5NmM2ZTFlNDYyMWMxZmMxZS4uMzZkMmNlZGUx
OTFmNWJhZmM1OGRhNjFjNTA3NWViODdhMjljMWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC01MDY2LDEyICs1MDY2LDYgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBT
dHJpbmcmIHVybCkgY29uc3QKIAogUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJu
IG1fc2Vzc2lvbklEOwotCi0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAg
ICAgIG1fc2Vzc2lvbklEID0gcGFnZS0+c2Vzc2lvbklEKCk7Ci0KICAgICByZXR1cm4gbV9zZXNz
aW9uSUQ7CiB9CiAKQEAgLTUyODAsOCArNTI3NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnByaXZhdGVC
cm93c2luZ1N0YXRlRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
ZWxlbWVudC0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Uoc2Vzc2lvbklEKTsKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7
Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Vydmlj
ZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uICYmIHNlc3Npb25J
RC5pc1ZhbGlkKCkpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9u
KQogICAgICAgICBzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigmU2VydmljZVdvcmtlclByb3Zp
ZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lv
bklEKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5k
ZXggMDQ1M2Q3ZTZkOWUzNjU2MDJhYzlhYmQ5OTliNGUyZmFiMTMyYWRiNC4uZWJmMDAxMTE5NTM3
OWUxZjIxMWVmMWI0NTQ0NmQ3NDFhM2U2N2NkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKQEAgLTM5MywxMCArMzkzLDE3IEBAIGNsYXNzIEVtcHR5U3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciB7CiAg
ICAgfTsKIAogICAgIHN0cnVjdCBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgZmluYWwgOiBwdWJsaWMg
U3RvcmFnZU5hbWVzcGFjZSB7CisgICAgICAgIGV4cGxpY2l0IEVtcHR5U3RvcmFnZU5hbWVzcGFj
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgICAgICAgICA6IG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgcHJpdmF0ZToKICAgICAgICAgUmVm
PFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5h
bCB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZUFyZWEpOyB9Ci0gICAgICAgIFJl
ZjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqKSBmaW5hbCB7IHJldHVybiBhZG9wdFJlZigq
bmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7IH0KLSAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7
IH0KLSAgICAgICAgdm9pZCBzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEKSB7
IH07CisgICAgICAgIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqKSBmaW5hbCB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IG1fc2Vzc2lvbklEIH0p
OyB9CisgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgICAgIHZvaWQgc2V0U2Vzc2lvbklERm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGZpbmFsIHsgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7
IH07CisKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgfTsKIAogICAg
IFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdl
JiwgdW5zaWduZWQpIGZpbmFsOwpAQCAtNTIxLDE5ICs1MjgsMTkgQEAgdm9pZCBFbXB0eUVkaXRv
ckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYpCiB7CiB9CiAKLVJlZjxTdG9yYWdl
TmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2UoUGFnZSYsIHVuc2lnbmVkKQorUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IEVt
cHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZShQYWdlJiBwYWdlLCB1bnNpZ25lZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0
eVN0b3JhZ2VOYW1lc3BhY2UpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFn
ZU5hbWVzcGFjZSB7IHBhZ2Uuc2Vzc2lvbklEKCkgfSk7CiB9CiAKLVJlZjxTdG9yYWdlTmFtZXNw
YWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFt
ZXNwYWNlKHVuc2lnbmVkLCBQQUw6OlNlc3Npb25JRCkKK1JlZjxTdG9yYWdlTmFtZXNwYWNlPiBF
bXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNl
KHVuc2lnbmVkLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRW1wdHlTdG9yYWdlTmFtZXNwYWNlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLVJlZjxTdG9yYWdl
TmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlVHJhbnNpZW50
TG9jYWxTdG9yYWdlTmFtZXNwYWNlKFNlY3VyaXR5T3JpZ2luJiwgdW5zaWduZWQsIFBBTDo6U2Vz
c2lvbklEKQorUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoU2VjdXJpdHlPcmlnaW4m
LCB1bnNpZ25lZCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRW1wdHlTdG9yYWdlTmFtZXNwYWNlIHsgc2Vzc2lvbklEIH0pOwogfQogCiBjbGFzcyBFbXB0
eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgOiBwdWJsaWMgU3RvcmFnZVNlc3Npb25Qcm92aWRlciB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUHJvdmlkZXIuY3BwCmluZGV4IGY2MzBlODY2MTJkOTNlY2ZiYjZhMmY4NDc0YmQ3NDMwODRi
N2I0YTIuLjdiYmFjNWNhNDE0MGIzYzc2ODMxY2JhZDdmNDM3NmE0ZjlhZGQ5NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJv
dmlkZXIuY3BwCkBAIC02Niw5ICs2Niw2IEBAIHZvaWQgU2VydmljZVdvcmtlclByb3ZpZGVyOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKCkKICAgICBzZXRNYXlIYXZlUmVnaXN0ZXJlZFNl
cnZpY2VXb3JrZXJzKCk7CiAgICAgZm9yIChhdXRvKiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxE
b2N1bWVudHMoKSkgewogICAgICAgICBhdXRvIHNlc3Npb25JRCA9IGRvY3VtZW50LT5zZXNzaW9u
SUQoKTsKLSAgICAgICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICAgICAgY29u
dGludWU7Ci0KICAgICAgICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpjYW5TZXJ2aWNlV29ya2Vyc0hh
bmRsZVVSTFNjaGVtZShkb2N1bWVudC0+dXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRD
b3B5aW5nKCkpKQogICAgICAgICAgICAgZG9jdW1lbnQtPnNldFNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uKCZzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lvbklEKSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuaAppbmRleCA3NGVkMTNiZTYxM2Q3MWZkMzMyNDE2OTVlNWRiMzYxNmMy
NDUwODk3Li4zN2RiNWU0YjU0ZjFiZDkyOGI4ZTQ1NDAwYTJmMjdjZDFhZmI2OGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgSVBD
OjpDb25uZWN0aW9uKiBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbkZvckRvd25sb2FkcygpID0gMDsK
ICAgICAgICAgdmlydHVhbCBBdXRoZW50aWNhdGlvbk1hbmFnZXImIGRvd25sb2Fkc0F1dGhlbnRp
Y2F0aW9uTWFuYWdlcigpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHBlbmRpbmdEb3dubG9h
ZENhbmNlbGVkKERvd25sb2FkSUQpID0gMDsKLSAgICAgICAgdmlydHVhbCBOZXR3b3JrU2Vzc2lv
biogbmV0d29ya1Nlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdCA9IDA7CisgICAg
ICAgIHZpcnR1YWwgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
KSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWYoKSBjb25zdCA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB1aW50
MzJfdCBkb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGJiZTlhOWFhNDZhOTYzNDAyODJmNzBkMmQzZDRmYzJk
ZDNjNGU4MmQuLjkxYmUwOWRkMzQwMGQyZmIzY2QxYmZkZWRmZmQ1MzU4ZmUyNjU2ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00ODgsNyArNDg4LDYgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBw
cmVjb25uZWN0aW8KIAogc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Np
b24oY29uc3QgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIGlmIChz
ZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAg
ICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcy5zdG9yYWdlU2Vzc2lv
bihzZXNzaW9uSUQpKQogICAgICAgICAgICAgcmV0dXJuICpzdG9yYWdlU2Vzc2lvbjsKQEAgLTY4
MywxMCArNjgyLDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y2xlYXJQ
YWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGkKIAogdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKIHsKLSAgICBBU1NFUlQo
c2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm47Ci0KICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQogICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nVXNlckludGVy
YWN0aW9uKGRvbWFpbiwgW10geyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggYzc3NjdkMmNlZWQ3MWEwMDQxZTYwZjlhY2E4YmI4
ZDIyMTcyNjNkNC4uZGM0MzBjMDRmMzRmZDA0NjBiY2RjMmU1MGM0M2FmMjRlOWEyNThmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAg
LTU2OCwzNiArNTY4LDI3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZvckVhY2hOZXR3b3JrU3Rv
cmFnZVNlc3Npb24oY29uc3QgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpOCiAgICAgICAgIGZ1bmN0
b3IoKnN0b3JhZ2VTZXNzaW9uKTsKIH0KIAotTmV0d29ya1Nlc3Npb24qIE5ldHdvcmtQcm9jZXNz
OjpuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKSBjb25zdAor
TmV0d29ya1Nlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgcmV0dXJuIHNlc3Npb25JRC5p
c1ZhbGlkKCkgPyBtX25ldHdvcmtTZXNzaW9ucy5nZXQoc2Vzc2lvbklEKSA6IG51bGxwdHI7Cisg
ICAgcmV0dXJuIG1fbmV0d29ya1Nlc3Npb25zLmdldChzZXNzaW9uSUQpOwogfQogCiBOZXR3b3Jr
U2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgY29uc3QKIHsKLSAgICBhdXRvIHNlc3Npb25JRCA9IG1f
c2Vzc2lvbkJ5Q29ubmVjdGlvbi5nZXQoY29ubmVjdGlvbi51bmlxdWVJRCgpKTsKLSAgICByZXR1
cm4gc2Vzc2lvbklELmlzVmFsaWQoKSA/IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkgOiBudWxs
cHRyOworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Nlc3Npb25CeUNvbm5lY3Rpb24uZmluZChjb25u
ZWN0aW9uLnVuaXF1ZUlEKCkpOworICAgIHJldHVybiBpdGVyYXRvciAhPSBtX3Nlc3Npb25CeUNv
bm5lY3Rpb24uZW5kKCkgPyBuZXR3b3JrU2Vzc2lvbihpdGVyYXRvci0+dmFsdWUpIDogbnVsbHB0
cjsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lv
bikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lvbikKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgp
KTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAg
IG1fbmV0d29ya1Nlc3Npb25zLnNldChzZXNzaW9uSUQsIFdURk1vdmUoc2Vzc2lvbikpOwogfQog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25J
RCYgc2Vzc2lvbklEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0g
ICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFs
aWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAjaWYgIVVTRShTT1VQKQogICAgIC8vIFNvdXAgYmFz
ZWQgcG9ydHMgZGVzdHJveSB0aGUgZGVmYXVsdCBzZXNzaW9uIHJpZ2h0IGJlZm9yZSB0aGUgcHJv
Y2VzcyBleGl0cyB0byBhdm9pZCBsZWFraW5nCiAgICAgLy8gbmV0d29yayByZXNvdXJjZXMgbGlr
ZSB0aGUgY29va2llcyBkYXRhYmFzZS4KQEAgLTEzMDEsMTAgKzEyOTIsNiBAQCBzdGF0aWMgdm9p
ZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoTmV0d29ya0NhY2hlOjpDYWNoZSogY2FjaGUsIFBBTDo6
U2Vzc2lvbklEIHNlcwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9u
cywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewogICAgICAgICBleHBsaWNpdCBDYWxsYmFja0Fn
Z3JlZ2F0b3IoRnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogICAgICAgICAgICAgOiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKQpAQCAtMTQwMiwxMCArMTM4OSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZldGNo
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0CiAK
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2Fs
bFRpbWUgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBBU1NFUlQo
c2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm47Ci0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAod2Vic2l0ZURhdGFU
eXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkhTVFNDYWNoZSkpIHsKICAgICAgICAgaWYg
KGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkp
CkBAIC0xNjE2LDEwICsxNTk5LDYgQEAgc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE+IGZpbHRlckZvclJlZ2lzdHJhYmxlRG9tYWlucyhjb25zdCBIYXMKIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3Zl
PiYmIGRvbWFpbnMsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25J
RC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIE9wdGlvblNldDxXZWJzaXRlRGF0
YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMgPSBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOjpEb05v
dENyZWF0ZVByb2Nlc3NlczsKIAogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgZmluYWwg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CkBAIC0x
ODI0LDEwICsxODAzLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlQ29va2llc0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWdpc3RyYWIKIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6cmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
Ym9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkpCi0gICAg
ICAgIHJldHVybjsKLQogICAgIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRj
aE9wdGlvbnMgPSBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOjpEb05vdENyZWF0ZVByb2Nlc3NlczsK
ICAgICAKICAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIGZpbmFsIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewpAQCAtMjQ1NiwxNCArMjQzMSwx
MiBAQCBib29sIE5ldHdvcmtQcm9jZXNzOjpuZWVkc1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25G
b3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZQogCiBTV1NlcnZlciYgTmV0d29ya1Byb2Nlc3M6
OnN3U2VydmVyRm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgQVNT
RVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotCiAgICAgYXV0byByZXN1bHQgPSBtX3N3U2VydmVy
cy5lbnN1cmUoc2Vzc2lvbklELCBbJl0gewogICAgICAgICBhdXRvIHBhdGggPSBtX3N3RGF0YWJh
c2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGFscmVhZHkg
YmUgYSByZWdpc3RlcmVkIHBhdGggZm9yIHRoaXMgUEFMOjpTZXNzaW9uSUQuCiAgICAgICAgIC8v
IElmIHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFBBTDo6U2Vzc2lvbklEIGNvbWUg
ZnJvbT8KICAgICAgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpIHx8ICFwYXRoLmlz
RW1wdHkoKSk7Ci0gICAgICAgIAorCiAgICAgICAgIGF1dG8gdmFsdWUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNXU2VydmVyPihtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luU3RvcmU+KCksIFdURk1vdmUo
cGF0aCksIHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChtX3Nob3VsZERpc2FibGVTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkpCiAgICAgICAgICAgICB2YWx1ZS0+ZGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOwpAQCAtMjQ3NSwxMCArMjQ0OCw2
IEBAIFNXU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKIAogV2ViU1dPcmlnaW5TdG9yZSogTmV0d29ya1Byb2Nlc3M6OmV4
aXN0aW5nU1dPcmlnaW5TdG9yZUZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBj
b25zdAogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Np
b25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgYXV0byogc3dT
ZXJ2ZXIgPSBtX3N3U2VydmVycy5nZXQoc2Vzc2lvbklEKTsKICAgICBpZiAoIXN3U2VydmVyKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAppbmRleCAzMjExZTkwZjY1MTgzNmEzYjA3NmMzMjJhYWI4NjM0ODE3
ZDRjNzNhLi5mMTAyMThjODE2YjMyNDQ2MGNkM2EwYjdiYWY0NzE3ZTViZTc1OTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNjAsMTAg
KzE2MCwxMCBAQCBwdWJsaWM6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBhdXRoZW50aWNh
dGlvbk1hbmFnZXIoKTsKICAgICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigpOwog
Ci0gICAgdm9pZCBzZXRTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtTZXNzaW9uPiYmKTsKLSAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Np
b24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFNlc3Np
b24oUEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJik7Cisg
ICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKSBjb25zdCBm
aW5hbDsKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb25CeUNvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uJikgY29uc3Q7Ci0gICAgdm9pZCBkZXN0cm95U2Vzc2lvbihjb25zdCBQQUw6
OlNlc3Npb25JRCYpOworICAgIHZvaWQgZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwog
CiAgICAgdm9pZCBmb3JFYWNoTmV0d29ya1Nlc3Npb24oY29uc3QgRnVuY3Rpb248dm9pZChOZXR3
b3JrU2Vzc2lvbiYpPiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZWM2YTgwYzg0ODlkZWYzMmQ3ODli
NzRiZWMxMjczNTdiZWM1NTgzNS4uZjNlMmRjMjFjYzA5OTRmMDJlOWM2ZGU4ZDhjYmEwMjExMTE1
MGY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzA3LDggKzMwNyw4IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZp
cnN0TG9hCiAgICAgICAgIG5ldHdvcmtTZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklEKTsKICAgICB9CiAgICAg
aWYgKCFuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0
byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRo
YXQgZG9lcyBub3QgZXhpc3QuIiwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBB
dHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2Vz
IG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vz
c2lvbklEKCkpOworICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBO
ZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3Qg
ZXhpc3QuIiwgcGFyYW1ldGVycy5zZXNzaW9uSUQudG9VSW50NjQoKSk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBj
cmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC50b1VJbnQ2NCgpKTsKICAg
ICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdl
KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludmFs
aWRTZXNzaW9uSURLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIGRp
ZEZhaWxMb2FkaW5nKGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDcxMjk3NTE1ODk2MGQ1MzQyM2I5MTFlM2Y4
MGYxM2IxYTIwNjVlOGEuLmUzZGM2MzEyZjRlNzgyNjk4YTkxMjEzMTFiZDQwMTFhY2MwM2YzY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKE5ldHdvcmtQcm9j
ZXNzJiBuZXR3CiAgICAgaWYgKCFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSAmJiAhcGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpCiAgICAgICAgIHVp
UHJvY2Vzc0Nvb2tpZVN0b3JhZ2UgPSBjb29raWVTdG9yYWdlRnJvbUlkZW50aWZ5aW5nRGF0YShw
YXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKTsKIAotICAgIG5ldHdv
cmtQcm9jZXNzLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBtYWtlU3RyaW5nKGJhc2UsICcuJywg
c2Vzc2lvbklELnNlc3Npb25JRCgpKSwgV1RGTW92ZSh1aVByb2Nlc3NDb29raWVTdG9yYWdlKSk7
CisgICAgbmV0d29ya1Byb2Nlc3MuZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIG1ha2VTdHJpbmco
YmFzZSwgJy4nLCBzZXNzaW9uSUQudG9VSW50NjQoKSksIFdURk1vdmUodWlQcm9jZXNzQ29va2ll
U3RvcmFnZSkpOwogCiAgICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzLnN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjb29raWUgOiBwYXJhbWV0
ZXJzLnBlbmRpbmdDb29raWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggOTFlY2UxZjBkYWZmZTNlYTYz
YWRiYzBkOTFlYWM0ZDE4MTExMzA5YS4uMDNmNGRkMWFjN2JmMGFlNjBiMTg1ODk0YjY1MDVhZGJm
ZTY0NDEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTA0LDcgKzExMDQsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnJldHJpZXZlQ2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSQogICAgIGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNz
aW9uSUQoc2Vzc2lvbklEKTsKIAogICAgIGlmICghc3RvcmUpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHVuYWJs
ZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRoZSBnaXZlbiBzZXNz
aW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5
IGlzIHVuYWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRoZSBn
aXZlbiBzZXNzaW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnRvVUludDY0KCkpOwog
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2FjaGVTdG9yYWdlUGFy
YW1ldGVycyB7IHNlc3Npb25JRCwgeyB9LCB7IH0gfSwgMCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDZmZjFiY2QxYTZjZWZkYjA4MzNkYzJjNjRhNTkzNGI1
M2E1ZDlhODEuLmUyZGY0MTdkMmU4MDRkMzA3ZGU0NDk2YzI1YjRmM2ExM2NiMmIxNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNp
dGVEYXRhU3RvcmUoKQogCiAgICAgcGxhdGZvcm1EZXN0cm95KCk7CiAKLSAgICBpZiAobV9zZXNz
aW9uSUQuaXNWYWxpZCgpICYmIG1fc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAobV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAgICBBU1NFUlQobm9uRGVmYXVsdERhdGFTdG9yZXMo
KS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAgICBub25EZWZhdWx0RGF0YVN0b3Jl
cygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wg
OiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAKIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKQogewotICAgIGlmIChtX3Nl
c3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSkgeworICAgIGlmIChtX3Nlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gbm9uRGVmYXVsdERh
dGFTdG9yZXMoKS5hZGQobV9zZXNzaW9uSUQsIHRoaXMpOwogICAgICAgICBBU1NFUlRfVU5VU0VE
KHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogICAgIH0KQEAgLTE2NSw3ICsxNjUsNyBAQCB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCkKIAog
V2Vic2l0ZURhdGFTdG9yZSogV2Vic2l0ZURhdGFTdG9yZTo6ZXhpc3RpbmdOb25EZWZhdWx0RGF0
YVN0b3JlRm9yU2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICByZXR1
cm4gc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KHNlc3Npb25JRCkg
OiBudWxscHRyOworICAgIHJldHVybiBzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KHNlc3Npb25JRCkgOiBu
dWxscHRyOwogfQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlZ2lzdGVyUHJvY2VzcyhXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcAppbmRleCA5YWIwZTBmNmE1
M2Y0ZWYwYmE0ZmY4M2RiY2M1ZDlkMTc5MjVhNTA1Li41MDFjYjcyMDYyNDgyNDFmOTQyNjg1YWFj
Y2Q0NzBiZjQ2MjIxZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2Fj
aGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAKQEAgLTM3LDE0ICszNywxNCBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIFJlZjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJh
bCgpKSB7Ci0gICAgICAgIHJldHVybiBtX2Nvbm5lY3Rpb25zLmVuc3VyZShzZXNzaW9uSUQuc2Vz
c2lvbklEKCksIFs9XSgpIHsKKyAgICAgICAgcmV0dXJuIG1fY29ubmVjdGlvbnMuZW5zdXJlKHNl
c3Npb25JRCwgWz1dKCkgewogICAgICAgICAgICAgcmV0dXJuIFdlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklEKTsKICAgICAgICAgfSkuaXRlcmF0b3ItPnZh
bHVlLmNvcHlSZWYoKTsKICAgICB9CiAKICAgICBpZiAoIW1fZGVmYXVsdENvbm5lY3Rpb24pIHsK
ICAgICAgICAgbV9kZWZhdWx0Q29ubmVjdGlvbiA9IFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklEKTsKLSAgICAgICAgbV9jb25uZWN0aW9ucy5zZXQoc2Vz
c2lvbklELnNlc3Npb25JRCgpLCAqbV9kZWZhdWx0Q29ubmVjdGlvbik7CisgICAgICAgIG1fY29u
bmVjdGlvbnMuc2V0KHNlc3Npb25JRCwgKm1fZGVmYXVsdENvbm5lY3Rpb24pOwogICAgIH0KICAg
ICByZXR1cm4gKm1fZGVmYXVsdENvbm5lY3Rpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IGNi
MTZkMzJlNzc5NjI3NmY2YzllNWUwODY3ZmNiZDAwNmU1Y2Y5NDkuLjM4YWVlNmNlNjEyMTQ3ZTVm
ZGQzZjY2NzcwOWQ5NTFkNDUzZjI3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCkBAIC00Nyw3ICs0Nyw3
IEBAIHByaXZhdGU6CiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAK
ICAgICBSZWZQdHI8V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gbV9kZWZhdWx0Q29ubmVjdGlv
bjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4+
IG1fY29ubmVjdGlvbnM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmPFdlYkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24+PiBtX2Nvbm5lY3Rpb25zOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5jcHAKaW5kZXggMmI1ZWQ3MGQ2NzdiYTZmNThmZmQ5NzgxM2Y1NWVlOTY1MWI4MTRiYi4uMzMy
NzkzMzk1ZTBkOGM1NzFmZWEyODgxZjdiNzFmYTY2NWQwYWU5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwCkBAIC01Niw2ICs1Niw3IEBAIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6V2ViU1dDbGllbnRD
b25uZWN0aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCiAgICAgLCBtX3N3T3JpZ2luVGFibGUobWFrZVVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxl
PigpKQogeworICAgIEFTU0VSVChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIGluaXRpYWxp
emVDb25uZWN0aW9uSWZOZWVkZWQoKTsKIH0KIApAQCAtNjcsMTAgKzY4LDYgQEAgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjp+V2ViU1dDbGllbnRDb25uZWN0aW9uKCkKIAogdm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OmluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKQogewotICAgIEFTU0VS
VChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghbV9zZXNzaW9uSUQuaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9jb25uZWN0aW9uKQogICAgICAgICByZXR1
cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCmluZGV4IDliN2JlYTM3NWViNmI0OTcxODJm
NjQxNDkwOWVkNGZhNDAwMTdhZGYuLjE2Mzc3NzliM2RiZjM2MjI4MmZmOTA5MmM2NDc3MDgyYTk3
M2Y0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtNjIsNyArNjIsNiBAQCBXZWJD
b3JlOjpTV0NsaWVudENvbm5lY3Rpb24mIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2Vydmlj
ZVdvcmtlckNvbm5lY3Rpb25GbwogCiBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24qIFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNl
c3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7CiAgICAgYXV0byogbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBpZiAo
IW5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDAxZmYxYTRm
NDU3ZTUzOTM1NjE0MzI0YTA5NDg4NDAzYTc1MDU1YTEuLjZlNWQwNTFlNGQ4MjAwOTg2MjhhYTVh
MGJjYjMxYzdmODZlODBhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC01MDIsOSArNTAyLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
CiAgICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uKSk7CiAKLSAgICAvLyBTZXQgdGhlIHNlc3Npb25JRCAqYmVmb3JlKiB1cGRhdGluZyB0
aGUgcHJlZmVyZW5jZXMgYXMgdGhlIHByaXZhdGVCcm93c2luZ0VuYWJsZWQgcHJlZmVyZW5jZXMg
bWF5IG5lZWQgdG8gb3ZlcnJpZGUgaXQuCi0gICAgaWYgKHBhcmFtZXRlcnMuc2Vzc2lvbklELmlz
VmFsaWQoKSkKLSAgICAgICAgc2V0U2Vzc2lvbklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKTsKKyAg
ICBzZXRTZXNzaW9uSUQocGFyYW1ldGVycy5zZXNzaW9uSUQpOwogCiAgICAgdXBkYXRlUHJlZmVy
ZW5jZXMocGFyYW1ldGVycy5zdG9yZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
U3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCA1ZWU1YTdiMjliZWY0NTM5OWRm
ZDc4YjMxMjNjMGUwYjJmYzlhY2ExLi40ODVjMmNiYzg4MDc3NGZkOGFkZjY0YzY1MGE4OWU2ZDhh
MDY0YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJh
c2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFi
YXNlUHJvdmlkZXIuY3BwCkBAIC00NSwxNyArNDUsOSBAQCBXZWJEYXRhYmFzZVByb3ZpZGVyOjp+
V2ViRGF0YWJhc2VQcm92aWRlcigpCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiBXZWJD
b3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViRGF0YWJhc2VQcm92aWRl
cjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYg
c2Vzc2lvbklEKQogewotICAgIGF1dG8gcmVzdWx0ID0gbV9pZGJTZXJ2ZXJNYXAuYWRkKHNlc3Np
b25JRC5zZXNzaW9uSUQoKSwgbnVsbHB0cik7Ci0gICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7
Ci0gICAgICAgIGlmIChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgICAgIHJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUgPSBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShz
ZXNzaW9uSUQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZh
bHVlID0gV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBpbmRl
eGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkpOwotICAgIH0KLQotICAgIHJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUtPmlkYlNlcnZlcigpLnNldFBlck9yaWdpblF1b3RhKG1faWRiUGVyT3JpZ2luUXVv
dGEpOwotCi0gICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmNvbm5lY3Rpb25Ub1Nl
cnZlcigpOworICAgIHJldHVybiBtX2lkYlNlcnZlck1hcC5lbnN1cmUoc2Vzc2lvbklELCBbJnNl
c3Npb25JRF0geworICAgICAgICByZXR1cm4gc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQpIDogV2ViQ29yZTo6SW5Q
cm9jZXNzSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBpbmRleGVkRGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKCkpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+Y29ubmVjdGlvblRvU2VydmVyKCk7
CiB9CiAKIHZvaWQgV2ViRGF0YWJhc2VQcm92aWRlcjo6ZGVsZXRlQWxsRGF0YWJhc2VzKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCmlu
ZGV4IDUyMjIzMzA5YjM5YmUzZWNhY2ViNjlmYzY5ZjIwMDdlMmM5YjNlZGEuLjk2YTczZGNlNDM1
NWM2MTM5YmM3MTIwNDlhYWQ5N2M2ZjI4NzdlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgpOwog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcj4+IG1faWRiU2VydmVyTWFwOworICAgIEhh
c2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI+
PiBtX2lkYlNlcnZlck1hcDsKICAgICB1aW50NjRfdCBtX2lkYlBlck9yaWdpblF1b3RhIHsgV2Vi
Q29yZTo6SURCU2VydmVyOjpkZWZhdWx0UGVyT3JpZ2luUXVvdGEgfTsKICNlbmRpZgogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376512</attachid>
            <date>2019-08-16 11:58:37 -0700</date>
            <delta_ts>2019-08-19 00:22:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200811-20190816205834.patch</filename>
            <type>text/plain</type>
            <size>39848</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVlYTE4ZGFmYTdiMTEy
MzE2MWVlZGVjZGU2ZGY3YWU0YTlmNDA2ZS4uMTNmN2M1NTg5Mjk3NGE2NDQyNjc3OTc3ZjdkMTVj
NGI4NmJmM2ExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA4LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklE
OjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IsIHVwZGF0ZSBTZXNzaW9uSUQgY2FsbCBz
aXRlcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9uSUQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6cmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50cyk6CisKIDIwMTktMDgtMTYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzcGVjdWxhdGl2ZSBidWlsZCBmaXggZm9yIFdp
bkNhaXJvLCBwYXJ0IDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDYwZTdmYjU2Yzk3MDVlMTlmYzg5
YmM4YTZiZDRmNDIzZWYxNjI1YmUuLjgyNjhhYTZkYTg4Mzg5NTdmYjkxMDBkOTE4ZTA1MzRhMjlm
YzljNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA4LTE2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lv
bklEOjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCBhbmQgbWFrZSBp
dCBjbG9zZXIgdG8gYSByZWd1bGFyIE9iamVjdElkZW50aWZpZXIuCisKKyAgICAgICAgKiBwYWwv
U2Vzc2lvbklELmNwcDoKKyAgICAgICAgKiBwYWwvU2Vzc2lvbklELmg6CisgICAgICAgIChQQUw6
OlNlc3Npb25JRDo6U2Vzc2lvbklEKToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc1ZhbGlk
IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc0VwaGVtZXJhbCBjb25zdCk6Cisg
ICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgor
ICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OnRvVUludDY0IGNvbnN0KToKKyAgICAgICAgKFBBTDo6
U2Vzc2lvbklEOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjpv
cGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgor
ICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OmlzVmFsaWRTZXNzaW9uSURWYWx1ZSk6CisgICAgICAg
IChQQUw6OlNlc3Npb25JRDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklE
OjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKToKKyAgICAgICAg
KFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD46OmVtcHR5VmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToK
KyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD46OmlzRGVsZXRlZFZhbHVl
KToKKwogMjAxOS0wOC0xNCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIG1hY09TIDwgMTAuMTMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmI3YWU3
Y2QzZDk1OGRjMzE5NGVmM2FiMjIxOGUyZDVhNTcwMTk3Ni4uYmE3N2M0M2RlNTc2ZjBhZWMyM2E5
ZmNmNzYzMDVjZjFhNDI1OWJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxOS0wOC0x
NiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNl
c3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIFNlc3Npb25JRCBjYWxsIHNpdGVzIHRvIHVzZSB0b1VJ
bnQ2NC4KKyAgICAgICAgUmVtb3ZlIGRlYnVnIGFzc2VydHMgdG8gaXNWYWxpZCBzaW5jZSBjb25z
dHJ1Y3Rpb24gb2YgaW52YWxpZCBzZXNzaW9uIElEcyBjYW4gb25seSBoYXBwZW4gaW4gdmVyeSBz
cGVjaWZpYyBjYXNlcworICAgICAgICB0eXBpY2FsbHkgZm9yIEhhc2hNYXBzLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpuZXR3b3JrU2Vzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpuZXR3b3JrU2Vzc2lvbkJ5Q29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6cmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmV4aXN0aW5nU1dPcmlnaW5TdG9yZUZvclNlc3Np
b24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6d2ViUHJvY2Vzc1dh
c0Rpc2Nvbm5lY3RlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNp
dGVEYXRhU3RvcmVTZXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXApOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ05vbkRlZmF1bHREYXRhU3RvcmVGb3JTZXNzaW9u
SUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNo
ZVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rp
b246OldlYlNXQ2xpZW50Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbkZvclNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcik6
CisKIDIwMTktMDgtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV1RGXSBBZGQgbWFrZVVuaXF1ZTxUPiwgd2hpY2ggZW5zdXJlcyBUIGlzIGZhc3QtYWxs
b2NhdGVkLCBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRCBhbm5vdGF0aW9uIHBhcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKaW5kZXggOTNlN2U4MzU4ZWM2YjFhYTA3NzkzOTExMjkwZmY4N2UxMjNmYjQ0NS4u
MTc2YzMyZGZlOGMyNDM0NmIwNDFmYTI2YjQ1MGI0NWQ3NGMwNDY3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wOC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODEx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9y
YWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViRGF0YWJhc2VQcm92aWRl
cjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICogU3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisKIDIwMTktMDgtMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW0ZUV10gRW5hYmxlIENvcmVGb3VuZGF0aW9uIHVz
ZSBpZiBidWlsZGluZyBmb3IgQXBwbGUgdGFyZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL1Nlc3Npb25JRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25J
RC5jcHAKaW5kZXggYzQyMzVlNGQ5N2JhOThhMWZiNjFkMzNmOGFlYzUwN2VkOGI0MmZkMS4uNmIz
MGI0YTA2YmFiNDhjYTY5ZTQ5NTVlNTJjYjQxNjJiYjIwNzgwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvU2Vzc2lvbklELmNwcApAQCAtNTUsOSArNTUsNCBAQCB2b2lkIFNlc3Npb25JRDo6ZW5hYmxl
R2VuZXJhdGlvblByb3RlY3Rpb24oKQogICAgIGdlbmVyYXRpb25Qcm90ZWN0aW9uRW5hYmxlZCA9
IHRydWU7CiB9CiAKLVNlc3Npb25JRCBTZXNzaW9uSUQ6Omlzb2xhdGVkQ29weSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIFNlc3Npb25JRCB7IG1fc2Vzc2lvbklEIH07Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lvbklELmgKaW5kZXggMGJkZGRlN2I4ZTMzYjk2
OTA1MTU3OTEzMjJmMDhkZWY2MWNiNTkwMC4uYWU3ZjQxNWNkZmRhM2M1YWFlNDAxNTEwYjIwMDdh
NTAzMGRiMWRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5oCkBAIC00Miw1OCArNDIs
NTUgQEAgcHVibGljOgogICAgICAgICBIYXNoVGFibGVEZWxldGVkVmFsdWVJRCA9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSwKICAgICB9OwogCi0gICAgc3RhdGljIFNlc3Np
b25JRCBlbXB0eVNlc3Npb25JRCgpIHsgcmV0dXJuIFNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZh
bHVlSUQpOyB9Ci0gICAgc3RhdGljIFNlc3Npb25JRCBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSB7
IHJldHVybiBTZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQpOyB9CiAgICAgc3RhdGlj
IFNlc3Npb25JRCBkZWZhdWx0U2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKERlZmF1bHRT
ZXNzaW9uSUQpOyB9CiAgICAgc3RhdGljIFNlc3Npb25JRCBsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkgeyByZXR1cm4gU2Vzc2lvbklEKExlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOyB9CiAKLSAgICBi
b29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vzc2lvbklEVmFsdWUobV9zZXNz
aW9uSUQpOyB9Ci0gICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEICYgRXBoZW1lcmFsU2Vzc2lvbk1hc2sgJiYgbV9zZXNzaW9uSUQgIT0gSGFzaFRhYmxlRGVs
ZXRlZFZhbHVlSUQ7IH0KKyAgICBleHBsaWNpdCBTZXNzaW9uSUQoV1RGOjpIYXNoVGFibGVEZWxl
dGVkVmFsdWVUeXBlKQorICAgICAgICA6IG1faWRlbnRpZmllcihIYXNoVGFibGVEZWxldGVkVmFs
dWVJRCkKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQgU2Vzc2lvbklEKFdURjo6SGFzaFRh
YmxlRW1wdHlWYWx1ZVR5cGUpCisgICAgICAgIDogbV9pZGVudGlmaWVyKEhhc2hUYWJsZUVtcHR5
VmFsdWVJRCkKKyAgICB7CisgICAgfQogCiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklE
IGdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7CiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vz
c2lvbklEIGdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgpOwogICAgIFBBTF9FWFBPUlQgc3Rh
dGljIHZvaWQgZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKTsKIAotICAgIHVpbnQ2NF90IHNl
c3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9Ci0gICAgYm9vbCBvcGVyYXRv
cj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEID09IHNl
c3Npb25JRC5tX3Nlc3Npb25JRDsgfQotICAgIGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vz
c2lvbklEKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRCAhPSBzZXNzaW9uSUQubV9zZXNzaW9u
SUQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkU2Vzc2lvbklE
VmFsdWUobV9pZGVudGlmaWVyKTsgfQorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXIgJiBFcGhlbWVyYWxTZXNzaW9uTWFzayAmJiBtX2lkZW50aWZpZXIg
IT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0KKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IEhhc2hUYWJsZURlbGV0ZWRW
YWx1ZUlEOyB9CisKKyAgICB1aW50NjRfdCB0b1VJbnQ2NCgpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorICAgIGJvb2wgb3BlcmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXIgPT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsgfQorICAg
IGJvb2wgb3BlcmF0b3IhPShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXIgIT0gc2Vzc2lvbklELm1faWRlbnRpZmllcjsgfQogICAgIGJvb2wgaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gIWlzRXBoZW1lcmFsKCk7IH0KIAogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFNl
c3Npb25JRCYpOwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxT
ZXNzaW9uSUQ+IGRlY29kZShEZWNvZGVyJik7CiAKLSAgICBTZXNzaW9uSUQgaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7CisgICAgU2Vzc2lvbklEIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuICp0
aGlzOyB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2Vzc2lvbklEKHVpbnQ2NF90
IHNlc3Npb25JRCkKLSAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgZXhwbGlj
aXQgU2Vzc2lvbklEKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgICAgIDogbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGlzVmFsaWRTZXNz
aW9uSURWYWx1ZSh1aW50NjRfdCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBIYXNo
VGFibGVFbXB0eVZhbHVlSUQgJiYgc2Vzc2lvbklEICE9IEhhc2hUYWJsZURlbGV0ZWRWYWx1ZUlE
OyB9CisgICAgc3RhdGljIGJvb2wgaXNWYWxpZFNlc3Npb25JRFZhbHVlKHVpbnQ2NF90IGlkZW50
aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0K
IAotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsK
IH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlc3Npb25JRDo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSB0byBhIHJlZ3Vs
YXIgQVNTRVJULgotICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWQoKSk7Ci0gICAgZW5jb2RlciA8
PCBtX3Nlc3Npb25JRDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wgU2Vzc2lv
bklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCi17Ci0g
ICAgT3B0aW9uYWw8U2Vzc2lvbklEPiBkZWNvZGVkU2Vzc2lvbklEOwotICAgIGRlY29kZXIgPj4g
ZGVjb2RlZFNlc3Npb25JRDsKLSAgICBpZiAoIWRlY29kZWRTZXNzaW9uSUQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHNlc3Npb25JRCA9ICpkZWNvZGVkU2Vzc2lvbklEOwotICAgIHJl
dHVybiB0cnVlOworICAgIEFTU0VSVChpc1ZhbGlkKCkpOworICAgIGVuY29kZXIgPDwgbV9pZGVu
dGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTAxLDkgKzk4LDkgQEAg
T3B0aW9uYWw8U2Vzc2lvbklEPiBTZXNzaW9uSUQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBzZXNzaW9uSUQ7CiAgICAgZGVjb2RlciA+PiBzZXNz
aW9uSUQ7Ci0gICAgaWYgKCFzZXNzaW9uSUQgfHwgIWlzVmFsaWRTZXNzaW9uSURWYWx1ZSgqc2Vz
c2lvbklEKSkKKyAgICBpZiAoIXNlc3Npb25JRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLQorICAgIEFTU0VSVChpc1ZhbGlkU2Vzc2lvbklEVmFsdWUoKnNlc3Npb25JRCkpOwogICAg
IHJldHVybiBTZXNzaW9uSUQgeyAqc2Vzc2lvbklEIH07CiB9CiAKQEAgLTExMiwxNiArMTA5LDE3
IEBAIE9wdGlvbmFsPFNlc3Npb25JRD4gU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKIG5hbWVzcGFjZSBXVEYgewogCiBzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7Ci0gICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2go
cC5zZXNzaW9uSUQoKSk7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQQUw6OlNl
c3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnRvVUludDY0KCkpOyB9CiAgICAgc3RhdGlj
IGJvb2wgZXF1YWwoY29uc3QgUEFMOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFBBTDo6U2Vzc2lvbklE
JiBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRy
YWl0czxQQUw6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4g
ewotICAgIHN0YXRpYyBQQUw6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gUEFMOjpT
ZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7IH0KIAotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVj
dERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpTZXNzaW9u
SUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVk
VmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gUEFMOjpT
ZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFBBTDo6U2Vzc2lv
bklEPiB7CisgICAgc3RhdGljIFBBTDo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJldHVybiBQ
QUw6OlNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpT
ZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVs
ZXRlZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90LmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIH07CisKIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRI
YXNoPFBBTDo6U2Vzc2lvbklEPiB7CiAgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhhc2g7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAxMTlhYTg3NDc0
ZjllMWY1ZjA3Y2EzNzI0Njk4OWE0ODlkNTQ1NmQ5Li4wYWYxOGI1MTJiYjc0YzQ5ZTk0OWQ1OGY3
NmM2MmIxYzA1NDVjYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQpAQCAtMjczMiw3ICsyNzMyLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOm1fb2JqZWN0
LT5jYXJldEJyb3dzaW5nRW5hYmxlZCgpXTsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlz
RXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlXZWJTZXNzaW9uSURBdHRyaWJ1dGVdKSB7CiAg
ICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IG1fb2JqZWN0LT50b3BEb2N1bWVudCgpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZ0xv
bmc6ZG9jLT5zZXNzaW9uSUQoKS5zZXNzaW9uSUQoKV07CisgICAgICAgICAgICAgICAgcmV0dXJu
IFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpkb2MtPnNlc3Npb25JRCgpLnRv
VUludDY0KCldOwogICAgICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMDE2ZDA3YTYyZmUyMDA4NWJmYTBmMDY5NmM2ZTFlNDYyMWMxZmMxZS4uMzZkMmNlZGUx
OTFmNWJhZmM1OGRhNjFjNTA3NWViODdhMjljMWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC01MDY2LDEyICs1MDY2LDYgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBT
dHJpbmcmIHVybCkgY29uc3QKIAogUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJu
IG1fc2Vzc2lvbklEOwotCi0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAg
ICAgIG1fc2Vzc2lvbklEID0gcGFnZS0+c2Vzc2lvbklEKCk7Ci0KICAgICByZXR1cm4gbV9zZXNz
aW9uSUQ7CiB9CiAKQEAgLTUyODAsOCArNTI3NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnByaXZhdGVC
cm93c2luZ1N0YXRlRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
ZWxlbWVudC0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Uoc2Vzc2lvbklEKTsKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7
Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Vydmlj
ZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uICYmIHNlc3Npb25J
RC5pc1ZhbGlkKCkpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9u
KQogICAgICAgICBzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigmU2VydmljZVdvcmtlclByb3Zp
ZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lv
bklEKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5k
ZXggMDQ1M2Q3ZTZkOWUzNjU2MDJhYzlhYmQ5OTliNGUyZmFiMTMyYWRiNC4uZWJmMDAxMTE5NTM3
OWUxZjIxMWVmMWI0NTQ0NmQ3NDFhM2U2N2NkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKQEAgLTM5MywxMCArMzkzLDE3IEBAIGNsYXNzIEVtcHR5U3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciB7CiAg
ICAgfTsKIAogICAgIHN0cnVjdCBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgZmluYWwgOiBwdWJsaWMg
U3RvcmFnZU5hbWVzcGFjZSB7CisgICAgICAgIGV4cGxpY2l0IEVtcHR5U3RvcmFnZU5hbWVzcGFj
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgICAgICAgICA6IG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgcHJpdmF0ZToKICAgICAgICAgUmVm
PFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5h
bCB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZUFyZWEpOyB9Ci0gICAgICAgIFJl
ZjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqKSBmaW5hbCB7IHJldHVybiBhZG9wdFJlZigq
bmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7IH0KLSAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7
IH0KLSAgICAgICAgdm9pZCBzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEKSB7
IH07CisgICAgICAgIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqKSBmaW5hbCB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IG1fc2Vzc2lvbklEIH0p
OyB9CisgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgICAgIHZvaWQgc2V0U2Vzc2lvbklERm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGZpbmFsIHsgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7
IH07CisKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgfTsKIAogICAg
IFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdl
JiwgdW5zaWduZWQpIGZpbmFsOwpAQCAtNTIxLDE5ICs1MjgsMTkgQEAgdm9pZCBFbXB0eUVkaXRv
ckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYpCiB7CiB9CiAKLVJlZjxTdG9yYWdl
TmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2UoUGFnZSYsIHVuc2lnbmVkKQorUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IEVt
cHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZShQYWdlJiBwYWdlLCB1bnNpZ25lZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0
eVN0b3JhZ2VOYW1lc3BhY2UpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFn
ZU5hbWVzcGFjZSB7IHBhZ2Uuc2Vzc2lvbklEKCkgfSk7CiB9CiAKLVJlZjxTdG9yYWdlTmFtZXNw
YWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFt
ZXNwYWNlKHVuc2lnbmVkLCBQQUw6OlNlc3Npb25JRCkKK1JlZjxTdG9yYWdlTmFtZXNwYWNlPiBF
bXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNl
KHVuc2lnbmVkLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRW1wdHlTdG9yYWdlTmFtZXNwYWNlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLVJlZjxTdG9yYWdl
TmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlVHJhbnNpZW50
TG9jYWxTdG9yYWdlTmFtZXNwYWNlKFNlY3VyaXR5T3JpZ2luJiwgdW5zaWduZWQsIFBBTDo6U2Vz
c2lvbklEKQorUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoU2VjdXJpdHlPcmlnaW4m
LCB1bnNpZ25lZCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRW1wdHlTdG9yYWdlTmFtZXNwYWNlIHsgc2Vzc2lvbklEIH0pOwogfQogCiBjbGFzcyBFbXB0
eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgOiBwdWJsaWMgU3RvcmFnZVNlc3Npb25Qcm92aWRlciB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUHJvdmlkZXIuY3BwCmluZGV4IGY2MzBlODY2MTJkOTNlY2ZiYjZhMmY4NDc0YmQ3NDMwODRi
N2I0YTIuLjdiYmFjNWNhNDE0MGIzYzc2ODMxY2JhZDdmNDM3NmE0ZjlhZGQ5NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJv
dmlkZXIuY3BwCkBAIC02Niw5ICs2Niw2IEBAIHZvaWQgU2VydmljZVdvcmtlclByb3ZpZGVyOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKCkKICAgICBzZXRNYXlIYXZlUmVnaXN0ZXJlZFNl
cnZpY2VXb3JrZXJzKCk7CiAgICAgZm9yIChhdXRvKiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxE
b2N1bWVudHMoKSkgewogICAgICAgICBhdXRvIHNlc3Npb25JRCA9IGRvY3VtZW50LT5zZXNzaW9u
SUQoKTsKLSAgICAgICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICAgICAgY29u
dGludWU7Ci0KICAgICAgICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpjYW5TZXJ2aWNlV29ya2Vyc0hh
bmRsZVVSTFNjaGVtZShkb2N1bWVudC0+dXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRD
b3B5aW5nKCkpKQogICAgICAgICAgICAgZG9jdW1lbnQtPnNldFNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uKCZzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lvbklEKSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuaAppbmRleCA3NGVkMTNiZTYxM2Q3MWZkMzMyNDE2OTVlNWRiMzYxNmMy
NDUwODk3Li4zN2RiNWU0YjU0ZjFiZDkyOGI4ZTQ1NDAwYTJmMjdjZDFhZmI2OGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgSVBD
OjpDb25uZWN0aW9uKiBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbkZvckRvd25sb2FkcygpID0gMDsK
ICAgICAgICAgdmlydHVhbCBBdXRoZW50aWNhdGlvbk1hbmFnZXImIGRvd25sb2Fkc0F1dGhlbnRp
Y2F0aW9uTWFuYWdlcigpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHBlbmRpbmdEb3dubG9h
ZENhbmNlbGVkKERvd25sb2FkSUQpID0gMDsKLSAgICAgICAgdmlydHVhbCBOZXR3b3JrU2Vzc2lv
biogbmV0d29ya1Nlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdCA9IDA7CisgICAg
ICAgIHZpcnR1YWwgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
KSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWYoKSBjb25zdCA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB1aW50
MzJfdCBkb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGJiZTlhOWFhNDZhOTYzNDAyODJmNzBkMmQzZDRmYzJk
ZDNjNGU4MmQuLjkxYmUwOWRkMzQwMGQyZmIzY2QxYmZkZWRmZmQ1MzU4ZmUyNjU2ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00ODgsNyArNDg4LDYgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBw
cmVjb25uZWN0aW8KIAogc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Np
b24oY29uc3QgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIGlmIChz
ZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAg
ICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcy5zdG9yYWdlU2Vzc2lv
bihzZXNzaW9uSUQpKQogICAgICAgICAgICAgcmV0dXJuICpzdG9yYWdlU2Vzc2lvbjsKQEAgLTY4
MywxMCArNjgyLDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y2xlYXJQ
YWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGkKIAogdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKIHsKLSAgICBBU1NFUlQo
c2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm47Ci0KICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQogICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nVXNlckludGVy
YWN0aW9uKGRvbWFpbiwgW10geyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggYzc3NjdkMmNlZWQ3MWEwMDQxZTYwZjlhY2E4YmI4
ZDIyMTcyNjNkNC4uZGM0MzBjMDRmMzRmZDA0NjBiY2RjMmU1MGM0M2FmMjRlOWEyNThmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAg
LTU2OCwzNiArNTY4LDI3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZvckVhY2hOZXR3b3JrU3Rv
cmFnZVNlc3Npb24oY29uc3QgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpOCiAgICAgICAgIGZ1bmN0
b3IoKnN0b3JhZ2VTZXNzaW9uKTsKIH0KIAotTmV0d29ya1Nlc3Npb24qIE5ldHdvcmtQcm9jZXNz
OjpuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKSBjb25zdAor
TmV0d29ya1Nlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgcmV0dXJuIHNlc3Npb25JRC5p
c1ZhbGlkKCkgPyBtX25ldHdvcmtTZXNzaW9ucy5nZXQoc2Vzc2lvbklEKSA6IG51bGxwdHI7Cisg
ICAgcmV0dXJuIG1fbmV0d29ya1Nlc3Npb25zLmdldChzZXNzaW9uSUQpOwogfQogCiBOZXR3b3Jr
U2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgY29uc3QKIHsKLSAgICBhdXRvIHNlc3Npb25JRCA9IG1f
c2Vzc2lvbkJ5Q29ubmVjdGlvbi5nZXQoY29ubmVjdGlvbi51bmlxdWVJRCgpKTsKLSAgICByZXR1
cm4gc2Vzc2lvbklELmlzVmFsaWQoKSA/IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkgOiBudWxs
cHRyOworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Nlc3Npb25CeUNvbm5lY3Rpb24uZmluZChjb25u
ZWN0aW9uLnVuaXF1ZUlEKCkpOworICAgIHJldHVybiBpdGVyYXRvciAhPSBtX3Nlc3Npb25CeUNv
bm5lY3Rpb24uZW5kKCkgPyBuZXR3b3JrU2Vzc2lvbihpdGVyYXRvci0+dmFsdWUpIDogbnVsbHB0
cjsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lv
bikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lvbikKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgp
KTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAg
IG1fbmV0d29ya1Nlc3Npb25zLnNldChzZXNzaW9uSUQsIFdURk1vdmUoc2Vzc2lvbikpOwogfQog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25J
RCYgc2Vzc2lvbklEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0g
ICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFs
aWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAjaWYgIVVTRShTT1VQKQogICAgIC8vIFNvdXAgYmFz
ZWQgcG9ydHMgZGVzdHJveSB0aGUgZGVmYXVsdCBzZXNzaW9uIHJpZ2h0IGJlZm9yZSB0aGUgcHJv
Y2VzcyBleGl0cyB0byBhdm9pZCBsZWFraW5nCiAgICAgLy8gbmV0d29yayByZXNvdXJjZXMgbGlr
ZSB0aGUgY29va2llcyBkYXRhYmFzZS4KQEAgLTEzMDEsMTAgKzEyOTIsNiBAQCBzdGF0aWMgdm9p
ZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoTmV0d29ya0NhY2hlOjpDYWNoZSogY2FjaGUsIFBBTDo6
U2Vzc2lvbklEIHNlcwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9u
cywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewogICAgICAgICBleHBsaWNpdCBDYWxsYmFja0Fn
Z3JlZ2F0b3IoRnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogICAgICAgICAgICAgOiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKQpAQCAtMTQwMiwxMCArMTM4OSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZldGNo
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0CiAK
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2Fs
bFRpbWUgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBBU1NFUlQo
c2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm47Ci0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAod2Vic2l0ZURhdGFU
eXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkhTVFNDYWNoZSkpIHsKICAgICAgICAgaWYg
KGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkp
CkBAIC0xNjE2LDEwICsxNTk5LDYgQEAgc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE+IGZpbHRlckZvclJlZ2lzdHJhYmxlRG9tYWlucyhjb25zdCBIYXMKIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3Zl
PiYmIGRvbWFpbnMsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25J
RC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIE9wdGlvblNldDxXZWJzaXRlRGF0
YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMgPSBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOjpEb05v
dENyZWF0ZVByb2Nlc3NlczsKIAogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgZmluYWwg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CkBAIC0x
ODI0LDEwICsxODAzLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlQ29va2llc0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWdpc3RyYWIKIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6cmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
Ym9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkpCi0gICAg
ICAgIHJldHVybjsKLQogICAgIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRj
aE9wdGlvbnMgPSBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOjpEb05vdENyZWF0ZVByb2Nlc3NlczsK
ICAgICAKICAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIGZpbmFsIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewpAQCAtMjQ1NiwxNCArMjQzMSwx
MiBAQCBib29sIE5ldHdvcmtQcm9jZXNzOjpuZWVkc1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25G
b3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZQogCiBTV1NlcnZlciYgTmV0d29ya1Byb2Nlc3M6
OnN3U2VydmVyRm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgQVNT
RVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotCiAgICAgYXV0byByZXN1bHQgPSBtX3N3U2VydmVy
cy5lbnN1cmUoc2Vzc2lvbklELCBbJl0gewogICAgICAgICBhdXRvIHBhdGggPSBtX3N3RGF0YWJh
c2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGFscmVhZHkg
YmUgYSByZWdpc3RlcmVkIHBhdGggZm9yIHRoaXMgUEFMOjpTZXNzaW9uSUQuCiAgICAgICAgIC8v
IElmIHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFBBTDo6U2Vzc2lvbklEIGNvbWUg
ZnJvbT8KICAgICAgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpIHx8ICFwYXRoLmlz
RW1wdHkoKSk7Ci0gICAgICAgIAorCiAgICAgICAgIGF1dG8gdmFsdWUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNXU2VydmVyPihtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luU3RvcmU+KCksIFdURk1vdmUo
cGF0aCksIHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChtX3Nob3VsZERpc2FibGVTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkpCiAgICAgICAgICAgICB2YWx1ZS0+ZGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOwpAQCAtMjQ3NSwxMCArMjQ0OCw2
IEBAIFNXU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKIAogV2ViU1dPcmlnaW5TdG9yZSogTmV0d29ya1Byb2Nlc3M6OmV4
aXN0aW5nU1dPcmlnaW5TdG9yZUZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBj
b25zdAogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Np
b25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgYXV0byogc3dT
ZXJ2ZXIgPSBtX3N3U2VydmVycy5nZXQoc2Vzc2lvbklEKTsKICAgICBpZiAoIXN3U2VydmVyKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAppbmRleCAzMjExZTkwZjY1MTgzNmEzYjA3NmMzMjJhYWI4NjM0ODE3
ZDRjNzNhLi5mMTAyMThjODE2YjMyNDQ2MGNkM2EwYjdiYWY0NzE3ZTViZTc1OTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNjAsMTAg
KzE2MCwxMCBAQCBwdWJsaWM6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBhdXRoZW50aWNh
dGlvbk1hbmFnZXIoKTsKICAgICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigpOwog
Ci0gICAgdm9pZCBzZXRTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtTZXNzaW9uPiYmKTsKLSAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Np
b24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFNlc3Np
b24oUEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJik7Cisg
ICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKSBjb25zdCBm
aW5hbDsKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb25CeUNvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uJikgY29uc3Q7Ci0gICAgdm9pZCBkZXN0cm95U2Vzc2lvbihjb25zdCBQQUw6
OlNlc3Npb25JRCYpOworICAgIHZvaWQgZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwog
CiAgICAgdm9pZCBmb3JFYWNoTmV0d29ya1Nlc3Npb24oY29uc3QgRnVuY3Rpb248dm9pZChOZXR3
b3JrU2Vzc2lvbiYpPiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZWM2YTgwYzg0ODlkZWYzMmQ3ODli
NzRiZWMxMjczNTdiZWM1NTgzNS4uZjNlMmRjMjFjYzA5OTRmMDJlOWM2ZGU4ZDhjYmEwMjExMTE1
MGY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzA3LDggKzMwNyw4IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZp
cnN0TG9hCiAgICAgICAgIG5ldHdvcmtTZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklEKTsKICAgICB9CiAgICAg
aWYgKCFuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0
byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRo
YXQgZG9lcyBub3QgZXhpc3QuIiwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBB
dHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2Vz
IG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vz
c2lvbklEKCkpOworICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBO
ZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3Qg
ZXhpc3QuIiwgcGFyYW1ldGVycy5zZXNzaW9uSUQudG9VSW50NjQoKSk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBj
cmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC50b1VJbnQ2NCgpKTsKICAg
ICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdl
KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludmFs
aWRTZXNzaW9uSURLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIGRp
ZEZhaWxMb2FkaW5nKGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHRDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y3VybC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dEN1cmwuY3BwCmluZGV4IGZjMjUwMWVhZWI0YTkw
NWI3MWM3NTk0MWNkNTg2MmMzZDI1ZmM0ZDYuLmJiM2I4YjMwNTA5NTUwMDMyOWZjMDJjMDZmMDg1
Yzc3YzZkYjk3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3Vy
bC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY3VybC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dEN1cmwuY3BwCkBAIC00MSw3
ICs0MSw3IEBAIHZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRh
U3RvcmVTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3CiAgICAgaWYgKG5ldHdvcmtQcm9jZXNz
LnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG5ldHdv
cmtQcm9jZXNzLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBTdHJpbmc6Om51bWJlcihzZXNzaW9u
SUQuc2Vzc2lvbklEKCkpKTsKKyAgICBuZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Np
b25JRCwgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklELnRvVUludDY0KCkpKTsKICAgICBuZXR3b3Jr
UHJvY2Vzcy5zZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1Nlc3Npb246OmNyZWF0ZShuZXR3
b3JrUHJvY2VzcywgV1RGTW92ZShwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycykp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA3MTI5NzUxNTg5NjBkNTM0MjNiOTEx
ZTNmODBmMTNiMWEyMDY1ZThhLi5lM2RjNjMxMmY0ZTc4MjY5OGE5MTIxMzExYmQ0MDExYWNjMDNm
M2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0dwogICAgIGlmICghc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgJiYgIXBhcmFt
ZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAg
ICB1aVByb2Nlc3NDb29raWVTdG9yYWdlID0gY29va2llU3RvcmFnZUZyb21JZGVudGlmeWluZ0Rh
dGEocGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcik7CiAKLSAgICBu
ZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgbWFrZVN0cmluZyhiYXNlLCAn
LicsIHNlc3Npb25JRC5zZXNzaW9uSUQoKSksIFdURk1vdmUodWlQcm9jZXNzQ29va2llU3RvcmFn
ZSkpOworICAgIG5ldHdvcmtQcm9jZXNzLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBtYWtlU3Ry
aW5nKGJhc2UsICcuJywgc2Vzc2lvbklELnRvVUludDY0KCkpLCBXVEZNb3ZlKHVpUHJvY2Vzc0Nv
b2tpZVN0b3JhZ2UpKTsKIAogICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcy5zdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpOwogICAgIGZvciAoY29uc3QgYXV0byYgY29va2llIDogcGFy
YW1ldGVycy5wZW5kaW5nQ29va2llcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAK
aW5kZXggYzllZWE1YTJlOTIyODE5N2UyZDJlMTQ0MjcyMmRlYmY3ZjIyNGQ1My4uYTc4ODIzYWYw
MzdjYWMxYTNiODkwNWQxNmU1NTRkZWQ5MDBjNzUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0U291cC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHcKICAg
ICBpZiAobmV0d29ya1Byb2Nlc3Muc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbmV0d29ya1Byb2Nlc3MuZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIFN0
cmluZzo6bnVtYmVyKHNlc3Npb25JRC5zZXNzaW9uSUQoKSkpOworICAgIG5ldHdvcmtQcm9jZXNz
LmVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQudG9VSW50
NjQoKSkpOwogICAgIG5ldHdvcmtQcm9jZXNzLnNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3Jr
U2Vzc2lvbjo6Y3JlYXRlKG5ldHdvcmtQcm9jZXNzLCBXVEZNb3ZlKHBhcmFtZXRlcnMubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5MWVjZTFmMGRh
ZmZlM2VhNjNhZGJjMGQ5MWVhYzRkMTgxMTEzMDlhLi4wM2Y0ZGQxYWM3YmYwYWU2MGIxODU4OTRi
NjUwNWFkYmZlNjQ0MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTExMDQsNyArMTEwNCw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JCiAgICAgYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3Jl
RnJvbVNlc3Npb25JRChzZXNzaW9uSUQpOwogCiAgICAgaWYgKCFzdG9yZSkgewotICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihDYWNoZVN0b3JhZ2UsICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkg
aXMgdW5hYmxlIHRvIHJldHJpZXZlIENhY2hlU3RvcmFnZSBwYXJhbWV0ZXJzIGZyb20gdGhlIGdp
dmVuIHNlc3Npb24gSUQgJSIgUFJJdTY0LCB0aGlzLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihDYWNoZVN0b3JhZ2UsICIlcCAtIE5ldHdvcmtQcm9j
ZXNzUHJveHkgaXMgdW5hYmxlIHRvIHJldHJpZXZlIENhY2hlU3RvcmFnZSBwYXJhbWV0ZXJzIGZy
b20gdGhlIGdpdmVuIHNlc3Npb24gSUQgJSIgUFJJdTY0LCB0aGlzLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0
b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklELCB7IH0sIHsgfSB9LCAwKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggNmZmMWJjZDFhNmNlZmRiMDgzM2RjMmM2
NGE1OTM0YjUzYTVkOWE4MS4uZTJkZjQxN2QyZTgwNGQzMDdkZTQ0OTZjMjViNGYzYTEzY2IyYjE2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSgpCiAKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIAotICAgIGlm
IChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlmIChtX3Nlc3Npb25JRCAhPSBQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0RGF0
YVN0b3JlcygpLmdldChtX3Nlc3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1bHRE
YXRhU3RvcmVzKCkucmVtb3ZlKG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBwcm9j
ZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgewpAQCAtMTU3LDcg
KzE1Nyw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCkKIAogdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjptYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpCiB7Ci0gICAg
aWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBtX3Nlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CisgICAgaWYgKG1fc2Vzc2lvbklEICE9IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBub25E
ZWZhdWx0RGF0YVN0b3JlcygpLmFkZChtX3Nlc3Npb25JRCwgdGhpcyk7CiAgICAgICAgIEFTU0VS
VF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiAgICAgfQpAQCAtMTY1LDcgKzE2
NSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURN
YXAoKQogCiBXZWJzaXRlRGF0YVN0b3JlKiBXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ05vbkRl
ZmF1bHREYXRhU3RvcmVGb3JTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewot
ICAgIHJldHVybiBzZXNzaW9uSUQuaXNWYWxpZCgpICYmIHNlc3Npb25JRCAhPSBQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpID8gbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQoc2Vz
c2lvbklEKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpID8gbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQoc2Vzc2lv
bklEKSA6IG51bGxwdHI7CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVnaXN0ZXJQcm9j
ZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwCmluZGV4IDlh
YjBlMGY2YTUzZjRlZjBiYTRmZjgzZGJjYzVkOWQxNzkyNWE1MDUuLjUwMWNiNzIwNjI0ODI0MWY5
NDI2ODVhYWNjZDQ3MGJmNDYyMjFmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcApAQCAtMzcsMTQg
KzM3LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUmVmPFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24+IFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoc2Vzc2lvbklELmlz
RXBoZW1lcmFsKCkpIHsKLSAgICAgICAgcmV0dXJuIG1fY29ubmVjdGlvbnMuZW5zdXJlKHNlc3Np
b25JRC5zZXNzaW9uSUQoKSwgWz1dKCkgeworICAgICAgICByZXR1cm4gbV9jb25uZWN0aW9ucy5l
bnN1cmUoc2Vzc2lvbklELCBbPV0oKSB7CiAgICAgICAgICAgICByZXR1cm4gV2ViQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCp0aGlzLCBzZXNzaW9uSUQpOwogICAgICAgICB9KS5pdGVy
YXRvci0+dmFsdWUuY29weVJlZigpOwogICAgIH0KIAogICAgIGlmICghbV9kZWZhdWx0Q29ubmVj
dGlvbikgewogICAgICAgICBtX2RlZmF1bHRDb25uZWN0aW9uID0gV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6Y3JlYXRlKCp0aGlzLCBzZXNzaW9uSUQpOwotICAgICAgICBtX2Nvbm5lY3Rpb25z
LnNldChzZXNzaW9uSUQuc2Vzc2lvbklEKCksICptX2RlZmF1bHRDb25uZWN0aW9uKTsKKyAgICAg
ICAgbV9jb25uZWN0aW9ucy5zZXQoc2Vzc2lvbklELCAqbV9kZWZhdWx0Q29ubmVjdGlvbik7CiAg
ICAgfQogICAgIHJldHVybiAqbV9kZWZhdWx0Q29ubmVjdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgK
aW5kZXggY2IxNmQzMmU3Nzk2Mjc2ZjZjOWU1ZTA4NjdmY2JkMDA2ZTVjZjk0OS4uMzhhZWU2Y2U2
MTIxNDdlNWZkZDNmNjY3NzA5ZDk1MWQ0NTNmMjdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ3
LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcigpID0gZGVm
YXVsdDsKIAogICAgIFJlZlB0cjxXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2RlZmF1bHRD
b25uZWN0aW9uOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZjxXZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uPj4gbV9jb25uZWN0aW9uczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWY8
V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4+IG1fY29ubmVjdGlvbnM7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmNwcAppbmRleCAyYjVlZDcwZDY3N2JhNmY1OGZmZDk3ODEzZjU1ZWU5NjUxYjgx
NGJiLi4zMzI3OTMzOTVlMGQ4YzU3MWZlYTI4ODFmN2I3MWZhNjY1ZDBhZTk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpXZWJT
V0NsaWVudENvbm5lY3Rpb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fc2Vzc2lvbklE
KHNlc3Npb25JRCkKICAgICAsIG1fc3dPcmlnaW5UYWJsZShtYWtlVW5pcXVlUmVmPFdlYlNXT3Jp
Z2luVGFibGU+KCkpCiB7CisgICAgQVNTRVJUKG1fc2Vzc2lvbklELmlzVmFsaWQoKSk7CiAgICAg
aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOwogfQogCkBAIC02NywxMCArNjgsNiBAQCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246On5XZWJTV0NsaWVudENvbm5lY3Rpb24oKQogCiB2b2lkIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpCiB7Ci0g
ICAgQVNTRVJUKG1fc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFtX3Nlc3Npb25JRC5p
c1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKaW5kZXggOWI3YmVhMzc1ZWI2
YjQ5NzE4MmY2NDE0OTA5ZWQ0ZmE0MDAxN2FkZi4uMTYzNzc3OWIzZGJmMzYyMjgyZmY5MDkyYzY0
NzcwODJhOTczZjQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCkBAIC02Miw3ICs2Miw2
IEBAIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiYgV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
OjpzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvCiAKIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlv
biogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpleGlzdGluZ1NlcnZpY2VXb3JrZXJDb25uZWN0
aW9uRm9yU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChzZXNzaW9u
SUQuaXNWYWxpZCgpKTsKICAgICBhdXRvKiBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwog
ICAgIGlmICghbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
MDFmZjFhNGY0NTdlNTM5MzU2MTQzMjRhMDk0ODg0MDNhNzUwNTVhMS4uNmU1ZDA1MWU0ZDgyMDA5
ODYyOGFhNWEwYmNiMzFjN2Y4NmU4MGE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUwMiw5ICs1MDIsNyBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAKICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+KFdURk1vdmUocGFn
ZUNvbmZpZ3VyYXRpb24pKTsKIAotICAgIC8vIFNldCB0aGUgc2Vzc2lvbklEICpiZWZvcmUqIHVw
ZGF0aW5nIHRoZSBwcmVmZXJlbmNlcyBhcyB0aGUgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCBwcmVm
ZXJlbmNlcyBtYXkgbmVlZCB0byBvdmVycmlkZSBpdC4KLSAgICBpZiAocGFyYW1ldGVycy5zZXNz
aW9uSUQuaXNWYWxpZCgpKQotICAgICAgICBzZXRTZXNzaW9uSUQocGFyYW1ldGVycy5zZXNzaW9u
SUQpOworICAgIHNldFNlc3Npb25JRChwYXJhbWV0ZXJzLnNlc3Npb25JRCk7CiAKICAgICB1cGRh
dGVQcmVmZXJlbmNlcyhwYXJhbWV0ZXJzLnN0b3JlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4IDVlZTVhN2IyOWJl
ZjQ1Mzk5ZGZkNzhiMzEyM2MwZTBiMmZjOWFjYTEuLjQ4NWMyY2JjODgwNzc0ZmQ4YWRmNjRjNjUw
YTg5ZTZkOGEwNjRiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2Uv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTQ1LDE3ICs0NSw5IEBAIFdlYkRhdGFiYXNlUHJv
dmlkZXI6On5XZWJEYXRhYmFzZVByb3ZpZGVyKCkKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKIFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJEYXRhYmFz
ZVByb3ZpZGVyOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiBzZXNzaW9uSUQpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX2lkYlNlcnZlck1hcC5h
ZGQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCBudWxscHRyKTsKLSAgICBpZiAocmVzdWx0LmlzTmV3
RW50cnkpIHsKLSAgICAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQotICAgICAgICAg
ICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6
Y3JlYXRlKHNlc3Npb25JRCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUgPSBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9u
SUQsIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKSk7Ci0gICAgfQotCi0gICAgcmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZS0+aWRiU2VydmVyKCkuc2V0UGVyT3JpZ2luUXVvdGEobV9pZGJQZXJP
cmlnaW5RdW90YSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+Y29ubmVj
dGlvblRvU2VydmVyKCk7CisgICAgcmV0dXJuIG1faWRiU2VydmVyTWFwLmVuc3VyZShzZXNzaW9u
SUQsIFsmc2Vzc2lvbklEXSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uSUQuaXNFcGhlbWVyYWwo
KSA/IFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6Y3JlYXRlKHNlc3Npb25JRCkgOiBXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQsIGluZGV4ZWREYXRhYmFz
ZURpcmVjdG9yeVBhdGgoKSk7CisgICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5jb25uZWN0aW9uVG9T
ZXJ2ZXIoKTsKIH0KIAogdm9pZCBXZWJEYXRhYmFzZVByb3ZpZGVyOjpkZWxldGVBbGxEYXRhYmFz
ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNl
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmgKaW5kZXggNTIyMjMzMDliMzliZTNlY2FjZWI2OWZjNjlmMjAwN2UyYzliM2VkYS4uOTZh
NzNkY2U0MzU1YzYxMzliYzcxMjA0OWFhZDk3YzZmMjg3N2VlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC01NCw3ICs1NCw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFN0cmluZyBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8V2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyPj4gbV9pZGJTZXJ2ZXJNYXA7
CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6OkluUHJvY2Vzc0lE
QlNlcnZlcj4+IG1faWRiU2VydmVyTWFwOwogICAgIHVpbnQ2NF90IG1faWRiUGVyT3JpZ2luUXVv
dGEgeyBXZWJDb3JlOjpJREJTZXJ2ZXI6OmRlZmF1bHRQZXJPcmlnaW5RdW90YSB9OwogI2VuZGlm
CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376668</attachid>
            <date>2019-08-19 00:22:43 -0700</date>
            <delta_ts>2019-08-19 08:21:05 -0700</delta_ts>
            <desc>WinCairo fix</desc>
            <filename>bug-200811-20190819092241.patch</filename>
            <type>text/plain</type>
            <size>41577</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZjNzFkZTk3MjYwOTcx
OWNjNTIwOTY1NTk5Y2Y4M2FmZTM5MTJhZi4uMmEwZTRjNGE2OGQ3MzVmNzA1Nzg1ZTQwZjZlZjg5
YTI0NmVhYjcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA4LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklE
OjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2Vu
LgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvciwgdXBkYXRlIFNlc3Npb25JRCBjYWxs
IHNpdGVzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNlc3Npb25JRCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Up
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclByb3ZpZGVyOjpyZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnRzKToKKwogMjAxOS0wOC0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gQ29tcHV0ZSBjb2x1bW4gbWluL21heCB3aWR0aHMg
YW5kIHRhYmxlIHdpZHRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNjBlN2ZiNTZjOTcwNWUxOWZj
ODliYzhhNmJkNGY0MjNlZjE2MjViZS4uM2NkMjVhZTYzMGM1YzI0MDE3MjA1NjI2YTIzMGFiYzVi
NDFmN2U4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDgtMTgg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBTZXNz
aW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQgYW5kIG1h
a2UgaXQgY2xvc2VyIHRvIGEgcmVndWxhciBPYmplY3RJZGVudGlmaWVyLgorCisgICAgICAgICog
cGFsL1Nlc3Npb25JRC5jcHA6CisgICAgICAgICogcGFsL1Nlc3Npb25JRC5oOgorICAgICAgICAo
UEFMOjpTZXNzaW9uSUQ6OlNlc3Npb25JRCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNW
YWxpZCBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNFcGhlbWVyYWwgY29uc3Qp
OgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjp0b1VJbnQ2NCBjb25zdCk6CisgICAgICAgIChQ
QUw6OlNlc3Npb25JRDo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25J
RDo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNvbGF0ZWRD
b3B5IGNvbnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjpvcGVyYXRvciBib29sIGNvbnN0
KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc1ZhbGlkU2Vzc2lvbklEVmFsdWUpOgorICAg
ICAgICAoUEFMOjpTZXNzaW9uSUQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Np
b25JRDo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6aGFzaCk6CisgICAg
ICAgIChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+OjplbXB0eVZhbHVlKToKKyAgICAg
ICAgKFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD46OmNvbnN0cnVjdERlbGV0ZWRWYWx1
ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+Ojppc0RlbGV0ZWRW
YWx1ZSk6CisKIDIwMTktMDgtMTQgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBtYWNPUyA8IDEwLjEzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRh
NWU5NTI5YjM4ODRiODAxNDUwNGRiYmMwOTQ5OWFmNzFlZWFlMTYuLmViOGQ1ZDY1MzU4YTc0ZGEw
NzFhZGI4ZTFhNzRjOTcyODlhMjRiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTkt
MDgtMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXgg
Q2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVXBkYXRlIFNlc3Npb25JRCBjYWxsIHNpdGVzIHRvIHVz
ZSB0b1VJbnQ2NC4KKyAgICAgICAgUmVtb3ZlIGRlYnVnIGFzc2VydHMgdG8gaXNWYWxpZCBzaW5j
ZSBjb25zdHJ1Y3Rpb24gb2YgaW52YWxpZCBzZXNzaW9uIElEcyBjYW4gb25seSBoYXBwZW4gaW4g
dmVyeSBzcGVjaWZpYyBjYXNlcworICAgICAgICB0eXBpY2FsbHkgZm9yIEhhc2hNYXBzLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbkJ5Q29ubmVjdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmV4aXN0aW5nU1dPcmlnaW5TdG9yZUZv
clNlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6d2ViUHJv
Y2Vzc1dhc0Rpc2Nvbm5lY3RlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29y
a0xvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3Vy
ZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXApOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ05vbkRlZmF1bHREYXRhU3RvcmVGb3JT
ZXNzaW9uSUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJv
dmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3Jl
YXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNoZS9X
ZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENv
bm5lY3Rpb246OldlYlNXQ2xpZW50Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbkZvclNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRU
aW1lcik6CisKIDIwMTktMDgtMTggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtNYWNdIFVzZSB0aGUgUElEIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mg
d2hlbiBpc3N1aW5nIGxvY2FsIGZpbGUgcmVhZCBzYW5kYm94IGV4dGVuc2lvbnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKaW5kZXggOTNlN2U4MzU4ZWM2YjFhYTA3NzkzOTExMjkwZmY4N2UxMjNmYjQ0NS4u
YTEwYjRmMDM1NzY2ZGY2OTNmY2NiMTJlMGQwOTMxYjRlZjliN2I1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wOC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODEx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFN0
b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJEYXRhYmFzZVByb3Zp
ZGVyOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKToKKyAgICAgICAgKiBTdG9yYWdl
L1dlYkRhdGFiYXNlUHJvdmlkZXIuaDoKKwogMjAxOS0wOC0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbRlRXXSBFbmFibGUgQ29yZUZvdW5kYXRpb24g
dXNlIGlmIGJ1aWxkaW5nIGZvciBBcHBsZSB0YXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvU2Vzc2lvbklELmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lv
bklELmNwcAppbmRleCBjNDIzNWU0ZDk3YmE5OGExZmI2MWQzM2Y4YWVjNTA3ZWQ4YjQyZmQxLi42
YjMwYjRhMDZiYWI0OGNhNjllNDk1NWU1MmNiNDE2MmJiMjA3ODBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9TZXNzaW9uSUQuY3BwCkBAIC01NSw5ICs1NSw0IEBAIHZvaWQgU2Vzc2lvbklEOjplbmFi
bGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpCiAgICAgZ2VuZXJhdGlvblByb3RlY3Rpb25FbmFibGVk
ID0gdHJ1ZTsKIH0KIAotU2Vzc2lvbklEIFNlc3Npb25JRDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gU2Vzc2lvbklEIHsgbV9zZXNzaW9uSUQgfTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuaAppbmRleCAwYmRkZGU3YjhlMzNi
OTY5MDUxNTc5MTMyMmYwOGRlZjYxY2I1OTAwLi5jNzFkNmEyYmFlY2NjMDMzNDk3NmVlYjFkMzEx
NzJjNzBkZWQ0Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25J
RC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lvbklELmgKQEAgLTQyLDU4ICs0
Miw1NSBAQCBwdWJsaWM6CiAgICAgICAgIEhhc2hUYWJsZURlbGV0ZWRWYWx1ZUlEID0gc3RkOjpu
dW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpLAogICAgIH07CiAKLSAgICBzdGF0aWMgU2Vz
c2lvbklEIGVtcHR5U2Vzc2lvbklEKCkgeyByZXR1cm4gU2Vzc2lvbklEKEhhc2hUYWJsZUVtcHR5
VmFsdWVJRCk7IH0KLSAgICBzdGF0aWMgU2Vzc2lvbklEIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
IHsgcmV0dXJuIFNlc3Npb25JRChIYXNoVGFibGVEZWxldGVkVmFsdWVJRCk7IH0KICAgICBzdGF0
aWMgU2Vzc2lvbklEIGRlZmF1bHRTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9uSUQoRGVmYXVs
dFNlc3Npb25JRCk7IH0KICAgICBzdGF0aWMgU2Vzc2lvbklEIGxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSB7IHJldHVybiBTZXNzaW9uSUQoTGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7IH0KIAotICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsaWRTZXNzaW9uSURWYWx1ZShtX3Nl
c3Npb25JRCk7IH0KLSAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQgJiBFcGhlbWVyYWxTZXNzaW9uTWFzayAmJiBtX3Nlc3Npb25JRCAhPSBIYXNoVGFibGVE
ZWxldGVkVmFsdWVJRDsgfQorICAgIGV4cGxpY2l0IFNlc3Npb25JRChXVEY6Okhhc2hUYWJsZURl
bGV0ZWRWYWx1ZVR5cGUpCisgICAgICAgIDogbV9pZGVudGlmaWVyKEhhc2hUYWJsZURlbGV0ZWRW
YWx1ZUlEKQorICAgIHsKKyAgICB9CisKKyAgICBleHBsaWNpdCBTZXNzaW9uSUQoV1RGOjpIYXNo
VGFibGVFbXB0eVZhbHVlVHlwZSkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoSGFzaFRhYmxlRW1w
dHlWYWx1ZUlEKQorICAgIHsKKyAgICB9CiAKICAgICBQQUxfRVhQT1JUIHN0YXRpYyBTZXNzaW9u
SUQgZ2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKTsKICAgICBQQUxfRVhQT1JUIHN0YXRpYyBT
ZXNzaW9uSUQgZ2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCk7CiAgICAgUEFMX0VYUE9SVCBz
dGF0aWMgdm9pZCBlbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOwogCi0gICAgdWludDY0X3Qg
c2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KLSAgICBib29sIG9wZXJh
dG9yPT0oU2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQgPT0g
c2Vzc2lvbklELm1fc2Vzc2lvbklEOyB9Ci0gICAgYm9vbCBvcGVyYXRvciE9KFNlc3Npb25JRCBz
ZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEICE9IHNlc3Npb25JRC5tX3Nlc3Np
b25JRDsgfQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsaWRTZXNzaW9u
SURWYWx1ZShtX2lkZW50aWZpZXIpOyB9CisgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllciAmIEVwaGVtZXJhbFNlc3Npb25NYXNrICYmIG1faWRlbnRpZmll
ciAhPSBIYXNoVGFibGVEZWxldGVkVmFsdWVJRDsgfQorICAgIGJvb2wgaXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXIgPT0gSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlSUQ7IH0KKworICAgIHVpbnQ2NF90IHRvVUludDY0KCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllciA9PSBzZXNzaW9uSUQubV9pZGVudGlmaWVyOyB9Cisg
ICAgYm9vbCBvcGVyYXRvciE9KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllciAhPSBzZXNzaW9uSUQubV9pZGVudGlmaWVyOyB9CiAgICAgYm9vbCBpc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdCB7IHJldHVybiAhaXNFcGhlbWVyYWwoKTsgfQogCiAg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owot
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwg
U2Vzc2lvbklEJik7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PFNlc3Npb25JRD4gZGVjb2RlKERlY29kZXImKTsKIAotICAgIFNlc3Npb25JRCBpc29sYXRlZENv
cHkoKSBjb25zdDsKKyAgICBTZXNzaW9uSUQgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4g
KnRoaXM7IH0KKworICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBt
X2lkZW50aWZpZXI7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXNzaW9uSUQodWludDY0
X3Qgc2Vzc2lvbklEKQotICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICBleHBs
aWNpdCBTZXNzaW9uSUQodWludDY0X3QgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKICAgICB7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZFNl
c3Npb25JRFZhbHVlKHVpbnQ2NF90IHNlc3Npb25JRCkgeyByZXR1cm4gc2Vzc2lvbklEICE9IEhh
c2hUYWJsZUVtcHR5VmFsdWVJRCAmJiBzZXNzaW9uSUQgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVl
SUQ7IH0KIAotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIHVpbnQ2NF90IG1faWRlbnRp
ZmllcjsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlc3Npb25JRDo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSB0byBh
IHJlZ3VsYXIgQVNTRVJULgotICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWQoKSk7Ci0gICAgZW5j
b2RlciA8PCBtX3Nlc3Npb25JRDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wg
U2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQp
Ci17Ci0gICAgT3B0aW9uYWw8U2Vzc2lvbklEPiBkZWNvZGVkU2Vzc2lvbklEOwotICAgIGRlY29k
ZXIgPj4gZGVjb2RlZFNlc3Npb25JRDsKLSAgICBpZiAoIWRlY29kZWRTZXNzaW9uSUQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHNlc3Npb25JRCA9ICpkZWNvZGVkU2Vzc2lvbklEOwot
ICAgIHJldHVybiB0cnVlOworICAgIEFTU0VSVChpc1ZhbGlkKCkpOworICAgIGVuY29kZXIgPDwg
bV9pZGVudGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTAxLDkgKzk4
LDkgQEAgT3B0aW9uYWw8U2Vzc2lvbklEPiBTZXNzaW9uSUQ6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogewogICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBzZXNzaW9uSUQ7CiAgICAgZGVjb2RlciA+
PiBzZXNzaW9uSUQ7Ci0gICAgaWYgKCFzZXNzaW9uSUQgfHwgIWlzVmFsaWRTZXNzaW9uSURWYWx1
ZSgqc2Vzc2lvbklEKSkKKyAgICBpZiAoIXNlc3Npb25JRCkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLQorICAgIEFTU0VSVChpc1ZhbGlkU2Vzc2lvbklEVmFsdWUoKnNlc3Npb25JRCkp
OwogICAgIHJldHVybiBTZXNzaW9uSUQgeyAqc2Vzc2lvbklEIH07CiB9CiAKQEAgLTExMiwxNiAr
MTA5LDE3IEBAIE9wdGlvbmFsPFNlc3Npb25JRD4gU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKIG5hbWVzcGFjZSBXVEYgewogCiBzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7Ci0gICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGlu
dEhhc2gocC5zZXNzaW9uSUQoKSk7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQ
QUw6OlNlc3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnRvVUludDY0KCkpOyB9CiAgICAg
c3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUEFMOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxQQUw6OlNlc3Np
b25JRD4gewotICAgIHN0YXRpYyBQQUw6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4g
UEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7IH0KIAotICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpT
ZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNE
ZWxldGVkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0g
UEFMOjpTZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFBBTDo6
U2Vzc2lvbklEPiB7CisgICAgc3RhdGljIFBBTDo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJl
dHVybiBQQUw6OlNlc3Npb25JRChIYXNoVGFibGVFbXB0eVZhbHVlKTsgfQorICAgIHN0YXRpYyB2
b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0g
UEFMOjpTZXNzaW9uSUQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQorICAgIHN0YXRpYyBib29s
IGlzRGVsZXRlZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIH07CisKIHRlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPFBBTDo6U2Vzc2lvbklEPiB7CiAgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhh
c2g7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAxMTlh
YTg3NDc0ZjllMWY1ZjA3Y2EzNzI0Njk4OWE0ODlkNTQ1NmQ5Li4wYWYxOGI1MTJiYjc0YzQ5ZTk0
OWQ1OGY3NmM2MmIxYzA1NDVjYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbQpAQCAtMjczMiw3ICsyNzMyLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOm1f
b2JqZWN0LT5jYXJldEJyb3dzaW5nRW5hYmxlZCgpXTsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVO
YW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlXZWJTZXNzaW9uSURBdHRyaWJ1dGVd
KSB7CiAgICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IG1fb2JqZWN0LT50b3BEb2N1bWVu
dCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVk
TG9uZ0xvbmc6ZG9jLT5zZXNzaW9uSUQoKS5zZXNzaW9uSUQoKV07CisgICAgICAgICAgICAgICAg
cmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpkb2MtPnNlc3Npb25J
RCgpLnRvVUludDY0KCldOwogICAgICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggNDNjN2VlZDk1ZGVjZTc5OWQ2MDhjYjVjNzVkOTI1ZmI5YjdmZDMwNC4uOWRl
ZGU0MmRiNmFmZWZhNjc1OGU1ZDgwNmRlOTE0OWQ3OWM2YWYzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC01MDY2LDEyICs1MDY2LDYgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChj
b25zdCBTdHJpbmcmIHVybCkgY29uc3QKIAogUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Np
b25JRCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAg
cmV0dXJuIG1fc2Vzc2lvbklEOwotCi0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkp
Ci0gICAgICAgIG1fc2Vzc2lvbklEID0gcGFnZS0+c2Vzc2lvbklEKCk7Ci0KICAgICByZXR1cm4g
bV9zZXNzaW9uSUQ7CiB9CiAKQEAgLTUyODAsOCArNTI3NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnBy
aXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAg
ICAgICAgZWxlbWVudC0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Uoc2Vzc2lvbklEKTsK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uICYmIHNl
c3Npb25JRC5pc1ZhbGlkKCkpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uKQogICAgICAgICBzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigmU2VydmljZVdvcmtl
clByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24o
c2Vzc2lvbklEKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKaW5kZXggMDQ1M2Q3ZTZkOWUzNjU2MDJhYzlhYmQ5OTliNGUyZmFiMTMyYWRiNC4uZWJmMDAx
MTE5NTM3OWUxZjIxMWVmMWI0NTQ0NmQ3NDFhM2U2N2NkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAKQEAgLTM5MywxMCArMzkzLDE3IEBAIGNsYXNzIEVtcHR5U3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
ciB7CiAgICAgfTsKIAogICAgIHN0cnVjdCBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgZmluYWwgOiBw
dWJsaWMgU3RvcmFnZU5hbWVzcGFjZSB7CisgICAgICAgIGV4cGxpY2l0IEVtcHR5U3RvcmFnZU5h
bWVzcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgICAgICAgICA6IG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgcHJpdmF0ZToKICAgICAg
ICAgUmVmPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
KSBmaW5hbCB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZUFyZWEpOyB9Ci0gICAg
ICAgIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqKSBmaW5hbCB7IHJldHVybiBhZG9w
dFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7IH0KLSAgICAgICAgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lv
bklEKCk7IH0KLSAgICAgICAgdm9pZCBzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEKSB7IH07CisgICAgICAgIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqKSBmaW5h
bCB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IG1fc2Vzc2lv
bklEIH0pOyB9CisgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgICAgIHZvaWQgc2V0U2Vzc2lvbklERm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGZpbmFsIHsgbV9zZXNzaW9uSUQgPSBzZXNz
aW9uSUQ7IH07CisKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgfTsK
IAogICAgIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZShQYWdlJiwgdW5zaWduZWQpIGZpbmFsOwpAQCAtNTIxLDE5ICs1MjgsMTkgQEAgdm9pZCBFbXB0
eUVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYpCiB7CiB9CiAKLVJlZjxT
dG9yYWdlTmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSYsIHVuc2lnbmVkKQorUmVmPFN0b3JhZ2VOYW1lc3Bh
Y2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZShQYWdlJiBwYWdlLCB1bnNpZ25lZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5
U3RvcmFnZU5hbWVzcGFjZSB7IHBhZ2Uuc2Vzc2lvbklEKCkgfSk7CiB9CiAKLVJlZjxTdG9yYWdl
TmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9y
YWdlTmFtZXNwYWNlKHVuc2lnbmVkLCBQQUw6OlNlc3Npb25JRCkKK1JlZjxTdG9yYWdlTmFtZXNw
YWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFt
ZXNwYWNlKHVuc2lnbmVkLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlTmFtZXNwYWNlKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLVJlZjxT
dG9yYWdlTmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlVHJh
bnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKFNlY3VyaXR5T3JpZ2luJiwgdW5zaWduZWQsIFBB
TDo6U2Vzc2lvbklEKQorUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoU2VjdXJpdHlP
cmlnaW4mLCB1bnNpZ25lZCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRW1wdHlTdG9yYWdlTmFtZXNwYWNlIHsgc2Vzc2lvbklEIH0pOwogfQogCiBjbGFz
cyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgOiBwdWJsaWMgU3RvcmFnZVNlc3Npb25Qcm92
aWRlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwCmluZGV4IDFhNDE1MGE2NDk4MTAyNmE2MDM2MGIyYzNmZGYwZTA5NGEw
MDdhN2IuLjA2MjExOTQ5NWRiYTMxOTVkYjJiNDkzYzMxYTA1OTYzMGY0M2FlNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQu
Y3BwCkBAIC03Nyw3ICs3Nyw3IEBAIGJvb2wgQ3VybERvd25sb2FkOjpjYW5jZWwoKQogUmVmPEN1
cmxSZXF1ZXN0PiBDdXJsRG93bmxvYWQ6OmNyZWF0ZUN1cmxSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIHsKICAgICAvLyBGSVhNRTogVXNlIGEgY29ycmVjdCBzZXNzaW9uSUQuCi0g
ICAgYXV0byBjdXJsUmVxdWVzdCA9IEN1cmxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCwgKnRoaXMs
IFBBTDo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpKTsKKyAgICBhdXRvIGN1cmxSZXF1ZXN0
ID0gQ3VybFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LCAqdGhpcywgUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgcmV0dXJuIGN1cmxSZXF1ZXN0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZUN1cmwuY3BwCmluZGV4IDQ3YjM3ODNlNjQ2MjlhOTJlZThkYTQwYmQ0Nzk3MGM3OTZlYTU0
ODYuLjY0M2RhMTAwMjg2ZDM1YTZmY2FhYmIyMGE2YTMwYTg5ZmFlODNhYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZUN1cmwuY3BwCkBAIC0xNTUsNyArMTU1LDcgQEAgUmVmPEN1cmxSZXF1ZXN0PiBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlQ3VybFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmUK
IAogICAgIEN1cmxSZXF1ZXN0OjpTaG91bGRTdXNwZW5kIHNob3VsZFN1c3BlbmQgPSBkLT5tX2Rl
ZmVyc0xvYWRpbmcgPyBDdXJsUmVxdWVzdDo6U2hvdWxkU3VzcGVuZDo6WWVzIDogQ3VybFJlcXVl
c3Q6OlNob3VsZFN1c3BlbmQ6Ok5vOwogICAgIC8vIEZJWE1FOiBVc2UgYSBjb3JyZWN0IHNlc3Np
b25JRC4KLSAgICBhdXRvIGN1cmxSZXF1ZXN0ID0gQ3VybFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0
LCAqZGVsZWdhdGUoKSwgUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCksIHNob3VsZFN1
c3BlbmQsIEN1cmxSZXF1ZXN0OjpFbmFibGVNdWx0aXBhcnQ6OlllcywgQ3VybFJlcXVlc3Q6OkNh
cHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkJhc2ljLCBkLT5tX21lc3NhZ2VRdWV1ZSk7CisgICAg
YXV0byBjdXJsUmVxdWVzdCA9IEN1cmxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCwgKmRlbGVnYXRl
KCksIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHNob3VsZFN1c3BlbmQsIEN1
cmxSZXF1ZXN0OjpFbmFibGVNdWx0aXBhcnQ6OlllcywgQ3VybFJlcXVlc3Q6OkNhcHR1cmVOZXR3
b3JrTG9hZE1ldHJpY3M6OkJhc2ljLCBkLT5tX21lc3NhZ2VRdWV1ZSk7CiAgICAgCiAgICAgcmV0
dXJuIGN1cmxSZXF1ZXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcAppbmRleCBmNjMwZTg2NjEyZDkzZWNm
YmI2YTJmODQ3NGJkNzQzMDg0YjdiNGEyLi43YmJhYzVjYTQxNDBiM2M3NjgzMWNiYWQ3ZjQzNzZh
NGY5YWRkOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtNjYsOSArNjYsNiBAQCB2b2lkIFNlcnZp
Y2VXb3JrZXJQcm92aWRlcjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cygpCiAgICAgc2V0
TWF5SGF2ZVJlZ2lzdGVyZWRTZXJ2aWNlV29ya2VycygpOwogICAgIGZvciAoYXV0byogZG9jdW1l
bnQgOiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkpIHsKICAgICAgICAgYXV0byBzZXNzaW9uSUQg
PSBkb2N1bWVudC0+c2Vzc2lvbklEKCk7Ci0gICAgICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQo
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGlmIChTY2hlbWVSZWdpc3RyeTo6
Y2FuU2VydmljZVdvcmtlcnNIYW5kbGVVUkxTY2hlbWUoZG9jdW1lbnQtPnVybCgpLnByb3RvY29s
KCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKICAgICAgICAgICAgIGRvY3VtZW50LT5zZXRT
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigmc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9u
KHNlc3Npb25JRCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKaW5kZXggNzRlZDEzYmU2MTNkNzFm
ZDMzMjQxNjk1ZTVkYjM2MTZjMjQ1MDg5Ny4uMzdkYjVlNGI1NGYxYmQ5MjhiOGU0NTQwMGEyZjI3
Y2QxYWZiNjhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgog
ICAgICAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb25G
b3JEb3dubG9hZHMoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgQXV0aGVudGljYXRpb25NYW5hZ2Vy
JiBkb3dubG9hZHNBdXRoZW50aWNhdGlvbk1hbmFnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwZW5kaW5nRG93bmxvYWRDYW5jZWxlZChEb3dubG9hZElEKSA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklE
JikgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVm
KCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBjb25zdCA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgdWludDMyX3QgZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKCkg
Y29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBiYmU5YTlhYTQ2YTk2
MzQwMjgyZjcwZDJkM2Q0ZmMyZGQzYzRlODJkLi45MWJlMDlkZDM0MDBkMmZiM2NkMWJmZGVkZmZk
NTM1OGZlMjY1NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDg4LDcgKzQ4
OCw2IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZEZpbmlzaFByZWNv
bm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvCiAKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHN0b3JhZ2VTZXNzaW9uKGNvbnN0IE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vz
cywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNW
YWxpZCgpKTsKICAgICBpZiAoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1By
b2Nlc3Muc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgICAgIHJldHVybiAqc3Rv
cmFnZVNlc3Npb247CkBAIC02ODMsMTAgKzY4Miw2IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3Rp
CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21h
aW4pCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lv
bklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGF1dG8qIG5ldHdvcmtT
ZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAg
ICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPmxvZ1VzZXJJbnRlcmFjdGlvbihkb21haW4sIFtdIHsgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGM3NzY3ZDJjZWVk
NzFhMDA0MWU2MGY5YWNhOGJiOGQyMjE3MjYzZDQuLmRjNDMwYzA0ZjM0ZmQwNDYwYmNkYzJlNTBj
NDNhZjI0ZTlhMjU4ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC01NjgsMzYgKzU2OCwyNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Ojpmb3JFYWNoTmV0d29ya1N0b3JhZ2VTZXNzaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQoV2ViQ29y
ZTo6TgogICAgICAgICBmdW5jdG9yKCpzdG9yYWdlU2Vzc2lvbik7CiB9CiAKLU5ldHdvcmtTZXNz
aW9uKiBOZXR3b3JrUHJvY2Vzczo6bmV0d29ya1Nlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQm
IHNlc3Npb25JRCkgY29uc3QKK05ldHdvcmtTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6bmV0d29y
a1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdAogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAg
IHJldHVybiBzZXNzaW9uSUQuaXNWYWxpZCgpID8gbV9uZXR3b3JrU2Vzc2lvbnMuZ2V0KHNlc3Np
b25JRCkgOiBudWxscHRyOworICAgIHJldHVybiBtX25ldHdvcmtTZXNzaW9ucy5nZXQoc2Vzc2lv
bklEKTsKIH0KIAogTmV0d29ya1Nlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lv
bkJ5Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIGNvbnN0CiB7Ci0gICAg
YXV0byBzZXNzaW9uSUQgPSBtX3Nlc3Npb25CeUNvbm5lY3Rpb24uZ2V0KGNvbm5lY3Rpb24udW5p
cXVlSUQoKSk7Ci0gICAgcmV0dXJuIHNlc3Npb25JRC5pc1ZhbGlkKCkgPyBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpIDogbnVsbHB0cjsKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zZXNzaW9uQnlD
b25uZWN0aW9uLmZpbmQoY29ubmVjdGlvbi51bmlxdWVJRCgpKTsKKyAgICByZXR1cm4gaXRlcmF0
b3IgIT0gbV9zZXNzaW9uQnlDb25uZWN0aW9uLmVuZCgpID8gbmV0d29ya1Nlc3Npb24oaXRlcmF0
b3ItPnZhbHVlKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNlc3Np
b24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdv
cmtTZXNzaW9uPiYmIHNlc3Npb24pCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiYm
IHNlc3Npb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBBU1NFUlQo
c2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm47Ci0KICAgICBtX25ldHdvcmtTZXNzaW9ucy5zZXQoc2Vzc2lvbklELCBXVEZN
b3ZlKHNlc3Npb24pKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24o
Y29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRl
c3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBp
ZiAoIXNlc3Npb25JRC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQogI2lmICFVU0UoU09V
UCkKICAgICAvLyBTb3VwIGJhc2VkIHBvcnRzIGRlc3Ryb3kgdGhlIGRlZmF1bHQgc2Vzc2lvbiBy
aWdodCBiZWZvcmUgdGhlIHByb2Nlc3MgZXhpdHMgdG8gYXZvaWQgbGVha2luZwogICAgIC8vIG5l
dHdvcmsgcmVzb3VyY2VzIGxpa2UgdGhlIGNvb2tpZXMgZGF0YWJhc2UuCkBAIC0xMzAxLDEwICsx
MjkyLDYgQEAgc3RhdGljIHZvaWQgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKE5ldHdvcmtDYWNoZTo6
Q2FjaGUqIGNhY2hlLCBQQUw6OlNlc3Npb25JRCBzZXMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNo
T3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgQVNTRVJU
KHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCiAgICAgc3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3I+IHsKICAgICAgICAg
ZXhwbGljaXQgQ2FsbGJhY2tBZ2dyZWdhdG9yKEZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKQEAgLTE0MDIsMTAgKzEzODksNiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdAogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0
YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lv
bklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpIU1RTQ2Fj
aGUpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdl
U2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTYxNiwxMCArMTU5OSw2IEBAIHN0YXRpYyBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBmaWx0ZXJGb3JSZWdpc3RyYWJsZURvbWFpbnMo
Y29uc3QgSGFzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVn
aXN0cmFibGVEb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwg
V2Vic2l0ZURhdGFUb1JlbW92ZT4mJiBkb21haW5zLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7
Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zID0gV2Vic2l0ZURh
dGFGZXRjaE9wdGlvbjo6RG9Ob3RDcmVhdGVQcm9jZXNzZXM7CiAKICAgICBzdHJ1Y3QgQ2FsbGJh
Y2tBZ2dyZWdhdG9yIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENhbGxiYWNr
QWdncmVnYXRvcj4gewpAQCAtMTgyNCwxMCArMTgwMyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmRlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVnaXN0
cmFiCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9u
SUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zID0gV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjo6RG9O
b3RDcmVhdGVQcm9jZXNzZXM7CiAgICAgCiAgICAgc3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBm
aW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3I+IHsK
QEAgLTI0NTYsMTQgKzI0MzEsMTIgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzczo6bmVlZHNTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmUKIAogU1dTZXJ2
ZXImIE5ldHdvcmtQcm9jZXNzOjpzd1NlcnZlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLQogICAgIGF1dG8g
cmVzdWx0ID0gbV9zd1NlcnZlcnMuZW5zdXJlKHNlc3Npb25JRCwgWyZdIHsKICAgICAgICAgYXV0
byBwYXRoID0gbV9zd0RhdGFiYXNlUGF0aHMuZ2V0KHNlc3Npb25JRCk7CiAgICAgICAgIC8vIFRo
ZXJlIHNob3VsZCBhbHJlYWR5IGJlIGEgcmVnaXN0ZXJlZCBwYXRoIGZvciB0aGlzIFBBTDo6U2Vz
c2lvbklELgogICAgICAgICAvLyBJZiB0aGVyZSdzIG5vdCwgdGhlbiB3aGVyZSBkaWQgdGhpcyBQ
QUw6OlNlc3Npb25JRCBjb21lIGZyb20/CiAgICAgICAgIEFTU0VSVChzZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSB8fCAhcGF0aC5pc0VtcHR5KCkpOwotICAgICAgICAKKwogICAgICAgICBhdXRvIHZh
bHVlID0gc3RkOjptYWtlX3VuaXF1ZTxTV1NlcnZlcj4obWFrZVVuaXF1ZVJlZjxXZWJTV09yaWdp
blN0b3JlPigpLCBXVEZNb3ZlKHBhdGgpLCBzZXNzaW9uSUQpOwogICAgICAgICBpZiAobV9zaG91
bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KQogICAgICAgICAg
ICAgdmFsdWUtPmRpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsK
QEAgLTI0NzUsMTAgKzI0NDgsNiBAQCBTV1NlcnZlciYgTmV0d29ya1Byb2Nlc3M6OnN3U2VydmVy
Rm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKIFdlYlNXT3JpZ2luU3RvcmUq
IE5ldHdvcmtQcm9jZXNzOjpleGlzdGluZ1NXT3JpZ2luU3RvcmVGb3JTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQogICAgIGF1dG8qIHN3U2VydmVyID0gbV9zd1NlcnZlcnMuZ2V0KHNlc3Npb25JRCk7CiAg
ICAgaWYgKCFzd1NlcnZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMzIxMWU5MGY2NTE4MzZh
M2IwNzZjMzIyYWFiODYzNDgxN2Q0YzczYS4uZjEwMjE4YzgxNmIzMjQ0NjBjZDNhMGI3YmFmNDcx
N2U1YmU3NTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaApAQCAtMTYwLDEwICsxNjAsMTAgQEAgcHVibGljOgogICAgIEF1dGhlbnRpY2F0aW9u
TWFuYWdlciYgYXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiAgICAgRG93bmxvYWRNYW5hZ2VyJiBk
b3dubG9hZE1hbmFnZXIoKTsKIAotICAgIHZvaWQgc2V0U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJik7Ci0gICAgTmV0d29ya1Nl
c3Npb24qIG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmluYWw7
CisgICAgdm9pZCBzZXRTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1Nlc3Npb24+JiYpOworICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCkgY29uc3QgZmluYWw7CiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNz
aW9uQnlDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpIGNvbnN0OwotICAgIHZvaWQgZGVzdHJv
eVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKGNvbnN0
IEZ1bmN0aW9uPHZvaWQoTmV0d29ya1Nlc3Npb24mKT4mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVj
NmE4MGM4NDg5ZGVmMzJkNzg5Yjc0YmVjMTI3MzU3YmVjNTU4MzUuLmYzZTJkYzIxY2MwOTk0ZjAy
ZTljNmRlOGQ4Y2JhMDIxMTExNTBmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMwNyw4ICszMDcsOCBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgICAgICBuZXR3b3JrU2Vzc2lvbiA9IG1fY29u
bmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Np
b25JRCk7CiAgICAgfQogICAgIGlmICghbmV0d29ya1Nlc3Npb24pIHsKLSAgICAgICAgV1RGTG9n
QWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24g
KGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lv
bklELnNlc3Npb25JRCgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgi
c3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGgg
YSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUi
IFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHBhcmFt
ZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRl
bXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2
NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnRvVUludDY0
KCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtM
b2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhh
dCBkb2VzIG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9u
SUQudG9VSW50NjQoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5s
b2dEaWFnbm9zdGljTWVzc2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBXZWJDb3JlOjpEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjppbnZhbGlkU2Vzc2lvbklES2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBs
ZTo6Tm8pOwogICAgICAgICBkaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJs
KCkpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jdXJsL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Q3VybC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRDdXJsLmNwcApp
bmRleCBmYzI1MDFlYWViNGE5MDViNzFjNzU5NDFjZDU4NjJjM2QyNWZjNGQ2Li5iYjNiOGIzMDUw
OTU1MDAzMjlmYzAyYzA2ZjA4NWM3N2M2ZGI5NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2N1cmwvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRDdXJsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHRDdXJsLmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0dwogICAg
IGlmIChuZXR3b3JrUHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBuZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgU3Ry
aW5nOjpudW1iZXIoc2Vzc2lvbklELnNlc3Npb25JRCgpKSk7CisgICAgbmV0d29ya1Byb2Nlc3Mu
ZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIFN0cmluZzo6bnVtYmVyKHNlc3Npb25JRC50b1VJbnQ2
NCgpKSk7CiAgICAgbmV0d29ya1Byb2Nlc3Muc2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtT
ZXNzaW9uOjpjcmVhdGUobmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycy5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggNzEy
OTc1MTU4OTYwZDUzNDIzYjkxMWUzZjgwZjEzYjFhMjA2NWU4YS4uZTNkYzYzMTJmNGU3ODI2OThh
OTEyMTMxMWJkNDAxMWFjYzAzZjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTU4LDcg
KzU4LDcgQEAgdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFT
dG9yZVNlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHcKICAgICBpZiAoIXNlc3Npb25JRC5pc0Vw
aGVtZXJhbCgpICYmICFwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVy
LmlzRW1wdHkoKSkKICAgICAgICAgdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGNvb2tpZVN0b3Jh
Z2VGcm9tSWRlbnRpZnlpbmdEYXRhKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlk
ZW50aWZpZXIpOwogCi0gICAgbmV0d29ya1Byb2Nlc3MuZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQs
IG1ha2VTdHJpbmcoYmFzZSwgJy4nLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpLCBXVEZNb3ZlKHVp
UHJvY2Vzc0Nvb2tpZVN0b3JhZ2UpKTsKKyAgICBuZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9u
KHNlc3Npb25JRCwgbWFrZVN0cmluZyhiYXNlLCAnLicsIHNlc3Npb25JRC50b1VJbnQ2NCgpKSwg
V1RGTW92ZSh1aVByb2Nlc3NDb29raWVTdG9yYWdlKSk7CiAKICAgICBhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Byb2Nlc3Muc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKTsKICAgICBmb3IgKGNvbnN0
IGF1dG8mIGNvb2tpZSA6IHBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dFNvdXAuY3BwCmluZGV4IGM5ZWVhNWEyZTkyMjgxOTdlMmQyZTE0NDI3MjJkZWJm
N2YyMjRkNTMuLmE3ODgyM2FmMDM3Y2FjMWEzYjg5MDVkMTZlNTU0ZGVkOTAwYzc1MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKE5ldHdv
cmtQcm9jZXNzJiBuZXR3CiAgICAgaWYgKG5ldHdvcmtQcm9jZXNzLnN0b3JhZ2VTZXNzaW9uKHNl
c3Npb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG5ldHdvcmtQcm9jZXNzLmVuc3VyZVNl
c3Npb24oc2Vzc2lvbklELCBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklEKCkpKTsK
KyAgICBuZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgU3RyaW5nOjpudW1i
ZXIoc2Vzc2lvbklELnRvVUludDY0KCkpKTsKICAgICBuZXR3b3JrUHJvY2Vzcy5zZXRTZXNzaW9u
KHNlc3Npb25JRCwgTmV0d29ya1Nlc3Npb246OmNyZWF0ZShuZXR3b3JrUHJvY2VzcywgV1RGTW92
ZShwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycykpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKaW5kZXggOTFlY2UxZjBkYWZmZTNlYTYzYWRiYzBkOTFlYWM0ZDE4MTExMzA5YS4uMDNmNGRk
MWFjN2JmMGFlNjBiMTg1ODk0YjY1MDVhZGJmZTY0NDEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0x
MTA0LDcgKzExMDQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJldHJpZXZlQ2FjaGVT
dG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgIGF1dG8qIHN0b3Jl
ID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKTsKIAogICAgIGlmICgh
c3RvcmUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBO
ZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHVuYWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFy
YW1ldGVycyBmcm9tIHRoZSBnaXZlbiBzZXNzaW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lv
bklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdl
LCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHVuYWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0
b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRoZSBnaXZlbiBzZXNzaW9uIElEICUiIFBSSXU2NCwgdGhp
cywgc2Vzc2lvbklELnRvVUludDY0KCkpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgeyB9LCB7IH0g
fSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDZmZjFi
Y2QxYTZjZWZkYjA4MzNkYzJjNjRhNTkzNGI1M2E1ZDlhODEuLmUyZGY0MTdkMmU4MDRkMzA3ZGU0
NDk2YzI1YjRmM2ExM2NiMmIxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNDUsNyArMTQ1LDcg
QEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogCiAgICAgcGxhdGZvcm1E
ZXN0cm95KCk7CiAKLSAgICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgpICYmIG1fc2Vzc2lvbklE
ICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAobV9zZXNz
aW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAgICBB
U1NFUlQobm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwog
ICAgICAgICBub25EZWZhdWx0RGF0YVN0b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAg
ICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bv
b2xzKCkpIHsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURh
dGFTdG9yZSgpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNz
aW9uSURNYXAoKQogewotICAgIGlmIChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9u
SUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlmIChtX3Nl
c3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAgICAgICAg
IGF1dG8gcmVzdWx0ID0gbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5hZGQobV9zZXNzaW9uSUQsIHRo
aXMpOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwog
ICAgIH0KQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1heWJlUmVn
aXN0ZXJXaXRoU2Vzc2lvbklETWFwKCkKIAogV2Vic2l0ZURhdGFTdG9yZSogV2Vic2l0ZURhdGFT
dG9yZTo6ZXhpc3RpbmdOb25EZWZhdWx0RGF0YVN0b3JlRm9yU2Vzc2lvbklEKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKIHsKLSAgICByZXR1cm4gc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBzZXNz
aW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHRE
YXRhU3RvcmVzKCkuZ2V0KHNlc3Npb25JRCkgOiBudWxscHRyOworICAgIHJldHVybiBzZXNzaW9u
SUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHREYXRh
U3RvcmVzKCkuZ2V0KHNlc3Npb25JRCkgOiBudWxscHRyOwogfQogCiB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnJlZ2lzdGVyUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyLmNwcAppbmRleCA5YWIwZTBmNmE1M2Y0ZWYwYmE0ZmY4M2RiY2M1ZDlkMTc5MjVhNTA1
Li41MDFjYjcyMDYyNDgyNDFmOTQyNjg1YWFjY2Q0NzBiZjQ2MjIxZjQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92
aWRlci5jcHAKQEAgLTM3LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFJlZjxXZWJD
b3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3Jl
YXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAg
ICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7Ci0gICAgICAgIHJldHVybiBtX2Nvbm5l
Y3Rpb25zLmVuc3VyZShzZXNzaW9uSUQuc2Vzc2lvbklEKCksIFs9XSgpIHsKKyAgICAgICAgcmV0
dXJuIG1fY29ubmVjdGlvbnMuZW5zdXJlKHNlc3Npb25JRCwgWz1dKCkgewogICAgICAgICAgICAg
cmV0dXJuIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklE
KTsKICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLmNvcHlSZWYoKTsKICAgICB9CiAKICAgICBp
ZiAoIW1fZGVmYXVsdENvbm5lY3Rpb24pIHsKICAgICAgICAgbV9kZWZhdWx0Q29ubmVjdGlvbiA9
IFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklEKTsKLSAg
ICAgICAgbV9jb25uZWN0aW9ucy5zZXQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCAqbV9kZWZhdWx0
Q29ubmVjdGlvbik7CisgICAgICAgIG1fY29ubmVjdGlvbnMuc2V0KHNlc3Npb25JRCwgKm1fZGVm
YXVsdENvbm5lY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gKm1fZGVmYXVsdENvbm5lY3Rpb247
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVT
dG9yYWdlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNo
ZVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IGNiMTZkMzJlNzc5NjI3NmY2YzllNWUwODY3ZmNiZDAw
NmU1Y2Y5NDkuLjM4YWVlNmNlNjEyMTQ3ZTVmZGQzZjY2NzcwOWQ5NTFkNDUzZjI3ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VQcm92aWRlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ2FjaGVTdG9y
YWdlUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBSZWZQdHI8V2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4gbV9kZWZhdWx0Q29ubmVjdGlvbjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8
V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4+IG1fY29ubmVjdGlvbnM7CisgICAgSGFzaE1hcDxQ
QUw6OlNlc3Npb25JRCwgUmVmPFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+PiBtX2Nvbm5lY3Rp
b25zOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMmI1ZWQ3MGQ2NzdiYTZmNThm
ZmQ5NzgxM2Y1NWVlOTY1MWI4MTRiYi4uMzMyNzkzMzk1ZTBkOGM1NzFmZWEyODgxZjdiNzFmYTY2
NWQwYWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC01Niw2ICs1Niw3IEBAIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6V2ViU1dDbGllbnRDb25uZWN0aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQp
CiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX3N3T3JpZ2luVGFibGUobWFr
ZVVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPigpKQogeworICAgIEFTU0VSVChtX3Nlc3Npb25J
RC5pc1ZhbGlkKCkpOwogICAgIGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKIH0KIApA
QCAtNjcsMTAgKzY4LDYgQEAgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp+V2ViU1dDbGllbnRDb25u
ZWN0aW9uKCkKIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmluaXRpYWxpemVDb25uZWN0
aW9uSWZOZWVkZWQoKQogewotICAgIEFTU0VSVChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAg
IGlmICghbV9zZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAo
bV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3Bw
CmluZGV4IDliN2JlYTM3NWViNmI0OTcxODJmNjQxNDkwOWVkNGZhNDAwMTdhZGYuLjE2Mzc3Nzli
M2RiZjM2MjI4MmZmOTA5MmM2NDc3MDgyYTk3M2Y0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
LmNwcApAQCAtNjIsNyArNjIsNiBAQCBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24mIFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlcjo6c2VydmljZVdvcmtlckNvbm5lY3Rpb25GbwogCiBXZWJDb3Jl
OjpTV0NsaWVudENvbm5lY3Rpb24qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdT
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsK
LSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7CiAgICAgYXV0byogbmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBpZiAoIW5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IGNmMWYyZDYzNzI3ODIyNjkyMDFmMWRmMmI3YmQ2OTgxYzlmYWFk
YmMuLjFkZjcwODZlMDY0Mzg5MTg5MmM1Zjk4Yjg5ZWFmNGUzNDE4NDllMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01MDIsOSArNTAyLDcg
QEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgbV9wYWdlID0gc3RkOjptYWtlX3VuaXF1
ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiAKLSAgICAvLyBTZXQgdGhlIHNl
c3Npb25JRCAqYmVmb3JlKiB1cGRhdGluZyB0aGUgcHJlZmVyZW5jZXMgYXMgdGhlIHByaXZhdGVC
cm93c2luZ0VuYWJsZWQgcHJlZmVyZW5jZXMgbWF5IG5lZWQgdG8gb3ZlcnJpZGUgaXQuCi0gICAg
aWYgKHBhcmFtZXRlcnMuc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgc2V0U2Vzc2lvbklE
KHBhcmFtZXRlcnMuc2Vzc2lvbklEKTsKKyAgICBzZXRTZXNzaW9uSUQocGFyYW1ldGVycy5zZXNz
aW9uSUQpOwogCiAgICAgdXBkYXRlUHJlZmVyZW5jZXMocGFyYW1ldGVycy5zdG9yZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNw
cAppbmRleCA1ZWU1YTdiMjliZWY0NTM5OWRmZDc4YjMxMjNjMGUwYjJmYzlhY2ExLi40ODVjMmNi
Yzg4MDc3NGZkOGFkZjY0YzY1MGE4OWU2ZDhhMDY0YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00NSwxNyArNDUs
OSBAQCBXZWJEYXRhYmFzZVByb3ZpZGVyOjp+V2ViRGF0YWJhc2VQcm92aWRlcigpCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlciYgV2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vz
c2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQogewotICAgIGF1dG8gcmVzdWx0
ID0gbV9pZGJTZXJ2ZXJNYXAuYWRkKHNlc3Npb25JRC5zZXNzaW9uSUQoKSwgbnVsbHB0cik7Ci0g
ICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7Ci0gICAgICAgIGlmIChzZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSkKLSAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXZWJDb3JlOjpJ
blByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2Vy
dmVyOjpjcmVhdGUoc2Vzc2lvbklELCBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkpOwot
ICAgIH0KLQotICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmlkYlNlcnZlcigpLnNldFBlck9y
aWdpblF1b3RhKG1faWRiUGVyT3JpZ2luUXVvdGEpOwotCi0gICAgcmV0dXJuIHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUtPmNvbm5lY3Rpb25Ub1NlcnZlcigpOworICAgIHJldHVybiBtX2lkYlNlcnZl
ck1hcC5lbnN1cmUoc2Vzc2lvbklELCBbJnNlc3Npb25JRF0geworICAgICAgICByZXR1cm4gc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkgPyBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0
ZShzZXNzaW9uSUQpIDogV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lv
bklELCBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkpOworICAgIH0pLml0ZXJhdG9yLT52
YWx1ZS0+Y29ubmVjdGlvblRvU2VydmVyKCk7CiB9CiAKIHZvaWQgV2ViRGF0YWJhc2VQcm92aWRl
cjo6ZGVsZXRlQWxsRGF0YWJhc2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
U3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3Jh
Z2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCmluZGV4IDUyMjIzMzA5YjM5YmUzZWNhY2ViNjlmYzY5
ZjIwMDdlMmM5YjNlZGEuLjk2YTczZGNlNDM1NWM2MTM5YmM3MTIwNDlhYWQ5N2M2ZjI4NzdlZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlk
ZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgaW5kZXhl
ZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZl
cj4+IG1faWRiU2VydmVyTWFwOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxX
ZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI+PiBtX2lkYlNlcnZlck1hcDsKICAgICB1aW50NjRf
dCBtX2lkYlBlck9yaWdpblF1b3RhIHsgV2ViQ29yZTo6SURCU2VydmVyOjpkZWZhdWx0UGVyT3Jp
Z2luUXVvdGEgfTsKICNlbmRpZgogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376687</attachid>
            <date>2019-08-19 08:21:10 -0700</date>
            <delta_ts>2019-08-19 09:35:03 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-200811-20190819172108.patch</filename>
            <type>text/plain</type>
            <size>41271</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ4ODQzOTQ3ZDkyMmQ5
ZDdlYzkzOWE4ODM1NzRhZjdkZTNmNGE5MS4uZmZmZTMyOWNlZjIzNDY5YmU2ODVhZTg2YmEwNWQ2
ZDVhZDYyOTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA4LTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2Vzc2lvbklE
OjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2Vu
LgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvciwgdXBkYXRlIFNlc3Npb25JRCBjYWxs
IHNpdGVzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNlc3Npb25JRCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Up
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclByb3ZpZGVyOjpyZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnRzKToKKwogMjAxOS0wOC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUGVuZGluZ0FjdGl2YXRpb25NZWRpYVN0cmVhbSBkb2VzIG5vdCBu
ZWVkIHRvIGJlIHJlZmNvdW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGZiZjA0ZjI4OTA0MzFh
NDRlZDk5ZWQ5YzkzMGU2MmRhYWVkNDJmZGMuLjNmMGY5MTljNzBhNDk3NGIzMDhhMDUxZmY2ZWI1
MjUwYTIxZjBiMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA4
LTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIFJlbW92ZSBTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEIGFu
ZCBtYWtlIGl0IGNsb3NlciB0byBhIHJlZ3VsYXIgT2JqZWN0SWRlbnRpZmllci4KKworICAgICAg
ICAqIHBhbC9TZXNzaW9uSUQuY3BwOgorICAgICAgICAqIHBhbC9TZXNzaW9uSUQuaDoKKyAgICAg
ICAgKFBBTDo6U2Vzc2lvbklEOjpTZXNzaW9uSUQpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6
OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6OmlzRXBoZW1lcmFsIGNv
bnN0KToKKyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBj
b25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6dG9VSW50NjQgY29uc3QpOgorICAgICAg
ICAoUEFMOjpTZXNzaW9uSUQ6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoUEFMOjpTZXNz
aW9uSUQ6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoUEFMOjpTZXNzaW9uSUQ6Omlzb2xh
dGVkQ29weSBjb25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6b3BlcmF0b3IgYm9vbCBj
b25zdCk6CisgICAgICAgIChQQUw6OlNlc3Npb25JRDo6aXNWYWxpZFNlc3Npb25JRFZhbHVlKToK
KyAgICAgICAgKFBBTDo6U2Vzc2lvbklEOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoUEFMOjpT
ZXNzaW9uSUQ6OmRlY29kZSk6CisgICAgICAgIChXVEY6OlNlc3Npb25JREhhc2g6Omhhc2gpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6ZW1wdHlWYWx1ZSk6Cisg
ICAgICAgIChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVk
VmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6aXNEZWxl
dGVkVmFsdWUpOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdoaWNoIGVuc3VyZXMgVCBp
cyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxv
Y0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGYxZGExNWI3MjVhYzJjNTQzOTdkMGE5NWNiYjNjMDE5
OWQ5NTg3Ny4uYzVkOWI1MzYwNTM0N2E3YThkYTA1MTE4NDMxYWM2NTM5MjQ3MWEyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MSBAQAorMjAxOS0wOC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODExCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBVcGRhdGUg
U2Vzc2lvbklEIGNhbGwgc2l0ZXMgdG8gdXNlIHRvVUludDY0LgorICAgICAgICBSZW1vdmUgZGVi
dWcgYXNzZXJ0cyB0byBpc1ZhbGlkIHNpbmNlIGNvbnN0cnVjdGlvbiBvZiBpbnZhbGlkIHNlc3Np
b24gSURzIGNhbiBvbmx5IGhhcHBlbiBpbiB2ZXJ5IHNwZWNpZmljIGNhc2VzCisgICAgICAgIHR5
cGljYWxseSBmb3IgSGFzaE1hcHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lv
bik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dV
c2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uQnlD
b25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNl
c3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24p
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJh
YmxlRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJs
ZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6ZXhpc3RpbmdTV09yaWdpblN0b3JlRm9yU2Vzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjp3ZWJQcm9jZXNzV2FzRGlzY29ubmVjdGVkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXRyaWV2ZUNhY2hlU3RvcmFnZVBhcmFt
ZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjptYXliZVJlZ2lzdGVyV2l0
aFNlc3Npb25JRE1hcCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmV4aXN0
aW5nTm9uRGVmYXVsdERhdGFTdG9yZUZvclNlc3Npb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6V2ViU1dDbGllbnRDb25uZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjppbml0aWFsaXplQ29u
bmVjdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlclBy
b3ZpZGVyOjpleGlzdGluZ1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0Ojpt
X3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyKToKKwogMjAxOS0wOC0xOSAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNwZWN1bGF0
aXZlIGJ1aWxkIGZpeCBmb3IgR1RLIGFuZCBXaW5DYWlybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRl
eCAwMjQyZjg2MzRjZWFmNWFiZGY0ODc0ZDA4ZWE0ZTc5NGQxOTJmZjU1Li41NGUwYWY0OGQ4MjRk
MjRlZDgwZDg2ZWM2NzA0MzMwYzQyYzExNTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE5LTA4LTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgU2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4MTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogU3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkRhdGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5l
Y3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VQ
cm92aWRlci5oOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdoaWNoIGVuc3VyZXMgVCBp
cyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxv
Y0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lvbklE
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2Vzc2lvbklELmNwcAppbmRleCBjNDIzNWU0
ZDk3YmE5OGExZmI2MWQzM2Y4YWVjNTA3ZWQ4YjQyZmQxLi42YjMwYjRhMDZiYWI0OGNhNjllNDk1
NWU1MmNiNDE2MmJiMjA3ODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nl
c3Npb25JRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TZXNzaW9uSUQuY3BwCkBA
IC01NSw5ICs1NSw0IEBAIHZvaWQgU2Vzc2lvbklEOjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlv
bigpCiAgICAgZ2VuZXJhdGlvblByb3RlY3Rpb25FbmFibGVkID0gdHJ1ZTsKIH0KIAotU2Vzc2lv
bklEIFNlc3Npb25JRDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gU2Vzc2lv
bklEIHsgbV9zZXNzaW9uSUQgfTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgUEFMCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9TZXNzaW9uSUQuaAppbmRleCAwYmRkZGU3YjhlMzNiOTY5MDUxNTc5MTMyMmYwOGRlZjYx
Y2I1OTAwLi5jNzFkNmEyYmFlY2NjMDMzNDk3NmVlYjFkMzExNzJjNzBkZWQ0Y2NiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Nlc3Npb25JRC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvU2Vzc2lvbklELmgKQEAgLTQyLDU4ICs0Miw1NSBAQCBwdWJsaWM6CiAgICAg
ICAgIEhhc2hUYWJsZURlbGV0ZWRWYWx1ZUlEID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRf
dD46Om1heCgpLAogICAgIH07CiAKLSAgICBzdGF0aWMgU2Vzc2lvbklEIGVtcHR5U2Vzc2lvbklE
KCkgeyByZXR1cm4gU2Vzc2lvbklEKEhhc2hUYWJsZUVtcHR5VmFsdWVJRCk7IH0KLSAgICBzdGF0
aWMgU2Vzc2lvbklEIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIFNlc3Npb25JRChI
YXNoVGFibGVEZWxldGVkVmFsdWVJRCk7IH0KICAgICBzdGF0aWMgU2Vzc2lvbklEIGRlZmF1bHRT
ZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9uSUQoRGVmYXVsdFNlc3Npb25JRCk7IH0KICAgICBz
dGF0aWMgU2Vzc2lvbklEIGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSB7IHJldHVybiBTZXNzaW9u
SUQoTGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7IH0KIAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IHsgcmV0dXJuIGlzVmFsaWRTZXNzaW9uSURWYWx1ZShtX3Nlc3Npb25JRCk7IH0KLSAgICBib29s
IGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQgJiBFcGhlbWVyYWxTZXNz
aW9uTWFzayAmJiBtX3Nlc3Npb25JRCAhPSBIYXNoVGFibGVEZWxldGVkVmFsdWVJRDsgfQorICAg
IGV4cGxpY2l0IFNlc3Npb25JRChXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCisgICAg
ICAgIDogbV9pZGVudGlmaWVyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZUlEKQorICAgIHsKKyAgICB9
CisKKyAgICBleHBsaWNpdCBTZXNzaW9uSUQoV1RGOjpIYXNoVGFibGVFbXB0eVZhbHVlVHlwZSkK
KyAgICAgICAgOiBtX2lkZW50aWZpZXIoSGFzaFRhYmxlRW1wdHlWYWx1ZUlEKQorICAgIHsKKyAg
ICB9CiAKICAgICBQQUxfRVhQT1JUIHN0YXRpYyBTZXNzaW9uSUQgZ2VuZXJhdGVFcGhlbWVyYWxT
ZXNzaW9uSUQoKTsKICAgICBQQUxfRVhQT1JUIHN0YXRpYyBTZXNzaW9uSUQgZ2VuZXJhdGVQZXJz
aXN0ZW50U2Vzc2lvbklEKCk7CiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVHZW5l
cmF0aW9uUHJvdGVjdGlvbigpOwogCi0gICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQ7IH0KLSAgICBib29sIG9wZXJhdG9yPT0oU2Vzc2lvbklEIHNlc3Np
b25JRCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQgPT0gc2Vzc2lvbklELm1fc2Vzc2lvbklE
OyB9Ci0gICAgYm9vbCBvcGVyYXRvciE9KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0
dXJuIG1fc2Vzc2lvbklEICE9IHNlc3Npb25JRC5tX3Nlc3Npb25JRDsgfQorICAgIGJvb2wgaXNW
YWxpZCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsaWRTZXNzaW9uSURWYWx1ZShtX2lkZW50aWZpZXIp
OyB9CisgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllciAm
IEVwaGVtZXJhbFNlc3Npb25NYXNrICYmIG1faWRlbnRpZmllciAhPSBIYXNoVGFibGVEZWxldGVk
VmFsdWVJRDsgfQorICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXIgPT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0KKworICAgIHVp
bnQ2NF90IHRvVUludDY0KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgYm9v
bCBvcGVyYXRvcj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllciA9PSBzZXNzaW9uSUQubV9pZGVudGlmaWVyOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KFNl
c3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllciAhPSBzZXNzaW9u
SUQubV9pZGVudGlmaWVyOyB9CiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBj
b25zdCB7IHJldHVybiAhaXNFcGhlbWVyYWwoKTsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgU2Vzc2lvbklEJik7CiAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNlc3Npb25JRD4gZGVjb2RlKERl
Y29kZXImKTsKIAotICAgIFNlc3Npb25JRCBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICBTZXNz
aW9uSUQgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0KKworICAgIGV4cGxp
Y2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKQotICAgICAg
ICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICBleHBsaWNpdCBTZXNzaW9uSUQodWludDY0
X3QgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICB7
CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZFNlc3Npb25JRFZhbHVlKHVpbnQ2NF90
IHNlc3Npb25JRCkgeyByZXR1cm4gc2Vzc2lvbklEICE9IEhhc2hUYWJsZUVtcHR5VmFsdWVJRCAm
JiBzZXNzaW9uSUQgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0KIAotICAgIHVpbnQ2NF90
IG1fc2Vzc2lvbklEOworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKIH07CiAKIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlc3Npb25JRDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSB0byBhIHJlZ3VsYXIgQVNTRVJULgotICAg
IFJFTEVBU0VfQVNTRVJUKGlzVmFsaWQoKSk7Ci0gICAgZW5jb2RlciA8PCBtX3Nlc3Npb25JRDsK
LX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wgU2Vzc2lvbklEOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCi17Ci0gICAgT3B0aW9uYWw8U2Vz
c2lvbklEPiBkZWNvZGVkU2Vzc2lvbklEOwotICAgIGRlY29kZXIgPj4gZGVjb2RlZFNlc3Npb25J
RDsKLSAgICBpZiAoIWRlY29kZWRTZXNzaW9uSUQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHNlc3Npb25JRCA9ICpkZWNvZGVkU2Vzc2lvbklEOwotICAgIHJldHVybiB0cnVlOworICAg
IEFTU0VSVChpc1ZhbGlkKCkpOworICAgIGVuY29kZXIgPDwgbV9pZGVudGlmaWVyOwogfQogCiB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTAxLDkgKzk4LDkgQEAgT3B0aW9uYWw8U2Vzc2lv
bklEPiBTZXNzaW9uSUQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBzZXNzaW9uSUQ7CiAgICAgZGVjb2RlciA+PiBzZXNzaW9uSUQ7Ci0gICAgaWYg
KCFzZXNzaW9uSUQgfHwgIWlzVmFsaWRTZXNzaW9uSURWYWx1ZSgqc2Vzc2lvbklEKSkKKyAgICBp
ZiAoIXNlc3Npb25JRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQorICAgIEFTU0VS
VChpc1ZhbGlkU2Vzc2lvbklEVmFsdWUoKnNlc3Npb25JRCkpOwogICAgIHJldHVybiBTZXNzaW9u
SUQgeyAqc2Vzc2lvbklEIH07CiB9CiAKQEAgLTExMiwxNiArMTA5LDE3IEBAIE9wdGlvbmFsPFNl
c3Npb25JRD4gU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIG5hbWVzcGFjZSBX
VEYgewogCiBzdHJ1Y3QgU2Vzc2lvbklESGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhhc2go
Y29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2gocC5zZXNzaW9uSUQoKSk7
IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQQUw6OlNlc3Npb25JRCYgcCkgeyBy
ZXR1cm4gaW50SGFzaChwLnRvVUludDY0KCkpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29u
c3QgUEFMOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBiKSB7IHJldHVybiBh
ID09IGI7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVs
ZXRlZCA9IHRydWU7CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxQQUw6OlNlc3Np
b25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4gewotICAgIHN0YXRpYyBQ
QUw6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gUEFMOjpTZXNzaW9uSUQ6OmVtcHR5
U2Vzc2lvbklEKCk7IH0KIAotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShQ
QUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpTZXNzaW9uSUQ6Omhhc2hUYWJsZURl
bGV0ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgUEFM
OjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gUEFMOjpTZXNzaW9uSUQ6Omhhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFBBTDo6
U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiB7CisgICAgc3Rh
dGljIFBBTDo6U2Vzc2lvbklEIGVtcHR5VmFsdWUoKSB7IHJldHVybiBQQUw6OlNlc3Npb25JRChI
YXNoVGFibGVFbXB0eVZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpTZXNzaW9uSUQoSGFzaFRh
YmxlRGVsZXRlZFZhbHVlKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90LmlzSGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCk7IH0KIH07CisKIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFBBTDo6U2Vzc2lv
bklEPiB7CiAgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhhc2g7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAxMTlhYTg3NDc0ZjllMWY1ZjA3Y2EzNzI0
Njk4OWE0ODlkNTQ1NmQ5Li4wYWYxOGI1MTJiYjc0YzQ5ZTk0OWQ1OGY3NmM2MmIxYzA1NDVjYmUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMjczMiw3ICsy
NzMyLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgICAg
ICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOm1fb2JqZWN0LT5jYXJldEJyb3dzaW5n
RW5hYmxlZCgpXTsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpO
U0FjY2Vzc2liaWxpdHlXZWJTZXNzaW9uSURBdHRyaWJ1dGVdKSB7CiAgICAgICAgICAgICBpZiAo
RG9jdW1lbnQqIGRvYyA9IG1fb2JqZWN0LT50b3BEb2N1bWVudCgpKQotICAgICAgICAgICAgICAg
IHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZ0xvbmc6ZG9jLT5zZXNzaW9u
SUQoKS5zZXNzaW9uSUQoKV07CisgICAgICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1i
ZXJXaXRoVW5zaWduZWRMb25nTG9uZzpkb2MtPnNlc3Npb25JRCgpLnRvVUludDY0KCldOwogICAg
ICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDJjNjYyYzY4
Y2U1YzgxNzAxNWI4NGYyMTc1NTY4N2FjYWJkYmViNC4uYjQ2YTRkMTQ0MzU5ZjJkY2I1YzUwZjI0
NmE2NTM5MDRhYTk5NmNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MDY2LDEyICs1
MDY2LDYgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29u
c3QKIAogUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgpIGNvbnN0CiB7Ci0gICAg
aWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOwot
Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIG1fc2Vzc2lvbklE
ID0gcGFnZS0+c2Vzc2lvbklEKCk7Ci0KICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CiB9CiAKQEAg
LTUyODAsOCArNTI3NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlk
Q2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgZWxlbWVudC0+cHJpdmF0
ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Uoc2Vzc2lvbklEKTsKIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQo
KSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uICYmIHNlc3Npb25JRC5pc1ZhbGlkKCkpCisg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdv
cmtlckVuYWJsZWQoKSAmJiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKQogICAgICAgICBzZXRT
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigmU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24o
KS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lvbklEKSk7CiAjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggOTM4MzQyZDA5MzUw
MmVmYzY4OTA1YzZjMzRhOTgxN2JhZDU0MjFmYS4uYjZiZTVlY2VjYjdmYTM3YzBkM2UzZjMxMmIx
ZmYyMTAwNzVhNDNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAg
LTM5MywxMCArMzkzLDE3IEBAIGNsYXNzIEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyIGZp
bmFsIDogcHVibGljIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciB7CiAgICAgfTsKIAogICAgIHN0
cnVjdCBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgZmluYWwgOiBwdWJsaWMgU3RvcmFnZU5hbWVzcGFj
ZSB7CisgICAgICAgIGV4cGxpY2l0IEVtcHR5U3RvcmFnZU5hbWVzcGFjZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCisgICAgICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAg
ICAgeworICAgICAgICB9CisgICAgcHJpdmF0ZToKICAgICAgICAgUmVmPFN0b3JhZ2VBcmVhPiBz
dG9yYWdlQXJlYShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbCB7IHJldHVybiBhZG9w
dFJlZigqbmV3IEVtcHR5U3RvcmFnZUFyZWEpOyB9Ci0gICAgICAgIFJlZjxTdG9yYWdlTmFtZXNw
YWNlPiBjb3B5KFBhZ2UqKSBmaW5hbCB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFn
ZU5hbWVzcGFjZSk7IH0KLSAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7IH0KLSAgICAgICAgdm9p
ZCBzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEKSB7IH07CisgICAgICAgIFJl
ZjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqKSBmaW5hbCB7IHJldHVybiBhZG9wdFJlZigq
bmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IG1fc2Vzc2lvbklEIH0pOyB9CisgICAgICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CisgICAgICAgIHZvaWQgc2V0U2Vzc2lvbklERm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIGZpbmFsIHsgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7IH07CisKKyAgICAgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgfTsKIAogICAgIFJlZjxTdG9yYWdlTmFt
ZXNwYWNlPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlJiwgdW5zaWduZWQpIGZp
bmFsOwpAQCAtNTIxLDE5ICs1MjgsMTkgQEAgdm9pZCBFbXB0eUVkaXRvckNsaWVudDo6cmVnaXN0
ZXJSZWRvU3RlcChVbmRvU3RlcCYpCiB7CiB9CiAKLVJlZjxTdG9yYWdlTmFtZXNwYWNlPiBFbXB0
eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uo
UGFnZSYsIHVuc2lnbmVkKQorUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlJiBwYWdlLCB1
bnNpZ25lZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VOYW1lc3Bh
Y2UpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IHBh
Z2Uuc2Vzc2lvbklEKCkgfSk7CiB9CiAKLVJlZjxTdG9yYWdlTmFtZXNwYWNlPiBFbXB0eVN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKHVuc2lnbmVk
LCBQQUw6OlNlc3Npb25JRCkKK1JlZjxTdG9yYWdlTmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKHVuc2lnbmVkLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlT
dG9yYWdlTmFtZXNwYWNlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VO
YW1lc3BhY2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLVJlZjxTdG9yYWdlTmFtZXNwYWNlPiBFbXB0
eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFt
ZXNwYWNlKFNlY3VyaXR5T3JpZ2luJiwgdW5zaWduZWQsIFBBTDo6U2Vzc2lvbklEKQorUmVmPFN0
b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVUcmFu
c2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoU2VjdXJpdHlPcmlnaW4mLCB1bnNpZ25lZCwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5
U3RvcmFnZU5hbWVzcGFjZSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdl
TmFtZXNwYWNlIHsgc2Vzc2lvbklEIH0pOwogfQogCiBjbGFzcyBFbXB0eVN0b3JhZ2VTZXNzaW9u
UHJvdmlkZXIgOiBwdWJsaWMgU3RvcmFnZVNlc3Npb25Qcm92aWRlciB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCmluZGV4
IDFhNDE1MGE2NDk4MTAyNmE2MDM2MGIyYzNmZGYwZTA5NGEwMDdhN2IuLjA2MjExOTQ5NWRiYTMx
OTVkYjJiNDkzYzMxYTA1OTYzMGY0M2FlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBA
IGJvb2wgQ3VybERvd25sb2FkOjpjYW5jZWwoKQogUmVmPEN1cmxSZXF1ZXN0PiBDdXJsRG93bmxv
YWQ6OmNyZWF0ZUN1cmxSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICAv
LyBGSVhNRTogVXNlIGEgY29ycmVjdCBzZXNzaW9uSUQuCi0gICAgYXV0byBjdXJsUmVxdWVzdCA9
IEN1cmxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCwgKnRoaXMsIFBBTDo6U2Vzc2lvbklEOjplbXB0
eVNlc3Npb25JRCgpKTsKKyAgICBhdXRvIGN1cmxSZXF1ZXN0ID0gQ3VybFJlcXVlc3Q6OmNyZWF0
ZShyZXF1ZXN0LCAqdGhpcywgUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAg
ICAgcmV0dXJuIGN1cmxSZXF1ZXN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDcw
N2QwYTY2M2E3MTg2ZGIxMDUwNGRkYzI4NjZiNzY5NzdkMzRiN2UuLjJjNGMyODVlZGViMGUxOWFi
MjcxOWViMTcyNzhhMzg0NGI5NTUzZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC0xNTUs
NyArMTU1LDcgQEAgUmVmPEN1cmxSZXF1ZXN0PiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ3VybFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmUKIAogICAgIEN1cmxSZXF1ZXN0OjpT
aG91bGRTdXNwZW5kIHNob3VsZFN1c3BlbmQgPSBkLT5tX2RlZmVyc0xvYWRpbmcgPyBDdXJsUmVx
dWVzdDo6U2hvdWxkU3VzcGVuZDo6WWVzIDogQ3VybFJlcXVlc3Q6OlNob3VsZFN1c3BlbmQ6Ok5v
OwogICAgIC8vIEZJWE1FOiBVc2UgYSBjb3JyZWN0IHNlc3Npb25JRC4KLSAgICBhdXRvIGN1cmxS
ZXF1ZXN0ID0gQ3VybFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LCAqZGVsZWdhdGUoKSwgUEFMOjpT
ZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCksIHNob3VsZFN1c3BlbmQsIEN1cmxSZXF1ZXN0OjpF
bmFibGVNdWx0aXBhcnQ6OlllcywgQ3VybFJlcXVlc3Q6OkNhcHR1cmVOZXR3b3JrTG9hZE1ldHJp
Y3M6OkJhc2ljLCBkLT5tX21lc3NhZ2VRdWV1ZSk7CisgICAgYXV0byBjdXJsUmVxdWVzdCA9IEN1
cmxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCwgKmRlbGVnYXRlKCksIFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCksIHNob3VsZFN1c3BlbmQsIEN1cmxSZXF1ZXN0OjpFbmFibGVNdWx0
aXBhcnQ6OlllcywgQ3VybFJlcXVlc3Q6OkNhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkJhc2lj
LCBkLT5tX21lc3NhZ2VRdWV1ZSk7CiAgICAgCiAgICAgcmV0dXJuIGN1cmxSZXF1ZXN0OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clByb3ZpZGVyLmNwcAppbmRleCBmNjMwZTg2NjEyZDkzZWNmYmI2YTJmODQ3NGJkNzQzMDg0Yjdi
NGEyLi43YmJhYzVjYTQxNDBiM2M3NjgzMWNiYWQ3ZjQzNzZhNGY5YWRkOTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3Zp
ZGVyLmNwcApAQCAtNjYsOSArNjYsNiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6cmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cygpCiAgICAgc2V0TWF5SGF2ZVJlZ2lzdGVyZWRTZXJ2
aWNlV29ya2VycygpOwogICAgIGZvciAoYXV0byogZG9jdW1lbnQgOiBEb2N1bWVudDo6YWxsRG9j
dW1lbnRzKCkpIHsKICAgICAgICAgYXV0byBzZXNzaW9uSUQgPSBkb2N1bWVudC0+c2Vzc2lvbklE
KCk7Ci0gICAgICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotCiAgICAgICAgIGlmIChTY2hlbWVSZWdpc3RyeTo6Y2FuU2VydmljZVdvcmtlcnNIYW5k
bGVVUkxTY2hlbWUoZG9jdW1lbnQtPnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29w
eWluZygpKSkKICAgICAgICAgICAgIGRvY3VtZW50LT5zZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bigmc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKHNlc3Npb25JRCkpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmgKaW5kZXggNzRlZDEzYmU2MTNkNzFmZDMzMjQxNjk1ZTVkYjM2MTZjMjQ1
MDg5Ny4uMzdkYjVlNGI1NGYxYmQ5MjhiOGU0NTQwMGEyZjI3Y2QxYWZiNjhjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIElQQzo6
Q29ubmVjdGlvbiogcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb25Gb3JEb3dubG9hZHMoKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBkb3dubG9hZHNBdXRoZW50aWNh
dGlvbk1hbmFnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwZW5kaW5nRG93bmxvYWRD
YW5jZWxlZChEb3dubG9hZElEKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgTmV0d29ya1Nlc3Npb24q
IG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgPSAwOworICAgICAg
ICB2aXJ0dWFsIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Npb25JRCkg
Y29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgY29uc3QgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdWludDMy
X3QgZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAppbmRleCAyNGQyODExZDBjYTNkNDE1OWJhMzgxYTE3ZDY2YmEzYzkx
MjE1YTMyLi45YjExMjc5MTIzNzdiZjMzYTg5YTc1ODU2Y2U1YjU4YTMyZWM1YjViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDg4LDcgKzQ4OCw2IEBAIHZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJl
Y29ubmVjdGlvCiAKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9u
KGNvbnN0IE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKICAgICBpZiAoc2Vz
c2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKICAgICAgICAg
aWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3Muc3RvcmFnZVNlc3Npb24o
c2Vzc2lvbklEKSkKICAgICAgICAgICAgIHJldHVybiAqc3RvcmFnZVNlc3Npb247CkBAIC02ODMs
MTAgKzY4Miw2IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNsZWFyUGFn
ZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpCiAKIHZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiB7Ci0gICAgQVNTRVJUKHNl
c3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAg
ICAgcmV0dXJuOwotCiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nl
c3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1VzZXJJbnRlcmFj
dGlvbihkb21haW4sIFtdIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDE0NDMwZWI3NmE0MDkzYjE0MTRlYzFiOGY5NThiMGVh
NGExMmEzNWYuLjIxOGNiZTRhMWRiMTdmYzFlYWU1OGNjMDZjN2RjYjJiNWJkOWExMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01
NjgsMzYgKzU2OCwyNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmb3JFYWNoTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6TgogICAgICAgICBmdW5jdG9y
KCpzdG9yYWdlU2Vzc2lvbik7CiB9CiAKLU5ldHdvcmtTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6
bmV0d29ya1Nlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkgY29uc3QKK05l
dHdvcmtTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6bmV0d29ya1Nlc3Npb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSBjb25zdAogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0g
ICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIHJldHVybiBzZXNzaW9uSUQuaXNW
YWxpZCgpID8gbV9uZXR3b3JrU2Vzc2lvbnMuZ2V0KHNlc3Npb25JRCkgOiBudWxscHRyOworICAg
IHJldHVybiBtX25ldHdvcmtTZXNzaW9ucy5nZXQoc2Vzc2lvbklEKTsKIH0KIAogTmV0d29ya1Nl
c3Npb24qIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbkJ5Q29ubmVjdGlvbihJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24pIGNvbnN0CiB7Ci0gICAgYXV0byBzZXNzaW9uSUQgPSBtX3Nl
c3Npb25CeUNvbm5lY3Rpb24uZ2V0KGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7Ci0gICAgcmV0dXJu
IHNlc3Npb25JRC5pc1ZhbGlkKCkgPyBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpIDogbnVsbHB0
cjsKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zZXNzaW9uQnlDb25uZWN0aW9uLmZpbmQoY29ubmVj
dGlvbi51bmlxdWVJRCgpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IgIT0gbV9zZXNzaW9uQnlDb25u
ZWN0aW9uLmVuZCgpID8gbmV0d29ya1Nlc3Npb24oaXRlcmF0b3ItPnZhbHVlKSA6IG51bGxwdHI7
CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9u
SUQmIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiYmIHNlc3Npb24p
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiYmIHNlc3Npb24pCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7
Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBt
X25ldHdvcmtTZXNzaW9ucy5zZXQoc2Vzc2lvbklELCBXVEZNb3ZlKHNlc3Npb24pKTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQm
IHNlc3Npb25JRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAg
IEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc1ZhbGlk
KCkpCi0gICAgICAgIHJldHVybjsKLQogI2lmICFVU0UoU09VUCkKICAgICAvLyBTb3VwIGJhc2Vk
IHBvcnRzIGRlc3Ryb3kgdGhlIGRlZmF1bHQgc2Vzc2lvbiByaWdodCBiZWZvcmUgdGhlIHByb2Nl
c3MgZXhpdHMgdG8gYXZvaWQgbGVha2luZwogICAgIC8vIG5ldHdvcmsgcmVzb3VyY2VzIGxpa2Ug
dGhlIGNvb2tpZXMgZGF0YWJhc2UuCkBAIC0xMzAxLDEwICsxMjkyLDYgQEAgc3RhdGljIHZvaWQg
ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKE5ldHdvcmtDYWNoZTo6Q2FjaGUqIGNhY2hlLCBQQUw6OlNl
c3Npb25JRCBzZXMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVE
YXRhVHlwZXMsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkp
OwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAg
c3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3I+IHsKICAgICAgICAgZXhwbGljaXQgQ2FsbGJhY2tBZ2dy
ZWdhdG9yKEZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
ICAgICAgICAgICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSkKQEAgLTE0MDIsMTAgKzEzODksNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdl
YnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogCiB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxU
aW1lIG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgQVNTRVJUKHNl
c3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKLSAgICAg
ICAgcmV0dXJuOwotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlw
ZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpIU1RTQ2FjaGUpKSB7CiAgICAgICAgIGlmIChh
dXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpA
QCAtMTYxNiwxMCArMTU5OSw2IEBAIHN0YXRpYyBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhPiBmaWx0ZXJGb3JSZWdpc3RyYWJsZURvbWFpbnMoY29uc3QgSGFzCiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4m
JiBkb21haW5zLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQu
aXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBPcHRpb25TZXQ8V2Vic2l0ZURhdGFG
ZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zID0gV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjo6RG9Ob3RD
cmVhdGVQcm9jZXNzZXM7CiAKICAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIGZpbmFsIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewpAQCAtMTgy
NCwxMCArMTgwMyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZUNvb2tpZXNGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVnaXN0cmFiCiAKIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGJv
b2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFJlZ2lz
dHJhYmxlRG9tYWluPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoc2Vz
c2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAg
ICByZXR1cm47Ci0KICAgICBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hP
cHRpb25zID0gV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjo6RG9Ob3RDcmVhdGVQcm9jZXNzZXM7CiAg
ICAgCiAgICAgc3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3I+IHsKQEAgLTI0NTYsOCArMjQzMSw2IEBA
IGJvb2wgTmV0d29ya1Byb2Nlc3M6Om5lZWRzU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbkZvclJl
Z2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlCiAKIFNXU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6c3dT
ZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQo
c2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0KICAgICBhdXRvIHJlc3VsdCA9IG1fc3dTZXJ2ZXJzLmVu
c3VyZShzZXNzaW9uSUQsIFsmXSB7CiAgICAgICAgIGF1dG8gcGF0aCA9IG1fc3dEYXRhYmFzZVBh
dGhzLmdldChzZXNzaW9uSUQpOwogICAgICAgICAvLyBUaGVyZSBzaG91bGQgYWxyZWFkeSBiZSBh
IHJlZ2lzdGVyZWQgcGF0aCBmb3IgdGhpcyBQQUw6OlNlc3Npb25JRC4KQEAgLTI0NzUsMTAgKzI0
NDgsNiBAQCBTV1NlcnZlciYgTmV0d29ya1Byb2Nlc3M6OnN3U2VydmVyRm9yU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKIFdlYlNXT3JpZ2luU3RvcmUqIE5ldHdvcmtQcm9jZXNz
OjpleGlzdGluZ1NXT3JpZ2luU3RvcmVGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgY29uc3QKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgaWYgKCFz
ZXNzaW9uSUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIGF1dG8q
IHN3U2VydmVyID0gbV9zd1NlcnZlcnMuZ2V0KHNlc3Npb25JRCk7CiAgICAgaWYgKCFzd1NlcnZl
cikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNDA5NGM2NjlkMDg5MWY0OGQxNDM5YWYzYWZhZTg4
MGI2NGUwMjU0Ni4uNmI5Mjc1ZGZiYjk0YjFiMDRhMjc0NGYxZDc5Y2FlNzg4MTc5NTYwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTYw
LDEwICsxNjAsMTAgQEAgcHVibGljOgogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgYXV0aGVu
dGljYXRpb25NYW5hZ2VyKCk7CiAgICAgRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIo
KTsKIAotICAgIHZvaWQgc2V0U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYsIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJik7Ci0gICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtT
ZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYp
OworICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Npb25JRCkgY29u
c3QgZmluYWw7CiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiYpIGNvbnN0OwotICAgIHZvaWQgZGVzdHJveVNlc3Npb24oY29uc3Qg
UEFMOjpTZXNzaW9uSUQmKTsKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
KTsKIAogICAgIHZvaWQgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
TmV0d29ya1Nlc3Npb24mKT4mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDU3ZGQzMGFjMTZhNWJkYWY4
MWU3NTQ3MTM1OGI3OGQ3OTU4OTljNTcuLmFhZWM3MmViM2FlMmRkY2Y5ZTYzMDY4YWI5NDAwNDM2
NzIxYWY3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMwNyw4ICszMDcsOCBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBGaXJzdExvYQogICAgICAgICBuZXR3b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCk7CiAgICAgfQog
ICAgIGlmICghbmV0d29ya1Nlc3Npb24pIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0
ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAi
KSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgp
KTsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9h
ZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQg
ZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklE
LnNlc3Npb25JRCgpKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRl
IGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMg
bm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnRvVUludDY0KCkpOworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQg
dG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlz
dCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQudG9VSW50NjQoKSk7
CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVz
c2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpp
bnZhbGlkU2Vzc2lvbklES2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAg
ICBkaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpKTsKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Q3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2N1cmwvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRDdXJsLmNwcAppbmRleCBmYzI1MDFlYWVi
NGE5MDViNzFjNzU5NDFjZDU4NjJjM2QyNWZjNGQ2Li5iYjNiOGIzMDUwOTU1MDAzMjlmYzAyYzA2
ZjA4NWM3N2M2ZGI5NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2N1cmwvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2N1cmwvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRDdXJsLmNwcApAQCAt
NDEsNyArNDEsNyBAQCB2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRl
RGF0YVN0b3JlU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0dwogICAgIGlmIChuZXR3b3JrUHJv
Y2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBu
ZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgU3RyaW5nOjpudW1iZXIoc2Vz
c2lvbklELnNlc3Npb25JRCgpKSk7CisgICAgbmV0d29ya1Byb2Nlc3MuZW5zdXJlU2Vzc2lvbihz
ZXNzaW9uSUQsIFN0cmluZzo6bnVtYmVyKHNlc3Npb25JRC50b1VJbnQ2NCgpKSk7CiAgICAgbmV0
d29ya1Byb2Nlc3Muc2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUo
bmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggNzEyOTc1MTU4OTYwZDUzNDIz
YjkxMWUzZjgwZjEzYjFhMjA2NWU4YS4uZTNkYzYzMTJmNGU3ODI2OThhOTEyMTMxMWJkNDAxMWFj
YzAzZjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24oTmV0
d29ya1Byb2Nlc3MmIG5ldHcKICAgICBpZiAoIXNlc3Npb25JRC5pc0VwaGVtZXJhbCgpICYmICFw
YXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSkKICAg
ICAgICAgdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGNvb2tpZVN0b3JhZ2VGcm9tSWRlbnRpZnlp
bmdEYXRhKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpOwogCi0g
ICAgbmV0d29ya1Byb2Nlc3MuZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIG1ha2VTdHJpbmcoYmFz
ZSwgJy4nLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpLCBXVEZNb3ZlKHVpUHJvY2Vzc0Nvb2tpZVN0
b3JhZ2UpKTsKKyAgICBuZXR3b3JrUHJvY2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgbWFr
ZVN0cmluZyhiYXNlLCAnLicsIHNlc3Npb25JRC50b1VJbnQ2NCgpKSwgV1RGTW92ZSh1aVByb2Nl
c3NDb29raWVTdG9yYWdlKSk7CiAKICAgICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Byb2Nlc3Mu
c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvb2tpZSA6
IHBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAu
Y3BwCmluZGV4IGM5ZWVhNWEyZTkyMjgxOTdlMmQyZTE0NDI3MjJkZWJmN2YyMjRkNTMuLmE3ODgy
M2FmMDM3Y2FjMWEzYjg5MDVkMTZlNTU0ZGVkOTAwYzc1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dFNvdXAuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3
CiAgICAgaWYgKG5ldHdvcmtQcm9jZXNzLnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG5ldHdvcmtQcm9jZXNzLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklE
LCBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQuc2Vzc2lvbklEKCkpKTsKKyAgICBuZXR3b3JrUHJv
Y2Vzcy5lbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklELnRv
VUludDY0KCkpKTsKICAgICBuZXR3b3JrUHJvY2Vzcy5zZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0
d29ya1Nlc3Npb246OmNyZWF0ZShuZXR3b3JrUHJvY2VzcywgV1RGTW92ZShwYXJhbWV0ZXJzLm5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycykpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggYmQ2OTcy
M2EwZTEzMjczYjFjNWU3NjIyYWE2MzJmOWZlYWFkZmNlOS4uMDVkMjNmZWVjZWUxOWQ3NmU1ZTA4
MjRmYmRiMmI3OTQyNDI2NzE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTA0LDcgKzExMDQsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJldHJpZXZlQ2FjaGVTdG9yYWdlUGFyYW1ldGVy
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgIGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFT
dG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKTsKIAogICAgIGlmICghc3RvcmUpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1By
b3h5IGlzIHVuYWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRo
ZSBnaXZlbiBzZXNzaW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnNlc3Npb25JRCgp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3Jr
UHJvY2Vzc1Byb3h5IGlzIHVuYWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVy
cyBmcm9tIHRoZSBnaXZlbiBzZXNzaW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnRv
VUludDY0KCkpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2Fj
aGVTdG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgeyB9LCB7IH0gfSwgMCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDZmZjFiY2QxYTZjZWZkYjA4MzNk
YzJjNjRhNTkzNGI1M2E1ZDlhODEuLmUyZGY0MTdkMmU4MDRkMzA3ZGU0NDk2YzI1YjRmM2ExM2Ni
MmIxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgV2Vic2l0ZURhdGFT
dG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogCiAgICAgcGxhdGZvcm1EZXN0cm95KCk7CiAKLSAg
ICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgpICYmIG1fc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAobV9zZXNzaW9uSUQgIT0gUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAgICBBU1NFUlQobm9uRGVmYXVs
dERhdGFTdG9yZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAgICBub25EZWZh
dWx0RGF0YVN0b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZvciAoYXV0byYg
cHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKQEAgLTE1
Nyw3ICsxNTcsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAKIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6bWF5YmVSZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKQogewot
ICAgIGlmIChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlmIChtX3Nlc3Npb25JRCAhPSBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0g
bm9uRGVmYXVsdERhdGFTdG9yZXMoKS5hZGQobV9zZXNzaW9uSUQsIHRoaXMpOwogICAgICAgICBB
U1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogICAgIH0KQEAgLTE2NSw3
ICsxNjUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lv
bklETWFwKCkKIAogV2Vic2l0ZURhdGFTdG9yZSogV2Vic2l0ZURhdGFTdG9yZTo6ZXhpc3RpbmdO
b25EZWZhdWx0RGF0YVN0b3JlRm9yU2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKLSAgICByZXR1cm4gc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBzZXNzaW9uSUQgIT0gUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0
KHNlc3Npb25JRCkgOiBudWxscHRyOworICAgIHJldHVybiBzZXNzaW9uSUQgIT0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSA/IG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KHNl
c3Npb25JRCkgOiBudWxscHRyOwogfQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlZ2lzdGVy
UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcAppbmRl
eCA5YWIwZTBmNmE1M2Y0ZWYwYmE0ZmY4M2RiY2M1ZDlkMTc5MjVhNTA1Li41MDFjYjcyMDYyNDgy
NDFmOTQyNjg1YWFjY2Q0NzBiZjQ2MjIxZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAKQEAgLTM3
LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFJlZjxXZWJDb3JlOjpDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uPiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHNlc3Npb25J
RC5pc0VwaGVtZXJhbCgpKSB7Ci0gICAgICAgIHJldHVybiBtX2Nvbm5lY3Rpb25zLmVuc3VyZShz
ZXNzaW9uSUQuc2Vzc2lvbklEKCksIFs9XSgpIHsKKyAgICAgICAgcmV0dXJuIG1fY29ubmVjdGlv
bnMuZW5zdXJlKHNlc3Npb25JRCwgWz1dKCkgewogICAgICAgICAgICAgcmV0dXJuIFdlYkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklEKTsKICAgICAgICAgfSku
aXRlcmF0b3ItPnZhbHVlLmNvcHlSZWYoKTsKICAgICB9CiAKICAgICBpZiAoIW1fZGVmYXVsdENv
bm5lY3Rpb24pIHsKICAgICAgICAgbV9kZWZhdWx0Q29ubmVjdGlvbiA9IFdlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklEKTsKLSAgICAgICAgbV9jb25uZWN0
aW9ucy5zZXQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCAqbV9kZWZhdWx0Q29ubmVjdGlvbik7Cisg
ICAgICAgIG1fY29ubmVjdGlvbnMuc2V0KHNlc3Npb25JRCwgKm1fZGVmYXVsdENvbm5lY3Rpb24p
OwogICAgIH0KICAgICByZXR1cm4gKm1fZGVmYXVsdENvbm5lY3Rpb247CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRl
ci5oCmluZGV4IGNiMTZkMzJlNzc5NjI3NmY2YzllNWUwODY3ZmNiZDAwNmU1Y2Y5NDkuLjM4YWVl
NmNlNjEyMTQ3ZTVmZGQzZjY2NzcwOWQ5NTFkNDUzZjI3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oCkBA
IC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIoKSA9
IGRlZmF1bHQ7CiAKICAgICBSZWZQdHI8V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gbV9kZWZh
dWx0Q29ubmVjdGlvbjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8V2ViQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbj4+IG1fY29ubmVjdGlvbnM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwg
UmVmPFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+PiBtX2Nvbm5lY3Rpb25zOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMmI1ZWQ3MGQ2NzdiYTZmNThmZmQ5NzgxM2Y1NWVlOTY1
MWI4MTRiYi4uMzMyNzkzMzk1ZTBkOGM1NzFmZWEyODgxZjdiNzFmYTY2NWQwYWU5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwCkBAIC01Niw2ICs1Niw3IEBAIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
V2ViU1dDbGllbnRDb25uZWN0aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Np
b25JRChzZXNzaW9uSUQpCiAgICAgLCBtX3N3T3JpZ2luVGFibGUobWFrZVVuaXF1ZVJlZjxXZWJT
V09yaWdpblRhYmxlPigpKQogeworICAgIEFTU0VSVChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpOwog
ICAgIGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKIH0KIApAQCAtNjcsMTAgKzY4LDYg
QEAgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp+V2ViU1dDbGllbnRDb25uZWN0aW9uKCkKIAogdm9p
ZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKQog
ewotICAgIEFTU0VSVChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmICghbV9zZXNzaW9u
SUQuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9jb25uZWN0aW9uKQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCmluZGV4IDliN2JlYTM3
NWViNmI0OTcxODJmNjQxNDkwOWVkNGZhNDAwMTdhZGYuLjE2Mzc3NzliM2RiZjM2MjI4MmZmOTA5
MmM2NDc3MDgyYTk3M2Y0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtNjIsNyAr
NjIsNiBAQCBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24mIFdlYlNlcnZpY2VXb3JrZXJQcm92
aWRlcjo6c2VydmljZVdvcmtlckNvbm5lY3Rpb25GbwogCiBXZWJDb3JlOjpTV0NsaWVudENvbm5l
Y3Rpb24qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbkZvclNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoc2Vz
c2lvbklELmlzVmFsaWQoKSk7CiAgICAgYXV0byogbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KTsKICAgICBpZiAoIW5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGY4YTlhYWFlNjk1M2MxNGU2ZjAyYTAzOGE0YjQzM2VmNWU4Yjk2MDEuLjM0NTM3MDZkMzAy
MGNhNTQ2N2UyNDY2MTgyYWFjYWMxZmE1Njc4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01MDIsOSArNTAyLDcgQEAgV2ViUGFnZTo6V2Vi
UGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogCiAgICAgbV9wYWdlID0gbWFrZVVuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VD
b25maWd1cmF0aW9uKSk7CiAKLSAgICAvLyBTZXQgdGhlIHNlc3Npb25JRCAqYmVmb3JlKiB1cGRh
dGluZyB0aGUgcHJlZmVyZW5jZXMgYXMgdGhlIHByaXZhdGVCcm93c2luZ0VuYWJsZWQgcHJlZmVy
ZW5jZXMgbWF5IG5lZWQgdG8gb3ZlcnJpZGUgaXQuCi0gICAgaWYgKHBhcmFtZXRlcnMuc2Vzc2lv
bklELmlzVmFsaWQoKSkKLSAgICAgICAgc2V0U2Vzc2lvbklEKHBhcmFtZXRlcnMuc2Vzc2lvbklE
KTsKKyAgICBzZXRTZXNzaW9uSUQocGFyYW1ldGVycy5zZXNzaW9uSUQpOwogCiAgICAgdXBkYXRl
UHJlZmVyZW5jZXMocGFyYW1ldGVycy5zdG9yZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCA1ZWU1YTdiMjliZWY0
NTM5OWRmZDc4YjMxMjNjMGUwYjJmYzlhY2ExLi40ODVjMmNiYzg4MDc3NGZkOGFkZjY0YzY1MGE4
OWU2ZDhhMDY0YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2Vi
RGF0YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dl
YkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00NSwxNyArNDUsOSBAQCBXZWJEYXRhYmFzZVByb3Zp
ZGVyOjp+V2ViRGF0YWJhc2VQcm92aWRlcigpCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViRGF0YWJhc2VQ
cm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklEKQogewotICAgIGF1dG8gcmVzdWx0ID0gbV9pZGJTZXJ2ZXJNYXAuYWRk
KHNlc3Npb25JRC5zZXNzaW9uSUQoKSwgbnVsbHB0cik7Ci0gICAgaWYgKHJlc3VsdC5pc05ld0Vu
dHJ5KSB7Ci0gICAgICAgIGlmIChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgICAg
IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNy
ZWF0ZShzZXNzaW9uSUQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQuaXRlcmF0
b3ItPnZhbHVlID0gV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklE
LCBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkpOwotICAgIH0KLQotICAgIHJlc3VsdC5p
dGVyYXRvci0+dmFsdWUtPmlkYlNlcnZlcigpLnNldFBlck9yaWdpblF1b3RhKG1faWRiUGVyT3Jp
Z2luUXVvdGEpOwotCi0gICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmNvbm5lY3Rp
b25Ub1NlcnZlcigpOworICAgIHJldHVybiBtX2lkYlNlcnZlck1hcC5lbnN1cmUoc2Vzc2lvbklE
LCBbJnNlc3Npb25JRF0geworICAgICAgICByZXR1cm4gc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkg
PyBXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQpIDogV2ViQ29y
ZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBpbmRleGVkRGF0YWJhc2VE
aXJlY3RvcnlQYXRoKCkpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+Y29ubmVjdGlvblRvU2Vy
dmVyKCk7CiB9CiAKIHZvaWQgV2ViRGF0YWJhc2VQcm92aWRlcjo6ZGVsZXRlQWxsRGF0YWJhc2Vz
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRl
ci5oCmluZGV4IDUyMjIzMzA5YjM5YmUzZWNhY2ViNjlmYzY5ZjIwMDdlMmM5YjNlZGEuLjk2YTcz
ZGNlNDM1NWM2MTM5YmM3MTIwNDlhYWQ5N2M2ZjI4NzdlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAtNTQsNyArNTQsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0
aCgpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcj4+IG1faWRiU2VydmVyTWFwOwor
ICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJDb3JlOjpJblByb2Nlc3NJREJT
ZXJ2ZXI+PiBtX2lkYlNlcnZlck1hcDsKICAgICB1aW50NjRfdCBtX2lkYlBlck9yaWdpblF1b3Rh
IHsgV2ViQ29yZTo6SURCU2VydmVyOjpkZWZhdWx0UGVyT3JpZ2luUXVvdGEgfTsKICNlbmRpZgog
fTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>