<?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>88778</bug_id>
          
          <creation_ts>2012-06-11 06:39:14 -0700</creation_ts>
          <short_desc>[CSS Regions] The regionLayoutUpdate event should be dispatched on the NamedFlow object</short_desc>
          <delta_ts>2012-08-01 11:42:49 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87640</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Bucur">abucur</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>mihnea</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>645948</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-06-11 06:39:14 -0700</bug_when>
    <thetext>The CSS Regions spec requests that the regionLayoutUpdate event be dispatched on the NamedFlow object, not on the attached regions.

http://www.w3.org/TR/css3-regions/#region-flow-layout-events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671181</commentid>
    <comment_count>1</comment_count>
      <attachid>152736</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-07-17 04:53:41 -0700</bug_when>
    <thetext>Created attachment 152736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677397</commentid>
    <comment_count>2</comment_count>
      <attachid>152736</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-24 17:27:09 -0700</bug_when>
    <thetext>Comment on attachment 152736
Patch

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

I didn&apos;t review the tests that carefully because I presume these are reworks of the tests you&apos;re removing.

&gt; Source/WebCore/ChangeLog:17
&gt; +        No new tests (OOPS!).

This line will prevent the patch from landing.  Can you update this to list the test that you&apos;ve added?

&gt; Source/WebCore/dom/WebKitNamedFlow.h:65
&gt; +    virtual const AtomicString&amp; interfaceName() const;
&gt; +    virtual ScriptExecutionContext* scriptExecutionContext() const;

We&apos;ve been adding the OVERRIDE keyword to overrides of these functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684195</commentid>
    <comment_count>3</comment_count>
      <attachid>155812</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-08-01 08:06:16 -0700</bug_when>
    <thetext>Created attachment 155812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684390</commentid>
    <comment_count>4</comment_count>
      <attachid>155812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 11:42:45 -0700</bug_when>
    <thetext>Comment on attachment 155812
Patch

Clearing flags on attachment: 155812

Committed r124350: &lt;http://trac.webkit.org/changeset/124350&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684391</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 11:42:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152736</attachid>
            <date>2012-07-17 04:53:41 -0700</date>
            <delta_ts>2012-08-01 08:06:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88778-20120717145338.patch</filename>
            <type>text/plain</type>
            <size>62824</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI5MzhlODAxM2U3NjM2
YzMyOGYzN2E3Mjk3MDdiZWE2NTk1ZGE4NS4uMjg1YjE4ZDUzZTZjMTBlODNlNWYyYWZjYWQ5OWI5
NDBjMGU1YWUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTA3LTE2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gVGhl
IHJlZ2lvbkxheW91dFVwZGF0ZSBldmVudCBzaG91bGQgYmUgZGlzcGF0Y2hlZCBvbiB0aGUgTmFt
ZWRGbG93IG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODg3NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXJlZ2lvbnMvI3JlZ2lvbi1mbG93
LWxheW91dC1ldmVudHMKKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIHJlZ2lv
bkxheW91dFVwZGF0ZSBldmVudCBwZXIgTWF5IDNyZCBDU1MgUmVnaW9ucyBzcGVjIHJlY29tbWVu
ZGF0aW9uLgorICAgICAgICBCZWZvcmUgdGhpcyBwYXRjaCB0aGUgZXZlbnQgd2FzIGRpc3BhdGNo
ZWQgaW5kaXZpZHVhbGx5IG9uIGVhY2ggcmVnaW9uIHdoZW5ldmVyIGl0cyBvdmVyZmxvdyBzdGF0
ZSBjaGFuZ2VkLiBUaGUgdHJpZ2dlciBjb25kaXRpb25zIGFyZSBwcmVzZXJ2ZWQgd2l0aCB0aGUg
Zm9sbG93aW5nIGFkZGl0aW9uczoKKyAgICAgICAgLSB0aGUgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3
aGVuIHRoZSBsYXN0IHJlZ2lvbiBpcyByZW1vdmVkCisgICAgICAgIC0gdGhlIGV2ZW50IGlzIG5v
dCBkaXNwYXRjaGVkIHdoZW4gdGhlIG5hbWVkIGZsb3cgc3dpdGNoZXMgdG8gdGhlIE5VTEwgc3Rh
dGUKKyAgICAgICAgQWxzbywgdGhlIE5hbWVkRmxvdyBvYmplY3RzIGFyZSBub3QgZGVsZXRlZCBp
ZiB0aGV5IHN3aXRjaCB0byB0aGUgTlVMTCBzdGF0ZSBhbmQgaGF2ZSBsaXN0ZW5lcnMgYXR0YWNo
ZWQuIEluIHRoYXQgc2NlbmFyaW8gdGhlIEpTIHdyYXBwZXIgd2lsbCBub3QgcmVsZWFzZSB0aGUg
cmVmZXJlbmNlCisgICAgICAgIHVudGlsIHRoZSBwYXJlbnQgRG9jdW1lbnQgaXMgZGVzdHJveWVk
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRMaXN0ZW5lclR5cGVJZk5l
ZWRlZCk6IExpc3RlbmVycyBhcmUgbm90IGFkZGVkIG9uIE5vZGVzIGFueSBtb3JlIHNvIHRoZSBy
ZWdpb25MYXlvdXRVcGRhdGUgdHlwZSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0LgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAg
ICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUp
OgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0TmFtZWRGbG93OjpldmVudFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXROYW1lZEZsb3c6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXROYW1lZEZsb3c6OmRpc3BhdGNoUmVnaW9uTGF5b3V0
VXBkYXRlRXZlbnQpOiBUaGUgM3JkIE1heSBXRCBzYXlzIHRoZSBldmVudCBpcyBidWJibGluZy4g
SG93ZXZlciB0aGlzIGRvZXNuJ3QgbWFrZSBzZW5zZSBhcyB0aGlzIG9iamVjdCBkb2Vzbid0IGJl
bG9uZyB0byB0aGUgRE9NIHRyZWUuIFRoaXMgd2FzIGZpeGVkIGluIHRoZSBFRC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdE5hbWVkRmxvdzo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXROYW1lZEZsb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpiYXNlKTogR2V0dGVyIGZvciB0aGUgb3duZXIgRG9j
dW1lbnQgdXNlZCBieSB0aGUgd3JhcHBlciB0byBkZXRlcm1pbmUgaWYgdGhlIG9iamVjdCBpcyBy
ZWFjaGFibGUuCisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJLaXROYW1lZEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0TmFtZWRGbG93OjpyZWZFdmVudFRhcmdldCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRO
YW1lZEZsb3c6OmRlcmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZs
b3cuaWRsOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KTogVGhlIGV2ZW50IGRpc3BhdGNo
aW5nIGlzIG5vdyBoYW5kbGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBSZW5kZXJGbG93VGhy
ZWFkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6Y29tcHV0ZU92ZXJmbG93
U3RhdGVGb3JSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZW1vdmVSZWdpb25G
cm9tVGhyZWFkKTogVGhlIGxheW91dCBkb2Vzbid0IGRldGVjdCBjaGFuZ2VzIGNhdXNlZCBieSBy
ZW1vdmluZyB0aGUgbGFzdCByZWdpb24uIFRoaXMgY2FzZSBpcyBoYW5kbGVkIHNlcGFyYXRlbHku
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9u
TGF5b3V0VXBkYXRlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJl
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oOgorICAgICAg
ICAoUmVuZGVyTmFtZWRGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChSZW5kZXJSZWdp
b24pOgorCiAyMDEyLTA3LTE3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIyODM0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggNzI0ZjExZDg1OGY5ZGYxMzMzZjg1MTVmOGQ2ODI0MDc0MjAw
Nzg4My4uOWI4NDg4OWE1YTljNjY2M2VlMzBkOWYyZjdiYTJkNTViMGMyOGQyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC00MTQ1LDggKzQxNDUsNiBAQCB2b2lkIERvY3VtZW50OjphZGRM
aXN0ZW5lclR5cGVJZk5lZWRlZChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKICNlbmRp
ZgogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQpCiAg
ICAgICAgIGFkZExpc3RlbmVyVHlwZShTQ1JPTExfTElTVEVORVIpOwotICAgIGVsc2UgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQpCi0g
ICAgICAgIGFkZExpc3RlbmVyVHlwZShSRUdJT05MQVlPVVRVUERBVEVfTElTVEVORVIpOwogfQog
CiBDU1NTdHlsZURlY2xhcmF0aW9uKiBEb2N1bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZShFbGVtZW50
KiwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNmI5ZDBhMzJmODIxY2Nk
NzhkYzU0Y2JkYThhYzU2ZjlhNzAzODljMS4uMWZjZTZmYTAxYTg0OGI3ZGQ0NzQ1MTMyOGY5OWQ2
ODk0MTkzMWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc4Niw4ICs3ODYsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFRSQU5TSVRJT05FTkRfTElTVEVORVIgICAgICAgICAgICAgICA9IDB4ODAw
LAogICAgICAgICBCRUZPUkVMT0FEX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgPSAweDEwMDAs
CiAgICAgICAgIFRPVUNIX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICAgICA9IDB4MjAwMCwK
LSAgICAgICAgU0NST0xMX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICAgID0gMHg0MDAwLAot
ICAgICAgICBSRUdJT05MQVlPVVRVUERBVEVfTElTVEVORVIgICAgICAgICAgPSAweDgwMDAKKyAg
ICAgICAgU0NST0xMX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICAgID0gMHg0MDAwCiAgICAg
fTsKIAogICAgIGJvb2wgaGFzTGlzdGVuZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUp
IGNvbnN0IHsgcmV0dXJuIChtX2xpc3RlbmVyVHlwZXMgJiBsaXN0ZW5lclR5cGUpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5oCmluZGV4IGYzODdlNDI3M2VlMjZhMjA2YjZkNzk5OTFkZTMyZDlk
YjU1ZTJhNmYuLjIzYTdjZGQ3OTE3M2IwYmUzNThlYzU4N2NkMTkwOTAxYWM0MDgwN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5oCkBAIC02Nyw2ICs2Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBUZXh0VHJhY2s7CiAgICAgY2xhc3MgVGV4dFRyYWNrQ3VlOwogICAgIGNs
YXNzIFdlYlNvY2tldDsKKyAgICBjbGFzcyBXZWJLaXROYW1lZEZsb3c7CiAgICAgY2xhc3MgV29y
a2VyOwogICAgIGNsYXNzIFhNTEh0dHBSZXF1ZXN0OwogICAgIGNsYXNzIFhNTEh0dHBSZXF1ZXN0
VXBsb2FkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggODIx
NzE3YjBkN2ZlNzY1M2FhZjNmNjVkYTM1ZWE4ZWY5NWJkMDRlNC4uZGQ0OWU5YTNhYTA3NzAxMzg0
MTNiMDZkM2ExNTk0ZmJlOGJmMGE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluCkBAIC0zMSw2ICszMSw3IEBAIFNWR0VsZW1lbnRJbnN0YW5jZSBjb25kaXRpb25h
bD1TVkcKIFRleHRUcmFjayBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVGV4dFRyYWNrQ3VlIGNv
bmRpdGlvbmFsPVZJREVPX1RSQUNLCiBUZXh0VHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RS
QUNLCitXZWJLaXROYW1lZEZsb3cKIFdlYlNvY2tldCBjb25kaXRpb25hbD1XRUJfU09DS0VUUwog
V29ya2VyIGNvbmRpdGlvbmFsPVdPUktFUlMKIFhNTEh0dHBSZXF1ZXN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggNjIxNGIyOWQyNjE0ODIyYThhZDMzYTdjYjE3NzgwOGRiNzI1MjEzOS4uMTE5MWRhOGY2
NzVlMTk3OWMwYTVjZWUzYjE3ZTQzZjlmNjk4MzI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjU0
MSwxNiArMjU0MSw2IEBAIGJvb2wgTm9kZTo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50
PiBldmVudCkKICAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMs
IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKGV2ZW50KSk7CiB9CiAKLXZvaWQgTm9kZTo6
ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpCi17Ci0gICAgQVNTRVJUKCFldmVudERp
c3BhdGNoRm9yYmlkZGVuKCkpOwotCi0gICAgaWYgKCFkb2N1bWVudCgpLT5oYXNMaXN0ZW5lclR5
cGUoRG9jdW1lbnQ6OlJFR0lPTkxBWU9VVFVQREFURV9MSVNURU5FUikpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGRpc3BhdGNoU2NvcGVkRXZlbnQoVUlFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS53ZWJraXRSZWdpb25MYXlvdXRVcGRhdGVFdmVudCwgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQoKS0+
ZGVmYXVsdFZpZXcoKSwgMCkpOwotfQotCiB2b2lkIE5vZGU6OmRpc3BhdGNoU3VidHJlZU1vZGlm
aWVkRXZlbnQoKQogewogICAgIGlmIChpc0luU2hhZG93VHJlZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXgg
YzlhMjhmNDlkMmUwZjUwMmU2NzgyZTk2N2Y0MTA1NjMzNzIxMDM4ZS4uNGQ1M2VmOWE2ZjM0MDk5
NGRhN2MwOThjYzkyYmFmNmVlYzM5NDdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01OTQsOCArNTk0LDYg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50Kik7
CiAKLSAgICB2b2lkIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKTsKLQogICAgIHZv
aWQgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwogICAgIGJvb2wgZGlzcGF0Y2hET01B
Y3RpdmF0ZUV2ZW50KGludCBkZXRhaWwsIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVu
dCk7CiAgICAgdm9pZCBkaXNwYXRjaEZvY3VzSW5FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJLaXROYW1lZEZsb3cuY3BwCmluZGV4IDdhMDdmYmExN2M1ODZiMTEyZDdmZjliZDUwZjU2
ODAxNTk0ZjViMTIuLmRjNWU0MTIwNzcxMzk1MzBhYzk1ODlkNzg1MWE2YjJiMzUxYTc3NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCkBAIC0zMCw5ICszMCwxMiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5oIgogCisjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgog
I2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIlVJRXZlbnQuaCIK
ICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTE1NSw1ICsxNTgsNDAgQEAgdm9pZCBXZWJLaXROYW1lZEZsb3c6OnNldFJlbmRl
cmVyKFJlbmRlck5hbWVkRmxvd1RocmVhZCogcGFyZW50Rmxvd1RocmVhZCkKICAgICBtX3BhcmVu
dEZsb3dUaHJlYWQgPSBwYXJlbnRGbG93VGhyZWFkOwogfQogCitFdmVudFRhcmdldERhdGEqIFdl
YktpdE5hbWVkRmxvdzo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRU
YXJnZXREYXRhOworfQorCitFdmVudFRhcmdldERhdGEqIFdlYktpdE5hbWVkRmxvdzo6ZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQor
Cit2b2lkIFdlYktpdE5hbWVkRmxvdzo6ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgp
Cit7CisgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOworICAgIEFTU0VSVCht
X3BhcmVudEZsb3dUaHJlYWQpOworCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IFVJRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQsIGZhbHNl
LCBmYWxzZSwgbV9wYXJlbnRGbG93VGhyZWFkLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCAw
KTsKKworICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IFdlYktpdE5hbWVkRmxvdzo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2
ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JXZWJLaXROYW1lZEZsb3c7Cit9CisKK1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIFdlYktpdE5hbWVkRmxvdzo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZmxvd01hbmFnZXItPmRvY3VtZW50KCk7Cit9CisKK05vZGUq
IFdlYktpdE5hbWVkRmxvdzo6YmFzZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZmxvd01hbmFn
ZXItPmRvY3VtZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IDVhMzllOGQ5Y2UwNmJkYjAzM2IyOWQ5YWFlMzg2
OTUxMWY1MzdmZWQuLmM2ZTczYTgzNGZmNjkyZWQzNzk3MjJhOTUzNzFhOWFlNjUzZTM3MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTMwLDE4ICszMCwyMyBAQAogI2lm
bmRlZiBXZWJLaXROYW1lZEZsb3dfaAogI2RlZmluZSBXZWJLaXROYW1lZEZsb3dfaAogCi0jaW5j
bHVkZSA8Tm9kZS5oPgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisKICNpbmNsdWRlIDx3dGYv
TGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIE5vZGU7CiBjbGFzcyBOb2Rl
TGlzdDsKIGNsYXNzIFJlbmRlck5hbWVkRmxvd1RocmVhZDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiBjbGFzcyBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOwogCi1jbGFzcyBXZWJL
aXROYW1lZEZsb3cgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXROYW1lZEZsb3c+IHsKK2NsYXNz
IFdlYktpdE5hbWVkRmxvdyA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdE5hbWVkRmxvdz4sIHB1
YmxpYyBFdmVudFRhcmdldCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0
TmFtZWRGbG93PiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uPiBt
YW5hZ2VyLCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dUaHJlYWROYW1lKTsKIApAQCAtNTMsNiAr
NTgsMTYgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldFJlZ2lvbnNCeUNv
bnRlbnQoTm9kZSopOwogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldENvbnRlbnQoKTsKIAor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93Pjo6cmVmOworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93Pjo6ZGVyZWY7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OworCisgICAgLy8g
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB0aGUgSlMgYmluZGluZyBjb2RlIHRvIGRldGVy
bWluZSBpZiB0aGUgTmFtZWRGbG93IG9iamVjdCBpcyByZWFjaGFibGUgb3Igbm90LgorICAgIC8v
IElmIHRoZSBvYmplY3QgaGFzIGxpc3RlbmVycywgdGhlIG9iamVjdCBzaG91bGQgb25seSBiZSBk
aXNjYXJkZWQgaWYgdGhlIHBhcmVudCBEb2N1bWVudCBpcyBub3QgcmVhY2hhYmxlLgorICAgIE5v
ZGUqIGJhc2UoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0UmVuZGVyZXIoUmVuZGVyTmFtZWRGbG93
VGhyZWFkKiBwYXJlbnRGbG93VGhyZWFkKTsKIAogICAgIGVudW0gRmxvd1N0YXRlIHsKQEAgLTYy
LDE0ICs3NywyNSBAQCBwdWJsaWM6CiAKICAgICBGbG93U3RhdGUgZmxvd1N0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXJlbnRGbG93VGhyZWFkID8gRmxvd1N0YXRlQ3JlYXRlZCA6IEZsb3dTdGF0
ZU51bGw7IH0KIAorICAgIHZvaWQgZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpOwor
CiBwcml2YXRlOgogICAgIFdlYktpdE5hbWVkRmxvdyhQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxv
d0NvbGxlY3Rpb24+LCBjb25zdCBBdG9taWNTdHJpbmcmKTsKIAorICAgIC8vIEV2ZW50VGFyZ2V0
IGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsgcmVm
KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQor
CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpOworICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKKwogICAgIC8v
IFRoZSBuYW1lIG9mIHRoZSBmbG93IHRocmVhZCBhcyBzcGVjaWZpZWQgaW4gQ1NTLgogICAgIEF0
b21pY1N0cmluZyBtX2Zsb3dUaHJlYWROYW1lOwogCiAgICAgUmVmUHRyPFdlYktpdE5hbWVkRmxv
d0NvbGxlY3Rpb24+IG1fZmxvd01hbmFnZXI7CiAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBt
X3BhcmVudEZsb3dUaHJlYWQ7CisKKyAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERh
dGE7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCmluZGV4IGY1
ODZhOWQwODk3NzE0MzhmMGZhN2I3NGU4Zjk1NTBkMWMzNjY5NjIuLmRjYmIyYjYwZDk0ZjMxYWVl
MTBjNWY4MGM3NTFkMWM3NmFmZjI0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9X
ZWJLaXROYW1lZEZsb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuaWRsCkBAIC0yOSwxMyArMjksMjUgQEAKIAogbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFj
ZSBbCi0gICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CisgICAgICAgIEV2ZW50VGFyZ2V0LAor
ICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJs
ZT1JbXBsQmFzZVJvb3QKICAgICBdIFdlYktpdE5hbWVkRmxvdyB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gb3ZlcnNldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBmaXJzdEVtcHR5
UmVnaW9uSW5kZXg7CiAgICAgICAgIE5vZGVMaXN0IGdldFJlZ2lvbnNCeUNvbnRlbnQoaW4gTm9k
ZSBjb250ZW50Tm9kZSk7CiAgICAgICAgIE5vZGVMaXN0IGdldENvbnRlbnQoKTsKKyAgICAgICAg
CisgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgICAgICB2b2lkIGFkZEV2ZW50
TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIHZvaWQgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAg
ICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2ZW50KQorICAgICAgICAgICAg
cmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggNjY5ZDQ2ZDRkZDgwOGFmNWMyMjUx
YWNlYzQyZDNlNjU3OTI5MjBjNi4uNmYwNWRkZjk2OWEwNTA0ODMzNGRkYzVhOTMyNjIzNWNiYzA4
M2M2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNw
cApAQCAtNTIsNyArNTIsNiBAQCBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKE5v
ZGUqIG5vZGUpCiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCh0cnVlKQog
ICAgICwgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0KHRydWUpCiAgICAgLCBtX292
ZXJzZXQodHJ1ZSkKLSAgICAsIG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lcih0aGlzLCAm
UmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKQogewog
ICAgIEFTU0VSVChub2RlLT5kb2N1bWVudCgpLT5jc3NSZWdpb25zRW5hYmxlZCgpKTsKICAgICBz
ZXRJc0Fub255bW91cyhmYWxzZSk7CkBAIC0yMDYsMTUgKzIwNSw5IEBAIHZvaWQgUmVuZGVyRmxv
d1RocmVhZDo6bGF5b3V0KCkKICAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIo
dmlldygpLCB0aGlzLCByZWdpb25zQ2hhbmdlZCk7CiAgICAgUmVuZGVyQmxvY2s6OmxheW91dCgp
OwogICAgIHN0YXRlUHVzaGVyLnBvcCgpOwotICAgIGlmIChkb2N1bWVudCgpLT5oYXNMaXN0ZW5l
clR5cGUoRG9jdW1lbnQ6OlJFR0lPTkxBWU9VVFVQREFURV9MSVNURU5FUikgJiYgIW1fcmVnaW9u
TGF5b3V0VXBkYXRlRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBmb3IgKFJlbmRlclJl
Z2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBt
X3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgUmVuZGVyUmVnaW9uKiBy
ZWdpb24gPSAqaXRlcjsKLSAgICAgICAgICAgIGlmIChyZWdpb24tPnNob3VsZERpc3BhdGNoUmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnQoKSkgewotICAgICAgICAgICAgICAgIC8vIGF0IGxlYXN0IG9u
ZSByZWdpb24gbmVlZHMgdG8gZGlzcGF0Y2ggdGhlIGV2ZW50Ci0gICAgICAgICAgICAgICAgbV9y
ZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIAorICAgIGlmIChzaG91
bGREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkpCisgICAgICAgIGRpc3BhdGNoUmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnQoKTsKIH0KIAogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21w
dXRlTG9naWNhbFdpZHRoKCkKQEAgLTcwOCwxMyArNzAxLDEzIEBAIHZvaWQgUmVuZGVyRmxvd1Ro
cmVhZDo6Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50
QWZ0ZXJFCiAgICAgICAgIGlmIChmbG93TWF4ID4gMCkKICAgICAgICAgICAgIHN0YXRlID0gUmVu
ZGVyUmVnaW9uOjpSZWdpb25PdmVyZmxvdzsKICAgICAgICAgcmVnaW9uLT5zZXRSZWdpb25TdGF0
ZShzdGF0ZSk7Ci0gICAgICAgIC8vIGRldGVybWluZSB3aGV0aGVyIHRoaXMgcmVnaW9uIHNob3Vs
ZCBkaXNwYXRjaCBhIHJlZ2lvbkxheW91dFVwZGF0ZSBldmVudAorICAgICAgICAvLyBkZXRlcm1p
bmUgd2hldGhlciB0aGUgTmFtZWRGbG93IG9iamVjdCBzaG91bGQgZGlzcGF0Y2ggYSByZWdpb25M
YXlvdXRVcGRhdGUgZXZlbnQKICAgICAgICAgLy8gRklYTUU6IGN1cnJlbnRseSBpdCBjYW5ub3Qg
ZGV0ZXJtaW5lIHdoZXRoZXIgYSByZWdpb24gd2hvc2UgcmVnaW9uT3ZlcmZsb3cgc3RhdGUgcmVt
YWluZWQgZWl0aGVyICJmaXQiIG9yICJvdmVyZmxvdyIgaGFzIGFjdHVhbGx5Ci0gICAgICAgIC8v
IGNoYW5nZWQsIHNvIGl0IGp1c3QgYXNzdW1lcyB0aGF0IHRob3NlIHJlZ2lvbiBzaG91bGQgZGlz
cGF0Y2ggdGhlIGV2ZW50CisgICAgICAgIC8vIGNoYW5nZWQsIHNvIGl0IGp1c3QgYXNzdW1lcyB0
aGF0IHRoZSBOYW1lZEZsb3cgc2hvdWxkIGRpc3BhdGNoIHRoZSBldmVudAogICAgICAgICBpZiAo
cHJldmlvdXNTdGF0ZSAhPSBzdGF0ZQogICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVuZGVyUmVn
aW9uOjpSZWdpb25GaXQKICAgICAgICAgICAgIHx8IHN0YXRlID09IFJlbmRlclJlZ2lvbjo6UmVn
aW9uT3ZlcmZsb3cpCi0gICAgICAgICAgICByZWdpb24tPnNldERpc3BhdGNoUmVnaW9uTGF5b3V0
VXBkYXRlRXZlbnQodHJ1ZSk7CisgICAgICAgICAgICBzZXREaXNwYXRjaFJlZ2lvbkxheW91dFVw
ZGF0ZUV2ZW50KHRydWUpOwogICAgIH0KIAogICAgIC8vIFdpdGggdGhlIHJlZ2lvbnMgb3ZlcmZs
b3cgc3RhdGUgY29tcHV0ZWQgd2UgY2FuIGFsc28gc2V0IHRoZSBvdmVyc2V0IGZsYWcgZm9yIHRo
ZSBuYW1lZCBmbG93LgpAQCAtNzIzLDM1ICs3MTYsNiBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6
OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVy
RQogICAgIG1fb3ZlcnNldCA9IGxhc3RSZWcgPyBsYXN0UmVnLT5yZWdpb25TdGF0ZSgpID09IFJl
bmRlclJlZ2lvbjo6UmVnaW9uT3ZlcmZsb3cgOiB0cnVlOwogfQogCi12b2lkIFJlbmRlckZsb3dU
aHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJGbG93
VGhyZWFkPiopCi17Ci0gICAgLy8gQ3JlYXRlIGEgY29weSBvZiByZWdpb24gbm9kZXMsIHRvIHBy
b3RlY3QgdGhlbSBmb3IgYmVpbmcgZGVzdHJveWVkIGluIHRoZSBldmVudCBsaXN0ZW5lcgotICAg
IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiByZWdpb25Ob2RlczsKLSAgICByZWdpb25Ob2Rlcy5yZXNl
cnZlQ2FwYWNpdHkobV9yZWdpb25MaXN0LnNpemUoKSk7Ci0gICAgZm9yIChSZW5kZXJSZWdpb25M
aXN0OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdp
b25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAq
aXRlcjsKLSAgICAgICAgQVNTRVJUKHJlZ2lvbi0+bm9kZSgpICYmIHJlZ2lvbi0+bm9kZSgpLT5p
c0VsZW1lbnROb2RlKCkpOwotICAgICAgICAvLyBkaXNwYXRjaCB0aGUgZXZlbnQgb25seSBmb3Ig
bWFya2VkIHJlZ2lvbnMgYW5kIG9ubHkgZm9yIHRob3NlIHdobyBoYXZlIGEgbGlzdGVuZXIKLSAg
ICAgICAgaWYgKHJlZ2lvbi0+c2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgp
KSB7Ci0gICAgICAgICAgICByZWdpb25Ob2Rlcy5hcHBlbmQocmVnaW9uLT5ub2RlKCkpOwotICAg
ICAgICAgICAgLy8gY2xlYXIgdGhlIGRpc3BhdGNoIGZsYWcgaGVyZSwgYXMgaXQgaXMgcG9zc2li
bGUgdG8gYmUgc2V0IGFnYWluIGR1ZSB0byBldmVudCBsaXN0ZW5lcnMKLSAgICAgICAgICAgIHJl
Z2lvbi0+c2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChmYWxzZSk7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgZm9yIChWZWN0b3I8UmVmUHRyPE5vZGU+ID46OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gcmVnaW9uTm9kZXMuYmVnaW4oKTsgaXQgIT0gcmVnaW9uTm9kZXMuZW5kKCk7ICsraXQp
IHsKLSAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSAqaXQ7Ci0gICAgICAgIFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgpOwotICAgICAgICBpZiAoIWRvY3VtZW50
KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIg
PSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlz
UmVuZGVyUmVnaW9uKCkpIHsKLSAgICAgICAgICAgIG5vZGUtPmRpc3BhdGNoUmVnaW9uTGF5b3V0
VXBkYXRlRXZlbnQoKTsKLSAgICAgICAgICAgIC8vIExheW91dCBuZWVkcyB0byBiZSB1cHRvZGF0
ZSBhZnRlciBlYWNoIGV2ZW50IGxpc3RlbmVyCi0gICAgICAgICAgICBkb2N1bWVudC0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
IGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24q
IHRhcmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVu
ZGVyUmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0CiB7CiAgICAgQVNTRVJUKHRhcmdldFJlZ2lvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCBjNzZl
ZTA4NzBmMmU2OTBjNDUxYWIyOWViY2NkZmMwMjk5ZjFlNDg5Li40NzMwYmU4ZGNlMzVmYWExYjA5
N2YzZDk1MDNjMTAyOWVmNWU0YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmgKQEAgLTEzMyw4ICsxMzMsMTMgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKIAogICAgIGJvb2wgc2hvdWxk
UmVwYWludChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7Ci0gICAgdm9pZCByZWdpb25MYXlvdXRV
cGRhdGVFdmVudFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyRmxvd1RocmVhZD4qKTsKICAgICBib29s
IHJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVnaW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJl
bmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBj
b25zdDsKKyAgICAKKyAgICB2b2lkIHNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQo
Ym9vbCB2YWx1ZSkgeyBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgPSB2YWx1ZTsg
fQorICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgcmV0
dXJuIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudDsgfQorICAgIAorICAgIC8vIE92
ZXJyaWRlIGlmIHRoZSBmbG93IHRocmVhZCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBkaXNwYXRj
aGluZyBldmVudHMgd2hlbiB0aGUgZmxvdyBsYXlvdXQgaXMgdXBkYXRlZCAoZS5nLiBmb3IgbmFt
ZWQgZmxvd3MpCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZl
bnQoKSB7IG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IGZhbHNlOyB9CiAKICAg
ICBSZW5kZXJSZWdpb25MaXN0IG1fcmVnaW9uTGlzdDsKIApAQCAtMTc0LDcgKzE3OSw3IEBAIHBy
b3RlY3RlZDoKICAgICBib29sIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbEhlaWdodDsKICAg
ICBib29sIG1fb3ZlcnNldDsKICAgICBib29sIG1faGFzUmVnaW9uc1dpdGhTdHlsaW5nOwotICAg
IFRpbWVyPFJlbmRlckZsb3dUaHJlYWQ+IG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lcjsK
KyAgICBib29sIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudDsKIH07CiAKIGlubGlu
ZSBSZW5kZXJGbG93VGhyZWFkKiB0b1JlbmRlckZsb3dUaHJlYWQoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJl
YWQuY3BwCmluZGV4IDIyN2FmN2RmNTFkYTA0ZWMzOTljZWNiZDljNjI2OGM4MTAyNzRiZTAuLjVi
MDI0NTNlNGM2YzNkYmFlZDYzZGRhNTBlYTMzOTRjYmU0N2NmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC0zNiw2ICsz
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6UmVuZGVy
TmFtZWRGbG93VGhyZWFkKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBu
YW1lZEZsb3cpCiAgICAgOiBSZW5kZXJGbG93VGhyZWFkKG5vZGUpCiAgICAgLCBtX25hbWVkRmxv
dyhuYW1lZEZsb3cpCisgICAgLCBtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXIodGhpcywg
JlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVk
KQogewogICAgIG1fbmFtZWRGbG93LT5zZXRSZW5kZXJlcih0aGlzKTsKIH0KQEAgLTE5Miw2ICsx
OTMsMTAgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlbW92ZVJlZ2lvbkZyb21UaHJl
YWQoUmVuZGVyUmVnaW9uKiByZW5kZXJSZWdpb24pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICAvLyBBZnRlciByZW1vdmluZyBhbGwgdGhlIHJlZ2lvbnMgaW4gdGhlIGZsb3cgdGhlIGZv
bGxvd2luZyBsYXlvdXQgbmVlZHMgdG8gZGlzcGF0Y2ggdGhlIHJlZ2lvbkxheW91dFVwZGF0ZSBl
dmVudAorICAgIGlmIChtX3JlZ2lvbkxpc3QuaXNFbXB0eSgpKQorICAgICAgICBzZXREaXNwYXRj
aFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KHRydWUpOworCiAgICAgaW52YWxpZGF0ZVJlZ2lvbnMo
KTsKIH0KIApAQCAtMzAxLDQgKzMwNiwxOSBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6
d2lsbEJlRGVzdHJveWVkKCkKICAgICBSZW5kZXJGbG93VGhyZWFkOjp3aWxsQmVEZXN0cm95ZWQo
KTsKIH0KIAordm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uTGF5b3V0
VXBkYXRlRXZlbnQoKQoreworICAgIFJlbmRlckZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uTGF5
b3V0VXBkYXRlRXZlbnQoKTsKKworICAgIGlmICghbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRp
bWVyLmlzQWN0aXZlKCkgJiYgbV9uYW1lZEZsb3ctPmhhc0V2ZW50TGlzdGVuZXJzKCkpCisgICAg
ICAgIG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisK
K3ZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVy
RmlyZWQoVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiopCit7CisgICAgQVNTRVJUKG1fbmFt
ZWRGbG93KTsKKworICAgIG1fbmFtZWRGbG93LT5kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1l
ZEZsb3dUaHJlYWQuaAppbmRleCA1ZTBkOTYyNDk5MzRjYWZiNDgzMGNhMWUwNWY2YWRjNWI4YjZi
MDgwLi40MTAxYjc3MWUzYzk4MmRkMTM4MDU1MThlYjk5Y2U2OWY0MzkwZWEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjZGVmaW5lIFJlbmRlck5hbWVkRmxvd1RocmVhZF9oCiAKICNpbmNsdWRlICJS
ZW5kZXJGbG93VGhyZWFkLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTc2LDExICs3NywxNCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBpc1JlbmRlck5hbWVkRmxvd1RocmVhZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0
ZUV2ZW50KCkgT1ZFUlJJREU7CisKICAgICBib29sIGRlcGVuZHNPbihSZW5kZXJOYW1lZEZsb3dU
aHJlYWQqIG90aGVyUmVuZGVyRmxvd1RocmVhZCkgY29uc3Q7CiAgICAgdm9pZCBhZGREZXBlbmRl
bmN5T25GbG93VGhyZWFkKFJlbmRlck5hbWVkRmxvd1RocmVhZCopOwogICAgIHZvaWQgcmVtb3Zl
RGVwZW5kZW5jeU9uRmxvd1RocmVhZChSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsKICAgICB2b2lk
IGNoZWNrSW52YWxpZFJlZ2lvbnMoKTsKICAgICBib29sIGNhbkJlRGVzdHJveWVkKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWdpb25MaXN0LmlzRW1wdHkoKSAmJiBtX2NvbnRlbnROb2Rlcy5pc0VtcHR5
KCk7IH0KKyAgICB2b2lkIHJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ+Kik7CiAKIHByaXZhdGU6CiAgICAgLy8gT2JzZXJ2ZXIgZmxv
dyB0aHJlYWRzIGhhdmUgaW52YWxpZCByZWdpb25zIHRoYXQgZGVwZW5kIG9uIHRoZSBzdGF0ZSBv
ZiB0aGlzIHRocmVhZApAQCAtMTAxLDYgKzEwNSw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUg
RE9NIE9iamVjdCB0aGF0IHJlcHJlc2VudHMgYSBuYW1lZCBmbG93LgogICAgIFJlZlB0cjxXZWJL
aXROYW1lZEZsb3c+IG1fbmFtZWRGbG93OworCisgICAgVGltZXI8UmVuZGVyTmFtZWRGbG93VGhy
ZWFkPiBtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXI7CiB9OwogCiBpbmxpbmUgUmVuZGVy
TmFtZWRGbG93VGhyZWFkKiB0b1JlbmRlck5hbWVkRmxvd1RocmVhZChSZW5kZXJPYmplY3QqIG9i
amVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggOTkz
OGRmZmIwNmJiZjliOGU2OWUwMzVhOWJmZmQ0N2I3MjNlMGI3MS4uZDUxM2NhNjNhNGE5NmE2ZWE3
Yzk2YmExYmI2MmZhODBhYmIxNzg5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24o
Tm9kZSogbm9kZSwgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKICAgICAsIG1faXNWYWxp
ZChmYWxzZSkKICAgICAsIG1faGFzQ3VzdG9tUmVnaW9uU3R5bGUoZmFsc2UpCiAgICAgLCBtX3Jl
Z2lvblN0YXRlKFJlZ2lvblVuZGVmaW5lZCkKLSAgICAsIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRV
cGRhdGVFdmVudChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5oCmluZGV4IDgyNmU5ODA3MjI2YjFiMzRlOWI0MDU4NDJhNGU5NWNjYjg2MDczZTMuLjVi
OTY4YjVmMTRhMjk5OGRlN2I1MDhhNWY3MjU5YmM0Njc2OWE5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTkzLDggKzkzLDYgQEAgcHVibGljOgogCiAgICAg
UmVnaW9uU3RhdGUgcmVnaW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkKCkgPyBtX3Jl
Z2lvblN0YXRlIDogUmVnaW9uVW5kZWZpbmVkOyB9CiAgICAgdm9pZCBzZXRSZWdpb25TdGF0ZShS
ZWdpb25TdGF0ZSByZWdpb25TdGF0ZSkgeyBtX3JlZ2lvblN0YXRlID0gcmVnaW9uU3RhdGU7IH0K
LSAgICB2b2lkIHNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoYm9vbCB2YWx1ZSkg
eyBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgPSB2YWx1ZTsgfQotICAgIGJvb2wg
c2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgcmV0dXJuIG1fZGlzcGF0
Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudDsgfQogICAgIAogICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGhGb3JGbG93VGhyZWFkQ29udGVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0Rm9yRmxvd1RocmVhZENvbnRlbnQoKSBjb25zdDsKQEAg
LTEzOSw3ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1ZhbGlkOwogICAgIGJvb2wg
bV9oYXNDdXN0b21SZWdpb25TdHlsZTsKICAgICBSZWdpb25TdGF0ZSBtX3JlZ2lvblN0YXRlOwot
ICAgIGJvb2wgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50OwogfTsKIAogaW5saW5l
IFJlbmRlclJlZ2lvbiogdG9SZW5kZXJSZWdpb24oUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZTQ2YTQ3ZjNjZTg5ODFhZjAwNTVhYzJmNDYxM2IyMjIzYmU4N2RhOS4uZjk4ZDVjZjBjOGE0
YTY2ODllN2VkNThmZWU5MGU2ZDk1NWU4ZGM0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEy
LTA3LTE2ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1Mg
UmVnaW9uc10gVGhlIHJlZ2lvbkxheW91dFVwZGF0ZSBldmVudCBzaG91bGQgYmUgZGlzcGF0Y2hl
ZCBvbiB0aGUgTmFtZWRGbG93IG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg3NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXJlZ2lvbnMv
I3JlZ2lvbi1mbG93LWxheW91dC1ldmVudHMKKworICAgICAgICBUaGUgZXhpc3RpbmcgdGVzdHMg
aGF2ZSBiZWVuIGFkYXB0ZWQgdG8gbWF0Y2ggdGhlIHRyYW5zaXRpb24gb2YgdGhlIGV2ZW50IG9u
IHRoZSBOYW1lZEZsb3cgaW50ZXJmYWNlLiBBbHNvIHRoZXJlIGFyZSB0aHJlZSBtb3JlIHRlc3Rz
IGZvciB0aGUgY2FzZQorICAgICAgICB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQsIHRoZSBm
bG93IGdvZXMgaW4gdGhlIE5VTEwgc3RhdGUgYW5kIGZvciB0aGUgZXZlbnQgdGFyZ2V0IHRvIG1h
dGNoIHRoZSBOYW1lZEZsb3cgb2JqZWN0LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1h
ZGQtdG8tZmxvdy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Jl
Z2lvbi1ldmVudC1hZGQtdG8tZmxvdy5odG1sLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1u
by1yZWdpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1kb20tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1ldmVudC1yZW1vdmUtZnJvbS1kb20tZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1yZW1vdmUtZnJvbS1kb20uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9yZWdpb24tZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWwuCisgICAgICAgICogZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1ldmVudC1y
ZW1vdmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0
bWwuCisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdl
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10YXJnZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQu
aHRtbC4KKwogMjAxMi0wNy0xNyAgSsOhbm9zIEJhZGljcyAgPGpiYWRpY3NAaW5mLnUtc3plZ2Vk
Lmh1PgogCiAgICAgICAgIFtRdF0gUkVHUkVTU0lPTihyMTIyNzY4LCByMTIyNzcxKSAtIGl0IG1h
ZGUgfiAxNjAgZmFpbHMgb24gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3JlZ2lvbi1ldmVudC1hZGQtdG8tZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWFkZC10by1mbG93LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZkMGZlMGI0ZjA1OGIyN2MwMTgyOGJkMDA2NjYy
YTBjYjgxM2JmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWFkZC10by1mbG93LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHJlZ2lvbkxheW91
dEV2ZW50Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotIEZsb3cgY29udGVudAotUEFT
UyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lvbl8xIgotUEFTUyBldmVudC50YXJnZXQuaWQgaXMg
InJlZ2lvbl8xIgotUEFTUyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lvbl8yIgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtYWRkLXRvLWZsb3cuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtYWRkLXRvLWZsb3cuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhjMDZhMzY2M2E0YWNlY2NjMTI1YjJiMmNlOGMz
NjM4YzJhNmExMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWFkZC10by1mbG93Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
dHlsZT4KLSNhcnRpY2xlIHsKLSAgICAtd2Via2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKLSAgICBi
b3JkZXI6IDJweCBzb2xpZCBibGFjazsKLX0KLSNyZWdpb25fMSB7Ci0gICAgLXdlYmtpdC1mbG93
LWZyb206IG5vX2FydGljbGU7Ci0gICAgb3ZlcmZsb3c6aGlkZGVuOwotICAgIGRpc3BsYXk6aW5s
aW5lLWJsb2NrOwotICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKLSAgICBtYXJnaW46MTBweDsKLX0K
LS5ibG9jayB7Ci0gICBkaXNwbGF5OmJsb2NrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBo
ZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KLTxk
aXYgaWQ9ImFydGljbGUiPgotICAgIDxkaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0
eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgotICAg
IDwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KLTxkaXYgaWQ9InJl
Z2lvbl8yIj48L2Rpdj4KLQotPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJsb2NrIj48L2Rpdj4K
LQotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQiKQot
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LSAgICBmdW5jdGlvbiBmbG93Q29udGVudChyZWdpb24sIGZsb3dOYW1lKSB7Ci0gICAgICAgIHZh
ciByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVnaW9uKTsKLSAgICAgICAgci5zdHlsZS53
ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOwotICAgIH0KLSAgICB2YXIgY291bnQgPSAwOwotICAg
IGZ1bmN0aW9uIHJlZ2lvbjFVcGRhdGVkKGV2ZW50KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZXZlbnQudGFyZ2V0LmlkIiwgInJlZ2lvbl8xIik7Ci0gICAgICAgIGlmICgrK2Nv
dW50ID4gMSkgewotICAgICAgICAgICB2YXIgcjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uXzEiKTsKLSAgICAgICAgICAgcjEucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVn
aW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uMVVwZGF0ZWQpOwotICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgZmxvd0NvbnRlbnQoInJlZ2lvbl8yIiwgImFydGljbGUiKTsgLy8g
dGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgcm91bmQgb2YgZXZlbnRzIGR1ZSB0byBsYXlvdXQKLSAg
ICB9Ci0gICAgZnVuY3Rpb24gcmVnaW9uMlVwZGF0ZWQoZXZlbnQpIHsKLSAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQuaWQiLCAicmVnaW9uXzIiKTsKLSAgICAgICAg
dmFyIHIyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8yIik7Ci0gICAgICAgIHIy
LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbjJV
cGRhdGVkKTsKLSAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUgcmVhY2hlZCBhZnRlciByZWdpb25f
MiBpcyByZW1vdmVkIGZyb20gZmxvdwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci0g
ICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewotICAgICAgICB2YXIgcjEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVnaW9uXzEiKTsKLSAgICAgICAgdmFyIHIyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbl8yIik7Ci0gICAgICAgIHIxLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtp
dFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbjFVcGRhdGVkKTsKLSAgICAgICAgcjIuYWRkRXZl
bnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uMlVwZGF0ZWQpOwot
ICAgICAgICBkZWJ1ZygiRmxvdyBjb250ZW50Iik7Ci0gICAgICAgIGZsb3dDb250ZW50KCJyZWdp
b25fMSIsICJhcnRpY2xlIik7Ci0gICAgfQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgc3RhcnRUZXN0KTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjk1NzRiOTA4MmE4ZTRlNjgyMjNkNTY1
NTM2ZDAwMTI5YWQ5YzQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQK
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0gCi1GbG93IGNvbnRlbnQKLVBBU1MgZXZl
bnQudGFyZ2V0LmlkIGlzICJyZWdpb25fMSIKLVBBU1MgZXZlbnQudGFyZ2V0LmlkIGlzICJyZWdp
b25fMiIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92
ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9u
LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE2MTliMjI5OWY1OTBiOGJlYTI4MWFmMTBjOGU2YTQyM2RmODI3NjAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3JlZ2lvbi1ldmVudC1yZW1vdmUtZnJvbS1kb20tZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQKLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0gRmxvdyBjb250ZW50Ci1QQVNTIGV2ZW50LnRhcmdl
dC5pZCBpcyAicmVnaW9uXzEiCi1QQVNTIGV2ZW50LnRhcmdldC5pZCBpcyAicmVnaW9uXzIiCi1S
ZW1vdmluZyByZWdpb25fMiBmcm9tIERPTQotUEFTUyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lv
bl8xIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtcmVtb3Zl
LWZyb20tZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJl
bW92ZS1mcm9tLWRvbS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWM2OWIw
NDQ5MWQzYjQwOTVkZTg2YTJjYzBlYzQyOTBiNjE3Y2YyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24t
ZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSNhcnRpY2xlIHsKLSAgICAtd2Via2l0
LWZsb3ctaW50bzogYXJ0aWNsZTsKLSAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKLX0KLSNy
ZWdpb25fMSwgI3JlZ2lvbl8yewotICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOwot
ICAgIG92ZXJmbG93OmhpZGRlbjsKLSAgICBkaXNwbGF5OmlubGluZS1ibG9jazsKLSAgICB2ZXJ0
aWNhbC1hbGlnbjp0b3A7Ci0gICAgbWFyZ2luOjEwcHg7Ci19Ci0uYmxvY2sgewotICAgZGlzcGxh
eTpibG9jazsKLX0KLSNyZWdpb25fMSwgI3JlZ2lvbl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoy
MDBweDsgbWFyZ2luOiA1cHg7fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0i
ZGVzY3JpcHRpb24iIGNsYXNzPSJibG9jayI+PC9kaXY+Ci08ZGl2IGlkPSJhcnRpY2xlIj4KLSAg
ICA8ZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08
ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+Ci08ZGl2IGlkPSJjb250YWluZXIyIj4KLSAgICA8ZGl2
IGlkPSJyZWdpb25fMiI+PC9kaXY+Ci08L2Rpdj4KLQotPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9
ImJsb2NrIj48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9u
TGF5b3V0RXZlbnQiKQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLSAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgewotICAg
ICAgICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOwotICAgICAg
ICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Ci0gICAgICAgIHIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKLSAgICAgICAgci5zdHlsZS53ZWJraXRGbG93
RnJvbSA9IGZsb3dOYW1lOwotICAgIH0KLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9u
IHJlZ2lvbjFVcGRhdGVkKGV2ZW50KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXZlbnQudGFyZ2V0LmlkIiwgInJlZ2lvbl8xIik7Ci0gICAgICAgIGlmICgrK2NvdW50ID4gMSkg
ewotICAgICAgICAgICB2YXIgcjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEi
KTsKLSAgICAgICAgICAgcjEucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0
VXBkYXRlIiwgcmVnaW9uMVVwZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSBy
ZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZnVuY3Rpb24gcmVnaW9uMlVwZGF0
ZWQoZXZlbnQpIHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQu
aWQiLCAicmVnaW9uXzIiKTsKLSAgICAgICAgdmFyIHIyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbl8yIik7Ci0gICAgICAgIHIyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFJl
Z2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbjJVcGRhdGVkKTsKLSAgICAgICAgcjIuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uVXBkYXRlZCk7Ci0gICAg
ICAgIHZhciBjMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIyIik7Ci0gICAg
ICAgIGRlYnVnKCJSZW1vdmluZyByZWdpb25fMiBmcm9tIERPTSIpOwotICAgICAgICBjMi5pbm5l
ckhUTUwgPSAiIjsgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgcm91bmQgb2YgZXZlbnRzIGR1
ZSB0byBsYXlvdXQKLSAgICB9Ci0gICAgZnVuY3Rpb24gcmVnaW9uVXBkYXRlZChldmVudCkgewot
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LnRhcmdldC5pZCArICIgZXZlbnQgc2hvdWxkbid0IGhh
dmUgYmVlbiBkaXNwYXRjaGVkIiApOwotICAgIH0KLSAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7
Ci0gICAgICAgIHZhciByMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOwot
ICAgICAgICB2YXIgcjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKLSAg
ICAgICAgcjEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVn
aW9uMVVwZGF0ZWQpOwotICAgICAgICByMi5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25M
YXlvdXRVcGRhdGUiLCByZWdpb24yVXBkYXRlZCk7Ci0gICAgICAgIGRlYnVnKCJGbG93IGNvbnRl
bnQiKTsKLSAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKLSAgICB9Ci0gICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9y
ZWdpb24tZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmM2I2OGE2MjcxZmY0NmZmMjI1OTVjZTYwNjBj
Y2RjNDNmNTdhZTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtcmVtb3ZlLWZyb20tZmxv
dy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1UZXN0cyByZWdp
b25MYXlvdXRFdmVudAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLSAKLUZsb3cgY29u
dGVudAotUEFTUyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lvbl8xIgotUEFTUyBldmVudC50YXJn
ZXQuaWQgaXMgInJlZ2lvbl8yIgotUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93Ci1QQVNTIGV2
ZW50LnRhcmdldC5pZCBpcyAicmVnaW9uXzEiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL3JlZ2lvbi1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTcwNDI3YWI0ZDgzNmUxZDU3ZjMwOGM5NmM4MDExNTZmMGMzNTVl
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHN0eWxl
PgotI2FydGljbGUgewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOwotICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsYWNrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7Ci0gICAgLXdlYmtp
dC1mbG93LWZyb206IG5vX2FydGljbGU7Ci0gICAgb3ZlcmZsb3c6aGlkZGVuOwotICAgIGRpc3Bs
YXk6aW5saW5lLWJsb2NrOwotICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKLSAgICBtYXJnaW46MTBw
eDsKLX0KLS5ibG9jayB7Ci0gICBkaXNwbGF5OmJsb2NrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9u
XzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Ci08L3N0eWxlPgot
PC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2NrIj48L2Rp
dj4KLTxkaXYgaWQ9ImFydGljbGUiPgotICAgIDxkaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRl
bnQiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2
PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KLTxkaXYg
aWQ9InJlZ2lvbl8yIj48L2Rpdj4KLQotPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJsb2NrIj48
L2Rpdj4KLQotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZl
bnQiKQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLSAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgewotICAgICAgICB2YXIg
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOwotICAgICAgICByLnN0eWxl
LndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Ci0gICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uXzIiKTsKLSAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZs
b3dOYW1lOwotICAgIH0KLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9uIHJlZ2lvbjFV
cGRhdGVkKGV2ZW50KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFy
Z2V0LmlkIiwgInJlZ2lvbl8xIik7Ci0gICAgICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAg
ICAgICB2YXIgcjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKLSAgICAg
ICAgICAgcjEucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwg
cmVnaW9uMVVwZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFm
dGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBmbG93Ci0gICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIGZ1bmN0aW9uIHJlZ2lvbjJVcGRhdGVkKGV2ZW50
KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0LmlkIiwgInJl
Z2lvbl8yIik7Ci0gICAgICAgIHZhciByMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b25fMiIpOwotICAgICAgICByMi5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlv
dXRVcGRhdGUiLCByZWdpb24yVXBkYXRlZCk7Ci0gICAgICAgIHIyLmFkZEV2ZW50TGlzdGVuZXIo
IndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvblVwZGF0ZWQpOwotICAgICAgICBkZWJ1
ZygiUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93Iik7Ci0gICAgICAgIHIyLnN0eWxlLndlYmtp
dEZsb3dGcm9tID0gIm5vbmUiOyAvLyB0aGlzIHdpbGwgdHJpZ2dlciBhIG5ldyByb3VuZCBvZiBl
dmVudHMgZHVlIHRvIGxheW91dAotICAgIH0KLSAgICBmdW5jdGlvbiByZWdpb25VcGRhdGVkKGV2
ZW50KSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoZXZlbnQudGFyZ2V0LmlkICsgIiBldmVudCBzaG91
bGRuJ3QgaGF2ZSBiZWVuIGRpc3BhdGNoZWQiICk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0YXJ0
VGVzdCgpIHsKLSAgICAgICAgdmFyIHIxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lv
bl8xIik7Ci0gICAgICAgIHZhciByMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25f
MiIpOwotICAgICAgICByMS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRh
dGUiLCByZWdpb24xVXBkYXRlZCk7Ci0gICAgICAgIHIyLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtp
dFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbjJVcGRhdGVkKTsKLSAgICAgICAgZGVidWcoIkZs
b3cgY29udGVudCIpOwotICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOwotICAgIH0KLSAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHN0YXJ0VGVzdCk7Ci08L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3JlZ2lvbi1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lv
bi1ldmVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjdlYjlkODg5MmNm
NmVjYzU2MGJhMDE0NDA1ODcxYzcxNDA2MDYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHN0eWxlPgotI2FydGljbGUgewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOwot
ICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7Ci0g
ICAgLXdlYmtpdC1mbG93LWZyb206IG5vX2FydGljbGU7Ci0gICAgb3ZlcmZsb3c6aGlkZGVuOwot
ICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOwotICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKLSAgICBt
YXJnaW46MTBweDsKLX0KLS5ibG9jayB7Ci0gICBkaXNwbGF5OmJsb2NrOwotfQotI3JlZ2lvbl8x
LCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4fQotPC9zdHlsZT4KLTwvaGVh
ZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJibG9jayI+PC9kaXY+Ci08
ZGl2IGlkPSJhcnRpY2xlIj4KLSAgICA8ZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250ZW50IiBz
dHlsZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KLSAg
ICA8L2Rpdj4KLTwvZGl2PgotCi08ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+Ci08ZGl2IGlkPSJy
ZWdpb25fMiI+PC9kaXY+Ci0KLTxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+
Ci0KLTxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IikK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0gICAgZnVuY3Rpb24gZmxvd0NvbnRlbnQoZmxvd05hbWUpIHsKLSAgICAgICAgdmFyIHIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKLSAgICAgICAgci5zdHlsZS53ZWJr
aXRGbG93RnJvbSA9IGZsb3dOYW1lOwotICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbl8yIik7Ci0gICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFt
ZTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gcmVnaW9uMVVwZGF0ZWQoZXZlbnQpIHsKLSAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQuaWQiLCAicmVnaW9uXzEiKTsKLSAg
ICB9Ci0gICAgZnVuY3Rpb24gcmVnaW9uMlVwZGF0ZWQoZXZlbnQpIHsKLSAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQuaWQiLCAicmVnaW9uXzIiKTsKLSAgICAgICAg
ZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKLSAgICAg
ICAgdmFyIHIxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8xIik7Ci0gICAgICAg
IHZhciByMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwotICAgICAgICBy
MS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRhdGUiLCByZWdpb24xVXBk
YXRlZCk7Ci0gICAgICAgIHIyLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVw
ZGF0ZSIsIHJlZ2lvbjJVcGRhdGVkKTsKLSAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOwot
ICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOwotICAgIH0KLSAgICAvL3N0YXJ0VGVzdCgp
OwotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKLTwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFk
ZC10by1mbG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODFhMDVlMDcxNzg3OTI2MWQ0MDA3
YTdjMDcxMDczM2ViMjdmYWMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0cyByZWdpb25MYXlvdXRFdmVudAorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKyBGbG93IGNvbnRlbnQKK1BBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMg
ImFydGljbGUiCitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxv
dy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LWFkZC10by1mbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI4OTUwNmJlNjRhZjU2MTI4ZWNmZjUwNTk0
NDM2YzE5YmM2M2EyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCkBAIC0wLDAgKzEsNzMg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2FydGljbGUgeworICAgIC13ZWJr
aXQtZmxvdy1pbnRvOiBhcnRpY2xlOworICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworfQor
I3JlZ2lvbl8xIHsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogbm9fYXJ0aWNsZTsKKyAgICBvdmVy
ZmxvdzpoaWRkZW47CisgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwtYWxp
Z246dG9wOworICAgIG1hcmdpbjoxMHB4OworfQorLmJsb2NrIHsKKyAgIGRpc3BsYXk6YmxvY2s7
Cit9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IG1h
cmdpbjogNXB4O30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0
aW9uIiBjbGFzcz0iYmxvY2siPjwvZGl2PgorPGRpdiBpZD0iYXJ0aWNsZSI+CisgICAgPGRpdj4K
KyAgICAgICAgPGRpdiBpZD0iY29udGVudCIgc3R5bGU9ImhlaWdodDogMjAwcHg7IGJhY2tncm91
bmQtY29sb3I6IGdyZWVuOyI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0i
cmVnaW9uXzEiPjwvZGl2PgorPGRpdiBpZD0icmVnaW9uXzIiPjwvZGl2PgorCis8ZGl2IGlkPSJj
b25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCIpCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGZ1bmN0aW9uIGZsb3dDb250ZW50KHJl
Z2lvbiwgZmxvd05hbWUpIHsKKyAgICAgICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChyZWdpb24pOworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgfQorICAgIAorICAgIHZhciBjb3VudCA9IDA7CisgICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0
VXBkYXRlZChldmVudCkgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRh
cmdldC5uYW1lIiwgImFydGljbGUiKTsKKyAgICAgICAgCisgICAgICAgIGlmICgrK2NvdW50ID4g
MSkgeworICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtp
dFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAgICAgICAgICAg
CisgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlz
IGFkZGVkIHRvIGZsb3cKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmbG93Q29udGVudCgicmVnaW9u
XzIiLCAiYXJ0aWNsZSIpOyAvLyB0aGlzIHdpbGwgdHJpZ2dlciBhIG5ldyByb3VuZCBvZiBldmVu
dHMgZHVlIHRvIGxheW91dAorICAgIH0KKworICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAg
ICAgICAgdmFyIGZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7
CisgICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRl
IiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIAorICAgICAgICBkZWJ1ZygiRmxvdyBj
b250ZW50Iik7CisgICAgICAgIGZsb3dDb250ZW50KCJyZWdpb25fMSIsICJhcnRpY2xlIik7Cisg
ICAgfQorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mOTNlOWM3OTVkYjE4MjdjNGMxZWI2YzJlY2M3NzIxNjJmZTFiZWFhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1m
bG93LWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyByZWdpb25MYXlv
dXRFdmVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKyAKK0Zsb3cgY29udGVudAor
UEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8t
cmVnaW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWEyYjIxOTMzMTY0ZGVmMTdlMmMwNTBi
ZTM5NjIwMDg5OGYyOTIxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRjaGVkIHdo
ZW4gdGhlIHJlZ2lvbiBjaGFpbiBpcyByZW1vdmVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitGbG93IGNvbnRlbnQKK1BBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUi
CitSZW1vdmluZyByZWdpb24gMQorUmVtb3ZpbmcgcmVnaW9uIDIKK1BBU1MgZXZlbnQudGFyZ2V0
Lm5hbWUgaXMgImFydGljbGUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjU2MzdkY2RiM2M0N2NjNjJmMDFiZjQyMzBiNDUxNTZhNjYyMDc2NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1uby1y
ZWdpb25zLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjYXJ0aWNsZSB7CisgICAgLXdl
YmtpdC1mbG93LWludG86IGFydGljbGU7CisgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7Cit9
CisjcmVnaW9uXzEsICNyZWdpb25fMnsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogbm9fYXJ0aWNs
ZTsKKyAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7CisgICAg
dmVydGljYWwtYWxpZ246dG9wOworICAgIG1hcmdpbjoxMHB4OworfQorLmJsb2NrIHsKKyAgIGRp
c3BsYXk6YmxvY2s7Cit9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lk
dGg6MjAwcHg7IG1hcmdpbjogNXB4O30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImFydGljbGUiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxl
PSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRh
aW5lcjIiPgorICAgIDxkaXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRj
aGVkIHdoZW4gdGhlIHJlZ2lvbiBjaGFpbiBpcyByZW1vdmVkIik7CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB9CisKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgZnVuY3Rpb24g
Zmxvd0NvbnRlbnQoZmxvd05hbWUpIHsKKyAgICAgICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uXzEiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZs
b3dOYW1lOworICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8yIik7
CisgICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKKyAgICB9CisKKyAg
ICB2YXIgY291bnQgPSAwOworICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZlbnQp
IHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJh
cnRpY2xlIik7CisgICAgICAgIGlmICgrK2NvdW50ID4gMSkgeworICAgICAgICAgICBldmVudC50
YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVn
aW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBkZWJ1ZygiUmVtb3ZpbmcgcmVnaW9uIDEi
KTsKKyAgICAgICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsK
KyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJuby1hcnRpY2xlIjsKKyAgICAgICAg
ZGVidWcoIlJlbW92aW5nIHJlZ2lvbiAyIik7CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJu
by1hcnRpY2xlIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgICAg
IHZhciBmbG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOworICAg
ICAgICBmbG93LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJl
Z2lvbkxheW91dFVwZGF0ZWQpOworCisgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKKyAg
ICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC1yZW1vdmUtZnJvbS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2I0YWUwMTU2ZTFlN2I3MTVjODZiYmI5NDQzNjgyYjFjM2QyMTQxMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQt
Zmxvdy1ldmVudC1yZW1vdmUtZnJvbS1kb20tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHJlZ2lvbkxheW91dEV2ZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
IEZsb3cgY29udGVudAorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1JlbW92
aW5nIHJlZ2lvbl8yIGZyb20gRE9NCitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xl
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1yZW1vdmUtZnJvbS1kb20uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1kb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjk1ZWM4
YzljNjdhNDFkODA4NTgzMDcyYmQzMTIyNGQwOWIwMmYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9t
LWRvbS5odG1sCkBAIC0wLDAgKzEsNzggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorI2FydGljbGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOworICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsYWNrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7CisgICAgLXdlYmtp
dC1mbG93LWZyb206IG5vX2FydGljbGU7CisgICAgb3ZlcmZsb3c6aGlkZGVuOworICAgIGRpc3Bs
YXk6aW5saW5lLWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKKyAgICBtYXJnaW46MTBw
eDsKK30KKy5ibG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9u
XzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2NrIj48L2Rp
dj4KKzxkaXYgaWQ9ImFydGljbGUiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRl
bnQiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2
PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnRhaW5lcjIiPgorICAgIDxkaXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKzwvZGl2Pgor
Cis8ZGl2IGlkPSJjb25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2PgorCis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCIpCisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB9CisgICAgCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGZ1bmN0
aW9uIGZsb3dDb250ZW50KGZsb3dOYW1lKSB7CisgICAgICAgIHZhciByID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbl8xIik7CisgICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20g
PSBmbG93TmFtZTsKKyAgICAgICAgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25f
MiIpOworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CisgICAgfQor
ICAgIAorICAgIHZhciBjb3VudCA9IDA7CisgICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRl
ZChldmVudCkgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5u
YW1lIiwgImFydGljbGUiKTsKKyAgICAgICAgaWYgKCsrY291bnQgPiAxKSB7CisgICAgICAgICAg
IGV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRh
dGUiLCByZWdpb25MYXlvdXRVcGRhdGVkKTsKKyAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUg
cmVhY2hlZCBhZnRlciByZWdpb25fMiBpcyByZW1vdmVkIGZyb20gRE9NCisgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIHZhciBjMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIyIik7Cisg
ICAgICAgIGRlYnVnKCJSZW1vdmluZyByZWdpb25fMiBmcm9tIERPTSIpOworICAgICAgICBjMi5p
bm5lckhUTUwgPSAiIjsgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgcm91bmQgb2YgZXZlbnRz
IGR1ZSB0byBsYXlvdXQKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewor
ICAgICAgICB2YXIgZmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImFydGljbGUi
KTsKKyAgICAgICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRh
dGUiLCByZWdpb25MYXlvdXRVcGRhdGVkKTsKKyAgICAgICAgCisgICAgICAgIGRlYnVnKCJGbG93
IGNvbnRlbnQiKTsKKyAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICB9CisgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1v
dmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzRlNDYyMWFhYzAzMTc5OGQ3
MzMyM2FmOTE1M2JiNDk4NTEyMDM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHJlZ2lvbkxheW91dEV2ZW50CisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworIAorRmxvdyBjb250ZW50CitQQVNTIGV2ZW50LnRhcmdl
dC5uYW1lIGlzICJhcnRpY2xlIgorUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93CitQQVNTIGV2
ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20t
Zmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYTYwM2Q4NmQ4MzFjZjdlM2FjMWJhNzk2MzI3YWMxN2M1
MGNiMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0
LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sCkBAIC0wLDAgKzEsNzYgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2FydGljbGUgeworICAgIC13ZWJraXQt
Zmxvdy1pbnRvOiBhcnRpY2xlOworICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworfQorI3Jl
Z2lvbl8xLCAjcmVnaW9uXzJ7CisgICAgLXdlYmtpdC1mbG93LWZyb206IG5vX2FydGljbGU7Cisg
ICAgb3ZlcmZsb3c6aGlkZGVuOworICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgIHZlcnRp
Y2FsLWFsaWduOnRvcDsKKyAgICBtYXJnaW46MTBweDsKK30KKy5ibG9jayB7CisgICBkaXNwbGF5
OmJsb2NrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIw
MHB4OyBtYXJnaW46IDVweDt9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKzxkaXYgaWQ9ImFydGljbGUiPgorICAg
IDxkaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxk
aXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKzxkaXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKworPGRp
diBpZD0iY29uc29sZSIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQiKQorICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorICAgIAorICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiBm
bG93Q29udGVudChmbG93TmFtZSkgeworICAgICAgICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb25fMSIpOworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxv
d05hbWU7CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAgIH0KKyAgICAK
KyAgICB2YXIgY291bnQgPSAwOworICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZl
bnQpIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIs
ICJhcnRpY2xlIik7CisgICAgICAgIGlmICgrK2NvdW50ID4gMSkgeworICAgICAgICAgICBldmVu
dC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwg
cmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGJlIHJlYWNo
ZWQgYWZ0ZXIgcmVnaW9uXzIgaXMgcmVtb3ZlZCBmcm9tIERPTQorICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICB2YXIgcjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICAgICAg
ZGVidWcoIlJlbW92aW5nIHJlZ2lvbl8yIGZyb20gZmxvdyIpOworICAgICAgICByMi5zdHlsZS53
ZWJraXRGbG93RnJvbSA9ICJub25lIjsgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgcm91bmQg
b2YgZXZlbnRzIGR1ZSB0byBsYXlvdXQKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRU
ZXN0KCkgeworICAgICAgICB2YXIgZmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUo
ImFydGljbGUiKTsKKyAgICAgICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25M
YXlvdXRVcGRhdGUiLCByZWdpb25MYXlvdXRVcGRhdGVkKTsKKyAgICAgICAgCisgICAgICAgIGRl
YnVnKCJGbG93IGNvbnRlbnQiKTsKKyAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAg
ICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdl
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjNmZmE0MjNjODJkMGIyYzE3YzI3OWEzYjUzMTM1
ZTcxMmJmNzk5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkg
QEAKK1Rlc3RzIHRoZSB0aGUgTmFtZWRGbG93IG9iamVjdCBiZWhhdmlvciBhcyBhbiBFdmVudFRh
cmdldAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvdyBjb250ZW50CitQQVNT
IGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyAyIGlzID49IHVwZGF0ZWRDb3Vu
dAorUEFTUyBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJhcnRpY2xlIikgaXMgbm9uLW51
bGwuCitQQVNTIHJlY3JlYXRlZCBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRHZXRGbG93
QnlOYW1lKCJhcnRpY2xlIikgaXMgbnVsbAorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0
aWNsZSIKK1BBU1MgMiBpcyA+PSB1cGRhdGVkQ291bnQKK1BBU1MgcmVjcmVhdGVkIGlzIHRydWUK
K1BBU1MgZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpIGlzIG5vbi1udWxs
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZl
bnQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtdGFyZ2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNlYjkzYTc1NDM2NGQyZjI2MGExODdi
YzE2YzNhYjY3YWQ0NjllNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQuaHRtbApAQCAtMCwwICsxLDExMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGU+CisjYXJ0aWNsZSB7CisgICAgLXdlYmtpdC1mbG93LWludG86IGFydGljbGU7Cisg
ICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7Cit9CisjcmVnaW9uXzEsICNyZWdpb25fMnsKKyAg
ICAtd2Via2l0LWZsb3ctZnJvbTogbm9fYXJ0aWNsZTsKKyAgICBvdmVyZmxvdzpoaWRkZW47Cisg
ICAgZGlzcGxheTppbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwtYWxpZ246dG9wOworICAgIG1h
cmdpbjoxMHB4OworfQorLmJsb2NrIHsKKyAgIGRpc3BsYXk6YmxvY2s7Cit9CisjcmVnaW9uXzEs
ICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHh9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IGlk
PSJjb250ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+
Cis8ZGl2IGlkPSJyZWdpb25fMiI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJU
ZXN0cyB0aGUgdGhlIE5hbWVkRmxvdyBvYmplY3QgYmVoYXZpb3IgYXMgYW4gRXZlbnRUYXJnZXQi
KTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7Cit9Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitmdW5jdGlvbiBmbG93
Q29udGVudChmbG93TmFtZSkgeworICAgIHZhciByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl8xIik7CisgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
IHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICByLnN0eWxlLndl
YmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cit9CisKK2Z1bmN0aW9uIG1ha2VGbG93TnVsbCgpIHsK
KwlzaG91bGRCZU5vbk51bGwoJ2RvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImFydGljbGUi
KScpOworCisgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8xIik7
CisgICAgZWwuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSAibm9fYXJ0aWNsZSI7CisgICAgZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICBlbC5zdHlsZS53ZWJraXRG
bG93RnJvbSA9ICJub19hcnRpY2xlIjsKKyAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhcnRpY2xlIik7CisgICAgZWwuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAibm9fYXJ0aWNsZSI7
Cit9CisKK3ZhciByZWNyZWF0ZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIG1ha2VGbG93Q3JlYXRlZCgp
IHsKKwlzaG91bGRCZU51bGwoJ2RvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImFydGljbGUi
KScpOworCWdjKCk7CisKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uXzEiKTsKKyAgICBlbC5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJhcnRpY2xlIjsKKyAgICBl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOworICAgIGVsLnN0eWxlLndl
YmtpdEZsb3dGcm9tID0gImFydGljbGUiOworICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUiKTsKKyAgICBlbC5zdHlsZS53ZWJraXRGbG93SW50byA9ICJhcnRpY2xlIjsK
KworICAgIHJlY3JlYXRlZCA9IHRydWU7Cit9CisKK3ZhciB1cGRhdGVkQ291bnQgPSAwOworZnVu
Y3Rpb24gZmxvd1RocmVhZFVwZGF0ZWQoZXZlbnQpIHsKKwkrK3VwZGF0ZWRDb3VudDsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsKKwor
ICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCIyIiwgInVwZGF0ZWRDb3VudCIpOworCisg
ICAgaWYgKHVwZGF0ZWRDb3VudCA9PSAyKSB7CisgICAgCXNob3VsZEJlVHJ1ZSgicmVjcmVhdGVk
Iik7CisgICAgCWV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25M
YXlvdXRVcGRhdGUiLCBmbG93VGhyZWFkVXBkYXRlZCk7CisgICAgCW1ha2VGbG93TnVsbCgpOwor
ICAgIAlmaW5pc2hKU1Rlc3QoKTsKKyAgICAJcmV0dXJuOworICAgIH0KKworICAgIG1ha2VGbG93
TnVsbCgpOworICAgIHNob3VsZEJlRmFsc2UoInJlY3JlYXRlZCIpOworCisgICAgLy8gU2V0IGEg
dGltZW91dCBzbyB0aGUgZXZlbnQgcmVmZXJlbmNlIHRvIHRoZSB0YXJnZXQgaXMgZGlzY2FyZGVk
CisgICAgc2V0VGltZW91dChtYWtlRmxvd0NyZWF0ZWQsIDEwKTsKK30KKworZnVuY3Rpb24gc3Rh
cnRUZXN0KCkgeyAgICAKKyAgICB2YXIgZmxvd1RocmVhZCA9IGRvY3VtZW50LndlYmtpdEdldEZs
b3dCeU5hbWUoImFydGljbGUiKTsKKyAgICBmbG93VGhyZWFkLmFkZEV2ZW50TGlzdGVuZXIoIndl
YmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsKKyAgICAKKyAgICBk
ZWJ1ZygiRmxvdyBjb250ZW50Iik7CisgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWIyY2NiOWY2YWRkNGJlMzE4OTQ4OWY0Zjk2MDk2ZWMxMzlhY2NhNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyByZWdp
b25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRjaGVkIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVtb3Zl
ZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvdyBjb250ZW50CitQQVNTIGV2
ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93
CitSZW1vdmluZyByZWdpb25fMSBmcm9tIGZsb3cKK1JlbW92aW5nIGFydGljbGUgZnJvbSBmbG93
CitQQVNTIGxheW91dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyBpcyBmYWxzZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQt
dG8tbnVsbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhYmExNWEzYWVlMDYxOTFjZTdmOTM4ZDQ1YjYwZGQ4
YWQwZDUzMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorI2FydGljbGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOworICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsYWNrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7CisgICAgLXdlYmtp
dC1mbG93LWZyb206IG5vX2FydGljbGU7CisgICAgb3ZlcmZsb3c6aGlkZGVuOworICAgIGRpc3Bs
YXk6aW5saW5lLWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKKyAgICBtYXJnaW46MTBw
eDsKK30KKy5ibG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9u
XzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICA8ZGl2PgorICAgICAgICA8
ZGl2IGlkPSJjb250ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdpb25fMSI+
PC9kaXY+Cis8ZGl2IGlkPSJjb250YWluZXIyIj4KKyAgICA8ZGl2IGlkPSJyZWdpb25fMiI+PC9k
aXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91
dEV2ZW50IGJlaW5nIGRpc3BhdGNoZWQgd2hlbiB0aGUgY29udGVudCBpcyByZW1vdmVkIik7CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgfQorICAgIAorICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAgICAgICB2YXIgciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOworICAgICAgICByLnN0eWxlLndl
YmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uXzIiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dO
YW1lOworICAgIH0KKyAgICAKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciBsYXlvdXRVcGRh
dGVEaXNwYXRjaGVkRm9yTnVsbEZsb3cgPSBmYWxzZTsKKyAgICBmdW5jdGlvbiByZWdpb25MYXlv
dXRVcGRhdGVkKGV2ZW50KSB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQu
dGFyZ2V0Lm5hbWUiLCAiYXJ0aWNsZSIpOworICAgICAgICBpZiAoKytjb3VudCA+IDEpIHsKKyAg
ICAgICAgICAgZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxh
eW91dFVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAgICAgICAgICBsYXlvdXRVcGRh
dGVEaXNwYXRjaGVkRm9yTnVsbEZsb3cgPSB0cnVlOworICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb25fMiIpOworICAgICAgICBkZWJ1ZygiUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93
Iik7CisgICAgICAgIGVsLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gIm5vbmUiOworICAgICAgICBl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOworICAgICAgICBkZWJ1Zygi
UmVtb3ZpbmcgcmVnaW9uXzEgZnJvbSBmbG93Iik7CisgICAgICAgIGVsLnN0eWxlLndlYmtpdEZs
b3dGcm9tID0gIm5vbmUiOworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
cnRpY2xlIik7CisgICAgICAgIGRlYnVnKCJSZW1vdmluZyBhcnRpY2xlIGZyb20gZmxvdyIpOwor
ICAgICAgICBlbC5zdHlsZS53ZWJraXRGbG93SW50byA9ICJub25lIjsKKworICAgICAgICBzZXRU
aW1lb3V0KGNoZWNrSWZFdmVudERpc3BhdGNoZWQsIDUwMCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gY2hlY2tJZkV2ZW50RGlzcGF0Y2hlZCgpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgibGF5
b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxGbG93Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgICAgIHZhciBm
bG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOworICAgICAgICBm
bG93LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbkxh
eW91dFVwZGF0ZWQpOworICAgICAgICAKKyAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOwor
ICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIHN0YXJ0VGVzdCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFlZDk0MzZiNjJiMTUyZTNhZTIzNTk3M2JkMjUxN2Zm
OWU2ZjE0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorI2FydGljbGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRp
Y2xlOworICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9u
XzJ7CisgICAgLXdlYmtpdC1mbG93LWZyb206IG5vX2FydGljbGU7CisgICAgb3ZlcmZsb3c6aGlk
ZGVuOworICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWduOnRvcDsK
KyAgICBtYXJnaW46MTBweDsKK30KKy5ibG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQorI3Jl
Z2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4fQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJibG9jayI+PC9k
aXY+Cis8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IGlkPSJjb250
ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+Cis8ZGl2
IGlkPSJyZWdpb25fMiI+PC9kaXY+CisKKzxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+
PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2
ZW50IikKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgZnVuY3Rpb24gZmxvd0NvbnRlbnQoZmxvd05hbWUpIHsKKyAgICAgICAgdmFy
IHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKKyAgICAgICAgci5zdHls
ZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbl8yIik7CisgICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBm
bG93TmFtZTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZmxvd1RocmVhZFVwZGF0ZWQoZXZl
bnQpIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIs
ICJhcnRpY2xlIik7CisgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3
ZWJraXRSZWdpb25MYXlvdXRVcGRhdGUiLCBmbG93VGhyZWFkVXBkYXRlZCk7CisgICAgICAgIAor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRU
ZXN0KCkgeyAgICAKKyAgICAgICAgdmFyIGZsb3dUaHJlYWQgPSBkb2N1bWVudC53ZWJraXRHZXRG
bG93QnlOYW1lKCJhcnRpY2xlIik7CisgICAgICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5l
cigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgICAg
ICAKKyAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOworICAgICAgICBmbG93Q29udGVudCgi
YXJ0aWNsZSIpOworICAgIH0KKyAgICAvL3N0YXJ0VGVzdCgpOworICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155812</attachid>
            <date>2012-08-01 08:06:16 -0700</date>
            <delta_ts>2012-08-01 11:42:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88778-20120801180556.patch</filename>
            <type>text/plain</type>
            <size>63100</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2YyZTg1N2Q4ZTQ0MDYz
YTY5MWRmNzE5OTNmNjc3ZDIzODFjNzg3NC4uYTgzNzhjMzQyODM2NmJkZjNhYzNhZGYzM2Y0ZTVl
ODkzNDk5MmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA4LTAxICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gVGhl
IHJlZ2lvbkxheW91dFVwZGF0ZSBldmVudCBzaG91bGQgYmUgZGlzcGF0Y2hlZCBvbiB0aGUgTmFt
ZWRGbG93IG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODg3NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXJlZ2lvbnMvI3JlZ2lvbi1mbG93
LWxheW91dC1ldmVudHMKKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIHJlZ2lv
bkxheW91dFVwZGF0ZSBldmVudCBwZXIgTWF5IDNyZCBDU1MgUmVnaW9ucyBzcGVjIHJlY29tbWVu
ZGF0aW9uLgorICAgICAgICBCZWZvcmUgdGhpcyBwYXRjaCB0aGUgZXZlbnQgd2FzIGRpc3BhdGNo
ZWQgaW5kaXZpZHVhbGx5IG9uIGVhY2ggcmVnaW9uIHdoZW5ldmVyIGl0cyBvdmVyZmxvdyBzdGF0
ZSBjaGFuZ2VkLiBUaGUgdHJpZ2dlciBjb25kaXRpb25zIGFyZSBwcmVzZXJ2ZWQgd2l0aCB0aGUg
Zm9sbG93aW5nIGFkZGl0aW9uczoKKyAgICAgICAgLSB0aGUgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3
aGVuIHRoZSBsYXN0IHJlZ2lvbiBpcyByZW1vdmVkCisgICAgICAgIC0gdGhlIGV2ZW50IGlzIG5v
dCBkaXNwYXRjaGVkIHdoZW4gdGhlIG5hbWVkIGZsb3cgc3dpdGNoZXMgdG8gdGhlIE5VTEwgc3Rh
dGUKKyAgICAgICAgQWxzbywgdGhlIE5hbWVkRmxvdyBvYmplY3RzIGFyZSBub3QgZGVsZXRlZCBp
ZiB0aGV5IHN3aXRjaCB0byB0aGUgTlVMTCBzdGF0ZSBhbmQgaGF2ZSBsaXN0ZW5lcnMgYXR0YWNo
ZWQuIEluIHRoYXQgc2NlbmFyaW8gdGhlIEpTIHdyYXBwZXIgd2lsbCBub3QgcmVsZWFzZSB0aGUg
cmVmZXJlbmNlCisgICAgICAgIHVudGlsIHRoZSBwYXJlbnQgRG9jdW1lbnQgaXMgZGVzdHJveWVk
LgorCisgICAgICAgIFRlc3RzOiBUaGUgb2xkIHRlc3RzIGhhdmUgYmVlbiBtb2RpZmllZCB0byB1
c2UgdGhlIGV2ZW50IG9uIHRoZSBOYW1lZEZsb3cgb2JqZWN0IHJhdGhlciB0aGUgb25lIG9uIHRo
ZSBSZWdpb24uIE5ldyB0ZXN0cyBoYXZlIGJlZW4gYWRkZWQgdG8gdmVyaWZ5IHRoZQorICAgICAg
ICBjb3JyZWN0IGJlaGF2aW9yIGluIHRoZSBzcGVjaWFsIHN0YXRlcyBvZiB0aGUgTmFtZWRGbG93
IChubyByZWdpb24gY2hhaW4sIE5VTEwgc3RhdGUpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRMaXN0ZW5lclR5cGVJZk5lZWRl
ZCk6IExpc3RlbmVycyBhcmUgbm90IGFkZGVkIG9uIE5vZGVzIGFueSBtb3JlIHNvIHRoZSByZWdp
b25MYXlvdXRVcGRhdGUgdHlwZSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0LgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgor
ICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0TmFtZWRGbG93OjpldmVudFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXROYW1lZEZsb3c6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXROYW1lZEZsb3c6OmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBk
YXRlRXZlbnQpOiBUaGUgM3JkIE1heSBXRCBzYXlzIHRoZSBldmVudCBpcyBidWJibGluZy4gSG93
ZXZlciB0aGlzIGRvZXNuJ3QgbWFrZSBzZW5zZSBhcyB0aGlzIG9iamVjdCBkb2Vzbid0IGJlbG9u
ZyB0byB0aGUgRE9NIHRyZWUuIFRoaXMgd2FzIGZpeGVkIGluIHRoZSBFRC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdE5hbWVkRmxvdzo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXROYW1lZEZsb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0TmFtZWRGbG93OjpiYXNlKTogR2V0dGVyIGZvciB0aGUgb3duZXIgRG9jdW1l
bnQgdXNlZCBieSB0aGUgd3JhcHBlciB0byBkZXRlcm1pbmUgaWYgdGhlIG9iamVjdCBpcyByZWFj
aGFibGUuCisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJLaXROYW1lZEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
TmFtZWRGbG93OjpyZWZFdmVudFRhcmdldCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXROYW1l
ZEZsb3c6OmRlcmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cu
aWRsOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KTogVGhlIGV2ZW50IGRpc3BhdGNoaW5n
IGlzIG5vdyBoYW5kbGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBSZW5kZXJGbG93VGhyZWFk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6Y29tcHV0ZU92ZXJmbG93U3Rh
dGVGb3JSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZW1vdmVSZWdpb25Gcm9t
VGhyZWFkKTogVGhlIGxheW91dCBkb2Vzbid0IGRldGVjdCBjaGFuZ2VzIGNhdXNlZCBieSByZW1v
dmluZyB0aGUgbGFzdCByZWdpb24uIFRoaXMgY2FzZSBpcyBoYW5kbGVkIHNlcGFyYXRlbHkuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uTGF5
b3V0VXBkYXRlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oOgorICAgICAgICAo
UmVuZGVyTmFtZWRGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChSZW5kZXJSZWdpb24p
OgorCiAyMDEyLTA4LTAxICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAK
ICAgICAgICAgTWFrZSBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQoQXRv
bWljSFRNTFRva2VuKikgcHJpdmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDUyYjQ0
ZTdhZGNjNDE3NGJjM2Y3NjI2MGZkYjcxYTRhYWU3ZTgxNjAuLjkwZTA0OTUwN2JkOWM3NzVkYjUy
ZGUxOGVmODgxZTUzYTNkNGMyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDE0OCw4
ICs0MTQ4LDYgQEAgdm9pZCBEb2N1bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUpCiAjZW5kaWYKICAgICBlbHNlIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoU0NS
T0xMX0xJU1RFTkVSKTsKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndl
YmtpdFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KQotICAgICAgICBhZGRMaXN0ZW5lclR5cGUoUkVH
SU9OTEFZT1VUVVBEQVRFX0xJU1RFTkVSKTsKIH0KIAogQ1NTU3R5bGVEZWNsYXJhdGlvbiogRG9j
dW1lbnQ6OmdldE92ZXJyaWRlU3R5bGUoRWxlbWVudCosIGNvbnN0IFN0cmluZyYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDAxN2ViOGM4NTE5N2QwYzg1MDEyMWE3MGQ1NzY5MjdjOGRkODEyZTku
LmM2NzFkY2YyZTM1NWZlYTlmNDJkODJkY2EyMmVkMjA0MDJjMWMwYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC03OTQsOCArNzk0LDcgQEAgcHVibGljOgogICAgICAgICBUUkFOU0lUSU9ORU5E
X0xJU1RFTkVSICAgICAgICAgICAgICAgPSAweDgwMCwKICAgICAgICAgQkVGT1JFTE9BRF9MSVNU
RU5FUiAgICAgICAgICAgICAgICAgID0gMHgxMDAwLAogICAgICAgICBUT1VDSF9MSVNURU5FUiAg
ICAgICAgICAgICAgICAgICAgICAgPSAweDIwMDAsCi0gICAgICAgIFNDUk9MTF9MSVNURU5FUiAg
ICAgICAgICAgICAgICAgICAgICA9IDB4NDAwMCwKLSAgICAgICAgUkVHSU9OTEFZT1VUVVBEQVRF
X0xJU1RFTkVSICAgICAgICAgID0gMHg4MDAwCisgICAgICAgIFNDUk9MTF9MSVNURU5FUiAgICAg
ICAgICAgICAgICAgICAgICA9IDB4NDAwMAogICAgIH07CiAKICAgICBib29sIGhhc0xpc3RlbmVy
VHlwZShMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlKSBjb25zdCB7IHJldHVybiAobV9saXN0ZW5l
clR5cGVzICYgbGlzdGVuZXJUeXBlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBh
YjBkN2M3ZjFlN2UzYjc4NTIwYjZmYWI3MzZjMmJiMGYwOTBlNDczLi5kMzRhMjY1Njc1NDZmZWZk
ZGI3OGJkM2I4ZDNmMGVkYmRmZTBiOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAt
NjgsNiArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgVGV4dFRyYWNrOwog
ICAgIGNsYXNzIFRleHRUcmFja0N1ZTsKICAgICBjbGFzcyBXZWJTb2NrZXQ7CisgICAgY2xhc3Mg
V2ViS2l0TmFtZWRGbG93OwogICAgIGNsYXNzIFdvcmtlcjsKICAgICBjbGFzcyBYTUxIdHRwUmVx
dWVzdDsKICAgICBjbGFzcyBYTUxIdHRwUmVxdWVzdFVwbG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDQ0ZThkOGU4NWFmNTBjYjQ1YTA0YTgyNzBjMjRk
MDU1MzQwYzMyMDMuLjBhNDllY2VmZDJjMjgxNzk0MDFiMzM4MmQ0MzliZjVhZDQ1NjI5MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMzMsNiArMzMsNyBA
QCBTVkdFbGVtZW50SW5zdGFuY2UgY29uZGl0aW9uYWw9U1ZHCiBUZXh0VHJhY2sgY29uZGl0aW9u
YWw9VklERU9fVFJBQ0sKIFRleHRUcmFja0N1ZSBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVGV4
dFRyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFDSworV2ViS2l0TmFtZWRGbG93CiBXZWJT
b2NrZXQgY29uZGl0aW9uYWw9V0VCX1NPQ0tFVFMKIFdvcmtlciBjb25kaXRpb25hbD1XT1JLRVJT
CiBYTUxIdHRwUmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDQ0N2I3NWEyYTZjYTQyZDRkYTky
NjNlZjRhZmE3NGI0MDE3ODU5YzAuLjlhNDIxMmIxY2YwNWIwMjM5YTU5NDkzYWQwYWVmNjVkYzlh
ZWI4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI1ODAsMTYgKzI1ODAsNiBAQCBib29sIE5vZGU6
OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgcmV0dXJuIEV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNy
ZWF0ZShldmVudCkpOwogfQogCi12b2lkIE5vZGU6OmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRl
RXZlbnQoKQotewotICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKLQotICAg
IGlmICghZG9jdW1lbnQoKS0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpSRUdJT05MQVlPVVRV
UERBVEVfTElTVEVORVIpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkaXNwYXRjaFNjb3BlZEV2
ZW50KFVJRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0UmVnaW9uTGF5b3V0VXBkYXRl
RXZlbnQsIHRydWUsIHRydWUsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIDApKTsKLX0KLQog
dm9pZCBOb2RlOjpkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCkKIHsKICAgICBpZiAoaXNJ
blNoYWRvd1RyZWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGExZmIxODRjMzJkZjhjNDJiYjQ3OWFlODJl
OGEwZTU1NjU1OTE1MzAuLmFmZmMxMTNlN2RlNjk1YmMyNGQzNzMxZTcxNTMwMWYyYmE2MDc3ZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaApAQCAtNjA2LDggKzYwNiw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCopOwogCi0gICAgdm9pZCBkaXNwYXRjaFJlZ2lv
bkxheW91dFVwZGF0ZUV2ZW50KCk7Ci0KICAgICB2b2lkIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVk
RXZlbnQoKTsKICAgICBib29sIGRpc3BhdGNoRE9NQWN0aXZhdGVFdmVudChpbnQgZGV0YWlsLCBQ
YXNzUmVmUHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQpOwogICAgIHZvaWQgZGlzcGF0Y2hGb2N1
c0luRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8Tm9kZT4g
b2xkRm9jdXNlZE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5h
bWVkRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcAppbmRl
eCA3YTA3ZmJhMTdjNTg2YjExMmQ3ZmY5YmQ1MGY1NjgwMTU5NGY1YjEyLi5kYzVlNDEyMDc3MTM5
NTMwYWM5NTg5ZDc4NTFhNmIyYjM1MWE3NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0TmFtZWRGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFt
ZWRGbG93LmNwcApAQCAtMzAsOSArMzAsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJXZWJLaXROYW1lZEZsb3cuaCIKIAorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3RhdGljTm9k
ZUxpc3QuaCIKKyNpbmNsdWRlICJVSUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93
Q29sbGVjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTUsNSArMTU4LDQwIEBA
IHZvaWQgV2ViS2l0TmFtZWRGbG93OjpzZXRSZW5kZXJlcihSZW5kZXJOYW1lZEZsb3dUaHJlYWQq
IHBhcmVudEZsb3dUaHJlYWQpCiAgICAgbV9wYXJlbnRGbG93VGhyZWFkID0gcGFyZW50Rmxvd1Ro
cmVhZDsKIH0KIAorRXZlbnRUYXJnZXREYXRhKiBXZWJLaXROYW1lZEZsb3c6OmV2ZW50VGFyZ2V0
RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZlbnRUYXJn
ZXREYXRhKiBXZWJLaXROYW1lZEZsb3c6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAg
cmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKwordm9pZCBXZWJLaXROYW1lZEZsb3c6OmRp
c3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKQoreworICAgIEFTU0VSVCghZXZlbnREaXNw
YXRjaEZvcmJpZGRlbigpKTsKKyAgICBBU1NFUlQobV9wYXJlbnRGbG93VGhyZWFkKTsKKworICAg
IFJlZlB0cjxFdmVudD4gZXZlbnQgPSBVSUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtp
dFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50LCBmYWxzZSwgZmFsc2UsIG1fcGFyZW50Rmxvd1RocmVh
ZC0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgMCk7CisKKyAgICBkaXNwYXRjaEV2ZW50KGV2
ZW50KTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXROYW1lZEZsb3c6OmludGVyZmFj
ZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yV2Vi
S2l0TmFtZWRGbG93OworfQorCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBXZWJLaXROYW1lZEZs
b3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2Zsb3dN
YW5hZ2VyLT5kb2N1bWVudCgpOworfQorCitOb2RlKiBXZWJLaXROYW1lZEZsb3c6OmJhc2UoKSBj
b25zdAoreworICAgIHJldHVybiBtX2Zsb3dNYW5hZ2VyLT5kb2N1bWVudCgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJL
aXROYW1lZEZsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAppbmRl
eCA1YTM5ZThkOWNlMDZiZGIwMzNiMjlkOWFhZTM4Njk1MTFmNTM3ZmVkLi40MjQ2NDFiYjI0ZTJm
N2QyMDZhZWRlYzc5ZjY3NDA5Yzk2NDQ1YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0TmFtZWRGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVk
Rmxvdy5oCkBAIC0zMCwxOCArMzAsMjMgQEAKICNpZm5kZWYgV2ViS2l0TmFtZWRGbG93X2gKICNk
ZWZpbmUgV2ViS2l0TmFtZWRGbG93X2gKIAotI2luY2x1ZGUgPE5vZGUuaD4KKyNpbmNsdWRlICJF
dmVudFRhcmdldC5oIgorCiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9j
dW1lbnQ7CitjbGFzcyBOb2RlOwogY2xhc3MgTm9kZUxpc3Q7CiBjbGFzcyBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgV2ViS2l0TmFt
ZWRGbG93Q29sbGVjdGlvbjsKIAotY2xhc3MgV2ViS2l0TmFtZWRGbG93IDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViS2l0TmFtZWRGbG93PiB7CitjbGFzcyBXZWJLaXROYW1lZEZsb3cgOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJLaXROYW1lZEZsb3c+LCBwdWJsaWMgRXZlbnRUYXJnZXQgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gY3JlYXRlKFBhc3NSZWZQ
dHI8V2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbj4gbWFuYWdlciwgY29uc3QgQXRvbWljU3RyaW5n
JiBmbG93VGhyZWFkTmFtZSk7CiAKQEAgLTUzLDYgKzU4LDE2IEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPE5vZGVMaXN0PiBnZXRSZWdpb25zQnlDb250ZW50KE5vZGUqKTsKICAgICBQYXNzUmVm
UHRyPE5vZGVMaXN0PiBnZXRDb250ZW50KCk7CiAKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYktp
dE5hbWVkRmxvdz46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYktpdE5hbWVkRmxvdz46
OmRlcmVmOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdDsKKworICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZy
b20gdGhlIEpTIGJpbmRpbmcgY29kZSB0byBkZXRlcm1pbmUgaWYgdGhlIE5hbWVkRmxvdyBvYmpl
Y3QgaXMgcmVhY2hhYmxlIG9yIG5vdC4KKyAgICAvLyBJZiB0aGUgb2JqZWN0IGhhcyBsaXN0ZW5l
cnMsIHRoZSBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgZGlzY2FyZGVkIGlmIHRoZSBwYXJlbnQgRG9j
dW1lbnQgaXMgbm90IHJlYWNoYWJsZS4KKyAgICBOb2RlKiBiYXNlKCkgY29uc3Q7CisKICAgICB2
b2lkIHNldFJlbmRlcmVyKFJlbmRlck5hbWVkRmxvd1RocmVhZCogcGFyZW50Rmxvd1RocmVhZCk7
CiAKICAgICBlbnVtIEZsb3dTdGF0ZSB7CkBAIC02MiwxNCArNzcsMjUgQEAgcHVibGljOgogCiAg
ICAgRmxvd1N0YXRlIGZsb3dTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50Rmxvd1RocmVh
ZCA/IEZsb3dTdGF0ZUNyZWF0ZWQgOiBGbG93U3RhdGVOdWxsOyB9CiAKKyAgICB2b2lkIGRpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKTsKKwogcHJpdmF0ZToKICAgICBXZWJLaXROYW1l
ZEZsb3coUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uPiwgY29uc3QgQXRvbWlj
U3RyaW5nJik7CiAKKyAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVmKCk7IH0KKworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0
RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7CisKICAgICAvLyBUaGUgbmFt
ZSBvZiB0aGUgZmxvdyB0aHJlYWQgYXMgc3BlY2lmaWVkIGluIENTUy4KICAgICBBdG9taWNTdHJp
bmcgbV9mbG93VGhyZWFkTmFtZTsKIAogICAgIFJlZlB0cjxXZWJLaXROYW1lZEZsb3dDb2xsZWN0
aW9uPiBtX2Zsb3dNYW5hZ2VyOwogICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogbV9wYXJlbnRG
bG93VGhyZWFkOworCisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbAppbmRleCA0ZDRlOTliN2U3
MDcxNGU0YjY3YjMwM2YwNThiYWRkMjg3ZjIzNWM0Li5kNzljNDQ0ZTZiMTE2MDQ0NDYxMDAzOTVj
ZWZjNjNjNWIyOGJhNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFt
ZWRGbG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbApA
QCAtMjksMTMgKzI5LDI1IEBACiAKIG1vZHVsZSBjb3JlIHsKICAgICBpbnRlcmZhY2UgWwotICAg
ICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAorICAgICAgICBFdmVudFRhcmdldCwKKyAgICAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEJh
c2VSb290CiAgICAgXSBXZWJLaXROYW1lZEZsb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG92
ZXJzZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGZpcnN0RW1wdHlSZWdpb25J
bmRleDsKICAgICAgICAgTm9kZUxpc3QgZ2V0UmVnaW9uc0J5Q29udGVudChpbiBOb2RlIGNvbnRl
bnROb2RlKTsKICAgICAgICAgTm9kZUxpc3QgZ2V0Q29udGVudCgpOworICAgICAgICAKKyAgICAg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5l
cihpbiBET01TdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBF
dmVudExpc3RlbmVyIGxpc3RlbmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgdm9pZCByZW1vdmVFdmVu
dExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICBi
b29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCisgICAgICAgICAgICByYWlzZXMo
RXZlbnRFeGNlcHRpb24pOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCAxYjA5Y2JiOGQwZjFlMTEwMjFmNDU0YWRhOTJh
N2YyYzZmZjAzNzkxLi42MGNiYTA3NTM4YWM0MDhkNzI0ZDk1MzkxMDdiZDY2ZjdmNzZlNjdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC01
Miw3ICs1Miw2IEBAIFJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoTm9kZSogbm9k
ZSkKICAgICAsIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRoKHRydWUpCiAgICAgLCBt
X3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWlnaHQodHJ1ZSkKICAgICAsIG1fb3ZlcnNldCh0
cnVlKQotICAgICwgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyKHRoaXMsICZSZW5kZXJG
bG93VGhyZWFkOjpyZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyRmlyZWQpCiB7CiAgICAgQVNT
RVJUKG5vZGUtPmRvY3VtZW50KCktPmNzc1JlZ2lvbnNFbmFibGVkKCkpOwogICAgIHNldElzQW5v
bnltb3VzKGZhbHNlKTsKQEAgLTIwNiwxNSArMjA1LDkgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFk
OjpsYXlvdXQoKQogICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCks
IHRoaXMsIHJlZ2lvbnNDaGFuZ2VkKTsKICAgICBSZW5kZXJCbG9jazo6bGF5b3V0KCk7CiAgICAg
c3RhdGVQdXNoZXIucG9wKCk7Ci0gICAgaWYgKGRvY3VtZW50KCktPmhhc0xpc3RlbmVyVHlwZShE
b2N1bWVudDo6UkVHSU9OTEFZT1VUVVBEQVRFX0xJU1RFTkVSKSAmJiAhbV9yZWdpb25MYXlvdXRV
cGRhdGVFdmVudFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIGZvciAoUmVuZGVyUmVnaW9uTGlz
dDo6aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9u
TGlzdC5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9
ICppdGVyOwotICAgICAgICAgICAgaWYgKHJlZ2lvbi0+c2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlv
dXRVcGRhdGVFdmVudCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gYXQgbGVhc3Qgb25lIHJlZ2lv
biBuZWVkcyB0byBkaXNwYXRjaCB0aGUgZXZlbnQKLSAgICAgICAgICAgICAgICBtX3JlZ2lvbkxh
eW91dFVwZGF0ZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgCisgICAgaWYgKHNob3VsZERpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSkKKyAgICAgICAgZGlzcGF0Y2hSZWdpb25MYXlv
dXRVcGRhdGVFdmVudCgpOwogfQogCiB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVMb2dp
Y2FsV2lkdGgoKQpAQCAtNzAzLDEzICs2OTYsMTMgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpj
b21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckUK
ICAgICAgICAgaWYgKGZsb3dNYXggPiAwKQogICAgICAgICAgICAgc3RhdGUgPSBSZW5kZXJSZWdp
b246OlJlZ2lvbk92ZXJmbG93OwogICAgICAgICByZWdpb24tPnNldFJlZ2lvblN0YXRlKHN0YXRl
KTsKLSAgICAgICAgLy8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyByZWdpb24gc2hvdWxkIGRpc3Bh
dGNoIGEgcmVnaW9uTGF5b3V0VXBkYXRlIGV2ZW50CisgICAgICAgIC8vIGRldGVybWluZSB3aGV0
aGVyIHRoZSBOYW1lZEZsb3cgb2JqZWN0IHNob3VsZCBkaXNwYXRjaCBhIHJlZ2lvbkxheW91dFVw
ZGF0ZSBldmVudAogICAgICAgICAvLyBGSVhNRTogY3VycmVudGx5IGl0IGNhbm5vdCBkZXRlcm1p
bmUgd2hldGhlciBhIHJlZ2lvbiB3aG9zZSByZWdpb25PdmVyZmxvdyBzdGF0ZSByZW1haW5lZCBl
aXRoZXIgImZpdCIgb3IgIm92ZXJmbG93IiBoYXMgYWN0dWFsbHkKLSAgICAgICAgLy8gY2hhbmdl
ZCwgc28gaXQganVzdCBhc3N1bWVzIHRoYXQgdGhvc2UgcmVnaW9uIHNob3VsZCBkaXNwYXRjaCB0
aGUgZXZlbnQKKyAgICAgICAgLy8gY2hhbmdlZCwgc28gaXQganVzdCBhc3N1bWVzIHRoYXQgdGhl
IE5hbWVkRmxvdyBzaG91bGQgZGlzcGF0Y2ggdGhlIGV2ZW50CiAgICAgICAgIGlmIChwcmV2aW91
c1N0YXRlICE9IHN0YXRlCiAgICAgICAgICAgICB8fCBzdGF0ZSA9PSBSZW5kZXJSZWdpb246OlJl
Z2lvbkZpdAogICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVuZGVyUmVnaW9uOjpSZWdpb25PdmVy
ZmxvdykKLSAgICAgICAgICAgIHJlZ2lvbi0+c2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVF
dmVudCh0cnVlKTsKKyAgICAgICAgICAgIHNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZl
bnQodHJ1ZSk7CiAgICAgfQogCiAgICAgLy8gV2l0aCB0aGUgcmVnaW9ucyBvdmVyZmxvdyBzdGF0
ZSBjb21wdXRlZCB3ZSBjYW4gYWxzbyBzZXQgdGhlIG92ZXJzZXQgZmxhZyBmb3IgdGhlIG5hbWVk
IGZsb3cuCkBAIC03MTgsMzUgKzcxMSw2IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6Y29tcHV0
ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFCiAgICAg
bV9vdmVyc2V0ID0gbGFzdFJlZyA/IGxhc3RSZWctPnJlZ2lvblN0YXRlKCkgPT0gUmVuZGVyUmVn
aW9uOjpSZWdpb25PdmVyZmxvdyA6IHRydWU7CiB9CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6
cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlckZsb3dUaHJlYWQ+
KikKLXsKLSAgICAvLyBDcmVhdGUgYSBjb3B5IG9mIHJlZ2lvbiBub2RlcywgdG8gcHJvdGVjdCB0
aGVtIGZvciBiZWluZyBkZXN0cm95ZWQgaW4gdGhlIGV2ZW50IGxpc3RlbmVyCi0gICAgVmVjdG9y
PFJlZlB0cjxOb2RlPiA+IHJlZ2lvbk5vZGVzOwotICAgIHJlZ2lvbk5vZGVzLnJlc2VydmVDYXBh
Y2l0eShtX3JlZ2lvbkxpc3Quc2l6ZSgpKTsKLSAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0
ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3Qu
ZW5kKCk7ICsraXRlcikgewotICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwot
ICAgICAgICBBU1NFUlQocmVnaW9uLT5ub2RlKCkgJiYgcmVnaW9uLT5ub2RlKCktPmlzRWxlbWVu
dE5vZGUoKSk7Ci0gICAgICAgIC8vIGRpc3BhdGNoIHRoZSBldmVudCBvbmx5IGZvciBtYXJrZWQg
cmVnaW9ucyBhbmQgb25seSBmb3IgdGhvc2Ugd2hvIGhhdmUgYSBsaXN0ZW5lcgotICAgICAgICBp
ZiAocmVnaW9uLT5zaG91bGREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkpIHsKLSAg
ICAgICAgICAgIHJlZ2lvbk5vZGVzLmFwcGVuZChyZWdpb24tPm5vZGUoKSk7Ci0gICAgICAgICAg
ICAvLyBjbGVhciB0aGUgZGlzcGF0Y2ggZmxhZyBoZXJlLCBhcyBpdCBpcyBwb3NzaWJsZSB0byBi
ZSBzZXQgYWdhaW4gZHVlIHRvIGV2ZW50IGxpc3RlbmVycwotICAgICAgICAgICAgcmVnaW9uLT5z
ZXREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KGZhbHNlKTsKLSAgICAgICAgfQotICAg
IH0KLSAgICBmb3IgKFZlY3RvcjxSZWZQdHI8Tm9kZT4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBy
ZWdpb25Ob2Rlcy5iZWdpbigpOyBpdCAhPSByZWdpb25Ob2Rlcy5lbmQoKTsgKytpdCkgewotICAg
ICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9ICppdDsKLSAgICAgICAgUmVmUHRyPERvY3VtZW50PiBk
b2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZG9jdW1lbnQpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUt
PnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNSZW5kZXJS
ZWdpb24oKSkgewotICAgICAgICAgICAgbm9kZS0+ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVF
dmVudCgpOwotICAgICAgICAgICAgLy8gTGF5b3V0IG5lZWRzIHRvIGJlIHVwdG9kYXRlIGFmdGVy
IGVhY2ggZXZlbnQgbGlzdGVuZXIKLSAgICAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQogYm9vbCBS
ZW5kZXJGbG93VGhyZWFkOjpyZWdpb25JblJhbmdlKGNvbnN0IFJlbmRlclJlZ2lvbiogdGFyZ2V0
UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdp
b24qIGVuZFJlZ2lvbikgY29uc3QKIHsKICAgICBBU1NFUlQodGFyZ2V0UmVnaW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGM3NmVlMDg3MGYy
ZTY5MGM0NTFhYjI5ZWJjY2RmYzAyOTlmMWU0ODkuLjQ3MzBiZThkY2UzNWZhYTFiMDk3ZjNkOTUw
M2MxMDI5ZWY1ZTRhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuaApAQCAtMTMzLDggKzEzMywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBjb25z
dCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAwOwogCiAgICAgYm9vbCBzaG91bGRSZXBhaW50
KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKLSAgICB2b2lkIHJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJGbG93VGhyZWFkPiopOwogICAgIGJvb2wgcmVnaW9u
SW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24qIHRhcmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVn
aW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0Owor
ICAgIAorICAgIHZvaWQgc2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChib29sIHZh
bHVlKSB7IG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IHZhbHVlOyB9CisgICAg
Ym9vbCBzaG91bGREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgeyByZXR1cm4gbV9k
aXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50OyB9CisgICAgCisgICAgLy8gT3ZlcnJpZGUg
aWYgdGhlIGZsb3cgdGhyZWFkIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGRpc3BhdGNoaW5nIGV2
ZW50cyB3aGVuIHRoZSBmbG93IGxheW91dCBpcyB1cGRhdGVkIChlLmcuIGZvciBuYW1lZCBmbG93
cykKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsg
bV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50ID0gZmFsc2U7IH0KIAogICAgIFJlbmRl
clJlZ2lvbkxpc3QgbV9yZWdpb25MaXN0OwogCkBAIC0xNzQsNyArMTc5LDcgQEAgcHJvdGVjdGVk
OgogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0OwogICAgIGJvb2wg
bV9vdmVyc2V0OwogICAgIGJvb2wgbV9oYXNSZWdpb25zV2l0aFN0eWxpbmc7Ci0gICAgVGltZXI8
UmVuZGVyRmxvd1RocmVhZD4gbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyOworICAgIGJv
b2wgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50OwogfTsKIAogaW5saW5lIFJlbmRl
ckZsb3dUaHJlYWQqIHRvUmVuZGVyRmxvd1RocmVhZChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAK
aW5kZXggMjI3YWY3ZGY1MWRhMDRlYzM5OWNlY2JkOWM2MjY4YzgxMDI3NGJlMC4uNWIwMjQ1M2U0
YzZjM2RiYWVkNjNkZGE1MGVhMzM5NGNiZTQ3Y2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZs
b3dUaHJlYWQoTm9kZSogbm9kZSwgUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3c+IG5hbWVkRmxv
dykKICAgICA6IFJlbmRlckZsb3dUaHJlYWQobm9kZSkKICAgICAsIG1fbmFtZWRGbG93KG5hbWVk
RmxvdykKKyAgICAsIG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lcih0aGlzLCAmUmVuZGVy
TmFtZWRGbG93VGhyZWFkOjpyZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyRmlyZWQpCiB7CiAg
ICAgbV9uYW1lZEZsb3ctPnNldFJlbmRlcmVyKHRoaXMpOwogfQpAQCAtMTkyLDYgKzE5MywxMCBA
QCB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVtb3ZlUmVnaW9uRnJvbVRocmVhZChSZW5k
ZXJSZWdpb24qIHJlbmRlclJlZ2lvbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8v
IEFmdGVyIHJlbW92aW5nIGFsbCB0aGUgcmVnaW9ucyBpbiB0aGUgZmxvdyB0aGUgZm9sbG93aW5n
IGxheW91dCBuZWVkcyB0byBkaXNwYXRjaCB0aGUgcmVnaW9uTGF5b3V0VXBkYXRlIGV2ZW50Cisg
ICAgaWYgKG1fcmVnaW9uTGlzdC5pc0VtcHR5KCkpCisgICAgICAgIHNldERpc3BhdGNoUmVnaW9u
TGF5b3V0VXBkYXRlRXZlbnQodHJ1ZSk7CisKICAgICBpbnZhbGlkYXRlUmVnaW9ucygpOwogfQog
CkBAIC0zMDEsNCArMzA2LDE5IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjp3aWxsQmVE
ZXN0cm95ZWQoKQogICAgIFJlbmRlckZsb3dUaHJlYWQ6OndpbGxCZURlc3Ryb3llZCgpOwogfQog
Cit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVF
dmVudCgpCit7CisgICAgUmVuZGVyRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRh
dGVFdmVudCgpOworCisgICAgaWYgKCFtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXIuaXNB
Y3RpdmUoKSAmJiBtX25hbWVkRmxvdy0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkKKyAgICAgICAgbV9y
ZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZChU
aW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+KikKK3sKKyAgICBBU1NFUlQobV9uYW1lZEZsb3cp
OworCisgICAgbV9uYW1lZEZsb3ctPmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVk
Rmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1Ro
cmVhZC5oCmluZGV4IDVlMGQ5NjI0OTkzNGNhZmI0ODMwY2ExZTA1ZjZhZGM1YjhiNmIwODAuLjQx
MDFiNzcxZTNjOTgyZGQxMzgwNTUxOGViOTljZTY5ZjQzOTBlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNkZWZpbmUgUmVuZGVyTmFtZWRGbG93VGhyZWFkX2gKIAogI2luY2x1ZGUgIlJlbmRlckZs
b3dUaHJlYWQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRl
ZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgpAQCAtNzYsMTEgKzc3LDE0IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGlzUmVuZGVyTmFtZWRGbG93VGhyZWFkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQogCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQo
KSBPVkVSUklERTsKKwogICAgIGJvb2wgZGVwZW5kc09uKFJlbmRlck5hbWVkRmxvd1RocmVhZCog
b3RoZXJSZW5kZXJGbG93VGhyZWFkKSBjb25zdDsKICAgICB2b2lkIGFkZERlcGVuZGVuY3lPbkZs
b3dUaHJlYWQoUmVuZGVyTmFtZWRGbG93VGhyZWFkKik7CiAgICAgdm9pZCByZW1vdmVEZXBlbmRl
bmN5T25GbG93VGhyZWFkKFJlbmRlck5hbWVkRmxvd1RocmVhZCopOwogICAgIHZvaWQgY2hlY2tJ
bnZhbGlkUmVnaW9ucygpOwogICAgIGJvb2wgY2FuQmVEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVy
biBtX3JlZ2lvbkxpc3QuaXNFbXB0eSgpICYmIG1fY29udGVudE5vZGVzLmlzRW1wdHkoKTsgfQor
ICAgIHZvaWQgcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlck5h
bWVkRmxvd1RocmVhZD4qKTsKIAogcHJpdmF0ZToKICAgICAvLyBPYnNlcnZlciBmbG93IHRocmVh
ZHMgaGF2ZSBpbnZhbGlkIHJlZ2lvbnMgdGhhdCBkZXBlbmQgb24gdGhlIHN0YXRlIG9mIHRoaXMg
dGhyZWFkCkBAIC0xMDEsNiArMTA1LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIFRoZSBET00gT2Jq
ZWN0IHRoYXQgcmVwcmVzZW50cyBhIG5hbWVkIGZsb3cuCiAgICAgUmVmUHRyPFdlYktpdE5hbWVk
Rmxvdz4gbV9uYW1lZEZsb3c7CisKKyAgICBUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+IG1f
cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lcjsKIH07CiAKIGlubGluZSBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQqIHRvUmVuZGVyTmFtZWRGbG93VGhyZWFkKFJlbmRlck9iamVjdCogb2JqZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCA1MzYyODM2YTQ0
ZjkyODMxY2MwNDZhNzE4NTI5MzU4NTAzMGFmNTA2Li5iMjg3MzRmNzc1MjM3ZGQyYmNkODU5YTM1
YjFhZGU5ZTZkYjcwY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcApAQCAtNDksNyArNDksNiBAQCBSZW5kZXJSZWdpb246OlJlbmRlclJlZ2lvbihOb2RlKiBu
b2RlLCBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQogICAgICwgbV9pc1ZhbGlkKGZhbHNl
KQogICAgICwgbV9oYXNDdXN0b21SZWdpb25TdHlsZShmYWxzZSkKICAgICAsIG1fcmVnaW9uU3Rh
dGUoUmVnaW9uVW5kZWZpbmVkKQotICAgICwgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50KGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
aW5kZXggODI2ZTk4MDcyMjZiMWIzNGU5YjQwNTg0MmE0ZTk1Y2NiODYwNzNlMy4uNWI5NjhiNWYx
NGEyOTk4ZGU3YjUwOGE1ZjcyNTliYzQ2NzY5YTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZWdpb24uaApAQCAtOTMsOCArOTMsNiBAQCBwdWJsaWM6CiAKICAgICBSZWdpb25T
dGF0ZSByZWdpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsaWQoKSA/IG1fcmVnaW9uU3Rh
dGUgOiBSZWdpb25VbmRlZmluZWQ7IH0KICAgICB2b2lkIHNldFJlZ2lvblN0YXRlKFJlZ2lvblN0
YXRlIHJlZ2lvblN0YXRlKSB7IG1fcmVnaW9uU3RhdGUgPSByZWdpb25TdGF0ZTsgfQotICAgIHZv
aWQgc2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChib29sIHZhbHVlKSB7IG1fZGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IHZhbHVlOyB9Ci0gICAgYm9vbCBzaG91bGRE
aXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgeyByZXR1cm4gbV9kaXNwYXRjaFJlZ2lv
bkxheW91dFVwZGF0ZUV2ZW50OyB9CiAgICAgCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGxvZ2lj
YWxXaWR0aEZvckZsb3dUaHJlYWRDb250ZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHRGb3JGbG93VGhyZWFkQ29udGVudCgpIGNvbnN0OwpAQCAtMTM5LDcg
KzEzNyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzVmFsaWQ7CiAgICAgYm9vbCBtX2hhc0N1
c3RvbVJlZ2lvblN0eWxlOwogICAgIFJlZ2lvblN0YXRlIG1fcmVnaW9uU3RhdGU7Ci0gICAgYm9v
bCBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQ7CiB9OwogCiBpbmxpbmUgUmVuZGVy
UmVnaW9uKiB0b1JlbmRlclJlZ2lvbihSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZTJh
NzBlNWZiNzA5MzUwZjQ1Y2EwMDZjZmY5OTc2OWNmZGQ3NzlkLi4yNjhlMTA1YjU3NWZlNWMxZmVi
NjhlOWUyMGIxYjQ1ZTI4NzNmYWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDgtMDEg
IEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25z
XSBUaGUgcmVnaW9uTGF5b3V0VXBkYXRlIGV2ZW50IHNob3VsZCBiZSBkaXNwYXRjaGVkIG9uIHRo
ZSBOYW1lZEZsb3cgb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04ODc3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtcmVnaW9ucy8jcmVnaW9u
LWZsb3ctbGF5b3V0LWV2ZW50cworCisgICAgICAgIFRoZSBleGlzdGluZyB0ZXN0cyBoYXZlIGJl
ZW4gYWRhcHRlZCB0byBtYXRjaCB0aGUgdHJhbnNpdGlvbiBvZiB0aGUgZXZlbnQgb24gdGhlIE5h
bWVkRmxvdyBpbnRlcmZhY2UuIEFsc28gdGhlcmUgYXJlIHRocmVlIG1vcmUgdGVzdHMgZm9yIHRo
ZSBjYXNlCisgICAgICAgIHRoZSByZWdpb24gY2hhaW4gaXMgcmVtb3ZlZCwgdGhlIGZsb3cgZ29l
cyBpbiB0aGUgTlVMTCBzdGF0ZSBhbmQgZm9yIHRoZSBldmVudCB0YXJnZXQgdG8gbWF0Y2ggdGhl
IE5hbWVkRmxvdyBvYmplY3QuCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1ldmVudC1hZGQtdG8tZmxvdy1leHBlY3RlZC50eHQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1m
bG93Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2
ZW50LWFkZC10by1mbG93Lmh0bWwuCisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9yZWdpb24tZXZlbnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lv
bnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50
eHQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92
ZS1mcm9tLWRvbS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Jl
Z2lvbi1ldmVudC1yZW1vdmUtZnJvbS1kb20uaHRtbC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1m
cm9tLWZsb3ctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdGFyZ2V0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LXRhcmdldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0
LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1ldmVudC5odG1sLgor
CiAyMDEyLTA4LTAxICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLCBhZGRpbmcgYW4gaW1hZ2UgZmFpbHVyZSBl
eHBlY3RhdGlvbiBmb3IgYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Jl
Z2lvbi1ldmVudC1hZGQtdG8tZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvcmVnaW9uLWV2ZW50LWFkZC10by1mbG93LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2ZkMGZlMGI0ZjA1OGIyN2MwMTgyOGJkMDA2NjYyYTBjYjgxM2Jm
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWFkZC10by1mbG93LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHJlZ2lvbkxheW91dEV2ZW50Ci0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotIEZsb3cgY29udGVudAotUEFTUyBldmVudC50
YXJnZXQuaWQgaXMgInJlZ2lvbl8xIgotUEFTUyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lvbl8x
IgotUEFTUyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lvbl8yIgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtYWRkLXRvLWZsb3cuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtYWRkLXRvLWZsb3cuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzhjMDZhMzY2M2E0YWNlY2NjMTI1YjJiMmNlOGMzNjM4YzJhNmEx
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWFkZC10by1mbG93Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSNh
cnRpY2xlIHsKLSAgICAtd2Via2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKLSAgICBib3JkZXI6IDJw
eCBzb2xpZCBibGFjazsKLX0KLSNyZWdpb25fMSB7Ci0gICAgLXdlYmtpdC1mbG93LWZyb206IG5v
X2FydGljbGU7Ci0gICAgb3ZlcmZsb3c6aGlkZGVuOwotICAgIGRpc3BsYXk6aW5saW5lLWJsb2Nr
OwotICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKLSAgICBtYXJnaW46MTBweDsKLX0KLS5ibG9jayB7
Ci0gICBkaXNwbGF5OmJsb2NrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEw
cHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KLTxkaXYgaWQ9ImFy
dGljbGUiPgotICAgIDxkaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxlPSJoZWln
aHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgotICAgIDwvZGl2Pgot
PC9kaXY+Ci0KLTxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KLTxkaXYgaWQ9InJlZ2lvbl8yIj48
L2Rpdj4KLQotPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KLQotPHNjcmlw
dD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQiKQotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Ci0gICAgfQotICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLSAgICBmdW5j
dGlvbiBmbG93Q29udGVudChyZWdpb24sIGZsb3dOYW1lKSB7Ci0gICAgICAgIHZhciByID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVnaW9uKTsKLSAgICAgICAgci5zdHlsZS53ZWJraXRGbG93
RnJvbSA9IGZsb3dOYW1lOwotICAgIH0KLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9u
IHJlZ2lvbjFVcGRhdGVkKGV2ZW50KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXZlbnQudGFyZ2V0LmlkIiwgInJlZ2lvbl8xIik7Ci0gICAgICAgIGlmICgrK2NvdW50ID4gMSkg
ewotICAgICAgICAgICB2YXIgcjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEi
KTsKLSAgICAgICAgICAgcjEucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0
VXBkYXRlIiwgcmVnaW9uMVVwZGF0ZWQpOwotICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgZmxvd0NvbnRlbnQoInJlZ2lvbl8yIiwgImFydGljbGUiKTsgLy8gdGhpcyB3aWxs
IHRyaWdnZXIgYSBuZXcgcm91bmQgb2YgZXZlbnRzIGR1ZSB0byBsYXlvdXQKLSAgICB9Ci0gICAg
ZnVuY3Rpb24gcmVnaW9uMlVwZGF0ZWQoZXZlbnQpIHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJldmVudC50YXJnZXQuaWQiLCAicmVnaW9uXzIiKTsKLSAgICAgICAgdmFyIHIyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8yIik7Ci0gICAgICAgIHIyLnJlbW92ZUV2
ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbjJVcGRhdGVkKTsK
LSAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUgcmVhY2hlZCBhZnRlciByZWdpb25fMiBpcyByZW1v
dmVkIGZyb20gZmxvdwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci0gICAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgewotICAgICAgICB2YXIgcjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVnaW9uXzEiKTsKLSAgICAgICAgdmFyIHIyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl8yIik7Ci0gICAgICAgIHIxLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxh
eW91dFVwZGF0ZSIsIHJlZ2lvbjFVcGRhdGVkKTsKLSAgICAgICAgcjIuYWRkRXZlbnRMaXN0ZW5l
cigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uMlVwZGF0ZWQpOwotICAgICAgICBk
ZWJ1ZygiRmxvdyBjb250ZW50Iik7Ci0gICAgICAgIGZsb3dDb250ZW50KCJyZWdpb25fMSIsICJh
cnRpY2xlIik7Ci0gICAgfQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3Rh
cnRUZXN0KTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjk1NzRiOTA4MmE4ZTRlNjgyMjNkNTY1NTM2ZDAwMTI5
YWQ5YzQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQKLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0gCi1GbG93IGNvbnRlbnQKLVBBU1MgZXZlbnQudGFyZ2V0
LmlkIGlzICJyZWdpb25fMSIKLVBBU1MgZXZlbnQudGFyZ2V0LmlkIGlzICJyZWdpb25fMiIKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWRv
bS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJl
bW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE2MTliMjI5OWY1OTBiOGJlYTI4MWFmMTBjOGU2YTQyM2RmODI3NjAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3JlZ2lvbi1ldmVudC1yZW1vdmUtZnJvbS1kb20tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTMgKzAsMCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQKLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0gRmxvdyBjb250ZW50Ci1QQVNTIGV2ZW50LnRhcmdldC5pZCBpcyAi
cmVnaW9uXzEiCi1QQVNTIGV2ZW50LnRhcmdldC5pZCBpcyAicmVnaW9uXzIiCi1SZW1vdmluZyBy
ZWdpb25fMiBmcm9tIERPTQotUEFTUyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lvbl8xIgotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtcmVtb3ZlLWZyb20tZG9t
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9t
LWRvbS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWM2OWIwNDQ5MWQzYjQw
OTVkZTg2YTJjYzBlYzQyOTBiNjE3Y2YyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtcmVt
b3ZlLWZyb20tZG9tLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSNhcnRpY2xlIHsKLSAgICAtd2Via2l0LWZsb3ctaW50
bzogYXJ0aWNsZTsKLSAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKLX0KLSNyZWdpb25fMSwg
I3JlZ2lvbl8yewotICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOwotICAgIG92ZXJm
bG93OmhpZGRlbjsKLSAgICBkaXNwbGF5OmlubGluZS1ibG9jazsKLSAgICB2ZXJ0aWNhbC1hbGln
bjp0b3A7Ci0gICAgbWFyZ2luOjEwcHg7Ci19Ci0uYmxvY2sgewotICAgZGlzcGxheTpibG9jazsK
LX0KLSNyZWdpb25fMSwgI3JlZ2lvbl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFy
Z2luOiA1cHg7fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iIGNsYXNzPSJibG9jayI+PC9kaXY+Ci08ZGl2IGlkPSJhcnRpY2xlIj4KLSAgICA8ZGl2Pgot
ICAgICAgICA8ZGl2IGlkPSJjb250ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08ZGl2IGlkPSJy
ZWdpb25fMSI+PC9kaXY+Ci08ZGl2IGlkPSJjb250YWluZXIyIj4KLSAgICA8ZGl2IGlkPSJyZWdp
b25fMiI+PC9kaXY+Ci08L2Rpdj4KLQotPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJsb2NrIj48
L2Rpdj4KLQotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZl
bnQiKQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLSAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgewotICAgICAgICB2YXIg
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOwotICAgICAgICByLnN0eWxl
LndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Ci0gICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uXzIiKTsKLSAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZs
b3dOYW1lOwotICAgIH0KLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9uIHJlZ2lvbjFV
cGRhdGVkKGV2ZW50KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFy
Z2V0LmlkIiwgInJlZ2lvbl8xIik7Ci0gICAgICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAg
ICAgICB2YXIgcjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKLSAgICAg
ICAgICAgcjEucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwg
cmVnaW9uMVVwZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFm
dGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZnVuY3Rpb24gcmVnaW9uMlVwZGF0ZWQoZXZlbnQp
IHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQuaWQiLCAicmVn
aW9uXzIiKTsKLSAgICAgICAgdmFyIHIyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lv
bl8yIik7Ci0gICAgICAgIHIyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91
dFVwZGF0ZSIsIHJlZ2lvbjJVcGRhdGVkKTsKLSAgICAgICAgcjIuYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uVXBkYXRlZCk7Ci0gICAgICAgIHZhciBj
MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIyIik7Ci0gICAgICAgIGRlYnVn
KCJSZW1vdmluZyByZWdpb25fMiBmcm9tIERPTSIpOwotICAgICAgICBjMi5pbm5lckhUTUwgPSAi
IjsgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgcm91bmQgb2YgZXZlbnRzIGR1ZSB0byBsYXlv
dXQKLSAgICB9Ci0gICAgZnVuY3Rpb24gcmVnaW9uVXBkYXRlZChldmVudCkgewotICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LnRhcmdldC5pZCArICIgZXZlbnQgc2hvdWxkbid0IGhhdmUgYmVlbiBk
aXNwYXRjaGVkIiApOwotICAgIH0KLSAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICAg
IHZhciByMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOwotICAgICAgICB2
YXIgcjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKLSAgICAgICAgcjEu
YWRkRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uMVVwZGF0
ZWQpOwotICAgICAgICByMi5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRh
dGUiLCByZWdpb24yVXBkYXRlZCk7Ci0gICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKLSAg
ICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKLSAgICB9Ci0gICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZl
bnQtcmVtb3ZlLWZyb20tZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmM2I2OGE2MjcxZmY0NmZmMjI1OTVjZTYwNjBjY2RjNDNmNTdh
ZTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1UZXN0cyByZWdpb25MYXlvdXRF
dmVudAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLSAKLUZsb3cgY29udGVudAotUEFT
UyBldmVudC50YXJnZXQuaWQgaXMgInJlZ2lvbl8xIgotUEFTUyBldmVudC50YXJnZXQuaWQgaXMg
InJlZ2lvbl8yIgotUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93Ci1QQVNTIGV2ZW50LnRhcmdl
dC5pZCBpcyAicmVnaW9uXzEiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lv
bi1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
cmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTcwNDI3YWI0ZDgzNmUxZDU3ZjMwOGM5NmM4MDExNTZmMGMzNTVlYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvcmVnaW9uLWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDgxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotI2FydGlj
bGUgewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOwotICAgIGJvcmRlcjogMnB4IHNv
bGlkIGJsYWNrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7Ci0gICAgLXdlYmtpdC1mbG93LWZy
b206IG5vX2FydGljbGU7Ci0gICAgb3ZlcmZsb3c6aGlkZGVuOwotICAgIGRpc3BsYXk6aW5saW5l
LWJsb2NrOwotICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKLSAgICBtYXJnaW46MTBweDsKLX0KLS5i
bG9jayB7Ci0gICBkaXNwbGF5OmJsb2NrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWln
aHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Ci08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KLTxkaXYg
aWQ9ImFydGljbGUiPgotICAgIDxkaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxl
PSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgotICAgIDwv
ZGl2PgotPC9kaXY+Ci0KLTxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KLTxkaXYgaWQ9InJlZ2lv
bl8yIj48L2Rpdj4KLQotPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KLQot
PHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQiKQotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7Ci0gICAgfQotICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLSAg
ICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgewotICAgICAgICB2YXIgciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOwotICAgICAgICByLnN0eWxlLndlYmtpdEZs
b3dGcm9tID0gZmxvd05hbWU7Ci0gICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uXzIiKTsKLSAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOwot
ICAgIH0KLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9uIHJlZ2lvbjFVcGRhdGVkKGV2
ZW50KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0LmlkIiwg
InJlZ2lvbl8xIik7Ci0gICAgICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICB2YXIg
cjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKLSAgICAgICAgICAgcjEu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uMVVw
ZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJlZ2lv
bl8yIGlzIHJlbW92ZWQgZnJvbSBmbG93Ci0gICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
ICAgICB9Ci0gICAgfQotICAgIGZ1bmN0aW9uIHJlZ2lvbjJVcGRhdGVkKGV2ZW50KSB7Ci0gICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0LmlkIiwgInJlZ2lvbl8yIik7
Ci0gICAgICAgIHZhciByMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwot
ICAgICAgICByMi5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRhdGUi
LCByZWdpb24yVXBkYXRlZCk7Ci0gICAgICAgIHIyLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJl
Z2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvblVwZGF0ZWQpOwotICAgICAgICBkZWJ1ZygiUmVtb3Zp
bmcgcmVnaW9uXzIgZnJvbSBmbG93Iik7Ci0gICAgICAgIHIyLnN0eWxlLndlYmtpdEZsb3dGcm9t
ID0gIm5vbmUiOyAvLyB0aGlzIHdpbGwgdHJpZ2dlciBhIG5ldyByb3VuZCBvZiBldmVudHMgZHVl
IHRvIGxheW91dAotICAgIH0KLSAgICBmdW5jdGlvbiByZWdpb25VcGRhdGVkKGV2ZW50KSB7Ci0g
ICAgICAgIHRlc3RGYWlsZWQoZXZlbnQudGFyZ2V0LmlkICsgIiBldmVudCBzaG91bGRuJ3QgaGF2
ZSBiZWVuIGRpc3BhdGNoZWQiICk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsK
LSAgICAgICAgdmFyIHIxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8xIik7Ci0g
ICAgICAgIHZhciByMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwotICAg
ICAgICByMS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRhdGUiLCByZWdp
b24xVXBkYXRlZCk7Ci0gICAgICAgIHIyLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxh
eW91dFVwZGF0ZSIsIHJlZ2lvbjJVcGRhdGVkKTsKLSAgICAgICAgZGVidWcoIkZsb3cgY29udGVu
dCIpOwotICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOwotICAgIH0KLSAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHN0YXJ0VGVzdCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Jl
Z2lvbi1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1ldmVudC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjdlYjlkODg5MmNmNmVjYzU2MGJh
MDE0NDA1ODcxYzcxNDA2MDYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZXZlbnQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHN0eWxl
PgotI2FydGljbGUgewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOwotICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsYWNrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7Ci0gICAgLXdlYmtp
dC1mbG93LWZyb206IG5vX2FydGljbGU7Ci0gICAgb3ZlcmZsb3c6aGlkZGVuOwotICAgIGRpc3Bs
YXk6aW5saW5lLWJsb2NrOwotICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKLSAgICBtYXJnaW46MTBw
eDsKLX0KLS5ibG9jayB7Ci0gICBkaXNwbGF5OmJsb2NrOwotfQotI3JlZ2lvbl8xLCAjcmVnaW9u
XzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJibG9jayI+PC9kaXY+Ci08ZGl2IGlkPSJh
cnRpY2xlIj4KLSAgICA8ZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250ZW50IiBzdHlsZT0iaGVp
Z2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KLSAgICA8L2Rpdj4K
LTwvZGl2PgotCi08ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+Ci08ZGl2IGlkPSJyZWdpb25fMiI+
PC9kaXY+Ci0KLTxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IikKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwotICAgIH0KLSAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0gICAgZnVu
Y3Rpb24gZmxvd0NvbnRlbnQoZmxvd05hbWUpIHsKLSAgICAgICAgdmFyIHIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKLSAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJv
bSA9IGZsb3dOYW1lOwotICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lv
bl8yIik7Ci0gICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKLSAgICB9
Ci0gICAgZnVuY3Rpb24gcmVnaW9uMVVwZGF0ZWQoZXZlbnQpIHsKLSAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQuaWQiLCAicmVnaW9uXzEiKTsKLSAgICB9Ci0gICAg
ZnVuY3Rpb24gcmVnaW9uMlVwZGF0ZWQoZXZlbnQpIHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJldmVudC50YXJnZXQuaWQiLCAicmVnaW9uXzIiKTsKLSAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKLSAgICAgICAgdmFyIHIx
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8xIik7Ci0gICAgICAgIHZhciByMiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwotICAgICAgICByMS5hZGRFdmVu
dExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRhdGUiLCByZWdpb24xVXBkYXRlZCk7Ci0g
ICAgICAgIHIyLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJl
Z2lvbjJVcGRhdGVkKTsKLSAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOwotICAgICAgICBm
bG93Q29udGVudCgiYXJ0aWNsZSIpOwotICAgIH0KLSAgICAvL3N0YXJ0VGVzdCgpOwotICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODFhMDVlMDcxNzg3OTI2MWQ0MDA3YTdjMDcxMDcz
M2ViMjdmYWMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dl
YmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0cyByZWdpb25MYXlvdXRFdmVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKyBGbG93IGNvbnRlbnQKK1BBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUi
CitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1m
bG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI4OTUwNmJlNjRhZjU2MTI4ZWNmZjUwNTk0NDM2YzE5YmM2
M2EyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2FydGljbGUgeworICAgIC13ZWJraXQtZmxvdy1p
bnRvOiBhcnRpY2xlOworICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworfQorI3JlZ2lvbl8x
IHsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogbm9fYXJ0aWNsZTsKKyAgICBvdmVyZmxvdzpoaWRk
ZW47CisgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwtYWxpZ246dG9wOwor
ICAgIG1hcmdpbjoxMHB4OworfQorLmJsb2NrIHsKKyAgIGRpc3BsYXk6YmxvY2s7Cit9CisjcmVn
aW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IG1hcmdpbjogNXB4
O30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIiBjbGFz
cz0iYmxvY2siPjwvZGl2PgorPGRpdiBpZD0iYXJ0aWNsZSI+CisgICAgPGRpdj4KKyAgICAgICAg
PGRpdiBpZD0iY29udGVudCIgc3R5bGU9ImhlaWdodDogMjAwcHg7IGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOyI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0icmVnaW9uXzEi
PjwvZGl2PgorPGRpdiBpZD0icmVnaW9uXzIiPjwvZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIiBj
bGFzcz0iYmxvY2siPjwvZGl2PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBy
ZWdpb25MYXlvdXRFdmVudCIpCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgIGZ1bmN0aW9uIGZsb3dDb250ZW50KHJlZ2lvbiwgZmxv
d05hbWUpIHsKKyAgICAgICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWdpb24p
OworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CisgICAgfQorICAg
IAorICAgIHZhciBjb3VudCA9IDA7CisgICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChl
dmVudCkgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1l
IiwgImFydGljbGUiKTsKKyAgICAgICAgCisgICAgICAgIGlmICgrK2NvdW50ID4gMSkgeworICAg
ICAgICAgICAgZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxh
eW91dFVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIGFkZGVkIHRv
IGZsb3cKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmbG93Q29udGVudCgicmVnaW9uXzIiLCAiYXJ0
aWNsZSIpOyAvLyB0aGlzIHdpbGwgdHJpZ2dlciBhIG5ldyByb3VuZCBvZiBldmVudHMgZHVlIHRv
IGxheW91dAorICAgIH0KKworICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICAgICAgdmFy
IGZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7CisgICAgICAg
IGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9u
TGF5b3V0VXBkYXRlZCk7CisgICAgICAgIAorICAgICAgICBkZWJ1ZygiRmxvdyBjb250ZW50Iik7
CisgICAgICAgIGZsb3dDb250ZW50KCJyZWdpb25fMSIsICJhcnRpY2xlIik7CisgICAgfQorICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mOTNlOWM3OTVkYjE4MjdjNGMxZWI2YzJlY2M3NzIxNjJmZTFiZWFhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyByZWdpb25MYXlvdXRFdmVudAor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKyAKK0Zsb3cgY29udGVudAorUEFTUyBldmVu
dC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWEyYjIxOTMzMTY0ZGVmMTdlMmMwNTBiZTM5NjIwMDg5
OGYyOTIxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0
IEBACitUZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRjaGVkIHdoZW4gdGhlIHJl
Z2lvbiBjaGFpbiBpcyByZW1vdmVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitG
bG93IGNvbnRlbnQKK1BBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitSZW1vdmlu
ZyByZWdpb24gMQorUmVtb3ZpbmcgcmVnaW9uIDIKK1BBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMg
ImFydGljbGUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1m
bG93LWV2ZW50LW5vLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU2MzdkY2Ri
M2M0N2NjNjJmMDFiZjQyMzBiNDUxNTZhNjYyMDc2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLmh0
bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjYXJ0aWNsZSB7CisgICAgLXdlYmtpdC1mbG93
LWludG86IGFydGljbGU7CisgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7Cit9CisjcmVnaW9u
XzEsICNyZWdpb25fMnsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogbm9fYXJ0aWNsZTsKKyAgICBv
dmVyZmxvdzpoaWRkZW47CisgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwt
YWxpZ246dG9wOworICAgIG1hcmdpbjoxMHB4OworfQorLmJsb2NrIHsKKyAgIGRpc3BsYXk6Ymxv
Y2s7Cit9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7
IG1hcmdpbjogNXB4O30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImFydGlj
bGUiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxlPSJoZWlnaHQ6
IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgorICAgIDwvZGl2PgorPC9k
aXY+CisKKzxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRhaW5lcjIiPgor
ICAgIDxkaXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRjaGVkIHdoZW4g
dGhlIHJlZ2lvbiBjaGFpbiBpcyByZW1vdmVkIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisK
KyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgZnVuY3Rpb24gZmxvd0NvbnRl
bnQoZmxvd05hbWUpIHsKKyAgICAgICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uXzEiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOwor
ICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8yIik7CisgICAgICAg
IHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKKyAgICB9CisKKyAgICB2YXIgY291
bnQgPSAwOworICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZlbnQpIHsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7
CisgICAgICAgIGlmICgrK2NvdW50ID4gMSkgeworICAgICAgICAgICBldmVudC50YXJnZXQucmVt
b3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uTGF5b3V0
VXBkYXRlZCk7CisgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBkZWJ1ZygiUmVtb3ZpbmcgcmVnaW9uIDEiKTsKKyAgICAg
ICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKKyAgICAgICAg
ci5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJuby1hcnRpY2xlIjsKKyAgICAgICAgZGVidWcoIlJl
bW92aW5nIHJlZ2lvbiAyIik7CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uXzIiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJuby1hcnRpY2xl
IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgICAgIHZhciBmbG93
ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOworICAgICAgICBmbG93
LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbkxheW91
dFVwZGF0ZWQpOworCisgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKKyAgICAgICAgZmxv
d0NvbnRlbnQoImFydGljbGUiKTsKKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBzdGFydFRlc3QpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1y
ZW1vdmUtZnJvbS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dl
YmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2I0YWUwMTU2ZTFlN2I3MTVjODZiYmI5NDQzNjgyYjFjM2QyMTQxMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1yZW1vdmUtZnJvbS1kb20tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHJl
Z2lvbkxheW91dEV2ZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworIEZsb3cgY29u
dGVudAorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1JlbW92aW5nIHJlZ2lv
bl8yIGZyb20gRE9NCitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUt
ZnJvbS1kb20uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC1yZW1vdmUtZnJvbS1kb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjk1ZWM4YzljNjdhNDFk
ODA4NTgzMDcyYmQzMTIyNGQwOWIwMmYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS5odG1s
CkBAIC0wLDAgKzEsNzggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2FydGlj
bGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOworICAgIGJvcmRlcjogMnB4IHNv
bGlkIGJsYWNrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7CisgICAgLXdlYmtpdC1mbG93LWZy
b206IG5vX2FydGljbGU7CisgICAgb3ZlcmZsb3c6aGlkZGVuOworICAgIGRpc3BsYXk6aW5saW5l
LWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKKyAgICBtYXJnaW46MTBweDsKK30KKy5i
bG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWln
aHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKzxkaXYg
aWQ9ImFydGljbGUiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxl
PSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRh
aW5lcjIiPgorICAgIDxkaXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlk
PSJjb25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCIpCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9Cisg
ICAgCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGZ1bmN0aW9uIGZsb3dD
b250ZW50KGZsb3dOYW1lKSB7CisgICAgICAgIHZhciByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbl8xIik7CisgICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFt
ZTsKKyAgICAgICAgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOworICAg
ICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CisgICAgfQorICAgIAorICAg
IHZhciBjb3VudCA9IDA7CisgICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkg
eworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFy
dGljbGUiKTsKKyAgICAgICAgaWYgKCsrY291bnQgPiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRhdGUiLCByZWdp
b25MYXlvdXRVcGRhdGVkKTsKKyAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUgcmVhY2hlZCBh
ZnRlciByZWdpb25fMiBpcyByZW1vdmVkIGZyb20gRE9NCisgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZh
ciBjMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIyIik7CisgICAgICAgIGRl
YnVnKCJSZW1vdmluZyByZWdpb25fMiBmcm9tIERPTSIpOworICAgICAgICBjMi5pbm5lckhUTUwg
PSAiIjsgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgcm91bmQgb2YgZXZlbnRzIGR1ZSB0byBs
YXlvdXQKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICAgICB2
YXIgZmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKKyAgICAg
ICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRhdGUiLCByZWdp
b25MYXlvdXRVcGRhdGVkKTsKKyAgICAgICAgCisgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQi
KTsKKyAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICB9CisgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1m
bG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzRlNDYyMWFhYzAzMTc5OGQ3MzMyM2FmOTE1
M2JiNDk4NTEyMDM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHJlZ2lvbkxheW91dEV2ZW50CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworIAorRmxvdyBjb250ZW50CitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlz
ICJhcnRpY2xlIgorUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93CitQQVNTIGV2ZW50LnRhcmdl
dC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJkYTYwM2Q4NmQ4MzFjZjdlM2FjMWJhNzk2MzI3YWMxN2M1MGNiMmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2FydGljbGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRv
OiBhcnRpY2xlOworICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworfQorI3JlZ2lvbl8xLCAj
cmVnaW9uXzJ7CisgICAgLXdlYmtpdC1mbG93LWZyb206IG5vX2FydGljbGU7CisgICAgb3ZlcmZs
b3c6aGlkZGVuOworICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWdu
OnRvcDsKKyAgICBtYXJnaW46MTBweDsKK30KKy5ibG9jayB7CisgICBkaXNwbGF5OmJsb2NrOwor
fQorI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJn
aW46IDVweDt9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKzxkaXYgaWQ9ImFydGljbGUiPgorICAgIDxkaXY+Cisg
ICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsiPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJl
Z2lvbl8xIj48L2Rpdj4KKzxkaXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKworPGRpdiBpZD0iY29u
c29sZSIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQiKQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIAor
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiBmbG93Q29udGVu
dChmbG93TmFtZSkgeworICAgICAgICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb25fMSIpOworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICAgICAg
ci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAgIH0KKyAgICAKKyAgICB2YXIg
Y291bnQgPSAwOworICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZlbnQpIHsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xl
Iik7CisgICAgICAgIGlmICgrK2NvdW50ID4gMSkgeworICAgICAgICAgICBldmVudC50YXJnZXQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlIiwgcmVnaW9uTGF5
b3V0VXBkYXRlZCk7CisgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGJlIHJlYWNoZWQgYWZ0ZXIg
cmVnaW9uXzIgaXMgcmVtb3ZlZCBmcm9tIERPTQorICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2YXIgcjIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICAgICAgZGVidWcoIlJl
bW92aW5nIHJlZ2lvbl8yIGZyb20gZmxvdyIpOworICAgICAgICByMi5zdHlsZS53ZWJraXRGbG93
RnJvbSA9ICJub25lIjsgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgcm91bmQgb2YgZXZlbnRz
IGR1ZSB0byBsYXlvdXQKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewor
ICAgICAgICB2YXIgZmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImFydGljbGUi
KTsKKyAgICAgICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRh
dGUiLCByZWdpb25MYXlvdXRVcGRhdGVkKTsKKyAgICAgICAgCisgICAgICAgIGRlYnVnKCJGbG93
IGNvbnRlbnQiKTsKKyAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICB9CisgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjNmZmE0MjNjODJkMGIyYzE3YzI3OWEzYjUzMTM1ZTcxMmJmNzk5
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3Rz
IHRoZSB0aGUgTmFtZWRGbG93IG9iamVjdCBiZWhhdmlvciBhcyBhbiBFdmVudFRhcmdldAorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvdyBjb250ZW50CitQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyAyIGlzID49IHVwZGF0ZWRDb3VudAorUEFTUyBk
b2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJhcnRpY2xlIikgaXMgbm9uLW51bGwuCitQQVNT
IHJlY3JlYXRlZCBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJh
cnRpY2xlIikgaXMgbnVsbAorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1BB
U1MgMiBpcyA+PSB1cGRhdGVkQ291bnQKK1BBU1MgcmVjcmVhdGVkIGlzIHRydWUKK1BBU1MgZG9j
dW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpIGlzIG5vbi1udWxsLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdGFyZ2V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQt
dGFyZ2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNlYjkzYTc1NDM2NGQyZjI2MGExODdiYzE2YzNhYjY3
YWQ0NjllNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQuaHRtbApAQCAtMCwwICsxLDExMCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+
CisjYXJ0aWNsZSB7CisgICAgLXdlYmtpdC1mbG93LWludG86IGFydGljbGU7CisgICAgYm9yZGVy
OiAycHggc29saWQgYmxhY2s7Cit9CisjcmVnaW9uXzEsICNyZWdpb25fMnsKKyAgICAtd2Via2l0
LWZsb3ctZnJvbTogbm9fYXJ0aWNsZTsKKyAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgZGlzcGxh
eTppbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwtYWxpZ246dG9wOworICAgIG1hcmdpbjoxMHB4
OworfQorLmJsb2NrIHsKKyAgIGRpc3BsYXk6YmxvY2s7Cit9CisjcmVnaW9uXzEsICNyZWdpb25f
MiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHh9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IGlkPSJjb250ZW50
IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+Cis8ZGl2IGlk
PSJyZWdpb25fMiI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGUg
dGhlIE5hbWVkRmxvdyBvYmplY3QgYmVoYXZpb3IgYXMgYW4gRXZlbnRUYXJnZXQiKTsKKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
Cit9Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitmdW5jdGlvbiBmbG93Q29udGVudChm
bG93TmFtZSkgeworICAgIHZhciByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8x
Iik7CisgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAgIHIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICByLnN0eWxlLndlYmtpdEZsb3dG
cm9tID0gZmxvd05hbWU7Cit9CisKK2Z1bmN0aW9uIG1ha2VGbG93TnVsbCgpIHsKKwlzaG91bGRC
ZU5vbk51bGwoJ2RvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImFydGljbGUiKScpOworCisg
ICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8xIik7CisgICAgZWwu
c3R5bGUud2Via2l0Rmxvd0Zyb20gPSAibm9fYXJ0aWNsZSI7CisgICAgZWwgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICBlbC5zdHlsZS53ZWJraXRGbG93RnJvbSA9
ICJub19hcnRpY2xlIjsKKyAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
Iik7CisgICAgZWwuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAibm9fYXJ0aWNsZSI7Cit9CisKK3Zh
ciByZWNyZWF0ZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIG1ha2VGbG93Q3JlYXRlZCgpIHsKKwlzaG91
bGRCZU51bGwoJ2RvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImFydGljbGUiKScpOworCWdj
KCk7CisKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsK
KyAgICBlbC5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJhcnRpY2xlIjsKKyAgICBlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOworICAgIGVsLnN0eWxlLndlYmtpdEZsb3dG
cm9tID0gImFydGljbGUiOworICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGlj
bGUiKTsKKyAgICBlbC5zdHlsZS53ZWJraXRGbG93SW50byA9ICJhcnRpY2xlIjsKKworICAgIHJl
Y3JlYXRlZCA9IHRydWU7Cit9CisKK3ZhciB1cGRhdGVkQ291bnQgPSAwOworZnVuY3Rpb24gZmxv
d1RocmVhZFVwZGF0ZWQoZXZlbnQpIHsKKwkrK3VwZGF0ZWRDb3VudDsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsKKworICAgIHNob3Vs
ZEJlR3JlYXRlclRoYW5PckVxdWFsKCIyIiwgInVwZGF0ZWRDb3VudCIpOworCisgICAgaWYgKHVw
ZGF0ZWRDb3VudCA9PSAyKSB7CisgICAgCXNob3VsZEJlVHJ1ZSgicmVjcmVhdGVkIik7CisgICAg
CWV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdpb25MYXlvdXRVcGRh
dGUiLCBmbG93VGhyZWFkVXBkYXRlZCk7CisgICAgCW1ha2VGbG93TnVsbCgpOworICAgIAlmaW5p
c2hKU1Rlc3QoKTsKKyAgICAJcmV0dXJuOworICAgIH0KKworICAgIG1ha2VGbG93TnVsbCgpOwor
ICAgIHNob3VsZEJlRmFsc2UoInJlY3JlYXRlZCIpOworCisgICAgLy8gU2V0IGEgdGltZW91dCBz
byB0aGUgZXZlbnQgcmVmZXJlbmNlIHRvIHRoZSB0YXJnZXQgaXMgZGlzY2FyZGVkCisgICAgc2V0
VGltZW91dChtYWtlRmxvd0NyZWF0ZWQsIDEwKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkg
eyAgICAKKyAgICB2YXIgZmxvd1RocmVhZCA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUo
ImFydGljbGUiKTsKKyAgICBmbG93VGhyZWFkLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lv
bkxheW91dFVwZGF0ZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsKKyAgICAKKyAgICBkZWJ1ZygiRmxv
dyBjb250ZW50Iik7CisgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKK30KKword2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRlc3QpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWIyY2NiOWY2YWRkNGJlMzE4OTQ4OWY0Zjk2MDk2ZWMxMzlhY2NhNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10
by1udWxsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyByZWdpb25MYXlvdXRF
dmVudCBiZWluZyBkaXNwYXRjaGVkIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVtb3ZlZAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvdyBjb250ZW50CitQQVNTIGV2ZW50LnRhcmdl
dC5uYW1lIGlzICJhcnRpY2xlIgorUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93CitSZW1vdmlu
ZyByZWdpb25fMSBmcm9tIGZsb3cKK1JlbW92aW5nIGFydGljbGUgZnJvbSBmbG93CitQQVNTIGxh
eW91dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJhYmExNWEzYWVlMDYxOTFjZTdmOTM4ZDQ1YjYwZGQ4YWQwZDUzMTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2FydGlj
bGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOworICAgIGJvcmRlcjogMnB4IHNv
bGlkIGJsYWNrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7CisgICAgLXdlYmtpdC1mbG93LWZy
b206IG5vX2FydGljbGU7CisgICAgb3ZlcmZsb3c6aGlkZGVuOworICAgIGRpc3BsYXk6aW5saW5l
LWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKKyAgICBtYXJnaW46MTBweDsKK30KKy5i
bG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWln
aHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDt9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IGlkPSJj
b250ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48
L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+Cis8
ZGl2IGlkPSJjb250YWluZXIyIj4KKyAgICA8ZGl2IGlkPSJyZWdpb25fMiI+PC9kaXY+Cis8L2Rp
dj4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IGJl
aW5nIGRpc3BhdGNoZWQgd2hlbiB0aGUgY29udGVudCBpcyByZW1vdmVkIik7CisKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgfQorICAgIAorICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICBm
dW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAgICAgICB2YXIgciA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dG
cm9tID0gZmxvd05hbWU7CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uXzIiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
IH0KKyAgICAKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciBsYXlvdXRVcGRhdGVEaXNwYXRj
aGVkRm9yTnVsbEZsb3cgPSBmYWxzZTsKKyAgICBmdW5jdGlvbiByZWdpb25MYXlvdXRVcGRhdGVk
KGV2ZW50KSB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0Lm5h
bWUiLCAiYXJ0aWNsZSIpOworICAgICAgICBpZiAoKytjb3VudCA+IDEpIHsKKyAgICAgICAgICAg
ZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0
ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAgICAgICAgICBsYXlvdXRVcGRhdGVEaXNwYXRj
aGVkRm9yTnVsbEZsb3cgPSB0cnVlOworICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25f
MiIpOworICAgICAgICBkZWJ1ZygiUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93Iik7CisgICAg
ICAgIGVsLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gIm5vbmUiOworICAgICAgICBlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOworICAgICAgICBkZWJ1ZygiUmVtb3Zpbmcg
cmVnaW9uXzEgZnJvbSBmbG93Iik7CisgICAgICAgIGVsLnN0eWxlLndlYmtpdEZsb3dGcm9tID0g
Im5vbmUiOworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIik7
CisgICAgICAgIGRlYnVnKCJSZW1vdmluZyBhcnRpY2xlIGZyb20gZmxvdyIpOworICAgICAgICBl
bC5zdHlsZS53ZWJraXRGbG93SW50byA9ICJub25lIjsKKworICAgICAgICBzZXRUaW1lb3V0KGNo
ZWNrSWZFdmVudERpc3BhdGNoZWQsIDUwMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tJ
ZkV2ZW50RGlzcGF0Y2hlZCgpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgibGF5b3V0VXBkYXRl
RGlzcGF0Y2hlZEZvck51bGxGbG93Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0K
KyAgICAKKyAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgICAgIHZhciBmbG93ID0gZG9j
dW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOworICAgICAgICBmbG93LmFkZEV2
ZW50TGlzdGVuZXIoIndlYmtpdFJlZ2lvbkxheW91dFVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0
ZWQpOworICAgICAgICAKKyAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOworICAgICAgICBm
bG93Q29udGVudCgiYXJ0aWNsZSIpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsIHN0YXJ0VGVzdCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWFlZDk0MzZiNjJiMTUyZTNhZTIzNTk3M2JkMjUxN2ZmOWU2ZjE0Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQt
Zmxvdy1ldmVudC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgorI2FydGljbGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOworICAg
IGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworfQorI3JlZ2lvbl8xLCAjcmVnaW9uXzJ7CisgICAg
LXdlYmtpdC1mbG93LWZyb206IG5vX2FydGljbGU7CisgICAgb3ZlcmZsb3c6aGlkZGVuOworICAg
IGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWduOnRvcDsKKyAgICBtYXJn
aW46MTBweDsKK30KKy5ibG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQorI3JlZ2lvbl8xLCAj
cmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4fQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJibG9jayI+PC9kaXY+Cis8ZGl2
IGlkPSJhcnRpY2xlIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IGlkPSJjb250ZW50IiBzdHls
ZT0iaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KKyAgICA8
L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+Cis8ZGl2IGlkPSJyZWdp
b25fMiI+PC9kaXY+CisKKzxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+CisK
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IikKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cisg
ICAgZnVuY3Rpb24gZmxvd0NvbnRlbnQoZmxvd05hbWUpIHsKKyAgICAgICAgdmFyIHIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRG
bG93RnJvbSA9IGZsb3dOYW1lOworICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl8yIik7CisgICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsK
KyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZmxvd1RocmVhZFVwZGF0ZWQoZXZlbnQpIHsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xl
Iik7CisgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRSZWdp
b25MYXlvdXRVcGRhdGUiLCBmbG93VGhyZWFkVXBkYXRlZCk7CisgICAgICAgIAorICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeyAg
ICAKKyAgICAgICAgdmFyIGZsb3dUaHJlYWQgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1l
KCJhcnRpY2xlIik7CisgICAgICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0
UmVnaW9uTGF5b3V0VXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgICAgICAKKyAgICAg
ICAgZGVidWcoIkZsb3cgY29udGVudCIpOworICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIp
OworICAgIH0KKyAgICAvL3N0YXJ0VGVzdCgpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgc3RhcnRUZXN0KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>