<?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>136048</bug_id>
          
          <creation_ts>2014-08-18 13:47:42 -0700</creation_ts>
          <short_desc>Expose long mouse press WebKit API. Part of 135257 - Add long mouse press gesture</short_desc>
          <delta_ts>2014-08-18 15:03:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peyton Randolph">prandolph</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1029853</commentid>
    <comment_count>0</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-18 13:47:42 -0700</bug_when>
    <thetext>It would be convenient to have callbacks in the injected bundle and client for the long mouse press gesture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029860</commentid>
    <comment_count>1</comment_count>
      <attachid>236782</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-18 13:57:22 -0700</bug_when>
    <thetext>Created attachment 236782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029865</commentid>
    <comment_count>2</comment_count>
      <attachid>236782</attachid>
    <who name="">mitz</who>
    <bug_when>2014-08-18 14:09:53 -0700</bug_when>
    <thetext>Comment on attachment 236782
Patch

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:171
&gt; +    WKBundlePageDidBeginTrackingPotentialLongMousePressCallback            didBeginTrackingPotentialLongMousePress;
&gt; +    WKBundlePageDidRecognizeLongMousePressCallback                         didRecognizeLongMousePress;
&gt; +    WKBundlePageDidCancelTrackingPotentialLongMousePressCallback           didCancelTrackingPotentialLongMousePress;

These last three aren’t aligned with all of the above.

&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:209
&gt; +    WKTypeRef userDataToPass = 0;

Please use nullptr.

&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:219
&gt; +    WKTypeRef userDataToPass = 0;

Ditto.

&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:229
&gt; +    WKTypeRef userDataToPass = 0;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029873</commentid>
    <comment_count>3</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-18 14:21:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 236782 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236782&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:171
&gt; &gt; +    WKBundlePageDidBeginTrackingPotentialLongMousePressCallback            didBeginTrackingPotentialLongMousePress;
&gt; &gt; +    WKBundlePageDidRecognizeLongMousePressCallback                         didRecognizeLongMousePress;
&gt; &gt; +    WKBundlePageDidCancelTrackingPotentialLongMousePressCallback           didCancelTrackingPotentialLongMousePress;
&gt; 
&gt; These last three aren’t aligned with all of the above.

Aligned.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:209
&gt; &gt; +    WKTypeRef userDataToPass = 0;
&gt; 
&gt; Please use nullptr.

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:219
&gt; &gt; +    WKTypeRef userDataToPass = 0;
&gt; 
&gt; Ditto.

Fixed.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:229
&gt; &gt; +    WKTypeRef userDataToPass = 0;
&gt; 
&gt; Ditto.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029874</commentid>
    <comment_count>4</comment_count>
      <attachid>236784</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-18 14:21:41 -0700</bug_when>
    <thetext>Created attachment 236784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029897</commentid>
    <comment_count>5</comment_count>
      <attachid>236784</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-18 15:03:40 -0700</bug_when>
    <thetext>Comment on attachment 236784
Patch

Clearing flags on attachment: 236784

Committed r172729: &lt;http://trac.webkit.org/changeset/172729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029898</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-18 15:03:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236782</attachid>
            <date>2014-08-18 13:57:22 -0700</date>
            <delta_ts>2014-08-18 14:21:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136048-20140818135726.patch</filename>
            <type>text/plain</type>
            <size>36826</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI4Mzk0OTE1ODE3ZjMw
OWU2NWIxYmY0OTAxNzllMjM0YmNhMTE2Ni4uZGJmODQ5NjhhNDFmOGM5ZGNkNzllN2QwZTQxOTdi
NTg4NmEyNTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA4LTE4ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBsb25n
IG1vdXNlIHByZXNzIFdlYktpdCBBUEkuIFBhcnQgb2YgMTM1MjU3IC0gQWRkIGxvbmcgbW91c2Ug
cHJlc3MgZ2VzdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGxvbmcgbW91c2UgcHJlc3MgQVBJIGNhbGxiYWNrcyBp
biBib3RoIHRoZSBpbmplY3RlZCBidW5kbGUgYW5kIG9uIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IHRocm91Z2ggdGhlaXIgcmVzcGVjdGl2ZSBwYWdlIFVJIGNsaWVudHMuIFRoZSBjYWxsYmFja3Mg
YXJlIG1vZGVsZWQgb2ZmIG9mIHRoZSBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAorICAgICAgICBj
YWxsYmFjay4gTGlrZSB0aGUgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQgY2FsbGJhY2ssIHRoZXNl
IGNhbGxiYWNrcyBhbGxvdyB0aGUgYnVuZGxlIHRvIHBhc3MgCisgICAgICAgIGluZm9ybWF0aW9u
IHRvIHRoZSBVSSBwcm9jZXNzIHZpYSBhIHVzZXJEYXRhIG91dCBwYXJhbWV0ZXIuCisKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2lu
VHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
KTogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9t
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRCZWdpblRyYWNr
aW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KTogCisgICAg
ICAgIFBhc3MgdGhlIHByZXNzIGhpdCB0ZXN0IHJlc3VsdCB0byBraWNrIG9mZiB0aGUgbG9uZyBt
b3VzZSBwcmVzcy4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6YmVnaW5UcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzKTogTm90aWZ5IHRoZSBjaHJvbWUuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OnJlY29nbml6ZUxvbmdNb3VzZVByZXNzKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3MpOiAKKyAgICAgICAgRGl0dG8uIEFsc28gb3Bwb3J0dW5pc3RpY2FsbHkgcmVt
b3ZlIGEgcnVudGltZSBzd2l0Y2ggY2hlY2sgdG8gc2VlIGlmIGxvbmcgcHJlc3NpbmcgaXMgZW5h
YmxlZC4gVGhlCisgICAgICAgIHJ1bnRpbWUgc3dpdGNoIGNoZWNrIHdhcyBvbmx5IHRyaWdnZXJl
ZCB3aGVuIGxvbmcgcHJlc3Npbmcgd2FzIGRpc2FibGVkIGluIHRoZSBtaWRkbGUgb2YgYSBsb25n
IHByZXNzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMTQtMDgtMTQgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0d28gdW51
c2VkIFJhbmdlIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MDBlMjcyOWQwYzliZjdmNjM5ZGM5
ZGQ2MzdmZTFkNzYzZGFhODI3Li42MDBkYWM4ZTc1YWEzNTNhZGU0MzRjZDI0MjgwMzMxYmViNjgz
YTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTQtMDgtMTggIFBleXRvbiBSYW5k
b2xwaCAgPHByYW5kb2xwaEBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGxvbmcgbW91c2Ug
cHJlc3MgV2ViS2l0IEFQSS4gUGFydCBvZiAxMzUyNTcgLSBBZGQgbG9uZyBtb3VzZSBwcmVzcyBn
ZXN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzYwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGV4cG9zZXMgbG9uZyBtb3VzZSBwcmVzcyBBUEkgY2FsbGJhY2tzIGluIGJvdGgg
dGhlIGluamVjdGVkIGJ1bmRsZSBhbmQgb24gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgdGhyb3Vn
aCB0aGVpciByZXNwZWN0aXZlIHBhZ2UgVUkgY2xpZW50cy4gVGhlIGNhbGxiYWNrcyBhcmUgbW9k
ZWxlZCBvZmYgb2YgdGhlIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CisgICAgICAgIGNhbGxiYWNr
LiBMaWtlIHRoZSBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCBjYWxsYmFjaywgdGhlc2UgY2FsbGJh
Y2tzIGFsbG93IHRoZSBidW5kbGUgdG8gcGFzcyAKKyAgICAgICAgaW5mb3JtYXRpb24gdG8gdGhl
IFVJIHByb2Nlc3MgdmlhIGEgdXNlckRhdGEgb3V0IHBhcmFtZXRlci4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRpZEJl
Z2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAoQVBJ
OjpVSUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAg
KEFQSTo6VUlDbGllbnQ6OmRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdN
b3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKTogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6
SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudDo6ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExv
bmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdl
VUlDbGllbnQ6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChB
UEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ6OmRpZENhbmNlbFRyYWNraW5nUG90ZW50
aWFsTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkQmVnaW5UcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlh
bExvbmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKwogMjAxNC0wOC0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2Ug
YW5kIE5FV1MgZm9yIDIuNS4zIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGI1
MmMyOTU4OGFhMWE5M2VhMTE3ZWQzYWM4NmJkNjBiNmI5YWE1ZS4uZWE0MDc5YzY3NGZlNWUzZmQy
ZjY4MGFjNjUzMzRkODU0NTA1Zjc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNjU0LDQg
KzY1NCwxOSBAQCB2b2lkIENocm9tZTo6bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkgY29u
c3QKICAgICAgICAgb2JzZXJ2ZXJzW2ldLT53aWxsT3BlblBvcHVwKCk7CiB9CiAKK3ZvaWQgQ2hy
b21lOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9p
bnQmIG1vdXNlRG93blBvc2l0aW9uLCBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0
KQoreworICAgIG1fY2xpZW50LmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVz
cyhtb3VzZURvd25Qb3NpdGlvbiwgaGl0VGVzdFJlc3VsdCk7Cit9CisKK3ZvaWQgQ2hyb21lOjpk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpCit7CisgICAgbV9jbGllbnQuZGlkUmVjb2duaXpl
TG9uZ01vdXNlUHJlc3MoKTsKK30KKwordm9pZCBDaHJvbWU6OmRpZENhbmNlbFRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xpZW50LmRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKaW5kZXggYzJlOGVmMmIxMjFiM2MyZDZlOWI2NGUyNGUyNTY1OWJiZmMw
NWRiYy4uNDEzNGI0Yzg1ZTY2OTc0ZDYxNTdkNTY5ZjdkNjkzODQ3NWQyNzhhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEdlb2xvY2F0aW9uOwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKK2NsYXNzIEludFBvaW50
OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBQYWdlOwpA
QCAtMTkzLDYgKzE5NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKIAorICAgIHZvaWQgZGlk
QmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50JiwgY29u
c3QgSGl0VGVzdFJlc3VsdCYpOworICAgIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3Mo
KTsKKyAgICB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsK
KwogcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA1ZmJhMzgzMTllY2ZjYTgzZTMy
NmQzODg2MmRhNWZiM2I4OTlmY2UwLi4xOGRkYWVkZGUwYTFhZDkzMzczM2QyNjA2ZWFmNmVlNGM0
YjliNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQxMCw2ICs0MTAsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSB7IHJldHVybiBm
YWxzZTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5UcmFja2luZ1BvdGVu
dGlhbExvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50JiBtb3VzZURvd25Qb3NpdGlvbiwgY29u
c3QgSGl0VGVzdFJlc3VsdCYpIHsgVU5VU0VEX1BBUkFNKG1vdXNlRG93blBvc2l0aW9uKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkgeyB9
CisKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN0YXR1cykg
eyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IFVOVVNF
RF9QQVJBTShzdGF0dXMpOyB9CiAKICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBtaW5pbXVtV2luZG93
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0U2l6ZSgxMDAsIDEwMCk7IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDhjMjUwNWQ3ZDIzMDYwNWVjOTBjMzczYzNkMWJk
OWZiNGE2ZGJhZi4uMTZlMzM1ODAxZGVmMTRhZjMzYmQwY2U2NGQyNTkyMWRkZmZiYzhhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNzcwLDcgKzc3MCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYgZXZlCiAKICAgICBpZiAoZXZlbnQuZXZlbnQoKS5idXR0b24oKSA9PSBM
ZWZ0QnV0dG9uICYmIGV2ZW50LmlzT3ZlckxpbmsoKSkgewogICAgICAgICAvLyBGSVhNRSAxMzU3
MDM6IEhhbmRsZSBsb25nIHByZXNzIGZvciBtb3JlIHRoYW4ganVzdCBsaW5rcy4KLSAgICAgICAg
YmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7CisgICAgICAgIGJlZ2luVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhldmVudC5oaXRUZXN0UmVzdWx0KCkpOwogICAg
IH0KIAogICAgIC8vIFdlIGRvbid0IGRvIHRoaXMgYXQgdGhlIHN0YXJ0IG9mIG1vdXNlIGRvd24g
aGFuZGxpbmcsCkBAIC0xNTY1LDcgKzE1NjUsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6YXV0b0hp
ZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogfQogI2VuZGlm
CiAgICAgCi12b2lkIEV2ZW50SGFuZGxlcjo6YmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzKCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpiZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01v
dXNlUHJlc3MoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCkKIHsKICAgICBjbGVh
ckxvbmdNb3VzZVByZXNzU3RhdGUoKTsKIApAQCAtMTU3NSw3ICsxNTc1LDcgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6OmJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcygpCiAKICAgICBt
X2xvbmdNb3VzZVByZXNzVGltZXIuc3RhcnRPbmVTaG90KGxvbmdNb3VzZVByZXNzUmVjb2duaXRp
b25EZWxheSk7CiAKLSAgICAvLyBGSVhNRSAxMzU1ODA6IEJ1YmJsZSBsb25nIG1vdXNlIHByZXNz
IHVwIHRvIHRoZSBjbGllbnQuCisgICAgcGFnZS0+Y2hyb21lKCkuZGlkQmVnaW5UcmFja2luZ1Bv
dGVudGlhbExvbmdNb3VzZVByZXNzKG1fbW91c2VEb3duUG9zLCBoaXRUZXN0UmVzdWx0KTsKIH0K
ICAgICAKIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyhUaW1lcjxF
dmVudEhhbmRsZXI+JiB0aW1lcikKQEAgLTE1OTIsNyArMTU5Miw3IEBAIHZvaWQgRXZlbnRIYW5k
bGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyhUaW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikK
ICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwogICAgIGludmFsaWRhdGVDbGljaygpOwogCi0g
ICAgLy8gRklYTUUgMTM1NTgwOiBCdWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xp
ZW50LgorICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CiB9
CiAgICAgCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcygpCkBAIC0xNjAzLDEwICsxNjAzLDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5j
ZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkKICAgICBjbGVhckxvbmdNb3VzZVBy
ZXNzU3RhdGUoKTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAo
IShwYWdlICYmIHBhZ2UtPnNldHRpbmdzKCkubG9uZ01vdXNlUHJlc3NFbmFibGVkKCkpKQorICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUUgMTM1NTgwOiBCdWJi
bGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xpZW50LgorICAgIHBhZ2UtPmNocm9tZSgp
LmRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKIH0KIAogdm9pZCBF
dmVudEhhbmRsZXI6OmNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAppbmRleCAxMGU4YmIxMDQyY2NjZmNlZjAwYjE1NGQ0YTllNzZjYThjNjA1M2E4
Li5kNThmZWQ2YTk1MGFmNjhjMDJkNTgyMWJmNmVjZWUwNDVmYzlhYzA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKQEAgLTQ0MCw3ICs0NDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
YXV0b0hpZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mKTsKICNlbmRpZgog
Ci0gICAgdm9pZCBiZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKKyAgICB2
b2lkIGJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBIaXRUZXN0UmVz
dWx0Jik7CiAgICAgdm9pZCByZWNvZ25pemVMb25nTW91c2VQcmVzcyhUaW1lcjxFdmVudEhhbmRs
ZXI+Jik7CiAgICAgdm9pZCBjYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7
CiAgICAgYm9vbCBsb25nTW91c2VQcmVzc0h5c3RlcmVzaXNFeGNlZWRlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGMyNTg4MDU3ZWYyNjZkZDZk
Yjk0MTMwMmViOWU1NjgyNmY1MGMzM2IuLjFjYTE1ZTM3NWYyMWI2ZjBjZDlkYjg1ODFlZDU2Zjdk
N2U4YzRlOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
QEAgLTE0MCw2ICsxNDAsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0
YXRlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYktpdDo6V2ViUGFn
ZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJLaXQ6OldlYkhpdFRl
c3RSZXN1bHQ6OkRhdGEmLCBBUEk6Ok9iamVjdCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNvZ25pemVMb25nTW91c2VQcmVzcyhXZWJLaXQ6OldlYlBhZ2VQcm94eSosIEFQSTo6T2JqZWN0
KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01v
dXNlUHJlc3MoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBBUEk6Ok9iamVjdCopIHsgfQorCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnNGb3JF
bGVtZW50KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICosIFJldGFpblB0cjxOU0FycmF5PiBkZWZh
dWx0QWN0aW9ucykgeyByZXR1cm4gV1RGOjptb3ZlKGRlZmF1bHRBY3Rpb25zKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWROb3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGQ5
YTNhOTFmYzg0OWNjMjE2OTNkMGUwOTdhODMyYTFlMTdmMTFhNTIuLjNjMDA2YmM0MGQwYTIxOGM4
ZWM4YWNjNjFmYzcwOGI1ZGEwYTAwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRy
YWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBD
bGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdL
UGFnZVVJQ2xpZW50VjM+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VV
SUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNs
aWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0PiBWZXJzaW9uczsKIH07CiAKIH0KQEAgLTE1ODMsNiAr
MTU4MywzMSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwg
Y29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogCiAgICAgICAgICAgICBtX2NsaWVu
dC5waW5uZWRTdGF0ZURpZENoYW5nZSh0b0FQSSgmcGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiAgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5UcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgSW50UG9p
bnQmIG1vdXNlRG93blBvc2l0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBkYXRh
LCBBUEk6Ok9iamVjdCogdXNlckluZm8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQuZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgUmVmUHRyPFdlYkhpdFRlc3RSZXN1bHQ+IHdl
YkhpdFRlc3RSZXN1bHQgPSBXZWJIaXRUZXN0UmVzdWx0OjpjcmVhdGUoZGF0YSk7CisgICAgICAg
ICAgICBtX2NsaWVudC5kaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3ModG9B
UEkocGFnZSksIHRvQVBJKG1vdXNlRG93blBvc2l0aW9uKSwgdG9BUEkod2ViSGl0VGVzdFJlc3Vs
dC5nZXQoKSksIHRvQVBJKHVzZXJJbmZvKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVz
cyhXZWJQYWdlUHJveHkqIHBhZ2UsIEFQSTo6T2JqZWN0KiB1c2VySW5mbykKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcykKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZFJlY29nbml6
ZUxvbmdNb3VzZVByZXNzKHRvQVBJKHBhZ2UpLCB0b0FQSSh1c2VySW5mbyksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhXZWJQYWdlUHJveHkqIHBhZ2UsIEFQ
STo6T2JqZWN0KiB1c2VySW5mbykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVu
dC5kaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2FuY2VsVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcyh0b0FQSShwYWdlKSwgdG9BUEkodXNlckluZm8pLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CiAgICAgfTsKIAogICAgIHRvSW1wbChwYWdl
UmVmKS0+c2V0VUlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxVSUNsaWVudD4od2tDbGllbnQpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5k
ZXggZmU2Njg2OWI5MzQzMzU5NjlhMGVmOWEwZWJlYTJmMzM0NmQxY2Y2Zi4uNDAzNzdkNmVmM2Q5
MTUyNTUzMzBkOWQwYWY3OTFiZGNhNTRmOGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTg2LDYgKzg2LDkgQEAgdHlwZWRlZiB2
b2lkICgqV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBpbml0aWEKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlvbmFyeSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3ND
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUG9pbnQgbW91c2VEb3duUG9zaXRpb24sIFdLSGl0
VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVjb2duaXplTG9uZ01v
dXNlUHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVk
ICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0
dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0zMDksNiArMzEyLDcwIEBAIHR5
cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjMgewogICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3Rh
dGVEaWRDaGFuZ2U7CiB9IFdLUGFnZVVJQ2xpZW50VjM7CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFn
ZVVJQ2xpZW50VjQgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4K
KyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAg
ICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAg
ICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdl
VGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3Vz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
Zm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9t
cHQ7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNz
aW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
IG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAg
V0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVX
aGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhh
bmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAg
V0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklz
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1Bh
Z2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0Jhcklz
VmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVz
aXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VT
ZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRT
Y3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdl
UnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAg
IFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAg
ICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRv
IGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2
ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRK
YXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3
UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVOZXdQYWdlOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
KyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBp
Y2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0Nv
bG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworICAgIAorICAgIC8vIFZlcnNpb24g
My4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lv
biA0LgorICAgIFdLUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0Nh
bGxiYWNrICAgICAgICAgICAgICAgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzOworICAgIFdLUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQ
YWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAg
ICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworfSBXS1Bh
Z2VVSUNsaWVudFY0OworCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tf
RU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIp
ID0gMiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
YjZkMmRjY2RlOGZhZGI3MDY2MzMzZjZhYjgwZDFkNzgzYjM1MDhmNS4uNWI1YmQ4YjM2ZmEyNWY2
ZDk4MWVkMjAzMDVlNDlhNzgzNmRmOGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTMwNjMsNiArMzA2MywzNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0
VGVzdAogICAgIG1fdWlDbGllbnQtPm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHRoaXMsIGhpdFRl
c3RSZXN1bHREYXRhLCBtb2RpZmllcnMsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBJ
bnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEm
IGhpdFRlc3RSZXN1bHREYXRhLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91
aUNsaWVudC0+ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKHRoaXMsIG1v
dXNlRG93blBvc2l0aW9uLCBoaXRUZXN0UmVzdWx0RGF0YSwgdXNlckRhdGEuZ2V0KCkpOworfQor
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRh
OworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIHByb2Nlc3MoKSk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fdWlDbGllbnQtPmRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKHRoaXMsIHVzZXJEYXRhLmdldCgpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOworICAgIFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nl
c3MoKSk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fdWlDbGllbnQtPmRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3ModGhpcywgdXNlckRhdGEuZ2V0KCkpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94
eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKICAg
ICBBU1NFUlQoY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOTY1ZjNjODI5Yjg0MTNiOGNhYmJh
ZmEwZDA0ZTM1NmM1YmU3ZGVkMC4uYjc4YWIwMDVhZTExZTdlOTU0NTk5MDRmOWNlODY2MDJjZDE5
NDhiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTkyLDYg
Kzk5MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdChi
b29sJiByZXN1bHQpOwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAg
ICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIElQQzo6TWVzc2FnZURl
Y29kZXImKTsKKworICAgIHZvaWQgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtb3VzZURvd25Qb3NpdGlvbiwgY29uc3QgV2Vi
SGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIElQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKElQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJl
c3MoSVBDOjpNZXNzYWdlRGVjb2RlciYpOworCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCiAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qgb3Bh
cXVlUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYgcGx1Z2luVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlVVJM
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VV
UkxTdHJpbmcpOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
YTFiYjVkODgzYTRlYTdlYjY2MDhhM2YwYTZlYWZlYTYxMDZkMzc3Yy4uNGE2ZmQ1Nzk5NDY5ZGY0
YWI0YTMzYWU3YWQ0MmU4Nzc0ZDJmMWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMCw2ICszMCwxMSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVz
dWx0KSBEZWxheWVkCiAgICAgU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIC0+IChib29sIHNo
b3VsZEludGVydXB0KQogICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYktpdDo6V2ViSGl0
VGVzdFJlc3VsdDo6RGF0YSBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9kaWZpZXJzLCBX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRp
YworCisgICAgRGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYkNvcmU6
OkludFBvaW50IG1vdXNlRG93blBvc2l0aW9uLCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEgaGl0VGVzdFJlc3VsdERhdGEsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisgICAgRGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3Mo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFk
aWMKKyAgICBEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBVbmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQodWludDMyX3QgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFN0cmluZyBtaW1l
VHlwZSwgU3RyaW5nIHBsdWdpblVSTFN0cmluZywgU3RyaW5nIHBsdWdpbnNwYWdlQXR0cmlidXRl
VVJMU3RyaW5nLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0cmluZyBwYWdlVVJMU3RyaW5nKQog
I2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQ
YWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggMzdmZGU2YmM2NzU1MjI1
ZWM4ZWZhMDY1OThlMTBkZTFlMTg5NzA1NC4uMDM4MDQxYmNmYWU3ZTNmNjI4NDA3ZWM5ZTFlYWFk
NGFkZmQ0YjgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5oCkBAIC04NSw2ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBwbHVnSW5TdGFydExhYmVsU3VidGl0bGUoY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVU
eXBlKSBjb25zdCB7IFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7IHJldHVybiBlbXB0eVN0cmluZygp
OyB9CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25z
dCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBwbHVn
SW5FeHRyYVNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KKworICAgIHZp
cnR1YWwgdm9pZCBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoV2ViS2l0
OjpXZWJQYWdlKiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpIaXRU
ZXN0UmVzdWx0JiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNlckRhdGEpIHsgVU5VU0VEX1BBUkFN
KHVzZXJEYXRhKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVz
cyhXZWJLaXQ6OldlYlBhZ2UqLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgeyBVTlVT
RURfUEFSQU0odXNlckRhdGEpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoV2ViS2l0OjpXZWJQYWdlKiwgUmVmUHRyPEFQSTo6T2Jq
ZWN0PiYgdXNlckRhdGEpIHsgVU5VU0VEX1BBUkFNKHVzZXJEYXRhKTsgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSW5qZWN0ZWRCdW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlD
bGllbnQuaAppbmRleCAxNDQyNjY1N2E4NDMzNGZmMTdiYzk4MzJlNWY1Y2Y3NzRlNTNmZDVhLi5h
NzljOTZjNjcxOWI0ZGEwZTdmN2JmZmJjMmRhYTExYTk0ZDBjZDkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC01NCw2ICs1NCw5IEBAIHR5cGVkZWYgV0tT
dHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVTdGFydExhYmVsVGl0bGVDYWxsYmFj
aykoV0tTdHJpbmdSCiB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3Jl
YXRlU3RhcnRMYWJlbFN1YnRpdGxlQ2FsbGJhY2spKFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VQ
bHVnSW5DcmVhdGVFeHRyYVN0eWxlU2hlZXRDYWxsYmFjaykoY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFT
Y3JpcHRDYWxsYmFjaykoY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFj
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLUG9pbnQgbW91c2VEb3duUG9zaXRpb24sIFdLQnVu
ZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJl
Y29nbml6ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1R5
cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAo
KldLQnVuZGxlUGFnZURpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudEJh
c2UgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTEzMyw2ICsxMzYsNDEgQEAgdHlwZWRl
ZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiB7CiAgICAgV0tCdW5kbGVQYWdlUGx1Z0lu
Q3JlYXRlRXh0cmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQ
bHVnSW5FeHRyYVNjcmlwdDsKIH0gV0tCdW5kbGVQYWdlVUlDbGllbnRWMjsKIAordHlwZWRlZiBz
dHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnRWMyB7CisgICAgV0tCdW5kbGVQYWdlVUlDbGllbnRC
YXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisg
ICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlVG9Db25zb2xl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGU7
CisgICAgV0tCdW5kbGVQYWdlV2lsbFNldFN0YXR1c2JhclRleHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWxsU2V0U3RhdHVzYmFyVGV4dDsKKyAgICBXS0J1bmRsZVBhZ2VX
aWxsUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bGxSdW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRD
b25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdENv
bmZpcm07CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0J1
bmRsZVBhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLQnVuZGxlUGFnZURpZFNjcm9s
bENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNj
cm9sbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVG
aWxlRm9yVXBsb2FkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRHZW5l
cmF0ZUZpbGVGb3JVcGxvYWQ7CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2Fk
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUZpbGVGb3JVcGxvYWQ7
CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnVzZWQyOworICAgIFdLQnVuZGxlUGFnZVN0YXR1c0JhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNp
YmxlOworICAgIFdLQnVuZGxlUGFnZU1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VU
b29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv
b2xiYXJzQXJlVmlzaWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VS
ZWFjaGVkQXBwQ2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgIGRp
ZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOworCisgICAgLy8gVmVyc2lvbiAyLgor
ICAgIFdLQnVuZGxlUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkRXhjZWVkRGF0YWJhc2VRdW90YTsKKyAgICBXS0J1bmRsZVBhZ2VQ
bHVnSW5DcmVhdGVTdGFydExhYmVsVGl0bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVBsdWdJblN0YXJ0TGFiZWxUaXRsZTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVT
dGFydExhYmVsU3VidGl0bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJblN0
YXJ0TGFiZWxTdWJ0aXRsZTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVN0eWxl
U2hlZXRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJbkV4dHJhU3R5bGVT
aGVldDsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVNjcmlwdENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJbkV4dHJhU2NyaXB0OworCisgICAgLy8g
VmVyc2lvbiAzLgorICAgIFdLQnVuZGxlUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25n
TW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgICAgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExv
bmdNb3VzZVByZXNzOworICAgIFdLQnVuZGxlUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJl
c3M7CisgICAgV0tCdW5kbGVQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQ
cmVzc0NhbGxiYWNrICAgICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzOworfSBXS0J1bmRsZVBhZ2VVSUNsaWVudFYzOworCiBlbnVtIHsga1dLQnVuZGxlUGFn
ZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGlj
aXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5k
bGVQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKaW5kZXggOGIxMGNlMmNkMDA1ZjkyYzRkNTU1
YTdmZjA5YTBhNGI0NDE4NWFhMi4uYzU0ZDQ5YWI0ZmQ4M2I1MjRiZmQ1Mzc5ZDYyN2IwOWZiMTY2
ZTliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKQEAg
LTE5OSw0ICsxOTksMzYgQEAgU3RyaW5nIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpwbHVn
SW5FeHRyYVNjcmlwdCgpIGNvbnN0CiAgICAgcmV0dXJuIHNjcmlwdCA/IHNjcmlwdC0+c3RyaW5n
KCkgOiBTdHJpbmcoKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlk
QmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0
IEludFBvaW50JiBtb3VzZURvd25Qb3NpdGlvbiwgY29uc3QgSGl0VGVzdFJlc3VsdCYgY29yZUhp
dFRlc3RSZXN1bHQsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKQoreworICAgIGlmICgh
bV9jbGllbnQuZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKQorICAgICAg
ICByZXR1cm47CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0PiBoaXRU
ZXN0UmVzdWx0ID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVhdGUoY29yZUhpdFRl
c3RSZXN1bHQpOworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBtX2Ns
aWVudC5kaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3ModG9BUEkocGFnZSks
IHRvQVBJKG1vdXNlRG93blBvc2l0aW9uKSwgdG9BUEkoaGl0VGVzdFJlc3VsdC5nZXQoKSksICZ1
c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICB1c2VyRGF0YSA9
IGFkb3B0UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOworfQorCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyhXZWJQYWdlKiBwYWdl
LCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRp
ZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBXS1R5cGVS
ZWYgdXNlckRhdGFUb1Bhc3MgPSAwOworICAgIG1fY2xpZW50LmRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKHRvQVBJKHBhZ2UpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CisgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsK
K30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkQ2FuY2VsVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzcyhXZWJQYWdlKiBwYWdlLCBSZWZQdHI8QVBJOjpPYmplY3Q+
JiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZENhbmNlbFRyYWNraW5nUG90ZW50
aWFsTG9uZ01vdXNlUHJlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIFdLVHlwZVJlZiB1c2Vy
RGF0YVRvUGFzcyA9IDA7CisgICAgbV9jbGllbnQuZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxM
b25nTW91c2VQcmVzcyh0b0FQSShwYWdlKSwgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOworICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9Q
YXNzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5oCmluZGV4IGVmNzkyNmViZGFmZWEyNTIyODJkNDA0OTc2MWQ1OTcx
ZGQwZjE1NWQuLjYzYTRhYmI0NTJjNmUxNzU5MDMxYWM5YWY1NGQyODg3YWQzNDI3ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAg
bmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPYmplY3Q7CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVu
dFRyYWl0czxXS0J1bmRsZVBhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVw
bGU8V0tCdW5kbGVQYWdlVUlDbGllbnRWMCwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMSwgV0tCdW5k
bGVQYWdlVUlDbGllbnRWMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVu
ZGxlUGFnZVVJQ2xpZW50VjAsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjEsIFdLQnVuZGxlUGFnZVVJ
Q2xpZW50VjIsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjM+IFZlcnNpb25zOwogfTsKIH0KIApAQCAt
NjksNiArNjksMTAgQEAgcHVibGljOgogICAgIFN0cmluZyBwbHVnSW5TdGFydExhYmVsU3VidGl0
bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHBs
dWdJbkV4dHJhU3R5bGVTaGVldCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBwbHVnSW5F
eHRyYVNjcmlwdCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRCZWdpblRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoV2ViUGFnZSosIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiwgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVz
ZXJEYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKFdl
YlBhZ2UqLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYlBhZ2UqLCBSZWZQ
dHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAxMzI2NGRiNWZiZTNhNDUyMWY1
ZjNlNjliYTdkNjQ4YzE4MWE3OWY0Li5iYzlmOTZhNmIzN2EyMzQxZGM3NzAyZWViY2VhZjBhODM5
MjZiMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC02MDQsNiArNjA0LDQwIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiBoaXRUZXN0UmVzdWx0CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6Ok1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHdlYkhpdFRlc3RSZXN1bHREYXRhLCBtb2Rp
ZmllckZsYWdzLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQo
KSkpKTsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRp
YWxMb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0
IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCit7CisgICAgUmVmUHRyPEFQSTo6T2JqZWN0
PiB1c2VyRGF0YTsKKworICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KKyAgICBtX3Bh
Z2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5kaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3MobV9wYWdlLCBtb3VzZURvd25Qb3NpdGlvbiwgaGl0VGVzdFJlc3VsdCwgdXNl
ckRhdGEpOworICAgIAorICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgorICAgIFdlYkhpdFRl
c3RSZXN1bHQ6OkRhdGEgd2ViSGl0VGVzdFJlc3VsdERhdGEoaGl0VGVzdFJlc3VsdCk7CisgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEJlZ2luVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcyhtb3VzZURvd25Qb3NpdGlvbiwgd2ViSGl0VGVzdFJlc3VsdERh
dGEsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwor
fQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQor
eworICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CisKKyAgICAvLyBOb3RpZnkgdGhl
IGJ1bmRsZSBjbGllbnQuCisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZGlk
UmVjb2duaXplTG9uZ01vdXNlUHJlc3MobV9wYWdlLCB1c2VyRGF0YSk7CisKKyAgICAvLyBOb3Rp
ZnkgdGhlIFVJUHJvY2Vzcy4KKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEuZ2V0KCkpKSk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRD
YW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkKK3sKKyAgICBSZWZQdHI8QVBJ
OjpPYmplY3Q+IHVzZXJEYXRhOworCisgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50Lgor
ICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLmRpZENhbmNlbFRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MobV9wYWdlLCB1c2VyRGF0YSk7CisKKyAgICAvLyBOb3RpZnkg
dGhlIFVJUHJvY2Vzcy4KKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhJbmplY3RlZEJ1bmRsZVVz
ZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKK30KKwogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQog
ewogICAgIC8vIE9ubHkgc2VuZCBhIHRvb2wgdGlwIHRvIHRoZSBXZWJQcm9jZXNzIGlmIGl0IGhh
cyBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZGQxNjJmY2FkYzdhZjQ5NTZmNzdjMTk0Yjk0YjM4YTIy
NmY3OWFjMi4uZjY0NTdhMTY2ZDJhNTlkM2JkYzZhM2E4ZWMzZWRiMTc2N2Y2Yzg5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC0xMzAsNyArMTMwLDExIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIG92ZXJyaWRlOwotICAgIAorCisgICAg
dmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Okhp
dFRlc3RSZXN1bHQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9u
Z01vdXNlUHJlc3MoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsVHJhY2tp
bmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcygpIG92ZXJyaWRlOworCiAgICAgdmlydHVhbCB2b2lk
IHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJp
ZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236784</attachid>
            <date>2014-08-18 14:21:41 -0700</date>
            <delta_ts>2014-08-18 15:03:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136048-20140818142144.patch</filename>
            <type>text/plain</type>
            <size>36835</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI4Mzk0OTE1ODE3ZjMw
OWU2NWIxYmY0OTAxNzllMjM0YmNhMTE2Ni4uZGJmODQ5NjhhNDFmOGM5ZGNkNzllN2QwZTQxOTdi
NTg4NmEyNTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA4LTE4ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBsb25n
IG1vdXNlIHByZXNzIFdlYktpdCBBUEkuIFBhcnQgb2YgMTM1MjU3IC0gQWRkIGxvbmcgbW91c2Ug
cHJlc3MgZ2VzdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGxvbmcgbW91c2UgcHJlc3MgQVBJIGNhbGxiYWNrcyBp
biBib3RoIHRoZSBpbmplY3RlZCBidW5kbGUgYW5kIG9uIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IHRocm91Z2ggdGhlaXIgcmVzcGVjdGl2ZSBwYWdlIFVJIGNsaWVudHMuIFRoZSBjYWxsYmFja3Mg
YXJlIG1vZGVsZWQgb2ZmIG9mIHRoZSBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAorICAgICAgICBj
YWxsYmFjay4gTGlrZSB0aGUgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQgY2FsbGJhY2ssIHRoZXNl
IGNhbGxiYWNrcyBhbGxvdyB0aGUgYnVuZGxlIHRvIHBhc3MgCisgICAgICAgIGluZm9ybWF0aW9u
IHRvIHRoZSBVSSBwcm9jZXNzIHZpYSBhIHVzZXJEYXRhIG91dCBwYXJhbWV0ZXIuCisKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2lu
VHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
KTogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9t
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRCZWdpblRyYWNr
aW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KTogCisgICAg
ICAgIFBhc3MgdGhlIHByZXNzIGhpdCB0ZXN0IHJlc3VsdCB0byBraWNrIG9mZiB0aGUgbG9uZyBt
b3VzZSBwcmVzcy4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6YmVnaW5UcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzKTogTm90aWZ5IHRoZSBjaHJvbWUuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OnJlY29nbml6ZUxvbmdNb3VzZVByZXNzKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3MpOiAKKyAgICAgICAgRGl0dG8uIEFsc28gb3Bwb3J0dW5pc3RpY2FsbHkgcmVt
b3ZlIGEgcnVudGltZSBzd2l0Y2ggY2hlY2sgdG8gc2VlIGlmIGxvbmcgcHJlc3NpbmcgaXMgZW5h
YmxlZC4gVGhlCisgICAgICAgIHJ1bnRpbWUgc3dpdGNoIGNoZWNrIHdhcyBvbmx5IHRyaWdnZXJl
ZCB3aGVuIGxvbmcgcHJlc3Npbmcgd2FzIGRpc2FibGVkIGluIHRoZSBtaWRkbGUgb2YgYSBsb25n
IHByZXNzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMTQtMDgtMTQgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0d28gdW51
c2VkIFJhbmdlIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MDBlMjcyOWQwYzliZjdmNjM5ZGM5
ZGQ2MzdmZTFkNzYzZGFhODI3Li42MDBkYWM4ZTc1YWEzNTNhZGU0MzRjZDI0MjgwMzMxYmViNjgz
YTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTQtMDgtMTggIFBleXRvbiBSYW5k
b2xwaCAgPHByYW5kb2xwaEBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGxvbmcgbW91c2Ug
cHJlc3MgV2ViS2l0IEFQSS4gUGFydCBvZiAxMzUyNTcgLSBBZGQgbG9uZyBtb3VzZSBwcmVzcyBn
ZXN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzYwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGV4cG9zZXMgbG9uZyBtb3VzZSBwcmVzcyBBUEkgY2FsbGJhY2tzIGluIGJvdGgg
dGhlIGluamVjdGVkIGJ1bmRsZSBhbmQgb24gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgdGhyb3Vn
aCB0aGVpciByZXNwZWN0aXZlIHBhZ2UgVUkgY2xpZW50cy4gVGhlIGNhbGxiYWNrcyBhcmUgbW9k
ZWxlZCBvZmYgb2YgdGhlIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CisgICAgICAgIGNhbGxiYWNr
LiBMaWtlIHRoZSBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCBjYWxsYmFjaywgdGhlc2UgY2FsbGJh
Y2tzIGFsbG93IHRoZSBidW5kbGUgdG8gcGFzcyAKKyAgICAgICAgaW5mb3JtYXRpb24gdG8gdGhl
IFVJIHByb2Nlc3MgdmlhIGEgdXNlckRhdGEgb3V0IHBhcmFtZXRlci4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRpZEJl
Z2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAoQVBJ
OjpVSUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAg
KEFQSTo6VUlDbGllbnQ6OmRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdN
b3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKTogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6
SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudDo6ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExv
bmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdl
VUlDbGllbnQ6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChB
UEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ6OmRpZENhbmNlbFRyYWNraW5nUG90ZW50
aWFsTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkQmVnaW5UcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlh
bExvbmdNb3VzZVByZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKwogMjAxNC0wOC0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2Ug
YW5kIE5FV1MgZm9yIDIuNS4zIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGI1
MmMyOTU4OGFhMWE5M2VhMTE3ZWQzYWM4NmJkNjBiNmI5YWE1ZS4uZWE0MDc5YzY3NGZlNWUzZmQy
ZjY4MGFjNjUzMzRkODU0NTA1Zjc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNjU0LDQg
KzY1NCwxOSBAQCB2b2lkIENocm9tZTo6bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkgY29u
c3QKICAgICAgICAgb2JzZXJ2ZXJzW2ldLT53aWxsT3BlblBvcHVwKCk7CiB9CiAKK3ZvaWQgQ2hy
b21lOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9p
bnQmIG1vdXNlRG93blBvc2l0aW9uLCBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0
KQoreworICAgIG1fY2xpZW50LmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVz
cyhtb3VzZURvd25Qb3NpdGlvbiwgaGl0VGVzdFJlc3VsdCk7Cit9CisKK3ZvaWQgQ2hyb21lOjpk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpCit7CisgICAgbV9jbGllbnQuZGlkUmVjb2duaXpl
TG9uZ01vdXNlUHJlc3MoKTsKK30KKwordm9pZCBDaHJvbWU6OmRpZENhbmNlbFRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xpZW50LmRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKaW5kZXggYzJlOGVmMmIxMjFiM2MyZDZlOWI2NGUyNGUyNTY1OWJiZmMw
NWRiYy4uNDEzNGI0Yzg1ZTY2OTc0ZDYxNTdkNTY5ZjdkNjkzODQ3NWQyNzhhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEdlb2xvY2F0aW9uOwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKK2NsYXNzIEludFBvaW50
OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBQYWdlOwpA
QCAtMTkzLDYgKzE5NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKIAorICAgIHZvaWQgZGlk
QmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50JiwgY29u
c3QgSGl0VGVzdFJlc3VsdCYpOworICAgIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3Mo
KTsKKyAgICB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsK
KwogcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA1ZmJhMzgzMTllY2ZjYTgzZTMy
NmQzODg2MmRhNWZiM2I4OTlmY2UwLi4xOGRkYWVkZGUwYTFhZDkzMzczM2QyNjA2ZWFmNmVlNGM0
YjliNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQxMCw2ICs0MTAsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSB7IHJldHVybiBm
YWxzZTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5UcmFja2luZ1BvdGVu
dGlhbExvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50JiBtb3VzZURvd25Qb3NpdGlvbiwgY29u
c3QgSGl0VGVzdFJlc3VsdCYpIHsgVU5VU0VEX1BBUkFNKG1vdXNlRG93blBvc2l0aW9uKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkgeyB9
CisKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN0YXR1cykg
eyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IFVOVVNF
RF9QQVJBTShzdGF0dXMpOyB9CiAKICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBtaW5pbXVtV2luZG93
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0U2l6ZSgxMDAsIDEwMCk7IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDhjMjUwNWQ3ZDIzMDYwNWVjOTBjMzczYzNkMWJk
OWZiNGE2ZGJhZi4uMTZlMzM1ODAxZGVmMTRhZjMzYmQwY2U2NGQyNTkyMWRkZmZiYzhhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNzcwLDcgKzc3MCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYgZXZlCiAKICAgICBpZiAoZXZlbnQuZXZlbnQoKS5idXR0b24oKSA9PSBM
ZWZ0QnV0dG9uICYmIGV2ZW50LmlzT3ZlckxpbmsoKSkgewogICAgICAgICAvLyBGSVhNRSAxMzU3
MDM6IEhhbmRsZSBsb25nIHByZXNzIGZvciBtb3JlIHRoYW4ganVzdCBsaW5rcy4KLSAgICAgICAg
YmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7CisgICAgICAgIGJlZ2luVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhldmVudC5oaXRUZXN0UmVzdWx0KCkpOwogICAg
IH0KIAogICAgIC8vIFdlIGRvbid0IGRvIHRoaXMgYXQgdGhlIHN0YXJ0IG9mIG1vdXNlIGRvd24g
aGFuZGxpbmcsCkBAIC0xNTY1LDcgKzE1NjUsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6YXV0b0hp
ZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogfQogI2VuZGlm
CiAgICAgCi12b2lkIEV2ZW50SGFuZGxlcjo6YmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzKCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpiZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01v
dXNlUHJlc3MoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCkKIHsKICAgICBjbGVh
ckxvbmdNb3VzZVByZXNzU3RhdGUoKTsKIApAQCAtMTU3NSw3ICsxNTc1LDcgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6OmJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcygpCiAKICAgICBt
X2xvbmdNb3VzZVByZXNzVGltZXIuc3RhcnRPbmVTaG90KGxvbmdNb3VzZVByZXNzUmVjb2duaXRp
b25EZWxheSk7CiAKLSAgICAvLyBGSVhNRSAxMzU1ODA6IEJ1YmJsZSBsb25nIG1vdXNlIHByZXNz
IHVwIHRvIHRoZSBjbGllbnQuCisgICAgcGFnZS0+Y2hyb21lKCkuZGlkQmVnaW5UcmFja2luZ1Bv
dGVudGlhbExvbmdNb3VzZVByZXNzKG1fbW91c2VEb3duUG9zLCBoaXRUZXN0UmVzdWx0KTsKIH0K
ICAgICAKIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyhUaW1lcjxF
dmVudEhhbmRsZXI+JiB0aW1lcikKQEAgLTE1OTIsNyArMTU5Miw3IEBAIHZvaWQgRXZlbnRIYW5k
bGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyhUaW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikK
ICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwogICAgIGludmFsaWRhdGVDbGljaygpOwogCi0g
ICAgLy8gRklYTUUgMTM1NTgwOiBCdWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xp
ZW50LgorICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CiB9
CiAgICAgCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcygpCkBAIC0xNjAzLDEwICsxNjAzLDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5j
ZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkKICAgICBjbGVhckxvbmdNb3VzZVBy
ZXNzU3RhdGUoKTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAo
IShwYWdlICYmIHBhZ2UtPnNldHRpbmdzKCkubG9uZ01vdXNlUHJlc3NFbmFibGVkKCkpKQorICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUUgMTM1NTgwOiBCdWJi
bGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xpZW50LgorICAgIHBhZ2UtPmNocm9tZSgp
LmRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKIH0KIAogdm9pZCBF
dmVudEhhbmRsZXI6OmNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAppbmRleCAxMGU4YmIxMDQyY2NjZmNlZjAwYjE1NGQ0YTllNzZjYThjNjA1M2E4
Li5kNThmZWQ2YTk1MGFmNjhjMDJkNTgyMWJmNmVjZWUwNDVmYzlhYzA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKQEAgLTQ0MCw3ICs0NDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
YXV0b0hpZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mKTsKICNlbmRpZgog
Ci0gICAgdm9pZCBiZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKKyAgICB2
b2lkIGJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBIaXRUZXN0UmVz
dWx0Jik7CiAgICAgdm9pZCByZWNvZ25pemVMb25nTW91c2VQcmVzcyhUaW1lcjxFdmVudEhhbmRs
ZXI+Jik7CiAgICAgdm9pZCBjYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7
CiAgICAgYm9vbCBsb25nTW91c2VQcmVzc0h5c3RlcmVzaXNFeGNlZWRlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGMyNTg4MDU3ZWYyNjZkZDZk
Yjk0MTMwMmViOWU1NjgyNmY1MGMzM2IuLjFjYTE1ZTM3NWYyMWI2ZjBjZDlkYjg1ODFlZDU2Zjdk
N2U4YzRlOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
QEAgLTE0MCw2ICsxNDAsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0
YXRlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYktpdDo6V2ViUGFn
ZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJLaXQ6OldlYkhpdFRl
c3RSZXN1bHQ6OkRhdGEmLCBBUEk6Ok9iamVjdCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNvZ25pemVMb25nTW91c2VQcmVzcyhXZWJLaXQ6OldlYlBhZ2VQcm94eSosIEFQSTo6T2JqZWN0
KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01v
dXNlUHJlc3MoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBBUEk6Ok9iamVjdCopIHsgfQorCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnNGb3JF
bGVtZW50KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICosIFJldGFpblB0cjxOU0FycmF5PiBkZWZh
dWx0QWN0aW9ucykgeyByZXR1cm4gV1RGOjptb3ZlKGRlZmF1bHRBY3Rpb25zKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWROb3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGQ5
YTNhOTFmYzg0OWNjMjE2OTNkMGUwOTdhODMyYTFlMTdmMTFhNTIuLjNjMDA2YmM0MGQwYTIxOGM4
ZWM4YWNjNjFmYzcwOGI1ZGEwYTAwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRy
YWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBD
bGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdL
UGFnZVVJQ2xpZW50VjM+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VV
SUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNs
aWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0PiBWZXJzaW9uczsKIH07CiAKIH0KQEAgLTE1ODMsNiAr
MTU4MywzMSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwg
Y29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogCiAgICAgICAgICAgICBtX2NsaWVu
dC5waW5uZWRTdGF0ZURpZENoYW5nZSh0b0FQSSgmcGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiAgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5UcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgSW50UG9p
bnQmIG1vdXNlRG93blBvc2l0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBkYXRh
LCBBUEk6Ok9iamVjdCogdXNlckluZm8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQuZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgUmVmUHRyPFdlYkhpdFRlc3RSZXN1bHQ+IHdl
YkhpdFRlc3RSZXN1bHQgPSBXZWJIaXRUZXN0UmVzdWx0OjpjcmVhdGUoZGF0YSk7CisgICAgICAg
ICAgICBtX2NsaWVudC5kaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3ModG9B
UEkocGFnZSksIHRvQVBJKG1vdXNlRG93blBvc2l0aW9uKSwgdG9BUEkod2ViSGl0VGVzdFJlc3Vs
dC5nZXQoKSksIHRvQVBJKHVzZXJJbmZvKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVz
cyhXZWJQYWdlUHJveHkqIHBhZ2UsIEFQSTo6T2JqZWN0KiB1c2VySW5mbykKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcykKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZFJlY29nbml6
ZUxvbmdNb3VzZVByZXNzKHRvQVBJKHBhZ2UpLCB0b0FQSSh1c2VySW5mbyksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhXZWJQYWdlUHJveHkqIHBhZ2UsIEFQ
STo6T2JqZWN0KiB1c2VySW5mbykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVu
dC5kaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2FuY2VsVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcyh0b0FQSShwYWdlKSwgdG9BUEkodXNlckluZm8pLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CiAgICAgfTsKIAogICAgIHRvSW1wbChwYWdl
UmVmKS0+c2V0VUlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxVSUNsaWVudD4od2tDbGllbnQpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5k
ZXggZmU2Njg2OWI5MzQzMzU5NjlhMGVmOWEwZWJlYTJmMzM0NmQxY2Y2Zi4uNDAzNzdkNmVmM2Q5
MTUyNTUzMzBkOWQwYWY3OTFiZGNhNTRmOGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTg2LDYgKzg2LDkgQEAgdHlwZWRlZiB2
b2lkICgqV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBpbml0aWEKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlvbmFyeSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3ND
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUG9pbnQgbW91c2VEb3duUG9zaXRpb24sIFdLSGl0
VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVjb2duaXplTG9uZ01v
dXNlUHJlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVk
ICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0
dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0zMDksNiArMzEyLDcwIEBAIHR5
cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjMgewogICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3Rh
dGVEaWRDaGFuZ2U7CiB9IFdLUGFnZVVJQ2xpZW50VjM7CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFn
ZVVJQ2xpZW50VjQgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4K
KyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAg
ICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAg
ICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdl
VGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3Vz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
Zm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9t
cHQ7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNz
aW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
IG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAg
V0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVX
aGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhh
bmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAg
V0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklz
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1Bh
Z2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0Jhcklz
VmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVz
aXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VT
ZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRT
Y3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdl
UnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAg
IFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAg
ICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRv
IGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2
ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRK
YXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQ7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3
UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVOZXdQYWdlOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
KyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBp
Y2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0Nv
bG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworICAgIAorICAgIC8vIFZlcnNpb24g
My4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lv
biA0LgorICAgIFdLUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0Nh
bGxiYWNrICAgICAgICAgICAgICAgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzOworICAgIFdLUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3M7CisgICAgV0tQ
YWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrICAgICAg
ICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOworfSBXS1Bh
Z2VVSUNsaWVudFY0OworCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tf
RU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIp
ID0gMiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
YjZkMmRjY2RlOGZhZGI3MDY2MzMzZjZhYjgwZDFkNzgzYjM1MDhmNS4uNWI1YmQ4YjM2ZmEyNWY2
ZDk4MWVkMjAzMDVlNDlhNzgzNmRmOGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTMwNjMsNiArMzA2MywzNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0
VGVzdAogICAgIG1fdWlDbGllbnQtPm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHRoaXMsIGhpdFRl
c3RSZXN1bHREYXRhLCBtb2RpZmllcnMsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBJ
bnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEm
IGhpdFRlc3RSZXN1bHREYXRhLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcHJvY2VzcygpKTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91
aUNsaWVudC0+ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKHRoaXMsIG1v
dXNlRG93blBvc2l0aW9uLCBoaXRUZXN0UmVzdWx0RGF0YSwgdXNlckRhdGEuZ2V0KCkpOworfQor
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRh
OworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIHByb2Nlc3MoKSk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fdWlDbGllbnQtPmRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKHRoaXMsIHVzZXJEYXRhLmdldCgpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOworICAgIFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHByb2Nl
c3MoKSk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fdWlDbGllbnQtPmRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3ModGhpcywgdXNlckRhdGEuZ2V0KCkpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94
eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKICAg
ICBBU1NFUlQoY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOTY1ZjNjODI5Yjg0MTNiOGNhYmJh
ZmEwZDA0ZTM1NmM1YmU3ZGVkMC4uYjc4YWIwMDVhZTExZTdlOTU0NTk5MDRmOWNlODY2MDJjZDE5
NDhiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTkyLDYg
Kzk5MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdChi
b29sJiByZXN1bHQpOwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAg
ICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIElQQzo6TWVzc2FnZURl
Y29kZXImKTsKKworICAgIHZvaWQgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtb3VzZURvd25Qb3NpdGlvbiwgY29uc3QgV2Vi
SGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIElQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKElQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJl
c3MoSVBDOjpNZXNzYWdlRGVjb2RlciYpOworCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCiAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qgb3Bh
cXVlUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYgcGx1Z2luVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlVVJM
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VV
UkxTdHJpbmcpOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
YTFiYjVkODgzYTRlYTdlYjY2MDhhM2YwYTZlYWZlYTYxMDZkMzc3Yy4uNGE2ZmQ1Nzk5NDY5ZGY0
YWI0YTMzYWU3YWQ0MmU4Nzc0ZDJmMWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMCw2ICszMCwxMSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVz
dWx0KSBEZWxheWVkCiAgICAgU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIC0+IChib29sIHNo
b3VsZEludGVydXB0KQogICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYktpdDo6V2ViSGl0
VGVzdFJlc3VsdDo6RGF0YSBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9kaWZpZXJzLCBX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRp
YworCisgICAgRGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYkNvcmU6
OkludFBvaW50IG1vdXNlRG93blBvc2l0aW9uLCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEgaGl0VGVzdFJlc3VsdERhdGEsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisgICAgRGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3Mo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFk
aWMKKyAgICBEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBVbmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQodWludDMyX3QgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFN0cmluZyBtaW1l
VHlwZSwgU3RyaW5nIHBsdWdpblVSTFN0cmluZywgU3RyaW5nIHBsdWdpbnNwYWdlQXR0cmlidXRl
VVJMU3RyaW5nLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0cmluZyBwYWdlVVJMU3RyaW5nKQog
I2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQ
YWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggMzdmZGU2YmM2NzU1MjI1
ZWM4ZWZhMDY1OThlMTBkZTFlMTg5NzA1NC4uMDM4MDQxYmNmYWU3ZTNmNjI4NDA3ZWM5ZTFlYWFk
NGFkZmQ0YjgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5oCkBAIC04NSw2ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBwbHVnSW5TdGFydExhYmVsU3VidGl0bGUoY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVU
eXBlKSBjb25zdCB7IFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7IHJldHVybiBlbXB0eVN0cmluZygp
OyB9CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25z
dCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBwbHVn
SW5FeHRyYVNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KKworICAgIHZp
cnR1YWwgdm9pZCBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoV2ViS2l0
OjpXZWJQYWdlKiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpIaXRU
ZXN0UmVzdWx0JiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNlckRhdGEpIHsgVU5VU0VEX1BBUkFN
KHVzZXJEYXRhKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVz
cyhXZWJLaXQ6OldlYlBhZ2UqLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgeyBVTlVT
RURfUEFSQU0odXNlckRhdGEpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoV2ViS2l0OjpXZWJQYWdlKiwgUmVmUHRyPEFQSTo6T2Jq
ZWN0PiYgdXNlckRhdGEpIHsgVU5VU0VEX1BBUkFNKHVzZXJEYXRhKTsgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSW5qZWN0ZWRCdW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlD
bGllbnQuaAppbmRleCAxNDQyNjY1N2E4NDMzNGZmMTdiYzk4MzJlNWY1Y2Y3NzRlNTNmZDVhLi40
OTM5YWUyNjQ3ZGExMmUxM2U0ZDJjYzJhODkzZDM4MDRjNjA1NTNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC01NCw2ICs1NCw5IEBAIHR5cGVkZWYgV0tT
dHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVTdGFydExhYmVsVGl0bGVDYWxsYmFj
aykoV0tTdHJpbmdSCiB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3Jl
YXRlU3RhcnRMYWJlbFN1YnRpdGxlQ2FsbGJhY2spKFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VQ
bHVnSW5DcmVhdGVFeHRyYVN0eWxlU2hlZXRDYWxsYmFjaykoY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFT
Y3JpcHRDYWxsYmFjaykoY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VEaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxsYmFj
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLUG9pbnQgbW91c2VEb3duUG9zaXRpb24sIFdLQnVu
ZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJl
Y29nbml6ZUxvbmdNb3VzZVByZXNzQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1R5
cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAo
KldLQnVuZGxlUGFnZURpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3NDYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudEJh
c2UgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTEzMyw2ICsxMzYsNDEgQEAgdHlwZWRl
ZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiB7CiAgICAgV0tCdW5kbGVQYWdlUGx1Z0lu
Q3JlYXRlRXh0cmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQ
bHVnSW5FeHRyYVNjcmlwdDsKIH0gV0tCdW5kbGVQYWdlVUlDbGllbnRWMjsKIAordHlwZWRlZiBz
dHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnRWMyB7CisgICAgV0tCdW5kbGVQYWdlVUlDbGllbnRC
YXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisg
ICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlVG9Db25zb2xl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGU7
CisgICAgV0tCdW5kbGVQYWdlV2lsbFNldFN0YXR1c2JhclRleHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWxsU2V0U3RhdHVzYmFyVGV4dDsKKyAgICBXS0J1bmRsZVBhZ2VX
aWxsUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bGxSdW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRD
b25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdENv
bmZpcm07CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0J1
bmRsZVBhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLQnVuZGxlUGFnZURpZFNjcm9s
bENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNj
cm9sbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVG
aWxlRm9yVXBsb2FkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRHZW5l
cmF0ZUZpbGVGb3JVcGxvYWQ7CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2Fk
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUZpbGVGb3JVcGxvYWQ7
CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnVzZWQyOworICAgIFdLQnVuZGxlUGFnZVN0YXR1c0JhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNp
YmxlOworICAgIFdLQnVuZGxlUGFnZU1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VU
b29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv
b2xiYXJzQXJlVmlzaWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VS
ZWFjaGVkQXBwQ2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgIGRp
ZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOworCisgICAgLy8gVmVyc2lvbiAyLgor
ICAgIFdLQnVuZGxlUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkRXhjZWVkRGF0YWJhc2VRdW90YTsKKyAgICBXS0J1bmRsZVBhZ2VQ
bHVnSW5DcmVhdGVTdGFydExhYmVsVGl0bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVBsdWdJblN0YXJ0TGFiZWxUaXRsZTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVT
dGFydExhYmVsU3VidGl0bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJblN0
YXJ0TGFiZWxTdWJ0aXRsZTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVN0eWxl
U2hlZXRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJbkV4dHJhU3R5bGVT
aGVldDsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVNjcmlwdENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJbkV4dHJhU2NyaXB0OworCisgICAgLy8g
VmVyc2lvbiAzLgorICAgIFdLQnVuZGxlUGFnZURpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25n
TW91c2VQcmVzc0NhbGxiYWNrICAgICAgICAgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdN
b3VzZVByZXNzOworICAgIFdLQnVuZGxlUGFnZURpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3M7Cisg
ICAgV0tCdW5kbGVQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0Nh
bGxiYWNrICAgICAgICBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzOwor
fSBXS0J1bmRsZVBhZ2VVSUNsaWVudFYzOworCiBlbnVtIHsga1dLQnVuZGxlUGFnZVVJQ2xpZW50
Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lv
biBudW1iZXIgaW5zdGVhZCIpID0gMiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlD
bGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5jcHAKaW5kZXggOGIxMGNlMmNkMDA1ZjkyYzRkNTU1YTdmZjA5YTBh
NGI0NDE4NWFhMi4uMzc1NDlkY2RmMzY2YTYwYjY4NmJmOGE0ZmI5YTIzYmNiODFlNWFjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKQEAgLTE5OSw0ICsx
OTksMzYgQEAgU3RyaW5nIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpwbHVnSW5FeHRyYVNj
cmlwdCgpIGNvbnN0CiAgICAgcmV0dXJuIHNjcmlwdCA/IHNjcmlwdC0+c3RyaW5nKCkgOiBTdHJp
bmcoKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkQmVnaW5UcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IEludFBvaW50
JiBtb3VzZURvd25Qb3NpdGlvbiwgY29uc3QgSGl0VGVzdFJlc3VsdCYgY29yZUhpdFRlc3RSZXN1
bHQsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKQoreworICAgIGlmICghbV9jbGllbnQu
ZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKQorICAgICAgICByZXR1cm47
CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVzdWx0
ID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVhdGUoY29yZUhpdFRlc3RSZXN1bHQp
OworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gbnVsbHB0cjsKKyAgICBtX2NsaWVu
dC5kaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3ModG9BUEkocGFnZSksIHRv
QVBJKG1vdXNlRG93blBvc2l0aW9uKSwgdG9BUEkoaGl0VGVzdFJlc3VsdC5nZXQoKSksICZ1c2Vy
RGF0YVRvUGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICB1c2VyRGF0YSA9IGFk
b3B0UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyhXZWJQYWdlKiBwYWdlLCBS
ZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZFJl
Y29nbml6ZUxvbmdNb3VzZVByZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBXS1R5cGVSZWYg
dXNlckRhdGFUb1Bhc3MgPSBudWxscHRyOworICAgIG1fY2xpZW50LmRpZFJlY29nbml6ZUxvbmdN
b3VzZVByZXNzKHRvQVBJKHBhZ2UpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CisgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3Mp
KTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkQ2FuY2VsVHJhY2tp
bmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhXZWJQYWdlKiBwYWdlLCBSZWZQdHI8QVBJOjpPYmpl
Y3Q+JiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZENhbmNlbFRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIFdLVHlwZVJlZiB1
c2VyRGF0YVRvUGFzcyA9IG51bGxwdHI7CisgICAgbV9jbGllbnQuZGlkQ2FuY2VsVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzcyh0b0FQSShwYWdlKSwgJnVzZXJEYXRhVG9QYXNzLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVz
ZXJEYXRhVG9QYXNzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCmluZGV4IGVmNzkyNmViZGFmZWEyNTIyODJkNDA0
OTc2MWQ1OTcxZGQwZjE1NWQuLjYzYTRhYmI0NTJjNmUxNzU5MDMxYWM5YWY1NGQyODg3YWQzNDI3
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAgLTM3LDcg
KzM3LDcgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPYmplY3Q7CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVm
IHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVUlDbGllbnRWMCwgV0tCdW5kbGVQYWdlVUlDbGllbnRW
MSwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLQnVuZGxlUGFnZVVJQ2xpZW50VjAsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjEsIFdLQnVu
ZGxlUGFnZVVJQ2xpZW50VjIsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjM+IFZlcnNpb25zOwogfTsK
IH0KIApAQCAtNjksNiArNjksMTAgQEAgcHVibGljOgogICAgIFN0cmluZyBwbHVnSW5TdGFydExh
YmVsU3VidGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
U3RyaW5nIHBsdWdJbkV4dHJhU3R5bGVTaGVldCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmlu
ZyBwbHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRCZWdp
blRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoV2ViUGFnZSosIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIFJlZlB0cjxBUEk6Ok9i
amVjdD4mIHVzZXJEYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKFdlYlBhZ2UqLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKFdlYlBh
Z2UqLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgb3ZlcnJpZGU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAxMzI2NGRiNWZi
ZTNhNDUyMWY1ZjNlNjliYTdkNjQ4YzE4MWE3OWY0Li5iYzlmOTZhNmIzN2EyMzQxZGM3NzAyZWVi
Y2VhZjBhODM5MjZiMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC02MDQsNiArNjA0
LDQwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25z
dCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6Ok1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHdlYkhpdFRlc3RSZXN1bHRE
YXRhLCBtb2RpZmllckZsYWdzLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2Vy
RGF0YS5nZXQoKSkpKTsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEJlZ2luVHJhY2tp
bmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYgbW91c2VEb3duUG9zaXRp
b24sIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCit7CisgICAgUmVmUHRyPEFQ
STo6T2JqZWN0PiB1c2VyRGF0YTsKKworICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4K
KyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5kaWRCZWdpblRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MobV9wYWdlLCBtb3VzZURvd25Qb3NpdGlvbiwgaGl0VGVzdFJl
c3VsdCwgdXNlckRhdGEpOworICAgIAorICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgorICAg
IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEgd2ViSGl0VGVzdFJlc3VsdERhdGEoaGl0VGVzdFJlc3Vs
dCk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEJlZ2luVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhtb3VzZURvd25Qb3NpdGlvbiwgd2ViSGl0VGVz
dFJlc3VsdERhdGEsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdl
dCgpKSkpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNl
UHJlc3MoKQoreworICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CisKKyAgICAvLyBO
b3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xp
ZW50KCkuZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MobV9wYWdlLCB1c2VyRGF0YSk7CisKKyAg
ICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkKK3sKKyAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOworCisgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUg
Y2xpZW50LgorICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLmRpZENhbmNlbFRy
YWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MobV9wYWdlLCB1c2VyRGF0YSk7CisKKyAgICAv
LyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKK30KKwogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGly
ZWN0aW9uKQogewogICAgIC8vIE9ubHkgc2VuZCBhIHRvb2wgdGlwIHRvIHRoZSBXZWJQcm9jZXNz
IGlmIGl0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhpcyBmdW5jdGlvbiB3YXMg
Y2FsbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZGQxNjJmY2FkYzdhZjQ5NTZmNzdjMTk0
Yjk0YjM4YTIyNmY3OWFjMi4uZjY0NTdhMTY2ZDJhNTlkM2JkYzZhM2E4ZWMzZWRiMTc2N2Y2Yzg5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzAsNyArMTMwLDExIEBAIHByaXZhdGU6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIG92ZXJyaWRlOwotICAg
IAorCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQ
cmVzcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcygpIG92ZXJyaWRlOworCiAgICAgdmly
dHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlv
bikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1l
Kikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>