<?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>167536</bug_id>
          
          <creation_ts>2017-01-27 16:59:24 -0800</creation_ts>
          <short_desc>Update DiagnosticLoggingClient::logDiagnosticMessageWithValue() to take in the value as a double</short_desc>
          <delta_ts>2017-01-30 10:46:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1270850</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-27 16:59:24 -0800</bug_when>
    <thetext>Update DiagnosticLoggingClient::logDiagnosticMessageWithValue() to take in the value as a double instead of a string. The value needs to be numeric and the current API is error-prone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270890</commentid>
    <comment_count>1</comment_count>
      <attachid>299992</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-27 20:14:06 -0800</bug_when>
    <thetext>Created attachment 299992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271174</commentid>
    <comment_count>2</comment_count>
      <attachid>299992</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-29 19:51:14 -0800</bug_when>
    <thetext>Comment on attachment 299992
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=299992&amp;action=review

&gt; Source/WebCore/loader/EmptyClients.cpp:119
&gt; +    void logDiagnosticMessageWithValue(const String&amp;, const String&amp;, double value, unsigned significantFigures, ShouldSample) final { UNUSED_PARAM(value); UNUSED_PARAM(significantFigures); }

I like to use commented out names rather than UNUSED_PARAM in cases like this. But also, in EmptyClients.cpp, no need for the names at all.

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:165
&gt; +enum class ShouldSample;

We normally would put each type of identifier in a separate paragraph rather than putting enum class inside a list of structs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271297</commentid>
    <comment_count>3</comment_count>
      <attachid>300119</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-30 10:08:27 -0800</bug_when>
    <thetext>Created attachment 300119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271319</commentid>
    <comment_count>4</comment_count>
      <attachid>300119</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 10:46:45 -0800</bug_when>
    <thetext>Comment on attachment 300119
Patch

Clearing flags on attachment: 300119

Committed r211376: &lt;http://trac.webkit.org/changeset/211376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271320</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 10:46:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299992</attachid>
            <date>2017-01-27 20:14:06 -0800</date>
            <delta_ts>2017-01-30 10:08:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167536-20170127201201.patch</filename>
            <type>text/plain</type>
            <size>32231</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlkY2IxYTYwYjUwNDIx
Y2YxNTUwYzMzYTc4MWM5YWVjZjFmZGFmOC4uM2I2NjNlNDk5M2Y5YjJkYjUzNjU1MTY1NDJlYjM3
MDBiODYwZDI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAxLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIERpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSgpIHRvIHRha2UgaW4g
dGhlIHZhbHVlIGFzIGEgZG91YmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjc1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKCkgdG8gdGFrZSBpbiB0aGUgdmFsdWUgYXMgYSBkb3VibGUKKyAg
ICAgICAgaW5zdGVhZCBvZiBhIHN0cmluZy4gVGhlIHZhbHVlIG5lZWRzIHRvIGJlIG51bWVyaWMg
YW5kIHRoZSBjdXJyZW50IEFQSSBpcyBlcnJvci1wcm9uZS4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHA6CisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorCiAy
MDE3LTAxLTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAg
ICAgIHNldFRpbWVvdXQgLyBzZXRJbnRlcnZhbCdzIHN0cmluZyBleGVjdXRpb24gc2hvdWxkIGlu
aGVyaXQgU291cmNlT3JpZ2luIGNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdmMGEwNDkwMDcxYjYz
YmIwZTcxODBlM2MwZjlmYjk2OTcxMGMwMTcuLjJhNjRiZjkwZTQxZmFhM2Y0YjE3ZGY0NGY2NThl
YTAyNTg3NmI0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxNy0wMS0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoKSB0byB0YWtlIGlu
IHRoZSB2YWx1ZSBhcyBhIGRvdWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSgpIHRvIHRha2UgaW4gdGhlIHZhbHVlIGFzIGEgZG91YmxlCisg
ICAgICAgIGluc3RlYWQgb2YgYSBzdHJpbmcuIFRoZSB2YWx1ZSBuZWVkcyB0byBiZSBudW1lcmlj
IGFuZCB0aGUgY3VycmVudCBBUEkgaXMgZXJyb3ItcHJvbmUuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0hpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGVyQWN0aXZpdHlTdGF0
ZUNQVVVzYWdlU2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBlckFjdGl2aXR5U3RhdGVD
UFVVc2FnZVNhbXBsZXI6OmxvZ2dpbmdUaW1lckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRM
aXN0Ojpnb1RvSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6
CisKIDIwMTctMDEtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBNb3ZlIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCB0byBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCAyNjJiOTkyYmNhODQxODRkNmVjMWYyZGY4ZDkzMTI2NTE0MzQzNzU2Li4wNDU2NTY2MDU1
ZTU3MDI3ZTNhODhmYjJjODcwNDM5ZjYyYjVkYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTY0NzIsNyArNjQ3Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdAogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICBw
YWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIG1fcGxh
eWVyLT5lbmdpbmVEZXNjcmlwdGlvbigpLCBTdHJpbmc6Om51bWJlcihtX3BsYXllci0+cGxhdGZv
cm1FcnJvckNvZGUoKSksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICBwYWdlLT5kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0
aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIG1fcGxheWVyLT5lbmdpbmVE
ZXNjcmlwdGlvbigpLCBtX3BsYXllci0+cGxhdGZvcm1FcnJvckNvZGUoKSwgNCwgU2hvdWxkU2Ft
cGxlOjpObyk7CiB9CiAKIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVl
c3RlZFBsYXliYWNrUmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwCmluZGV4IDU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2ZDU3YjguLjQ1ODI2
ZmY0NmNjMDgyMzU3MzY2NWU3MGZkNTI2ZjJkYzFkN2Y3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgY2xhc3MgRW1wdHlEYXRhYmFz
ZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJvdmlkZXIgewogY2xhc3MgRW1wdHlE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCB7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBTaG91bGRTYW1wbGUpIGZpbmFsIHsgfQogICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIERpYWdub3N0
aWNMb2dnaW5nUmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSBmaW5hbCB7IH0KLSAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIFNob3VsZFNhbXBsZSkgZmluYWwgeyB9CisgICAgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBkb3Vi
bGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgU2hvdWxkU2FtcGxlKSBmaW5h
bCB7IFVOVVNFRF9QQVJBTSh2YWx1ZSk7IFVOVVNFRF9QQVJBTShzaWduaWZpY2FudEZpZ3VyZXMp
OyB9CiB9OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCA3ODY3NzIyYmY3ZTQ5ZTZkODUxNTZh
ZTc3MTA4MDA5MTdiNDRkNjViLi4wYjViYTkzZDUzOGU3ZDllZGQ4ZTY3OTgxM2MzMTk5OGJkZWYw
NWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
CkBAIC0zOSw4ICszOSw3IEBAIGNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1wbGUpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgRGlhZ25vc3RpY0xvZ2dpbmdS
ZXN1bHRUeXBlLCBTaG91bGRTYW1wbGUpID0gMDsKLSAgICAvLyBGSVhNRTogcmVuYW1lIHRoaXMg
dG8gbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoTnVtZXJpY1ZhbHVlKCkuCi0gICAgdmlydHVhbCB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgU2hvdWxkU2Ft
cGxlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91Ymxl
IHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFNob3VsZFNhbXBsZSkgPSAwOwog
CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhTaG91bGRTYW1wbGUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
aW5kZXggZmZhZjdkYjg1ODc1YmNlNjYwZDg2NjM1NDJhOTNkZDVhY2M1NzQxMS4uZGI4MWFlNWE2
MjcyOTBhMWM2OGNhNzI3M2RjZjdmZmMxODM3OWNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNTg1LDcgKzU4NSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHdlYlBhZ2VJ
RCwgY29uc3QgU3RyaW5nJiBtZXNzCiAgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
c2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhzaG91bGRTYW1wbGUpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpMb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlELCBtZXNzYWdl
LCBkZXNjcmlwdGlvbiksIDApOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBh
Z2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pLCAwKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2
NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0LCBTaG91bGRTYW1wbGUg
c2hvdWxkU2FtcGxlKQpAQCAtNTkzLDE1ICs1OTMsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3Qg
U3QKICAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBs
aW5nKHNob3VsZFNhbXBsZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkxvZ1NhbXBs
ZWREaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlw
dGlvbiwgcmVzdWx0KSwgMCk7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVz
dWx0KHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCwgU2hvdWxkU2FtcGxl
OjpObyksIDApOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgU2hvdWxkU2FtcGxl
IHNob3VsZFNhbXBsZSkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50
RmlndXJlcywgU2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKICAgICBpZiAoIURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSksIDApOworICAg
IHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHdlYlBhZ2VJRCwgbWVzc2FnZSwg
ZGVzY3JpcHRpb24sIHZhbHVlLCBzaWduaWZpY2FudEZpZ3VyZXMsIFNob3VsZFNhbXBsZTo6Tm8p
LCAwKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWluYXRlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGRhYjM3NTRlMDIw
YzYzYTlkZjIwMWE1YmQ5ZGExZGU5YjEwNTZhNDguLmE1NmVlNjZiNDAyM2I3OTg4YTI4YzRmMmM4
YjRmNTRjMTg0OGYwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRGlhZ25vc3Rp
YyBtZXNzYWdlcyBsb2dnaW5nLgogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0
X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVz
dWx0VHlwZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUo
dWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBX
ZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWlu
UHRyPENGRGF0YVJlZj4gc291cmNlQXBwbGljYXRpb25BdWRpdERhdGEoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYjgyYzc3ZDcwODJlMGY4
OTEyMTkxMGYwN2MzYjhjZGQ1YTNjYjI5My4uN2E3MzA3MzA3MWIxNTk5YzQzMTE0MjE0NjU5NmIy
MmQ0NzJjNGJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTM2MCw2ICszNjAsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAg
J1dlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRh
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJj
aFBvcHVwTWVudS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U2hvdWxkU2FtcGxlJzogWyc8V2Vi
Q29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVxdWVzdERhdGEnOiBbJzxXZWJDb3JlL1RleHRDaGVja2luZy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0JzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tl
ckNsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEnOiBbJzxX
ZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBiY2JlYjJhOTk0ZTc1NDY3MWExZGJhZWM5NzlmNTcw
NjU5OGI0Y2FhLi5lYWIxMzFjODhiZTBkNTBmMWVlOGE5Y2VjMThlYTc3NGE2ZTRhNGRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29sb3JTcGFjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4K
QEAgLTY0NCw2ICs2NDUsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpIYXNJbnNlY3VyZUNvbnRlbnQ+IHsKICAgICA+OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpTaG91bGRTYW1wbGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTaG91bGRTYW1wbGUsCisgICAgICAgIFdlYkNv
cmU6OlNob3VsZFNhbXBsZTo6Tm8sCisgICAgICAgIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVz
CisgICAgPjsKK307CisKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIHRlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6SW5kZXhlZERCOjpHZXRBbGxUeXBlPiB7CiAgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9IaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3Bw
CmluZGV4IDlmZDlkN2RhZjQ3ZmE0NmI0Nzc3NDJjMzZkNTBiNDYxOWNiMzk2ZjQuLjg1OTg5NTA3
N2RjNWEzMTZlMWVjOWM3NzFmOWU4NDY2MWY2MzdjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9IaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VT
YW1wbGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNz
VXNhZ2VTYW1wbGVyOjp0aW1lckZpcmVkKCkKICAgICBlbHNlIGlmIChpc1VzaW5nSGlnaFBlcmZv
cm1hbmNlV2ViR0wpCiAgICAgICAgIHN0YXRlID0gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphY3Rp
dmVJbkJhY2tncm91bmRUYWJPbmx5S2V5KCk7CiAKLSAgICBmaXJzdFBhZ2UtPmxvZ0RpYWdub3N0
aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6d2ViR0xTdGF0ZUtleSgpLCBzdGF0ZSwg
ZmFsc2UpOworICAgIGZpcnN0UGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjp3ZWJHTFN0YXRlS2V5KCksIHN0YXRlLCBTaG91bGRTYW1wbGU6Ok5vKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDFiZDUwNjllYWRj
ZjdmYzBkMDExMjUyNDc2MmVlZDEwNTdmMTVhYzcuLjA2MzIzY2NkMTVkYTU4NWYxMjUyZWIzNDgw
NzhmODUzZDI4ODYxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVy
KiBsYXVuY2hlciwgSVBDOjpDb24KICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3ZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3Vs
ZFNhbXBsZSBzaG91bGRTYW1wbGUpCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRoaXMgbnVs
bC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNpc2lvbiB0byBsb2cgaXMgbWFkZSwg
dGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZhY3RvciB0byBhdm9pZCB0aGlzLApA
QCAtMzI0LDEwICszMjQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dTYW1wbGVk
RGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHIKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2UtPmxvZ1NhbXBsZWREaWFnbm9zdGljTWVz
c2FnZShtZXNzYWdlLCBkZXNjcmlwdGlvbik7CisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3Nh
Z2UobWVzc2FnZSwgZGVzY3JpcHRpb24sIHNob3VsZFNhbXBsZSk7CiB9CiAKLXZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50
NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgdWludDMyX3QgcmVzdWx0KQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2Ug
PSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKICAgICAvLyBGSVhNRTogV2UgZG8g
dGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRpbWUgdGhlIGRlY2lzaW9uIHRvIGxvZyBp
cyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ugc2hvdWxkIHJlZmFjdG9yIHRvIGF2b2lk
IHRoaXMsCkBAIC0zMzUsMTAgKzMzNSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omxv
Z1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELAogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+bG9nU2FtcGxlZERpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdChtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0KTsKKyAg
ICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQobWVzc2FnZSwgZGVzY3JpcHRp
b24sIHJlc3VsdCwgc2hvdWxkU2FtcGxlKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojpsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0
cmluZyYgdmFsdWUpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50
RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKICAgICBXZWJQ
YWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKICAgICAv
LyBGSVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRpbWUgdGhlIGRl
Y2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ugc2hvdWxkIHJl
ZmFjdG9yIHRvIGF2b2lkIHRoaXMsCkBAIC0zNDYsNyArMzQ2LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojpsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3Qg
cGFnZUlELAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+bG9n
U2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2
YWx1ZSk7CisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVzc2FnZSwg
ZGVzY3JpcHRpb24sIHZhbHVlLCBzaWduaWZpY2FudEZpZ3VyZXMsIHNob3VsZFNhbXBsZSk7CiB9
CiAKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmlu
ZGV4IDMwYjM3ZTRlNDk0OTQ1OTBiMjMzZDVjMGYyM2FmOWI2NzBkMWM4Y2IuLmJjZjI5Mjk5NzA3
MDU1NTE2Yzc2YWIxYjg3ZDQ4N2FjOWQ0ZGY0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTM5LDYgKzM5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7
CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitlbnVtIGNs
YXNzIFNob3VsZFNhbXBsZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKIGNsYXNzIFNlc3Npb25JRDsKQEAgLTEwOSw5ICsxMTAsOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAg
ICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJ
RCk7CiAgICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zVG9EYXRhYmFzZVByb2Nlc3NGb3JC
bG9icyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocyk7Ci0g
ICAgdm9pZCBsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOwotICAgIHZvaWQg
bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3Qg
cmVzdWx0KTsKLSAgICB2b2lkIGxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKKyAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUo
dWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJD
b3JlOjpTaG91bGRTYW1wbGUpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCiAgICAgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHVpbnQ2
NF90IGxvYWRlcklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdl
YkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA2ODMzYzMyNjg3MjM3MWRjYzgzMmFmYTRkYTY1MjBiMTM3Y2M2ZjdiLi4w
YzkwMmVkN2FjMGM2OWZjZmZjNTkyOWZjYzZhZjNlZDdiNGZjZWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KQEAgLTM1LDkgKzM1LDkgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1By
b2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMo
Ym9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKIAogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBs
b2dnaW5nCi0gICAgTG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwg
U3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbikKLSAgICBMb2dTYW1wbGVkRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0
cmluZyBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQotICAgIExvZ1NhbXBsZWREaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJp
bmcgZGVzY3JpcHRpb24sIFN0cmluZyB2YWx1ZSkKKyAgICBMb2dEaWFnbm9zdGljTWVzc2FnZSh1
aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGVudW0g
V2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKKyAgICBMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRl
c2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIGVudW0gV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNo
b3VsZFNhbXBsZSkKKyAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBw
YWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwg
dW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBz
aG91bGRTYW1wbGUpCiAKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQog
ICAgIENhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UodWludDY0X3QgbG9hZGVy
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlIHByb3RlY3Rpb25TcGFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyLmNwcAppbmRleCA3NWQ5
Y2UzODVhOTRlMzVjYjQ0YjI3ZGJlYzQwNDRmZDUxN2RmYzYxLi4wYzAzOWU2YmM2OTU4MjYzYmIx
M2IwOWUyMTgyMGJmNjNiN2FjY2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXIuY3BwCkBAIC03MSwx
NCArNzEsNiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBsb2dnaW5nS2V5Rm9yQWN0aXZpdHlTdGF0
ZShBY3Rpdml0eVN0YXRlRm9yQ1BVU2FtcGxpbmcgc3RhdAogICAgIH0KIH0KIAotc3RhdGljIFN0
cmluZyB0b1N0cmluZ1JvdW5kaW5nU2lnbmlmaWNhbnRGaWd1cmVzKGRvdWJsZSB2YWx1ZSwgdW5z
aWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzKQotewotICAgIERlY2ltYWxOdW1iZXIgZGVjaW1hbCh2
YWx1ZSwgUm91bmRpbmdTaWduaWZpY2FudEZpZ3VyZXMsIHNpZ25pZmljYW50RmlndXJlcyk7Ci0g
ICAgTnVtYmVyVG9MU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBk
ZWNpbWFsLnRvU3RyaW5nRGVjaW1hbChidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJM
ZW5ndGgpOwotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLCBsZW5ndGgpOwotfQotCiB2b2lkIFBl
ckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXI6OmxvZ2dpbmdUaW1lckZpcmVkKCkKIHsKICAg
ICBhdXRvKiBwYWdlID0gcGFnZUZvckxvZ2dpbmcoKTsKQEAgLTkzLDcgKzg1LDcgQEAgdm9pZCBQ
ZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyOjpsb2dnaW5nVGltZXJGaXJlZCgpCiAgICAg
Zm9yIChhdXRvJiBwYWlyIDogbV9jcHVUaW1lSW5BY3Rpdml0eVN0YXRlKSB7CiAgICAgICAgIGRv
dWJsZSBjcHVVc2FnZSA9IHN0YXRpY19jYXN0PGRvdWJsZT4ocGFpci52YWx1ZSAqIDEwMC4pIC8g
Y3B1VGltZURlbHRhOwogICAgICAgICBTdHJpbmcgYWN0aXZpdHlTdGF0ZUtleSA9IGxvZ2dpbmdL
ZXlGb3JBY3Rpdml0eVN0YXRlKHBhaXIua2V5KTsKLSAgICAgICAgcGFnZS0+bG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjcHVVc2FnZUtleSgpLCBh
Y3Rpdml0eVN0YXRlS2V5LCB0b1N0cmluZ1JvdW5kaW5nU2lnbmlmaWNhbnRGaWd1cmVzKGNwdVVz
YWdlLCAyKSwgZmFsc2UpOworICAgICAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNwdVVzYWdlS2V5KCksIGFjdGl2aXR5U3RhdGVL
ZXksIGNwdVVzYWdlLCAyLCBTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAgUkVMRUFTRV9MT0co
UGVyZm9ybWFuY2VMb2dnaW5nLCAiV2ViQ29udGVudCBwcm9jZXNzZXMgdXNlZCAlLjFmJSUgQ1BV
IGluICVzIHN0YXRlIiwgY3B1VXNhZ2UsIGFjdGl2aXR5U3RhdGVLZXkudXRmOCgpLmRhdGEoKSk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0Zv
cndhcmRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExp
c3QuY3BwCmluZGV4IDY0Njg1ZjlmZmFhNGZmM2FmOTI5NjljMmY0ZTZkMzgzY2UyZWU4ZWMuLmM4
OGU2OGM5NWY0ZTVkNDhlYWE5MjE1MjhjNjZjNmI5MDZjZjg2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC0yOSwxMCArMjksMTMg
QEAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIC8vIEZJ
WE1FOiBNYWtlIHRoaXMgc3RhdGljIG9uY2UgV2ViQmFja0ZvcndhcmRMaXN0Q0YuY3BwIGlzIG5v
IGxvbmdlciB1c2luZyBpdC4KIHVpbnQ2NF90IGdlbmVyYXRlV2ViQmFja0ZvcndhcmRJdGVtSUQo
KTsKIApAQCAtMTc5LDcgKzE4Miw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0Ojpnb1RvSXRl
bShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtKQogICAgIGlmICh0YXJnZXRJbmRleCA8IG1f
Y3VycmVudEluZGV4KSB7CiAgICAgICAgIHVuc2lnbmVkIGRlbHRhID0gbV9lbnRyaWVzLnNpemUo
KSAtIHRhcmdldEluZGV4IC0gMTsKICAgICAgICAgU3RyaW5nIGRlbHRhVmFsdWUgPSBkZWx0YSA+
IDEwID8gQVNDSUlMaXRlcmFsKCJvdmVyMTAiKSA6IFN0cmluZzo6bnVtYmVyKGRlbHRhKTsKLSAg
ICAgICAgbV9wYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmJhY2tOYXZpZ2F0aW9uRGVsdGFLZXkoKSwgZGVsdGFWYWx1ZSwgZmFsc2UgLyog
c2hvdWxkU2FtcGxlICovKTsKKyAgICAgICAgbV9wYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShX
ZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmJhY2tOYXZpZ2F0aW9uRGVsdGFLZXkoKSwg
ZGVsdGFWYWx1ZSwgU2hvdWxkU2FtcGxlOjpObyk7CiAgICAgfQogCiAgICAgLy8gSWYgd2UncmUg
Z29pbmcgdG8gYW4gaXRlbSBkaWZmZXJlbnQgZnJvbSB0aGUgY3VycmVudCBpdGVtLCBhc2sgdGhl
IGNsaWVudCBpZiB0aGUgY3VycmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBmNWQyZTc0YWI0MTQzNjY1N2EwNDBjNjYwNzRkYTg3NDIzYzA4MjNjLi41
NDI1NTAyZDc1NmU3NTZkY2NlZDA1NjYwYjRiZmUyMDVkZmU2YzRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTE2OCw0MyArNTE2OCwyOCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bWFjaFNlbmRSaWdodENhbGxiYWNrKGNvbnN0IE1hY2hTZW5kUmlnaHQm
IHNlbmRSaWdodCwgdWludDY0XwogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGJvb2wgc2hvdWxkU2FtcGxlKQordm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBpZiAoIURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBs
ZSA/IFNob3VsZFNhbXBsZTo6WWVzIDogU2hvdWxkU2FtcGxlOjpObykpCisgICAgaWYgKCFEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhzaG91bGRTYW1wbGUp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UobWVz
c2FnZSwgZGVzY3JpcHRpb24pOworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgYm9v
bCBzaG91bGRTYW1wbGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQog
ewotICAgIGlmICghRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNob3VsZExvZ0FmdGVyU2FtcGxp
bmcoc2hvdWxkU2FtcGxlID8gU2hvdWxkU2FtcGxlOjpZZXMgOiBTaG91bGRTYW1wbGU6Ok5vKSkK
KyAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5n
KHNob3VsZFNhbXBsZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGxvZ1NhbXBsZWREaWFnbm9z
dGljTWVzc2FnZVdpdGhSZXN1bHQobWVzc2FnZSwgZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZT4ocmVzdWx0KSk7CisgICAgbV9kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHRoaXMs
IG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ1Jlc3VsdFR5cGU+KHJlc3VsdCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNob3VsZFNhbXBsZSkK
K3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwg
dW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQog
ewotICAgIGlmICghRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNob3VsZExvZ0FmdGVyU2FtcGxp
bmcoc2hvdWxkU2FtcGxlID8gU2hvdWxkU2FtcGxlOjpZZXMgOiBTaG91bGRTYW1wbGU6Ok5vKSkK
KyAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5n
KHNob3VsZFNhbXBsZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGxvZ1NhbXBsZWREaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOwotfQotCi12
b2lkIFdlYlBhZ2VQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKLXsKLSAgICBtX2RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZSh0aGlzLCBtZXNzYWdlLCBkZXNj
cmlwdGlvbik7Ci19Ci0KLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2dTYW1wbGVkRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQotewotICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh0aGlzLCBtZXNzYWdlLCBkZXNjcmlw
dGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlPihy
ZXN1bHQpKTsKLX0KLQotdm9pZCBXZWJQYWdlUHJveHk6OmxvZ1NhbXBsZWREaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgbV9kaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodGhpcywgbWVzc2FnZSwgZGVzY3Jp
cHRpb24sIHZhbHVlKTsKKyAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgU3RyaW5nOjpu
dW1iZXIodmFsdWUsIHNpZ25pZmljYW50RmlndXJlcykpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJhY2soY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgRWRpdGluZ1JhbmdlJiBhY3R1YWxSYW5nZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4YWM0NzUzODVmNGJiZmViZDNi
OWNkZjFlYmZkNzc0NThmOGIxNDZlLi4zY2NhZDcyY2UwYjJjNDNiMmY5NGE4YWU4MzgyYTNiNTc4
YjVhZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjIs
NiArMTYyLDcgQEAgc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3QgRmlsZUNob29zZXJT
ZXR0aW5nczsKIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzRGF0YTsKIHN0cnVjdCBTZWN1cml0eU9y
aWdpbkRhdGE7CitlbnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKIHN0cnVjdCBUZXh0QWx0ZXJuYXRp
dmVXaXRoUmFuZ2U7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0
QXR0cmlidXRlczsKQEAgLTExMjAsMTIgKzExMjEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
aG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9vbCk7CiAKICAgICAvLyBEaWFnbm9z
dGljIG1lc3NhZ2VzIGxvZ2dpbmcuCi0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgc2hvdWxk
U2FtcGxlKTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3Vs
dCwgYm9vbCBzaG91bGRTYW1wbGUpOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNob3VsZFNhbXBsZSk7Ci0gICAgdm9pZCBsb2dTYW1w
bGVkRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uKTsKLSAgICB2b2lkIGxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1
aW50MzJfdCByZXN1bHQpOwotICAgIHZvaWQgbG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNo
b3VsZFNhbXBsZSk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1aW50MzJfdCBy
ZXN1bHQsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGUpOwogCiAgICAgLy8gRm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2VzLgogICAg
IHZvaWQgc2hvd1ZhbGlkYXRpb25NZXNzYWdlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGFuY2hv
ckNsaWVudFJlY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxOWZlZDA0ODAwYjU5
ZGI3NDI0MWM5ZjNkOWIwNzI2ZGY2ZDE2NWVmLi5kOGMyMmEyNjMzMDYyMWY3ZjVjYjE1MWZkOGJi
OWJhMDRiZjc1NWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIzNCw5ICsyMzQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIEV4ZWN1dGVVbmRvUmVkbyh1aW50MzJfdCBhY3Rpb24pIC0+IChib29sIHJl
c3VsdCkKIAogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nCi0gICAgTG9nU2FtcGxl
ZERpYWdub3N0aWNNZXNzYWdlKFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24pCi0g
ICAgTG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChTdHJpbmcgbWVzc2FnZSwg
U3RyaW5nIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQpCi0gICAgTG9nU2FtcGxlZERpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24s
IFN0cmluZyB2YWx1ZSkKKyAgICBMb2dEaWFnbm9zdGljTWVzc2FnZShTdHJpbmcgbWVzc2FnZSwg
U3RyaW5nIGRlc2NyaXB0aW9uLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1w
bGUpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFN0cmluZyBtZXNzYWdlLCBT
dHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgZW51bSBXZWJDb3JlOjpTaG91bGRT
YW1wbGUgc2hvdWxkU2FtcGxlKQorICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFN0
cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQg
c2lnbmlmaWNhbnRGaWd1cmVzLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1w
bGUpCiAKICAgICAjIEVkaXRvciBub3RpZmljYXRpb25zCiAgICAgRWRpdG9yU3RhdGVDaGFuZ2Vk
KHN0cnVjdCBXZWJLaXQ6OkVkaXRvclN0YXRlIGVkaXRvclN0YXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAppbmRleCBiZjkwZTZjNjM2MDJlYTIwMzVjZTA1
M2E5NTdlZDYyZDEzNjczN2E4Li4wYjI3OTU3MWVlNGJhOGEwOGFhNTcxNTcxYzgxNmJhNzM0ZDE4
ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAt
MzIsNiArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudChXZWJQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiB7CkBAIC01MCw3ICs1
Miw3IEBAIHZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uCiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgaW5qZWN0ZWQgYnVuZGxlIEFQSS4KICAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKCZtX3BhZ2UsIG1lc3NhZ2Us
IGRlc2NyaXB0aW9uKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpM
b2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UobWVzc2FnZSwgZGVzY3JpcHRpb24pKTsKKyAgICBt
X3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZSht
ZXNzYWdlLCBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlOjpObykpOwogfQogCiB2b2lkIFdlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpE
aWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUg
c2hvdWxkU2FtcGxlKQpAQCAtNjIsMTAgKzY0LDEwIEBAIHZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1l
CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaW5qZWN0ZWQgYnVuZGxlIEFQSS4KICAgICBt
X3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdCgmbV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0
KTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dTYW1wbGVkRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQpKTsK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQobWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCwgU2hvdWxkU2FtcGxl
OjpObykpOwogfQogCi12b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBz
aG91bGRTYW1wbGUpCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBX
ZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewogICAgIEFTU0VSVCghbV9wYWdl
LmNvcmVQYWdlKCkgfHwgbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xv
Z2dpbmdFbmFibGVkKCkpOwogCkBAIC03Myw4ICs3NSw4IEBAIHZvaWQgV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYg
bWVzCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBpbmplY3Rl
ZCBidW5kbGUgQVBJLgotICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoJm1fcGFnZSwgbWVzc2FnZSwg
ZGVzY3JpcHRpb24sIHZhbHVlKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpMb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVzc2FnZSwgZGVzY3Jp
cHRpb24sIHZhbHVlKSk7CisgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSgmbV9wYWdlLCBtZXNzYWdl
LCBkZXNjcmlwdGlvbiwgU3RyaW5nOjpudW1iZXIodmFsdWUsIHNpZ25pZmljYW50RmlndXJlcykp
OworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSwgc2lnbmlmaWNhbnRG
aWd1cmVzLCBTaG91bGRTYW1wbGU6Ok5vKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCmluZGV4IDg3MjNmZmMxOTI4
ZDJhMzg4MTcxOWRmMDc4ZjI2NjViNGNmODJjZjkuLjZmZWQ0ZmRhYTQxNjgzODliODc3MDA1OWU1
NTdiM2FlZGZhOWMwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSwgV2Vi
Q29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNpZ25l
ZCBzaWduaWZpY2FudEZpZ3VyZXMsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7CiAK
ICAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300119</attachid>
            <date>2017-01-30 10:08:27 -0800</date>
            <delta_ts>2017-01-30 10:46:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167536-20170130100625.patch</filename>
            <type>text/plain</type>
            <size>32343</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlkY2IxYTYwYjUwNDIx
Y2YxNTUwYzMzYTc4MWM5YWVjZjFmZGFmOC4uYTA1NTM5MTc3NzU1NGI0N2FjZWFkZjhiNjM5YzQx
M2E5OTIyMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAxLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIERpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSgpIHRvIHRha2UgaW4g
dGhlIHZhbHVlIGFzIGEgZG91YmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjc1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBVcGRhdGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKCkgdG8gdGFrZSBpbiB0aGUgdmFsdWUgYXMgYSBkb3VibGUKKyAgICAg
ICAgaW5zdGVhZCBvZiBhIHN0cmluZy4gVGhlIHZhbHVlIG5lZWRzIHRvIGJlIG51bWVyaWMgYW5k
IHRoZSBjdXJyZW50IEFQSSBpcyBlcnJvci1wcm9uZS4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHA6CisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorCiAyMDE3
LTAxLTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAg
IHNldFRpbWVvdXQgLyBzZXRJbnRlcnZhbCdzIHN0cmluZyBleGVjdXRpb24gc2hvdWxkIGluaGVy
aXQgU291cmNlT3JpZ2luIGNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdmMGEwNDkwMDcxYjYzYmIw
ZTcxODBlM2MwZjlmYjk2OTcxMGMwMTcuLjQzMDNiNTQ3MmM5OWJkODdiNzc5NjNjNGI0YTQ2NGMy
NmNkMjIwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxNy0wMS0yNyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoKSB0byB0YWtlIGluIHRo
ZSB2YWx1ZSBhcyBhIGRvdWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY3NTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgVXBkYXRlIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSgpIHRvIHRha2UgaW4gdGhlIHZhbHVlIGFzIGEgZG91YmxlCisgICAgICAg
IGluc3RlYWQgb2YgYSBzdHJpbmcuIFRoZSB2YWx1ZSBuZWVkcyB0byBiZSBudW1lcmljIGFuZCB0
aGUgY3VycmVudCBBUEkgaXMgZXJyb3ItcHJvbmUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjps
b2dEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0hpZ2hQZXJmb3Jt
YW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SGlnaFBlcmZv
cm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGVyQWN0aXZpdHlTdGF0ZUNQVVVz
YWdlU2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBlckFjdGl2aXR5U3RhdGVDUFVVc2Fn
ZVNhbXBsZXI6OmxvZ2dpbmdUaW1lckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0Ojpn
b1RvSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisKIDIw
MTctMDEtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBNb3ZlIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCB0byBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAy
NjJiOTkyYmNhODQxODRkNmVjMWYyZGY4ZDkzMTI2NTE0MzQzNzU2Li4wNDU2NTY2MDU1ZTU3MDI3
ZTNhODhmYjJjODcwNDM5ZjYyYjVkYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTY0NzIsNyArNjQ3Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdAogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICBwYWdlLT5k
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIG1fcGxheWVyLT5l
bmdpbmVEZXNjcmlwdGlvbigpLCBTdHJpbmc6Om51bWJlcihtX3BsYXllci0+cGxhdGZvcm1FcnJv
ckNvZGUoKSksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIG1fcGxheWVyLT5lbmdpbmVEZXNjcmlw
dGlvbigpLCBtX3BsYXllci0+cGxhdGZvcm1FcnJvckNvZGUoKSwgNCwgU2hvdWxkU2FtcGxlOjpO
byk7CiB9CiAKIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVlc3RlZFBs
YXliYWNrUmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmlu
ZGV4IDU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2ZDU3YjguLjMwMTVjMWEzOGZk
MzY3MmE4NWE2M2YyOWUwY2QzNmRjMmNmMGM0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgY2xhc3MgRW1wdHlEYXRhYmFzZVByb3Zp
ZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJvdmlkZXIgewogY2xhc3MgRW1wdHlEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7
CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBTaG91bGRTYW1wbGUpIGZpbmFsIHsgfQogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIERpYWdub3N0aWNMb2dn
aW5nUmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSBmaW5hbCB7IH0KLSAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIFNob3VsZFNhbXBsZSkgZmluYWwgeyB9CisgICAgdm9pZCBsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBkb3VibGUsIHVu
c2lnbmVkLCBTaG91bGRTYW1wbGUpIGZpbmFsIHsgfQogfTsKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgK
aW5kZXggNzg2NzcyMmJmN2U0OWU2ZDg1MTU2YWU3NzEwODAwOTE3YjQ0ZDY1Yi4uMGI1YmE5M2Q1
MzhlN2Q5ZWRkOGU2Nzk4MTNjMzE5OThiZGVmMDVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMzksOCArMzksNyBAQCBjbGFzcyBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgU2hvdWxkU2FtcGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSA9IDA7
Ci0gICAgLy8gRklYTUU6IHJlbmFtZSB0aGlzIHRvIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aE51
bWVyaWNWYWx1ZSgpLgotICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFN0cmluZyYgdmFsdWUsIFNob3VsZFNhbXBsZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRG
aWd1cmVzLCBTaG91bGRTYW1wbGUpID0gMDsKIAogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0Fm
dGVyU2FtcGxpbmcoU2hvdWxkU2FtcGxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGZmYWY3ZGI4NTg3NWJjZTY2MGQ4NjYz
NTQyYTkzZGQ1YWNjNTc0MTEuLmRiODFhZTVhNjI3MjkwYTFjNjhjYTcyNzNkY2Y3ZmZjMTgzNzlj
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9z
dGljTWVzc2FnZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzcwogICAgIGlm
ICghRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNob3VsZExvZ0FmdGVyU2FtcGxpbmcoc2hvdWxk
U2FtcGxlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TG9nU2FtcGxlZERpYWdub3N0
aWNNZXNzYWdlKHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24pLCAwKTsKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpMb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBT
aG91bGRTYW1wbGU6Ok5vKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1
bHRUeXBlIHJlc3VsdCwgU2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKQEAgLTU5MywxNSArNTkz
LDE1IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dCh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0CiAgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6c2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhzaG91bGRTYW1wbGUpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCksIDApOworICAgIHBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2Ny
aXB0aW9uLCByZXN1bHQsIFNob3VsZFNhbXBsZTo6Tm8pLCAwKTsKIH0KIAotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3Qgd2ViUGFnZUlE
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgdmFsdWUsIFNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCit2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCB3ZWJQYWdlSUQs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91Ymxl
IHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFNob3VsZFNhbXBsZSBzaG91bGRT
YW1wbGUpCiB7CiAgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nQWZ0
ZXJTYW1wbGluZyhzaG91bGRTYW1wbGUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpM
b2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUod2ViUGFnZUlELCBtZXNzYWdlLCBk
ZXNjcmlwdGlvbiwgdmFsdWUpLCAwKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSwgc2lnbmlmaWNh
bnRGaWd1cmVzLCBTaG91bGRTYW1wbGU6Ok5vKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnRlcm1pbmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAppbmRleCBkYWIzNzU0ZTAyMGM2M2E5ZGYyMDFhNWJkOWRhMWRlOWIxMDU2YTQ4
Li5hNTZlZTY2YjQwMjNiNzk4OGEyOGM0ZjJjOGI0ZjU0YzE4NDhmMGY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTk1LDcgKzk1LDcg
QEAgcHVibGljOgogICAgIC8vIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZy4KICAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUp
OwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHdlYlBh
Z2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBX
ZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUsIFdlYkNvcmU6OlNob3VsZFNhbXBs
ZSk7Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCB3ZWJQ
YWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKKyAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVu
c2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHNvdXJjZUFwcGxpY2F0
aW9uQXVkaXREYXRhKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CmluZGV4IGI4MmM3N2Q3MDgyZTBmODkxMjE5MTBmMDdjM2I4Y2RkNWEzY2IyOTMuLjdh
NzMwNzMwNzFiMTU5OWM0MzExNDIxNDY1OTZiMjJkNDcyYzRiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNjAsNiArMzYwLDcgQEAgZGVmIGhlYWRl
cnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVu
dCc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGx1Z2lu
SW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UmVj
ZW50U2VhcmNoJzogWyc8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6OlNob3VsZFNhbXBsZSc6IFsnPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJzogWyc8V2Vi
Q29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jl
c3VsdCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYmNi
ZWIyYTk5NGU3NTQ2NzFhMWRiYWVjOTc5ZjU3MDY1OThiNGNhYS4uZWFiMTMxYzg4YmUwZDUwZjFl
ZThhOWNlYzE4ZWE3NzRhNmU0YTRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BheW1lbnRIZWFkZXJzLmg+CkBAIC02NDQsNiArNjQ1LDE0IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiB7CiAgICAg
PjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2hvdWxkU2Ft
cGxlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
U2hvdWxkU2FtcGxlLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vLAorICAgICAg
ICBXZWJDb3JlOjpTaG91bGRTYW1wbGU6OlllcworICAgID47Cit9OworCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Oklu
ZGV4ZWREQjo6R2V0QWxsVHlwZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhp
Y3NVc2FnZVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3Jt
YW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcAppbmRleCA5ZmQ5ZDdkYWY0N2ZhNDZiNDc3NzQy
YzM2ZDUwYjQ2MTljYjM5NmY0Li44NTk4OTUwNzdkYzVhMzE2ZTFlYzljNzcxZjllODQ2NjFmNjM3
Y2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNl
R3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9I
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAg
dm9pZCBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjo6dGltZXJGaXJlZCgpCiAg
ICAgZWxzZSBpZiAoaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKQogICAgICAgICBzdGF0ZSA9
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSgpOwog
Ci0gICAgZmlyc3RQYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OndlYkdMU3RhdGVLZXkoKSwgc3RhdGUsIGZhbHNlKTsKKyAgICBmaXJzdFBhZ2UtPmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6d2ViR0xTdGF0ZUtleSgpLCBz
dGF0ZSwgU2hvdWxkU2FtcGxlOjpObyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCAxYmQ1MDY5ZWFkY2Y3ZmMwZDAxMTI1MjQ3NjJlZWQxMDU3ZjE1YWM3
Li4wNjMyM2NjZDE1ZGE1ODVmMTI1MmViMzQ4MDc4Zjg1M2QyODg2MTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmlu
aXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29uCiAjZW5kaWYK
IH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3Nh
Z2UodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24pCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewogICAg
IFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwog
ICAgIC8vIEZJWE1FOiBXZSBkbyB0aGlzIG51bGwtY2hlY2sgYmVjYXVzZSBieSB0aGUgdGltZSB0
aGUgZGVjaXNpb24gdG8gbG9nIGlzIG1hZGUsIHRoZSBwYWdlIG1heSBiZSBnb25lLiBXZSBzaG91
bGQgcmVmYWN0b3IgdG8gYXZvaWQgdGhpcywKQEAgLTMyNCwxMCArMzI0LDEwIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBh
Z2VJRCwgY29uc3QgU3RyCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBw
YWdlLT5sb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UobWVzc2FnZSwgZGVzY3JpcHRpb24pOwor
ICAgIHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBzaG91
bGRTYW1wbGUpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1NhbXBsZWREaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCkKK3ZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCB1aW50MzJfdCByZXN1bHQsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUp
CiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBh
Z2VJRCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRoaXMgbnVsbC1jaGVjayBiZWNhdXNlIGJ5IHRo
ZSB0aW1lIHRoZSBkZWNpc2lvbiB0byBsb2cgaXMgbWFkZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUu
IFdlIHNob3VsZCByZWZhY3RvciB0byBhdm9pZCB0aGlzLApAQCAtMzM1LDEwICszMzUsMTAgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KHVpbnQ2NF90IHBhZ2VJRCwKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHBhZ2UtPmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQobWVzc2Fn
ZSwgZGVzY3JpcHRpb24sIHJlc3VsdCk7CisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQsIHNob3VsZFNhbXBsZSk7CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQordm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91Ymxl
IHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFdlYkNvcmU6OlNob3VsZFNhbXBs
ZSBzaG91bGRTYW1wbGUpCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRoaXMgbnVsbC1jaGVj
ayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNpc2lvbiB0byBsb2cgaXMgbWFkZSwgdGhlIHBh
Z2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZhY3RvciB0byBhdm9pZCB0aGlzLApAQCAtMzQ2
LDcgKzM0Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwKICAgICBpZiAoIXBhZ2UpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHBhZ2UtPmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOworICAgIHBhZ2UtPmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSwgc2lnbmlmaWNh
bnRGaWd1cmVzLCBzaG91bGRTYW1wbGUpOwogfQogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0Vf
QVVUSF9DQUxMQkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCAzMGIzN2U0ZTQ5NDk0NTkwYjIzM2Q1YzBm
MjNhZjliNjcwZDFjOGNiLi5iY2YyOTI5OTcwNzA1NTUxNmM3NmFiMWI4N2Q0ODdhYzlkNGRmNDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OworZW51bSBjbGFzcyBTaG91bGRTYW1wbGU7CiBjbGFzcyBTZWN1
cml0eU9yaWdpbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBjbGFzcyBTZXNzaW9uSUQ7
CkBAIC0xMDksOSArMTEwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVE
YXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0
ZW5zaW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwotICAgIHZvaWQgbG9nU2FtcGxlZERpYWdub3N0aWNN
ZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uKTsKLSAgICB2b2lkIGxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdp
dGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCk7Ci0gICAgdm9pZCBsb2dTYW1wbGVk
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUp
OworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3Vs
ZFNhbXBsZSk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0
X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIHVpbnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKKyAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2ln
bmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICNpZiBVU0Uo
UFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZvaWQgY2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZSh1aW50NjRfdCBsb2FkZXJJRCwgdWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjgzM2MzMjY4NzIzNzFk
Y2M4MzJhZmE0ZGE2NTIwYjEzN2NjNmY3Yi4uMGM5MDJlZDdhYzBjNjlmY2ZmYzU5MjlmY2M2YWYz
ZWQ3YjRmY2VjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNSw5ICsz
NSw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAK
ICAgICAjIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZwotICAgIExvZ1NhbXBsZWREaWFnbm9z
dGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3Jp
cHRpb24pCi0gICAgTG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRf
dCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJl
c3VsdCkKLSAgICBMb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3Qg
cGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmcgdmFsdWUp
CisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2Fn
ZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRT
YW1wbGUpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHBhZ2VJ
RCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBl
bnVtIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCisgICAgTG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5n
IGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywg
ZW51bSBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogCiAjaWYgVVNFKFBST1RF
Q1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICBDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKHVpbnQ2NF90IGxvYWRlcklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdl
U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGVyQWN0aXZpdHlTdGF0ZUNQ
VVVzYWdlU2FtcGxlci5jcHAKaW5kZXggNzVkOWNlMzg1YTk0ZTM1Y2I0NGIyN2RiZWM0MDQ0ZmQ1
MTdkZmM2MS4uMGMwMzllNmJjNjk1ODI2M2JiMTNiMDllMjE4MjBiZjYzYjdhY2NkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNh
bXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QZXJBY3Rpdml0eVN0YXRl
Q1BVVXNhZ2VTYW1wbGVyLmNwcApAQCAtNzEsMTQgKzcxLDYgQEAgc3RhdGljIGlubGluZSBTdHJp
bmcgbG9nZ2luZ0tleUZvckFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUZvckNQVVNhbXBsaW5n
IHN0YXQKICAgICB9CiB9CiAKLXN0YXRpYyBTdHJpbmcgdG9TdHJpbmdSb3VuZGluZ1NpZ25pZmlj
YW50RmlndXJlcyhkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcykKLXsK
LSAgICBEZWNpbWFsTnVtYmVyIGRlY2ltYWwodmFsdWUsIFJvdW5kaW5nU2lnbmlmaWNhbnRGaWd1
cmVzLCBzaWduaWZpY2FudEZpZ3VyZXMpOwotICAgIE51bWJlclRvTFN0cmluZ0J1ZmZlciBidWZm
ZXI7Ci0gICAgdW5zaWduZWQgbGVuZ3RoID0gZGVjaW1hbC50b1N0cmluZ0RlY2ltYWwoYnVmZmVy
LCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoKTsKLSAgICByZXR1cm4gU3RyaW5nKGJ1
ZmZlciwgbGVuZ3RoKTsKLX0KLQogdm9pZCBQZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVy
Ojpsb2dnaW5nVGltZXJGaXJlZCgpCiB7CiAgICAgYXV0byogcGFnZSA9IHBhZ2VGb3JMb2dnaW5n
KCk7CkBAIC05Myw3ICs4NSw3IEBAIHZvaWQgUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxl
cjo6bG9nZ2luZ1RpbWVyRmlyZWQoKQogICAgIGZvciAoYXV0byYgcGFpciA6IG1fY3B1VGltZUlu
QWN0aXZpdHlTdGF0ZSkgewogICAgICAgICBkb3VibGUgY3B1VXNhZ2UgPSBzdGF0aWNfY2FzdDxk
b3VibGU+KHBhaXIudmFsdWUgKiAxMDAuKSAvIGNwdVRpbWVEZWx0YTsKICAgICAgICAgU3RyaW5n
IGFjdGl2aXR5U3RhdGVLZXkgPSBsb2dnaW5nS2V5Rm9yQWN0aXZpdHlTdGF0ZShwYWlyLmtleSk7
Ci0gICAgICAgIHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6Y3B1VXNhZ2VLZXkoKSwgYWN0aXZpdHlTdGF0ZUtleSwgdG9TdHJpbmdSb3Vu
ZGluZ1NpZ25pZmljYW50RmlndXJlcyhjcHVVc2FnZSwgMiksIGZhbHNlKTsKKyAgICAgICAgcGFn
ZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpj
cHVVc2FnZUtleSgpLCBhY3Rpdml0eVN0YXRlS2V5LCBjcHVVc2FnZSwgMiwgU2hvdWxkU2FtcGxl
OjpObyk7CiAgICAgICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIldlYkNvbnRl
bnQgcHJvY2Vzc2VzIHVzZWQgJS4xZiUlIENQVSBpbiAlcyBzdGF0ZSIsIGNwdVVzYWdlLCBhY3Rp
dml0eVN0YXRlS2V5LnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAppbmRleCA2NDY4NWY5ZmZhYTRmZjNh
ZjkyOTY5YzJmNGU2ZDM4M2NlMmVlOGVjLi5jODhlNjhjOTVmNGU1ZDQ4ZWFhOTIxNTI4YzY2YzZi
OTA2Y2Y4NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0Zv
cndhcmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0Zvcndh
cmRMaXN0LmNwcApAQCAtMjksMTAgKzI5LDEzIEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNp
bmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCiAvLyBGSVhNRTogTWFrZSB0aGlzIHN0YXRpYyBvbmNlIFdl
YkJhY2tGb3J3YXJkTGlzdENGLmNwcCBpcyBubyBsb25nZXIgdXNpbmcgaXQuCiB1aW50NjRfdCBn
ZW5lcmF0ZVdlYkJhY2tGb3J3YXJkSXRlbUlEKCk7CiAKQEAgLTE3OSw3ICsxODIsNyBAQCB2b2lk
IFdlYkJhY2tGb3J3YXJkTGlzdDo6Z29Ub0l0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXRl
bSkKICAgICBpZiAodGFyZ2V0SW5kZXggPCBtX2N1cnJlbnRJbmRleCkgewogICAgICAgICB1bnNp
Z25lZCBkZWx0YSA9IG1fZW50cmllcy5zaXplKCkgLSB0YXJnZXRJbmRleCAtIDE7CiAgICAgICAg
IFN0cmluZyBkZWx0YVZhbHVlID0gZGVsdGEgPiAxMCA/IEFTQ0lJTGl0ZXJhbCgib3ZlcjEwIikg
OiBTdHJpbmc6Om51bWJlcihkZWx0YSk7Ci0gICAgICAgIG1fcGFnZS0+bG9nRGlhZ25vc3RpY01l
c3NhZ2UoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpiYWNrTmF2aWdhdGlvbkRlbHRh
S2V5KCksIGRlbHRhVmFsdWUsIGZhbHNlIC8qIHNob3VsZFNhbXBsZSAqLyk7CisgICAgICAgIG1f
cGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpiYWNrTmF2aWdhdGlvbkRlbHRhS2V5KCksIGRlbHRhVmFsdWUsIFNob3VsZFNhbXBsZTo6Tm8p
OwogICAgIH0KIAogICAgIC8vIElmIHdlJ3JlIGdvaW5nIHRvIGFuIGl0ZW0gZGlmZmVyZW50IGZy
b20gdGhlIGN1cnJlbnQgaXRlbSwgYXNrIHRoZSBjbGllbnQgaWYgdGhlIGN1cnJlbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjVkMmU3NGFiNDE0MzY2
NTdhMDQwYzY2MDc0ZGE4NzQyM2MwODIzYy4uNTQyNTUwMmQ3NTZlNzU2ZGNjZWQwNTY2MGI0YmZl
MjA1ZGZlNmM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTUxNjgsNDMgKzUxNjgsMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1hY2hTZW5kUmlnaHRD
YWxsYmFjayhjb25zdCBNYWNoU2VuZFJpZ2h0JiBzZW5kUmlnaHQsIHVpbnQ2NF8KIH0KICNlbmRp
ZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIHNob3VsZFNhbXBsZSkK
K3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBz
aG91bGRTYW1wbGUpCiB7Ci0gICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxk
TG9nQWZ0ZXJTYW1wbGluZyhzaG91bGRTYW1wbGUgPyBTaG91bGRTYW1wbGU6OlllcyA6IFNob3Vs
ZFNhbXBsZTo6Tm8pKQorICAgIGlmICghRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNob3VsZExv
Z0FmdGVyU2FtcGxpbmcoc2hvdWxkU2FtcGxlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbG9n
U2FtcGxlZERpYWdub3N0aWNNZXNzYWdlKG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKKyAgICBtX2Rp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZSh0aGlzLCBtZXNzYWdl
LCBkZXNjcmlwdGlvbik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIGJvb2wgc2hvdWxkU2FtcGxlKQordm9pZCBXZWJQYWdl
UHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6
U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSA/IFNob3VsZFNhbXBs
ZTo6WWVzIDogU2hvdWxkU2FtcGxlOjpObykpCisgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudDo6c2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhzaG91bGRTYW1wbGUpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KG1lc3NhZ2Us
IGRlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dFR5cGU+KHJlc3VsdCkpOworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlPihyZXN1bHQpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgYm9vbCBzaG91bGRTYW1wbGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywg
U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSA/IFNob3VsZFNhbXBs
ZTo6WWVzIDogU2hvdWxkU2FtcGxlOjpObykpCisgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudDo6c2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhzaG91bGRTYW1wbGUpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVzc2FnZSwg
ZGVzY3JpcHRpb24sIHZhbHVlKTsKLX0KLQotdm9pZCBXZWJQYWdlUHJveHk6OmxvZ1NhbXBsZWRE
aWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24pCi17Ci0gICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3Rp
Y01lc3NhZ2UodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24pOwotfQotCi12b2lkIFdlYlBhZ2VQ
cm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCkKLXsK
LSAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHQodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZT4ocmVzdWx0KSk7Ci19Ci0KLXZvaWQgV2ViUGFnZVBy
b3h5Ojpsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQot
ewotICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSk7CisgICAgbV9kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodGhpcywgbWVz
c2FnZSwgZGVzY3JpcHRpb24sIFN0cmluZzo6bnVtYmVyKHZhbHVlLCBzaWduaWZpY2FudEZpZ3Vy
ZXMpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxi
YWNrKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEVkaXRpbmdSYW5nZSYgYWN0dWFsUmFuZ2Us
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggOGFjNDc1Mzg1ZjRiYmZlYmQzYjljZGYxZWJmZDc3NDU4ZjhiMTQ2ZS4uZWIwYjIw
ZmJmOWUwMGVjYmU5NjIwNGFiZTkxMGMyY2UzMGNmZmRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIFJ1bkxvb3BPYnNl
cnZlcjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFRleHRJbmRpY2F0b3I7CiBjbGFzcyBW
YWxpZGF0aW9uQnViYmxlOwotZW51bSBjbGFzcyBIYXNJbnNlY3VyZUNvbnRlbnQ7CisKIHN0cnVj
dCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3Qg
RmlsZUNob29zZXJTZXR0aW5nczsKQEAgLTE2Niw2ICsxNjYsOSBAQCBzdHJ1Y3QgVGV4dEFsdGVy
bmF0aXZlV2l0aFJhbmdlOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3
cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CisKK2VudW0gY2xhc3MgSGFz
SW5zZWN1cmVDb250ZW50OworZW51bSBjbGFzcyBTaG91bGRTYW1wbGU7CiB9CiAKICNpZiBQTEFU
Rk9STShHVEspCkBAIC0xMTIwLDEyICsxMTIzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hv
dWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKGJvb2wpOwogCiAgICAgLy8gRGlhZ25vc3Rp
YyBtZXNzYWdlcyBsb2dnaW5nLgotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIHNob3VsZFNh
bXBsZSk7Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQs
IGJvb2wgc2hvdWxkU2FtcGxlKTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBzaG91bGRTYW1wbGUpOwotICAgIHZvaWQgbG9nU2FtcGxl
ZERpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbik7Ci0gICAgdm9pZCBsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVz
dWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWlu
dDMyX3QgcmVzdWx0KTsKLSAgICB2b2lkIGxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpTaG91
bGRTYW1wbGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVz
dWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6
U2hvdWxkU2FtcGxlKTsKIAogICAgIC8vIEZvcm0gdmFsaWRhdGlvbiBtZXNzYWdlcy4KICAgICB2
b2lkIHNob3dWYWxpZGF0aW9uTWVzc2FnZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhbmNob3JD
bGllbnRSZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTlmZWQwNDgwMGI1OWRi
NzQyNDFjOWYzZDliMDcyNmRmNmQxNjVlZi4uZDhjMjJhMjYzMzA2MjFmN2Y1Y2IxNTFmZDhiYjli
YTA0YmY3NTViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMzQsOSArMjM0LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBFeGVjdXRlVW5kb1JlZG8odWludDMyX3QgYWN0aW9uKSAtPiAoYm9vbCByZXN1
bHQpCiAKICAgICAjIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZwotICAgIExvZ1NhbXBsZWRE
aWFnbm9zdGljTWVzc2FnZShTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uKQotICAg
IExvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoU3RyaW5nIG1lc3NhZ2UsIFN0
cmluZyBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQotICAgIExvZ1NhbXBsZWREaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBT
dHJpbmcgdmFsdWUpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UsIFN0
cmluZyBkZXNjcmlwdGlvbiwgZW51bSBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxl
KQorICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChTdHJpbmcgbWVzc2FnZSwgU3Ry
aW5nIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIGVudW0gV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKKyAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShTdHJp
bmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNp
Z25pZmljYW50RmlndXJlcywgZW51bSBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxl
KQogCiAgICAgIyBFZGl0b3Igbm90aWZpY2F0aW9ucwogICAgIEVkaXRvclN0YXRlQ2hhbmdlZChz
dHJ1Y3QgV2ViS2l0OjpFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKaW5kZXggYmY5MGU2YzYzNjAyZWEyMDM1Y2UwNTNh
OTU3ZWQ2MmQxMzY3MzdhOC4uMGIyNzk1NzFlZTRiYThhMDhhYTU3MTU3MWM4MTZiYTczNGQxOGZm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTMy
LDYgKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQogewpAQCAtNTAsNyArNTIs
NyBAQCB2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbgogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IGluamVjdGVkIGJ1bmRsZSBBUEkuCiAgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSgmbV9wYWdlLCBtZXNzYWdlLCBk
ZXNjcmlwdGlvbik7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9n
U2FtcGxlZERpYWdub3N0aWNNZXNzYWdlKG1lc3NhZ2UsIGRlc2NyaXB0aW9uKSk7CisgICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2UobWVz
c2FnZSwgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pKTsKIH0KIAogdm9pZCBXZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlIHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNo
b3VsZFNhbXBsZSkKQEAgLTYyLDEwICs2NCwxMCBAQCB2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZQog
CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGluamVjdGVkIGJ1bmRsZSBBUEkuCiAgICAgbV9w
YWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCk7
Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nU2FtcGxlZERpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdChtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0KSk7Cisg
ICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQsIFNob3VsZFNhbXBsZTo6
Tm8pKTsKIH0KIAotdm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hv
dWxkU2FtcGxlKQordm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2Vi
Q29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKICAgICBBU1NFUlQoIW1fcGFnZS5j
b3JlUGFnZSgpIHx8IG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dn
aW5nRW5hYmxlZCgpKTsKIApAQCAtNzMsOCArNzUsOCBAQCB2b2lkIFdlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1l
cwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaW5qZWN0ZWQg
YnVuZGxlIEFQSS4KLSAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKCZtX3BhZ2UsIG1lc3NhZ2UsIGRl
c2NyaXB0aW9uLCB2YWx1ZSk7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6TG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2NyaXB0
aW9uLCB2YWx1ZSkpOworICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoJm1fcGFnZSwgbWVzc2FnZSwg
ZGVzY3JpcHRpb24sIFN0cmluZzo6bnVtYmVyKHZhbHVlLCBzaWduaWZpY2FudEZpZ3VyZXMpKTsK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUsIHNpZ25pZmljYW50Rmln
dXJlcywgU2hvdWxkU2FtcGxlOjpObykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCA4NzIzZmZjMTkyOGQy
YTM4ODE3MTlkZjA3OGYyNjY1YjRjZjgyY2Y5Li42ZmVkNGZkYWE0MTY4Mzg5Yjg3NzAwNTllNTU3
YjNhZWRmYTljMGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
CkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBsb2dEaWFnbm9z
dGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUsIFdlYkNv
cmU6OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGNvbnN0IFN0cmluZyYgdmFsdWUsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQg
c2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpIG92ZXJyaWRlOwogCiAg
ICAgV2ViUGFnZSYgbV9wYWdlOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>