<?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>237952</bug_id>
          
          <creation_ts>2022-03-16 03:42:32 -0700</creation_ts>
          <short_desc>WebGL context lost event is not sent again for contexts that are lost and restored</short_desc>
          <delta_ts>2022-03-17 04:58:31 -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>WebGL</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1851719</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-16 03:42:32 -0700</bug_when>
    <thetext>WebGL context lost event is not sent again for contexts that are lost and restored

The restored contexts do not set the GraphicsContextGL::Client</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851728</commentid>
    <comment_count>1</comment_count>
      <attachid>454823</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-16 05:09:47 -0700</bug_when>
    <thetext>Created attachment 454823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851729</commentid>
    <comment_count>2</comment_count>
      <attachid>454824</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-16 05:11:32 -0700</bug_when>
    <thetext>Created attachment 454824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851737</commentid>
    <comment_count>3</comment_count>
      <attachid>454828</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-16 05:35:05 -0700</bug_when>
    <thetext>Created attachment 454828
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851738</commentid>
    <comment_count>4</comment_count>
      <attachid>454824</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 05:35:36 -0700</bug_when>
    <thetext>Comment on attachment 454824
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContextGL.h:1050
&gt; +    void setClient(Client* client) { m_client = client; }

This could assert that m_client is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851739</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 05:36:28 -0700</bug_when>
    <thetext>...or that either m_client or client is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852210</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-17 03:08:28 -0700</bug_when>
    <thetext>Committed r291399 (248529@main): &lt;https://commits.webkit.org/248529@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454828.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852211</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-17 03:09:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/90420387&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454823</attachid>
            <date>2022-03-16 05:09:47 -0700</date>
            <delta_ts>2022-03-16 05:11:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237952-20220316140946.patch</filename>
            <type>text/plain</type>
            <size>26553</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uMDc2ZjQwNDdiMDk0ZGMwYmFjZWYzMzhlNTZmNDM3
MjlhZTIyMjJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTAzLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBsb3N0IGV2ZW50IGlzIG5vdCBzZW50IGFnYWluIGZvciBjb250ZXh0cyB0aGF0IGFyZSBsb3N0
IGFuZCByZXN0b3JlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3OTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSBkaWQgbm90IHJlZ2lzdGVyIHRoZSBHcmFw
aGljc0NvbnRleHRHTDo6Q2xpZW50CisgICAgICAgIGZvciBuZXcgY29udGV4dHMgYWZ0ZXIgYSBj
b250ZXh0IGxvc3QuCisgICAgICAgIFJlbmFtZSB0aGUgR3JhcGhpY3NDb250ZXh0R0w6OmFkZENs
aWVudCBhcyBHcmFwaGljc0NvbnRleHRHTDo6c2V0Q2xpZW50KCksCisgICAgICAgIG1vdmUgdGhl
IHNoYXJlZCBpbXBsZW1lbnRhdGluIHRvIHRoZSBiYXNlIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdM
LgorICAgICAgICBSZW1vdmUgR3JhcGhpY3NDb250ZXh0R0w6OkNsaWVudDo6cmVjeWNsZUNvbnRl
eHQoKSwgdGhlIHVzZSB3YXMgcmVtb3ZlZCBpbgorICAgICAgICByMjkwODE2ICJXZWJHTCBjb250
ZXh0IGNvdW50IGlzIG5vdCBsaW1pdGVkIGZvciBHUFUgcHJvY2Vzcy4iLgorCisgICAgICAgIFRl
c3Q6IHdlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLmh0bWwKKworICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRHcmFwaGljc0Nv
bnRleHRHTCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
ZXN0cm95R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Zm9yY2VDb250ZXh0TG9zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMOjptYXJrTGF5ZXJDb21wb3NpdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMOjpmb3JjZUNvbnRleHRMb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0w6OnNldENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmg6CisKIDIwMjItMDMtMTUgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyODI3MzcpOiBgdGV4dC1zaGFkb3dgIGlzIGNsaXBwZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZTk3NTE2NjhkMWM3OTUxNTg3NDZlZTBjNDY0ZTdkZWIzMDJlMzc5MC4uZmRj
MGNkOWVmOTA5Y2JjODAzOWRkMzljZTNiZDgxMjhmZGFmN2EwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMi0wMy0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkdMIGNvbnRleHQgbG9zdCBldmVudCBpcyBub3Qgc2VudCBhZ2FpbiBm
b3IgY29udGV4dHMgdGhhdCBhcmUgbG9zdCBhbmQgcmVzdG9yZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBBZGp1c3QgYWZ0ZXIgR3JhcGhpY3NDb250ZXh0
R0w6OmFkZENsaWVudCgpIHdhcyByZW5hbWVkIHNldENsaWVudCgpLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjp3b3JrUXVldWVJbml0aWFsaXplKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OndvcmtRdWV1ZVVuaW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpmb3JjZUNv
bnRleHRMb3N0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6d2FzTG9zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Ondhc0NoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjptYXJrQ29udGV4dExvc3QpOgor
CiAyMDIyLTAzLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAg
IFN1c3BlbmQgbmV3bHkgY3JlYXRlZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXIgaWYgbmV0d29yayBw
cm9jZXNzIGlzIG9yIHdpbGwgYmUgc3VzcGVuZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDJmNDI3
YmM0OWZjMGM2YWYzMTJkNzE0MzQwNzgzM2RiOGMzNjY1NzYuLjAxNTQzYjVlOTBmNmZjMjNlOTZk
YmZhYTQwMmE3ODU2M2I5MjFiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC05ODEsOCArOTgxLDYg
QEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShD
YW52YXNCYXNlJiBjYW52YXMsIFJlZjxHcmEKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29u
dGV4dEdyb3VwOjpjcmVhdGUoKTsKICAgICBtX2NvbnRleHRHcm91cC0+YWRkQ29udGV4dCgqdGhp
cyk7CiAKLSAgICBtX2NvbnRleHQtPmFkZENsaWVudCgqdGhpcyk7Ci0KICAgICBtX2NvbnRleHQt
PmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dEdMOjpNQVhfVklFV1BPUlRfRElNUywgbV9tYXhW
aWV3cG9ydERpbXMpOwogCiAgICAgc2V0dXBGbGFncygpOwpAQCAtMTI1Niw3ICsxMjU0LDEyIEBA
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6On5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKCkK
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0R3JhcGhpY3NDb250ZXh0R0woUmVm
PEdyYXBoaWNzQ29udGV4dEdMPiYmIGNvbnRleHQpCiB7CiAgICAgYm9vbCB3YXNBY3RpdmUgPSBt
X2NvbnRleHQ7CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICBtX2NvbnRleHQtPnNldENs
aWVudChudWxscHRyKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyAgICB9CiAgICAg
bV9jb250ZXh0ID0gV1RGTW92ZShjb250ZXh0KTsKKyAgICBtX2NvbnRleHQtPnNldENsaWVudCh0
aGlzKTsKICAgICB1cGRhdGVBY3RpdmVPcmRpbmFsKCk7CiAgICAgaWYgKCF3YXNBY3RpdmUpCiAg
ICAgICAgIGFkZEFjdGl2ZUNvbnRleHQoKnRoaXMpOwpAQCAtMTI3MCw3ICsxMjczLDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0R0woKQog
ICAgIHJlbW92ZUFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcigpOwogCiAgICAgaWYgKG1fY29u
dGV4dCkgewotICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CisgICAgICAg
IG1fY29udGV4dC0+c2V0Q2xpZW50KG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQgPSBudWxs
cHRyOwogICAgICAgICByZW1vdmVBY3RpdmVDb250ZXh0KCp0aGlzKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgKaW5kZXggYTgxNjczOGQ4YWQ1MWVkYmVkNzk2NTgzOWQ1MDljZjM4YWJkM2M4Ny4uYjUxNjEz
MDRjOTY4MjA4ODg2MjQ2YTRhNWM1Y2YwMGJlMmNmOGE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNDEy
LDkgKzQxMiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gR3JhcGhpY3NDb250ZXh0R0w6OkNsaWVudAog
ICAgIHZvaWQgZGlkQ29tcG9zaXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBmb3JjZUNvbnRleHRM
b3N0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZWN5Y2xlQ29udGV4dCgpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpIG92ZXJyaWRlOwogCisg
ICAgdm9pZCByZWN5Y2xlQ29udGV4dCgpOworCiAgICAgdmlydHVhbCB2b2lkIGFkZE1lbWJlcnNU
b09wYXF1ZVJvb3RzKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvciYpOwogICAgIC8vIFRoaXMgbG9j
ayBtdXN0IGJlIGhlbGQgYWNyb3NzIGFsbCBtdXRhdGlvbnMgb2YgY29udGFpbmVycyBsaWtlCiAg
ICAgLy8gVmVjdG9ycywgSGFzaFNldHMsIGV0Yy4gd2hpY2ggY29udGFpbiBSZWZQdHI8V2ViR0xP
YmplY3Q+LCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCBhMTQwOTBhN2Y5OGQ0YWZjYWUzNTgwZGRjOGU3
OWU2MTkzNDNkOTVlLi44N2I5ZGE3ZWZmM2JhN2Q5OTFiZjE5Y2I5ZjU5MThhMGMxYTlkNTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0wuY3BwCkBAIC02MzMsOCArNjMzLDIxIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0w6
Om1hcmtMYXllckNvbXBvc2l0ZWQoKQogICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkKICAgICAg
ICAgICAgIG1fYnVmZmVyc1RvQXV0b0NsZWFyIHw9IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lM
X0JVRkZFUl9CSVQ7CiAgICAgfQotICAgIGZvciAoYXV0byogY2xpZW50IDogY29weVRvVmVjdG9y
KG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+ZGlkQ29tcG9zaXRlKCk7CisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcG9zaXRlKCk7Cit9CisKKwordm9pZCBH
cmFwaGljc0NvbnRleHRHTDo6Zm9yY2VDb250ZXh0TG9zdCgpCit7CisgICAgaWYgKG1fY2xpZW50
KQorICAgICAgICBtX2NsaWVudC0+Zm9yY2VDb250ZXh0TG9zdCgpOworfQorCit2b2lkIEdyYXBo
aWNzQ29udGV4dEdMOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCkKK3sKKyAg
ICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaENvbnRleHRDaGFuZ2Vk
Tm90aWZpY2F0aW9uKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4
IDY4OTg3N2M0YzA1Y2NjZWJlNmEwY2EyYmQ2M2U2Yjc0MDFmZGEwYmUuLjMyMjA5MTM2NWUwZmM2
ZDFiMzY1NWU2ZWNiOWQ4ODgyODYyODczMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMTAzNSw3ICsxMDM1LDYg
QEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5DbGllbnQoKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBvc2l0ZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2
b2lkIGZvcmNlQ29udGV4dExvc3QoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWN5Y2xl
Q29udGV4dCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQ29udGV4dENoYW5n
ZWROb3RpZmljYXRpb24oKSA9IDA7CiAgICAgfTsKIApAQCAtMTA0OCw4ICsxMDQ3LDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+R3JhcGhpY3NDb250
ZXh0R0woKTsKIAotICAgIHZvaWQgYWRkQ2xpZW50KENsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50
cy5hZGQoJmNsaWVudCk7IH0KLSAgICB2b2lkIHJlbW92ZUNsaWVudChDbGllbnQmIGNsaWVudCkg
eyBtX2NsaWVudHMucmVtb3ZlKCZjbGllbnQpOyB9CisgICAgdm9pZCBzZXRDbGllbnQoQ2xpZW50
KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KIAogICAgIC8vID09PT09PT09PT0gV2Vi
R0wgMSBlbnRyeSBwb2ludHMuCiAgICAgdmlydHVhbCB2b2lkIGFjdGl2ZVRleHR1cmUoR0NHTGVu
dW0gdGV4dHVyZSkgPSAwOwpAQCAtMTUwNyw5ICsxNTA1LDEyIEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHBhaW50VG9DYW52YXMoY29uc3QgR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiwgUGl4ZWxCdWZmZXImJiwgY29uc3QgSW50U2l6ZSYgY2FudmFzU2l6
ZSwgR3JhcGhpY3NDb250ZXh0Jik7CiBwcm90ZWN0ZWQ6CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBmb3JjZUNvbnRleHRMb3N0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaENv
bnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7CisKICAgICBpbnQgbV9jdXJyZW50V2lkdGggeyAw
IH07CiAgICAgaW50IG1fY3VycmVudEhlaWdodCB7IDAgfTsKLSAgICBIYXNoU2V0PENsaWVudCo+
IG1fY2xpZW50czsKKyAgICBDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIC8vIEEg
Yml0bWFzayBvZiBHTCBidWZmZXIgYml0cyAoR0xfQ09MT1JfQlVGRkVSX0JJVCwKICAgICAvLyBH
TF9ERVBUSF9CVUZGRVJfQklULCBHTF9TVEVOQ0lMX0JVRkZFUl9CSVQpIHdoaWNoIG5lZWQgdG8g
YmUKICAgICAvLyBhdXRvLWNsZWFyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3Bw
CmluZGV4IDg5N2JlYTQ1ODcwZDZiMGMxOGRlNGYxMzg5Yzg2ZjI2MzU5NThmOWIuLjY3ZmJjNDRm
ZWJkYWY2M2U5ZDI4YTA4NWUzY2ZkNTJmMWE4MjhkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwCkBAIC0yMTkyLDI0ICsyMTkyLDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRH
TEFOR0xFOjpzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBlcnJvcikKICAgICBtX3N5bnRoZXRp
Y0Vycm9ycy5hZGQoZXJyb3IpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmZv
cmNlQ29udGV4dExvc3QoKQotewotICAgIGZvciAoYXV0byogY2xpZW50IDogY29weVRvVmVjdG9y
KG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+Zm9yY2VDb250ZXh0TG9zdCgpOwotfQotCi12
b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlY3ljbGVDb250ZXh0KCkKLXsKLSAgICBmb3Ig
KGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3RvcihtX2NsaWVudHMpKQotICAgICAgICBjbGllbnQt
PnJlY3ljbGVDb250ZXh0KCk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlz
cGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCi17Ci0gICAgZm9yIChhdXRvKiBjbGll
bnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKLSAgICAgICAgY2xpZW50LT5kaXNwYXRjaENv
bnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6ZHJhd0FycmF5c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBHQ0dMaW50IGZpcnN0LCBH
Q0dMc2l6ZWkgY291bnQsIEdDR0xzaXplaSBwcmltY291bnQpCiB7CiAgICAgaWYgKCFtYWtlQ29u
dGV4dEN1cnJlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCBmZDU0YTFi
YTc1YjQzMmYzYTEwNDZjMTRhM2JkZDVkOTA0OGM2YzdmLi5mNGRjODdkYjUyZTBlMjk3MDBhMjA3
NzkzNTExYWUwYWU5NTZhMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0z
NTIsOSArMzUyLDYgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvUGl4ZWxCdWZmZXIoKSBmaW5hbDsKICAgICB2b2lkIHBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciYpIGZpbmFsOwogCi0gICAgdm9p
ZCBmb3JjZUNvbnRleHRMb3N0KCk7Ci0gICAgdm9pZCByZWN5Y2xlQ29udGV4dCgpOwotICAgIHZv
aWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwogICAgIHN0ZDo6b3B0aW9u
YWw8UGl4ZWxCdWZmZXI+IHJlYWRSZW5kZXJpbmdSZXN1bHRzRm9yUGFpbnRpbmcoKTsKICAgICBz
dGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkQ29tcG9zaXRlZFJlc3VsdHNGb3JQYWludGlu
ZygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCBiNWJhYzdk
OGZlNDNjNDgwODU2NmFiOWNjZjdmNzQ0MjQwNzY0NmE4Li4zNjNlOTYxNzcwNmQ4ZjFkODRkOWQ3
OWM5MmRkOWUwMWQwMTk3M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5j
cHAKQEAgLTIzMzcsMjQgKzIzMzcsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpz
eW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBlcnJvcikKICAgICBtX3N5bnRoZXRpY0Vycm9ycy5h
ZGQoZXJyb3IpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpmb3JjZUNvbnRl
eHRMb3N0KCkKLXsKLSAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3RvcihtX2NsaWVu
dHMpKQotICAgICAgICBjbGllbnQtPmZvcmNlQ29udGV4dExvc3QoKTsKLX0KLQotdm9pZCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6cmVjeWNsZUNvbnRleHQoKQotewotICAgIGZvciAoYXV0byog
Y2xpZW50IDogY29weVRvVmVjdG9yKG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+cmVjeWNs
ZUNvbnRleHQoKTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGF0Y2hD
b250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCi17Ci0gICAgZm9yIChhdXRvKiBjbGllbnQgOiBj
b3B5VG9WZWN0b3IobV9jbGllbnRzKSkKLSAgICAgICAgY2xpZW50LT5kaXNwYXRjaENvbnRleHRD
aGFuZ2VkTm90aWZpY2F0aW9uKCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnRleEltYWdlMkREaXJlY3QoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dM
aW50IGJvcmRlciwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBjb25zdCB2b2lkKiBw
aXhlbHMpCiB7CiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmgKaW5kZXggNDA1MWZjNTIyMGNhMGEyYzNkNTBhZDk3NzE2ZWMyYzFl
OTdmNTQzNC4uZTg5OTdiMmU1MDQzZjYzNzYyMDE1ZWIxNTIyOTI3ODhjMzU5NjUyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTM3NywxMSArMzc3LDYgQEAgcHVibGlj
OgogICAgIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm1HTE9i
amVjdCkgZmluYWw7CiAKICAgICAvLyBIZWxwZXIgbWV0aG9kcy4KLSAgICB2b2lkIGZvcmNlQ29u
dGV4dExvc3QoKTsKLSAgICB2b2lkIHJlY3ljbGVDb250ZXh0KCk7Ci0KLSAgICB2b2lkIGRpc3Bh
dGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKLQogICAgIHZvaWQgcGFpbnRSZW5kZXJp
bmdSZXN1bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXImKSBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFs
PFBpeGVsQnVmZmVyPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb1BpeGVsQnVmZmVyKCkgZmluYWw7
CiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXImKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDdmNmNlYzljMmMzZDFlOTNkNWI1
ZGZmNTRkYjk0YjgyMjdhOGZlMWYuLjRlOTBhZDJhZTdkMzNhMTk5NmE3Njk3NDFiZWEwNjI3OTA4
OTdjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OndvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xBdHRyCiAgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsK
ICAgICBwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CiAg
ICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICBtX2NvbnRleHQtPmFkZENsaWVudCgqdGhpcyk7
CisgICAgICAgIG1fY29udGV4dC0+c2V0Q2xpZW50KHRoaXMpOwogICAgICAgICBTdHJpbmcgZXh0
ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpFWFRFTlNJ
T05TKTsKICAgICAgICAgU3RyaW5nIHJlcXVlc3RhYmxlRXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+
Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRVFVRVNUQUJMRV9FWFRFTlNJT05TX0FOR0xF
KTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6
V2FzQ3JlYXRlZCh0cnVlLCByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgp
Lndha2VVcFNlbWFwaG9yZSgpLCBleHRlbnNpb25zLCByZXF1ZXN0YWJsZUV4dGVuc2lvbnMpKTsK
QEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjp3b3JrUXVl
dWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cgogdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6d29ya1F1ZXVlVW5pbml0aWFsaXplKCkKIHsKICAgICBhc3NlcnRJ
c0N1cnJlbnQod29ya1F1ZXVlKCkpOworICAgIG1fY29udGV4dC0+c2V0Q2xpZW50KG51bGxwdHIp
OwogICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAgICAgbV9zdHJlYW1Db25uZWN0aW9uID0gbnVs
bHB0cjsKIH0KQEAgLTE0NCwxMSArMTQ1LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6Zm9yY2VDb250ZXh0TG9zdCgpCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6V2FzTG9zdCgpKTsKIH0KIAotdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6cmVjeWNsZUNvbnRleHQoKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQot
CiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90
aWZpY2F0aW9uKCkKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaAppbmRleCBlODBkZjA3OTI3ODMzYmNlZjU0ZDQ4M2UwNzMyOWEwYzgyMzc4
M2YyLi42ZTMzNTdlOWRkZGM0ZGQzYjc0YjZjYzc5ZDBiOWMwODBmOGQ0YmM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaApAQCAtMTAxLDcgKzEwMSw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBHcmFw
aGljc0NvbnRleHRHTDo6Q2xpZW50IG92ZXJyaWRlcy4KICAgICB2b2lkIGRpZENvbXBvc2l0ZSgp
IGZpbmFsOwogICAgIHZvaWQgZm9yY2VDb250ZXh0TG9zdCgpIGZpbmFsOwotICAgIHZvaWQgcmVj
eWNsZUNvbnRleHQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3Rp
ZmljYXRpb24oKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5kZXggNjE5YWQ0YWZhMTNh
N2Y2NTExZmE1NWU5MmVhYzcwZTE4YTc2ZWVjOC4uZTQ1ZGZiZDQ4YWJkOWRlMmIwZDkwNDA3ZjZh
OGQxZmJlNTQyNjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
Y3BwCkBAIC0yNzksMjEgKzI3OSwyMCBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHk6Ondhc0xvc3QoKQogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsK
ICAgICBtYXJrQ29udGV4dExvc3QoKTsKKwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6Ondhc0NoYW5nZWQoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3RvcihtX2NsaWVu
dHMpKQotICAgICAgICBjbGllbnQtPmRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24o
KTsKKyAgICBkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7CiB9CiAKIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bWFya0NvbnRleHRMb3N0KCkKIHsKICAgICBk
aXNjb25uZWN0R3B1UHJvY2Vzc0lmTmVlZGVkKCk7Ci0gICAgZm9yIChhdXRvKiBjbGllbnQgOiBj
b3B5VG9WZWN0b3IobV9jbGllbnRzKSkKLSAgICAgICAgY2xpZW50LT5mb3JjZUNvbnRleHRMb3N0
KCk7CisgICAgZm9yY2VDb250ZXh0TG9zdCgpOwogfQogCiBib29sIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHk6OmhhbmRsZU1lc3NhZ2VUb1JlbW92ZWREZXN0aW5hdGlvbihJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDg5ZGQ4MDk4ZmVkZGIzZjg5
MTg2ODc5ZGQ2YzBmMTVmYTYxZmE1NS4uNDY1ZTY0N2Q4MGIxNTc2ZWI1ODY5ZDY2Mzg1YTJlZTNj
MDVhYWViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTAzLTE2ICBLaW1tbyBLaW5udW5l
biAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4dCBsb3N0IGV2
ZW50IGlzIG5vdCBzZW50IGFnYWluIGZvciBjb250ZXh0cyB0aGF0IGFyZSBsb3N0IGFuZCByZXN0
b3JlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
OTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgICogd2Vi
Z2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViZ2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC5odG1sOgorICAgICAgICBF
bmFibGUgdGhlIHRlc3QgZm9yIEdQVVAsIGl0IHdvcmtzIG5vdyBhZnRlcgorICAgICAgICByMjkw
ODE2ICJXZWJHTCBjb250ZXh0IGNvdW50IGlzIG5vdCBsaW1pdGVkIGZvciBHUFUgcHJvY2Vzcy4i
LgorICAgICAgICBBZGp1c3QgdGhlIG9yZGVyIG9mIHdhaXRpbmcgZm9yIHdlYmdsY29udGV4dGxv
c3QgYW5kIGNoZWNraW5nCisgICAgICAgIGlzQ29udGV4dExvc3QoKSwgc28gdGhhdCBpdCB3b3Jr
cyB3aGVuIGNvbnRleHQgbG9zcyBpcyByZXBvcnRlZAorICAgICAgICBhc3luY2hyb25vdXNseSBi
eSBHUFVQLgorCisgICAgICAgICogd2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgdGVzdCB0ZXN0aW5nIHRoZSBidWcgZml4LgorCiAy
MDIyLTAzLTE1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjgyNzM3KTogYHRleHQtc2hhZG93YCBpcyBjbGlwcGVkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDkxYjE5NmEyYTQzMzdjMDg2NjZj
MzNmYzA5MmM5NjdmZDdmMjNhYi4uYjUzY2M4ODIwYzcyNmU5MTY2MDE3MGQ1NzhiN2JjNDE1MjNm
Yzc3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTM4NSw2ICsxMzg1LDcgQEAgd2Via2l0Lm9yZy9iLzIxOTI1MSBmYXN0L2NhbnZhcy93ZWJnbC9n
ZXRJbmRleGVkUGFyYW1ldGVyLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9i
LzE3MjgxMiBmYXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNvbnRleHQtb24tc3RhdHVzLWZhaWx1cmUu
aHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE3MjgxMiB3ZWJnbC9sb3NlLWNvbnRleHQtYWZ0
ZXItY29udGV4dC1sb3N0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xNzI4MTIgd2Vi
Z2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3Jn
L2IvMjIzNjI0IHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMva2hyLXBhcmFsbGVsLXNoYWRl
ci1jb21waWxlLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
bG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dAppbmRl
eCAzYzM1OWEwNTg0YTUzM2QwYzdjMDEzYzEwMWVhNjZhZTg0N2FjMWZhLi4xNzg3ZDMwNjYxODA2
ZGNiYjFlZDE4OGM1YzA2OTgwZjNjMmE3NjY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJn
bC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4
dApAQCAtNSw0MCArNSw0MCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogVEVTVCBDT01QTEVU
RTogMjkgUEFTUywgMiBGQUlMCiAKIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbG9zZUNvbnRl
eHQsIHRlc3RlZE1ldGhvZDogbG9zZUNvbnRleHQKK1BBU1MgR290IHdlYmdsY29udGV4dGxvc3Qu
CiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCiBQQVNTIGdsLmdldEVycm9yKCkgaXMg
Z2wuQ09OVEVYVF9MT1NUX1dFQkdMCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IK
LVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2ggb24gdGVzdGVk
IG1ldGhvZCBsb3NlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbG9zZUNvbnRl
eHQsIHRlc3RlZE1ldGhvZDogcmVzdG9yZUNvbnRleHQKK1BBU1MgR290IHdlYmdsY29udGV4dGxv
c3QuCiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCiBQQVNTIGdsLmdldEVycm9yKCkg
aXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJS
T1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2ggb24gdGVz
dGVkIG1ldGhvZCByZXN0b3JlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbWFu
eUNvbnRleHRzLCB0ZXN0ZWRNZXRob2Q6IGxvc2VDb250ZXh0CitQQVNTIEdvdCB3ZWJnbGNvbnRl
eHRsb3N0LgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogRkFJTCBnbC5nZXRFcnJv
cigpIHNob3VsZCBiZSAzNzQ0Mi4gV2FzIDAuCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9f
RVJST1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2ggb24g
dGVzdGVkIG1ldGhvZCBsb3NlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbWFu
eUNvbnRleHRzLCB0ZXN0ZWRNZXRob2Q6IHJlc3RvcmVDb250ZXh0CitQQVNTIEdvdCB3ZWJnbGNv
bnRleHRsb3N0LgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogRkFJTCBnbC5nZXRF
cnJvcigpIHNob3VsZCBiZSAzNzQ0Mi4gV2FzIDAuCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
Tk9fRVJST1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2gg
b24gdGVzdGVkIG1ldGhvZCByZXN0b3JlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhv
ZDogZ3B1U3RhdHVzRmFpbHVyZSwgdGVzdGVkTWV0aG9kOiBsb3NlQ29udGV4dAorUEFTUyBHb3Qg
d2ViZ2xjb250ZXh0bG9zdC4KIFBBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKIFBBU1Mg
Z2wuZ2V0RXJyb3IoKSBpcyBnbC5DT05URVhUX0xPU1RfV0VCR0wKIFBBU1MgZ2wuZ2V0RXJyb3Io
KSBpcyBnbC5OT19FUlJPUgotUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdC4KIFBBU1MgRGlkIG5v
dCBjcmFzaCBvbiB0ZXN0ZWQgbWV0aG9kIGxvc2VDb250ZXh0LgogUnVubmluZyB0ZXN0OiBsb3Nl
TWV0aG9kOiBncHVTdGF0dXNGYWlsdXJlLCB0ZXN0ZWRNZXRob2Q6IHJlc3RvcmVDb250ZXh0CitQ
QVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1
ZQogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRfTE9TVF9XRUJHTAogUEFTUyBnbC5n
ZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFT
UyBEaWQgbm90IGNyYXNoIG9uIHRlc3RlZCBtZXRob2QgcmVzdG9yZUNvbnRleHQuCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2xvc2UtY29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L2xvc2UtY29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QuaHRtbAppbmRleCAyN2YxMjhkYmUxNjQ1
ZjA0ZmUzMTdhY2U5MWZiZTBlOGY0ZDE4YmRhLi4zZGI3MzFiZDE5MzU3NTExNGExZjNhMWNjYjJj
NDllZjM0MTY2NzZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQt
YWZ0ZXItY29udGV4dC1sb3N0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvbG9zZS1jb250
ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC5odG1sCkBAIC0xLDUgKzEsNCBAQAotPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBVc2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFibGVk
PWZhbHNlIF0gLS0+Ci08IS0tIFNob3VsZCBiZSByZW1vdmVkIHdoZW4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjk2NCBpcyBmaXhlZC4gLS0+Cis8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CkBAIC01NiwxNSAr
NTUsMTUgQEAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdChzdWJjYXNlKQogICAgICAgICAgICAgZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgid2ViZ2wiKTsKICAgICB9
CiAKLSAgICBzaG91bGRCZVRydWUoImdsLmlzQ29udGV4dExvc3QoKSIpOwotICAgIHNob3VsZEJl
KCJnbC5nZXRFcnJvcigpIiwgImdsLkNPTlRFWFRfTE9TVF9XRUJHTCIpOwotICAgIHNob3VsZEJl
KCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CiAgICAgdHJ5IHsKICAgICAgICAgYXdh
aXQgd2ViZ2xjb250ZXh0bG9zdDsKICAgICAgICAgdGVzdFBhc3NlZCgiR290IHdlYmdsY29udGV4
dGxvc3QuIik7CiAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICB0ZXN0RmFpbGVkKCJUaW1lZCBv
dXQgd2FpdGluZyB3ZWJnbGNvbnRleHRsb3N0LiIpOwogICAgIH0KKyAgICBzaG91bGRCZVRydWUo
ImdsLmlzQ29udGV4dExvc3QoKSIpOworICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImds
LkNPTlRFWFRfTE9TVF9XRUJHTCIpOworICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImds
Lk5PX0VSUk9SIik7CiAKICAgICBpZiAoc3ViY2FzZS50ZXN0ZWRNZXRob2QgPT0gImxvc2VDb250
ZXh0IikKICAgICAgICAgV0VCR0xfbG9zZV9jb250ZXh0Lmxvc2VDb250ZXh0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWQ3NTZlZWYzMTljZDk5YTcwOWE3NWI1YzkzMTQ4ZjY1OGNjYzYwMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL211bHRpcGxlLWNvbnRleHQtbG9z
c2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5IEBACitUZXN0IHRoYXQgYSBjb250ZXh0IGNh
biBiZSBsb3N0IG11bHRpcGxlIHRpbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
K1RFU1QgQ09NUExFVEU6IDUwIFBBU1MsIDAgRkFJTAorCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRs
b3N0IGl0ZXJhdGlvbjowCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGds
LmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkg
aXMgZ2wuTk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjow
CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlz
IGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlvbjoxCitQQVNT
IGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09O
VEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1Mg
R290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjoxCitQQVNTIGdsLmlzQ29udGV4dExv
c3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdv
dCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlvbjoyCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBp
cyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNT
IGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3Rv
cmVkIGl0ZXJhdGlvbjoyCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0
ZXJhdGlvbjozCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVy
cm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
Tk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjozCitQQVNT
IGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5P
X0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlvbjo0CitQQVNTIGdsLmlz
Q29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9M
T1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgR290IHdl
YmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjo0CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBp
cyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJn
bGNvbnRleHRsb3N0IGl0ZXJhdGlvbjo1CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVl
CitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdl
dEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0
ZXJhdGlvbjo1CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRF
cnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlv
bjo2CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkg
aXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJS
T1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjo2CitQQVNTIGdsLmlz
Q29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9S
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2YzOGI2YzUyMDNkYzNkYjYwMjNmMjZmYjM5MDEzYzkzZGVjNjAyYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLmh0bWwKQEAg
LTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGEgY29udGV4dCBjYW4g
YmUgbG9zdCBtdWx0aXBsZSB0aW1lcy4iKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwor
dmFyIGdsOworCithc3luYyBmdW5jdGlvbiB3YWl0Rm9yV2ViR0xDb250ZXh0TG9zdEFuZFJlc3Rv
cmUoY2FudmFzKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgIGNvbnN0IHJlamVjdElEID0gc2V0VGltZW91dChyZWplY3QsIDIwMDApOwor
ICAgICAgICBmdW5jdGlvbiBoYW5kbGVDb250ZXh0TG9zcyhldmVudCkgeworICAgICAgICAgICAg
Y29uc29sZS5sb2coImdvdCBoZXJlIDEiKTsKKyAgICAgICAgICAgIGNsZWFyVGltZW91dChyZWpl
Y3RJRCk7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAg
Y29uc29sZS5sb2coImdvdCBoZXJlIDIiKTsKKworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICB9CisgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0
IiwgaGFuZGxlQ29udGV4dExvc3MsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICB9KTsKK30KKworYXN5
bmMgZnVuY3Rpb24gd2FpdEZvcldlYkdMQ29udGV4dFJlc3RvcmVkKGNhbnZhcykKK3sKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBzZXRUaW1l
b3V0KHJlamVjdCwgMjAwMCk7CisgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJn
bGNvbnRleHRyZXN0b3JlZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICB9KTsKK30K
KworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHRlc3RGYWlsZWQoIk5lZWRzIGludGVybmFscy4iKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJj
YW52YXMiKTsKKyAgICBjYW52YXMud2lkdGggPSAxOworICAgIGNhbnZhcy5oZWlnaHQgPSAxOwor
ICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOworCisgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCA3OyArK2kpIHsKKyAgICAgICAgY29uc3Qgd2ViZ2xjb250ZXh0bG9zdGFuZHJlc3Rv
cmUgPSB3YWl0Rm9yV2ViR0xDb250ZXh0TG9zdEFuZFJlc3RvcmUoY2FudmFzKTsKKyAgICAgICAg
Y29uc3Qgd2ViZ2xjb250ZXh0cmVzdG9yZWQgPSB3YWl0Rm9yV2ViR0xDb250ZXh0UmVzdG9yZWQo
Y2FudmFzKTsKKworICAgICAgICBpbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdMQ29udGV4
dCgiR1BVU3RhdHVzRmFpbHVyZSIsIGdsKTsKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGF3YWl0IHdlYmdsY29udGV4
dGxvc3RhbmRyZXN0b3JlOworICAgICAgICAgICAgdGVzdFBhc3NlZChgR290IHdlYmdsY29udGV4
dGxvc3QgaXRlcmF0aW9uOiR7aX1gKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAg
ICAgdGVzdEZhaWxlZChgVGltZWQgb3V0IHdhaXRpbmcgd2ViZ2xjb250ZXh0bG9zdCBpdGVyYXRp
b246JHtpfWAgKyBlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBz
aG91bGRCZVRydWUoImdsLmlzQ29udGV4dExvc3QoKSIpOworICAgICAgICBzaG91bGRCZSgiZ2wu
Z2V0RXJyb3IoKSIsICJnbC5DT05URVhUX0xPU1RfV0VCR0wiKTsKKyAgICAgICAgc2hvdWxkQmUo
ImdsLmdldEVycm9yKCkiLCAiZ2wuTk9fRVJST1IiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgIGF3YWl0IHdlYmdsY29udGV4dHJlc3RvcmVkOworICAgICAgICAgICAgdGVzdFBhc3NlZChg
R290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjoke2l9YCk7CisgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoYFRpbWVkIG91dCB3YWl0aW5nIHdlYmds
Y29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjoke2l9YCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiZ2wuaXNDb250ZXh0TG9zdCgpIik7Cisg
ICAgICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CisgICAgfQor
fQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBhd2FpdCBydW5UZXN0KCk7CisgICAg
ZmluaXNoVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454824</attachid>
            <date>2022-03-16 05:11:32 -0700</date>
            <delta_ts>2022-03-16 05:35:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237952-20220316141131.patch</filename>
            <type>text/plain</type>
            <size>26328</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uNzNlMzk5ZTM2N2U1NzMxMWUyMDlkNzc1NzA0ZDIx
N2IxYmM0ZGQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAzLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBsb3N0IGV2ZW50IGlzIG5vdCBzZW50IGFnYWluIGZvciBjb250ZXh0cyB0aGF0IGFyZSBsb3N0
IGFuZCByZXN0b3JlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3OTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSBkaWQgbm90IHJlZ2lzdGVyIHRoZSBHcmFw
aGljc0NvbnRleHRHTDo6Q2xpZW50CisgICAgICAgIGZvciBuZXcgY29udGV4dHMgYWZ0ZXIgYSBj
b250ZXh0IGxvc3QuCisgICAgICAgIFJlbmFtZSB0aGUgR3JhcGhpY3NDb250ZXh0R0w6OmFkZENs
aWVudCBhcyBHcmFwaGljc0NvbnRleHRHTDo6c2V0Q2xpZW50KCksCisgICAgICAgIG1vdmUgdGhl
IHNoYXJlZCBpbXBsZW1lbnRhdGluIHRvIHRoZSBiYXNlIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdM
LgorICAgICAgICBSZW1vdmUgR3JhcGhpY3NDb250ZXh0R0w6OkNsaWVudDo6cmVjeWNsZUNvbnRl
eHQoKSwgdGhlIHVzZSB3YXMgcmVtb3ZlZCBpbgorICAgICAgICByMjkwODE2ICJXZWJHTCBjb250
ZXh0IGNvdW50IGlzIG5vdCBsaW1pdGVkIGZvciBHUFUgcHJvY2Vzcy4iLgorCisgICAgICAgIFRl
c3Q6IHdlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLmh0bWwKKworICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRHcmFwaGljc0Nv
bnRleHRHTCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
ZXN0cm95R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6bWFy
a0xheWVyQ29tcG9zaXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6
Zm9yY2VDb250ZXh0TG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6
ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMOjpzZXRDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oOgorCiAyMDIyLTAz
LTE1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjgyNzM3KTogYHRleHQtc2hhZG93YCBpcyBjbGlwcGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU5NzUxNjY4
ZDFjNzk1MTU4NzQ2ZWUwYzQ2NGU3ZGViMzAyZTM3OTAuLmY2NjQ2MjYwOWQ0YmY5NGUyMDlhOGJm
NWIwOTg5MTJkNjc3YTRlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDMtMTYg
IEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJHTCBj
b250ZXh0IGxvc3QgZXZlbnQgaXMgbm90IHNlbnQgYWdhaW4gZm9yIGNvbnRleHRzIHRoYXQgYXJl
IGxvc3QgYW5kIHJlc3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzc5NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgQWRqdXN0IGFmdGVyIEdyYXBoaWNzQ29udGV4dEdMOjphZGRDbGllbnQoKSB3YXMg
cmVuYW1lZCBzZXRDbGllbnQoKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTDo6d29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMOjp3b3JrUXVldWVVbmluaXRpYWxpemUpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6d2FzTG9zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Ondhc0NoYW5n
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjptYXJr
Q29udGV4dExvc3QpOgorCiAyMDIyLTAzLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN1c3BlbmQgbmV3bHkgY3JlYXRlZCBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXIgaWYgbmV0d29yayBwcm9jZXNzIGlzIG9yIHdpbGwgYmUgc3VzcGVuZGVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwCmluZGV4IDJmNDI3YmM0OWZjMGM2YWYzMTJkNzE0MzQwNzgzM2RiOGMzNjY1NzYuLjAxNTQz
YjVlOTBmNmZjMjNlOTZkYmZhYTQwMmE3ODU2M2I5MjFiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBA
IC05ODEsOCArOTgxLDYgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJlZjxHcmEKICAgICBtX2NvbnRleHRH
cm91cCA9IFdlYkdMQ29udGV4dEdyb3VwOjpjcmVhdGUoKTsKICAgICBtX2NvbnRleHRHcm91cC0+
YWRkQ29udGV4dCgqdGhpcyk7CiAKLSAgICBtX2NvbnRleHQtPmFkZENsaWVudCgqdGhpcyk7Ci0K
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dEdMOjpNQVhfVklFV1BP
UlRfRElNUywgbV9tYXhWaWV3cG9ydERpbXMpOwogCiAgICAgc2V0dXBGbGFncygpOwpAQCAtMTI1
Niw3ICsxMjU0LDEyIEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6On5XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKCkKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0R3JhcGhp
Y3NDb250ZXh0R0woUmVmPEdyYXBoaWNzQ29udGV4dEdMPiYmIGNvbnRleHQpCiB7CiAgICAgYm9v
bCB3YXNBY3RpdmUgPSBtX2NvbnRleHQ7CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICBt
X2NvbnRleHQtPnNldENsaWVudChudWxscHRyKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0
cjsKKyAgICB9CiAgICAgbV9jb250ZXh0ID0gV1RGTW92ZShjb250ZXh0KTsKKyAgICBtX2NvbnRl
eHQtPnNldENsaWVudCh0aGlzKTsKICAgICB1cGRhdGVBY3RpdmVPcmRpbmFsKCk7CiAgICAgaWYg
KCF3YXNBY3RpdmUpCiAgICAgICAgIGFkZEFjdGl2ZUNvbnRleHQoKnRoaXMpOwpAQCAtMTI3MCw3
ICsxMjczLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95R3JhcGhp
Y3NDb250ZXh0R0woKQogICAgIHJlbW92ZUFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcigpOwog
CiAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgq
dGhpcyk7CisgICAgICAgIG1fY29udGV4dC0+c2V0Q2xpZW50KG51bGxwdHIpOwogICAgICAgICBt
X2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICByZW1vdmVBY3RpdmVDb250ZXh0KCp0aGlzKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgKaW5kZXggYTgxNjczOGQ4YWQ1MWVkYmVkNzk2NTgzOWQ1MDljZjM4
YWJkM2M4Ny4uYjUxNjEzMDRjOTY4MjA4ODg2MjQ2YTRhNWM1Y2YwMGJlMmNmOGE3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaApAQCAtNDEyLDkgKzQxMiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gR3JhcGhpY3NDb250
ZXh0R0w6OkNsaWVudAogICAgIHZvaWQgZGlkQ29tcG9zaXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBmb3JjZUNvbnRleHRMb3N0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZWN5Y2xlQ29udGV4dCgp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigp
IG92ZXJyaWRlOwogCisgICAgdm9pZCByZWN5Y2xlQ29udGV4dCgpOworCiAgICAgdmlydHVhbCB2
b2lkIGFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvciYpOwog
ICAgIC8vIFRoaXMgbG9jayBtdXN0IGJlIGhlbGQgYWNyb3NzIGFsbCBtdXRhdGlvbnMgb2YgY29u
dGFpbmVycyBsaWtlCiAgICAgLy8gVmVjdG9ycywgSGFzaFNldHMsIGV0Yy4gd2hpY2ggY29udGFp
biBSZWZQdHI8V2ViR0xPYmplY3Q+LCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCBhMTQwOTBhN2Y5OGQ0
YWZjYWUzNTgwZGRjOGU3OWU2MTkzNDNkOTVlLi44N2I5ZGE3ZWZmM2JhN2Q5OTFiZjE5Y2I5ZjU5
MThhMGMxYTlkNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC02MzMsOCArNjMzLDIxIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0R0w6Om1hcmtMYXllckNvbXBvc2l0ZWQoKQogICAgICAgICBpZiAoYXR0cnMu
c3RlbmNpbCkKICAgICAgICAgICAgIG1fYnVmZmVyc1RvQXV0b0NsZWFyIHw9IEdyYXBoaWNzQ29u
dGV4dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CiAgICAgfQotICAgIGZvciAoYXV0byogY2xpZW50
IDogY29weVRvVmVjdG9yKG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+ZGlkQ29tcG9zaXRl
KCk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcG9zaXRlKCk7
Cit9CisKKwordm9pZCBHcmFwaGljc0NvbnRleHRHTDo6Zm9yY2VDb250ZXh0TG9zdCgpCit7Cisg
ICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+Zm9yY2VDb250ZXh0TG9zdCgpOwor
fQorCit2b2lkIEdyYXBoaWNzQ29udGV4dEdMOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZp
Y2F0aW9uKCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaXNwYXRj
aENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRHTC5oCmluZGV4IDY4OTg3N2M0YzA1Y2NjZWJlNmEwY2EyYmQ2M2U2Yjc0MDFmZGEwYmUu
LjMyMjA5MTM2NWUwZmM2ZDFiMzY1NWU2ZWNiOWQ4ODgyODYyODczMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApAQCAt
MTAzNSw3ICsxMDM1LDYgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IH5DbGllbnQoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBvc2l0ZSgpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGZvcmNlQ29udGV4dExvc3QoKSA9IDA7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCByZWN5Y2xlQ29udGV4dCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKSA9IDA7CiAgICAgfTsKIApAQCAtMTA0OCw4
ICsxMDQ3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+R3JhcGhpY3NDb250ZXh0R0woKTsKIAotICAgIHZvaWQgYWRkQ2xpZW50KENsaWVudCYgY2xp
ZW50KSB7IG1fY2xpZW50cy5hZGQoJmNsaWVudCk7IH0KLSAgICB2b2lkIHJlbW92ZUNsaWVudChD
bGllbnQmIGNsaWVudCkgeyBtX2NsaWVudHMucmVtb3ZlKCZjbGllbnQpOyB9CisgICAgdm9pZCBz
ZXRDbGllbnQoQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KIAogICAgIC8v
ID09PT09PT09PT0gV2ViR0wgMSBlbnRyeSBwb2ludHMuCiAgICAgdmlydHVhbCB2b2lkIGFjdGl2
ZVRleHR1cmUoR0NHTGVudW0gdGV4dHVyZSkgPSAwOwpAQCAtMTUwNyw5ICsxNTA1LDEyIEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHBhaW50VG9DYW52YXMoY29u
c3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUGl4ZWxCdWZmZXImJiwgY29uc3QgSW50
U2l6ZSYgY2FudmFzU2l6ZSwgR3JhcGhpY3NDb250ZXh0Jik7CiBwcm90ZWN0ZWQ6CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBmb3JjZUNvbnRleHRMb3N0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7CisKICAgICBpbnQgbV9j
dXJyZW50V2lkdGggeyAwIH07CiAgICAgaW50IG1fY3VycmVudEhlaWdodCB7IDAgfTsKLSAgICBI
YXNoU2V0PENsaWVudCo+IG1fY2xpZW50czsKKyAgICBDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0
ciB9OwogICAgIC8vIEEgYml0bWFzayBvZiBHTCBidWZmZXIgYml0cyAoR0xfQ09MT1JfQlVGRkVS
X0JJVCwKICAgICAvLyBHTF9ERVBUSF9CVUZGRVJfQklULCBHTF9TVEVOQ0lMX0JVRkZFUl9CSVQp
IHdoaWNoIG5lZWQgdG8gYmUKICAgICAvLyBhdXRvLWNsZWFyZWQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwCmluZGV4IDg5N2JlYTQ1ODcwZDZiMGMxOGRlNGYxMzg5Yzg2ZjI2MzU5
NThmOWIuLjY3ZmJjNDRmZWJkYWY2M2U5ZDI4YTA4NWUzY2ZkNTJmMWE4MjhkZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0yMTkyLDI0ICsyMTkyLDYgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBlcnJvcikK
ICAgICBtX3N5bnRoZXRpY0Vycm9ycy5hZGQoZXJyb3IpOwogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OmZvcmNlQ29udGV4dExvc3QoKQotewotICAgIGZvciAoYXV0byogY2xpZW50
IDogY29weVRvVmVjdG9yKG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+Zm9yY2VDb250ZXh0
TG9zdCgpOwotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlY3ljbGVDb250ZXh0
KCkKLXsKLSAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3RvcihtX2NsaWVudHMpKQot
ICAgICAgICBjbGllbnQtPnJlY3ljbGVDb250ZXh0KCk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCi17Ci0gICAg
Zm9yIChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKLSAgICAgICAgY2xp
ZW50LT5kaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7Ci19Ci0KIHZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6ZHJhd0FycmF5c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBH
Q0dMaW50IGZpcnN0LCBHQ0dMc2l6ZWkgY291bnQsIEdDR0xzaXplaSBwcmltY291bnQpCiB7CiAg
ICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUu
aAppbmRleCBmZDU0YTFiYTc1YjQzMmYzYTEwNDZjMTRhM2JkZDVkOTA0OGM2YzdmLi5mNGRjODdk
YjUyZTBlMjk3MDBhMjA3NzkzNTExYWUwYWU5NTZhMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5oCkBAIC0zNTIsOSArMzUyLDYgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8
UGl4ZWxCdWZmZXI+IHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvUGl4ZWxCdWZmZXIoKSBmaW5hbDsK
ICAgICB2b2lkIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciYpIGZp
bmFsOwogCi0gICAgdm9pZCBmb3JjZUNvbnRleHRMb3N0KCk7Ci0gICAgdm9pZCByZWN5Y2xlQ29u
dGV4dCgpOwotICAgIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwog
ICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRSZW5kZXJpbmdSZXN1bHRzRm9yUGFp
bnRpbmcoKTsKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiByZWFkQ29tcG9zaXRlZFJl
c3VsdHNGb3JQYWludGluZygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cAppbmRleCBiNWJhYzdkOGZlNDNjNDgwODU2NmFiOWNjZjdmNzQ0MjQwNzY0NmE4Li4zNjNlOTYx
NzcwNmQ4ZjFkODRkOWQ3OWM5MmRkOWUwMWQwMTk3M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5jcHAKQEAgLTIzMzcsMjQgKzIzMzcsNiBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBlcnJvcikKICAgICBtX3N5
bnRoZXRpY0Vycm9ycy5hZGQoZXJyb3IpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpmb3JjZUNvbnRleHRMb3N0KCkKLXsKLSAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlU
b1ZlY3RvcihtX2NsaWVudHMpKQotICAgICAgICBjbGllbnQtPmZvcmNlQ29udGV4dExvc3QoKTsK
LX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVjeWNsZUNvbnRleHQoKQotewot
ICAgIGZvciAoYXV0byogY2xpZW50IDogY29weVRvVmVjdG9yKG1fY2xpZW50cykpCi0gICAgICAg
IGNsaWVudC0+cmVjeWNsZUNvbnRleHQoKTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCi17Ci0gICAgZm9yIChh
dXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKLSAgICAgICAgY2xpZW50LT5k
aXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OnRleEltYWdlMkREaXJlY3QoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50
IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6
ZWkgaGVpZ2h0LCBHQ0dMaW50IGJvcmRlciwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBl
LCBjb25zdCB2b2lkKiBwaXhlbHMpCiB7CiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggNDA1MWZjNTIyMGNhMGEyYzNk
NTBhZDk3NzE2ZWMyYzFlOTdmNTQzNC4uZTg5OTdiMmU1MDQzZjYzNzYyMDE1ZWIxNTIyOTI3ODhj
MzU5NjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTM3NywxMSAr
Mzc3LDYgQEAgcHVibGljOgogICAgIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5H
TEUoUGxhdGZvcm1HTE9iamVjdCkgZmluYWw7CiAKICAgICAvLyBIZWxwZXIgbWV0aG9kcy4KLSAg
ICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKTsKLSAgICB2b2lkIHJlY3ljbGVDb250ZXh0KCk7Ci0K
LSAgICB2b2lkIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKLQogICAgIHZv
aWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXImKSBmaW5hbDsKICAg
ICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb1BpeGVs
QnVmZmVyKCkgZmluYWw7CiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMo
SW1hZ2VCdWZmZXImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDdmNmNl
YzljMmMzZDFlOTNkNWI1ZGZmNTRkYjk0YjgyMjdhOGZlMWYuLjRlOTBhZDJhZTdkMzNhMTk5NmE3
Njk3NDFiZWEwNjI3OTA4OTdjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMTE4
LDcgKzExOCw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OndvcmtRdWV1ZUluaXRp
YWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyCiAgICAgYXNzZXJ0SXNDdXJyZW50
KHdvcmtRdWV1ZSgpKTsKICAgICBwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV1RGTW92ZShh
dHRyaWJ1dGVzKSk7CiAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICBtX2NvbnRleHQtPmFk
ZENsaWVudCgqdGhpcyk7CisgICAgICAgIG1fY29udGV4dC0+c2V0Q2xpZW50KHRoaXMpOwogICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dEdMOjpFWFRFTlNJT05TKTsKICAgICAgICAgU3RyaW5nIHJlcXVlc3RhYmxlRXh0ZW5zaW9u
cyA9IG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRVFVRVNUQUJMRV9F
WFRFTlNJT05TX0FOR0xFKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6V2FzQ3JlYXRlZCh0cnVlLCByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0
cmVhbVdvcmtRdWV1ZSgpLndha2VVcFNlbWFwaG9yZSgpLCBleHRlbnNpb25zLCByZXF1ZXN0YWJs
ZUV4dGVuc2lvbnMpKTsKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMOjp3b3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0
cgogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6d29ya1F1ZXVlVW5pbml0aWFsaXplKCkK
IHsKICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOworICAgIG1fY29udGV4dC0+c2V0
Q2xpZW50KG51bGxwdHIpOwogICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAgICAgbV9zdHJlYW1D
b25uZWN0aW9uID0gbnVsbHB0cjsKIH0KQEAgLTE0NCwxMSArMTQ1LDYgQEAgdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6Zm9yY2VDb250ZXh0TG9zdCgpCiAgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6V2FzTG9zdCgpKTsKIH0KIAotdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6cmVjeWNsZUNvbnRleHQoKQotewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotfQotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwYXRjaENv
bnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCkKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1
ZXVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCBlODBkZjA3OTI3ODMzYmNlZjU0ZDQ4
M2UwNzMyOWEwYzgyMzc4M2YyLi42ZTMzNTdlOWRkZGM0ZGQzYjc0YjZjYzc5ZDBiOWMwODBmOGQ0
YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMTAxLDcgKzEwMSw2IEBAIHByb3RlY3Rl
ZDoKICAgICAvLyBHcmFwaGljc0NvbnRleHRHTDo6Q2xpZW50IG92ZXJyaWRlcy4KICAgICB2b2lk
IGRpZENvbXBvc2l0ZSgpIGZpbmFsOwogICAgIHZvaWQgZm9yY2VDb250ZXh0TG9zdCgpIGZpbmFs
OwotICAgIHZvaWQgcmVjeWNsZUNvbnRleHQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoQ29u
dGV4dENoYW5nZWROb3RpZmljYXRpb24oKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJl
IHJlY2VpdmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5k
ZXggNjE5YWQ0YWZhMTNhN2Y2NTExZmE1NWU5MmVhYzcwZTE4YTc2ZWVjOC4uZTQ1ZGZiZDQ4YWJk
OWRlMmIwZDkwNDA3ZjZhOGQxZmJlNTQyNjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwCkBAIC0yNzksMjEgKzI3OSwyMCBAQCB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6Ondhc0xvc3QoKQogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAg
ICAgICAgIHJldHVybjsKICAgICBtYXJrQ29udGV4dExvc3QoKTsKKwogfQogCiB2b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Ondhc0NoYW5nZWQoKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlU
b1ZlY3RvcihtX2NsaWVudHMpKQotICAgICAgICBjbGllbnQtPmRpc3BhdGNoQ29udGV4dENoYW5n
ZWROb3RpZmljYXRpb24oKTsKKyAgICBkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9u
KCk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bWFya0NvbnRleHRM
b3N0KCkKIHsKICAgICBkaXNjb25uZWN0R3B1UHJvY2Vzc0lmTmVlZGVkKCk7Ci0gICAgZm9yIChh
dXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKLSAgICAgICAgY2xpZW50LT5m
b3JjZUNvbnRleHRMb3N0KCk7CisgICAgZm9yY2VDb250ZXh0TG9zdCgpOwogfQogCiBib29sIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmhhbmRsZU1lc3NhZ2VUb1JlbW92ZWREZXN0aW5h
dGlvbihJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDg5
ZGQ4MDk4ZmVkZGIzZjg5MTg2ODc5ZGQ2YzBmMTVmYTYxZmE1NS4uOGM2YjFjNWNjY2UyZWNlMDM3
N2MxNzQ4ZGNmZTk1Y2UzOWEwZmIxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIyLTAzLTE2
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wg
Y29udGV4dCBsb3N0IGV2ZW50IGlzIG5vdCBzZW50IGFnYWluIGZvciBjb250ZXh0cyB0aGF0IGFy
ZSBsb3N0IGFuZCByZXN0b3JlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM3OTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
d2ViZ2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViZ2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC5odG1sOgorICAgICAg
ICBFbmFibGUgdGhlIHRlc3QgZm9yIEdQVVAsIGl0IHdvcmtzIG5vdyBhZnRlcgorICAgICAgICBy
MjkwODE2ICJXZWJHTCBjb250ZXh0IGNvdW50IGlzIG5vdCBsaW1pdGVkIGZvciBHUFUgcHJvY2Vz
cy4iLgorICAgICAgICBBZGp1c3QgdGhlIG9yZGVyIG9mIHdhaXRpbmcgZm9yIHdlYmdsY29udGV4
dGxvc3QgYW5kIGNoZWNraW5nCisgICAgICAgIGlzQ29udGV4dExvc3QoKSwgc28gdGhhdCBpdCB3
b3JrcyB3aGVuIGNvbnRleHQgbG9zcyBpcyByZXBvcnRlZAorICAgICAgICBhc3luY2hyb25vdXNs
eSBieSBHUFVQLgorCisgICAgICAgICogd2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nl
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgdGVzdCB0ZXN0aW5nIHRoZSBidWcgZml4Lgor
CiAyMDIyLTAzLTE1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjgyNzM3KTogYHRleHQtc2hhZG93YCBpcyBjbGlwcGVkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDkxYjE5NmEyYTQzMzdjMDg2
NjZjMzNmYzA5MmM5NjdmZDdmMjNhYi4uYjUzY2M4ODIwYzcyNmU5MTY2MDE3MGQ1NzhiN2JjNDE1
MjNmYzc3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTM4NSw2ICsxMzg1LDcgQEAgd2Via2l0Lm9yZy9iLzIxOTI1MSBmYXN0L2NhbnZhcy93ZWJn
bC9nZXRJbmRleGVkUGFyYW1ldGVyLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9y
Zy9iLzE3MjgxMiBmYXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNvbnRleHQtb24tc3RhdHVzLWZhaWx1
cmUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE3MjgxMiB3ZWJnbC9sb3NlLWNvbnRleHQt
YWZ0ZXItY29udGV4dC1sb3N0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xNzI4MTIg
d2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQu
b3JnL2IvMjIzNjI0IHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMva2hyLXBhcmFsbGVsLXNo
YWRlci1jb21waWxlLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dApp
bmRleCAzYzM1OWEwNTg0YTUzM2QwYzdjMDEzYzEwMWVhNjZhZTg0N2FjMWZhLi4xNzg3ZDMwNjYx
ODA2ZGNiYjFlZDE4OGM1YzA2OTgwZjNjMmE3NjY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4cGVjdGVk
LnR4dApAQCAtNSw0MCArNSw0MCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogVEVTVCBDT01Q
TEVURTogMjkgUEFTUywgMiBGQUlMCiAKIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbG9zZUNv
bnRleHQsIHRlc3RlZE1ldGhvZDogbG9zZUNvbnRleHQKK1BBU1MgR290IHdlYmdsY29udGV4dGxv
c3QuCiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCiBQQVNTIGdsLmdldEVycm9yKCkg
aXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJS
T1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2ggb24gdGVz
dGVkIG1ldGhvZCBsb3NlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbG9zZUNv
bnRleHQsIHRlc3RlZE1ldGhvZDogcmVzdG9yZUNvbnRleHQKK1BBU1MgR290IHdlYmdsY29udGV4
dGxvc3QuCiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCiBQQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9f
RVJST1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2ggb24g
dGVzdGVkIG1ldGhvZCByZXN0b3JlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDog
bWFueUNvbnRleHRzLCB0ZXN0ZWRNZXRob2Q6IGxvc2VDb250ZXh0CitQQVNTIEdvdCB3ZWJnbGNv
bnRleHRsb3N0LgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogRkFJTCBnbC5nZXRF
cnJvcigpIHNob3VsZCBiZSAzNzQ0Mi4gV2FzIDAuCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
Tk9fRVJST1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2gg
b24gdGVzdGVkIG1ldGhvZCBsb3NlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDog
bWFueUNvbnRleHRzLCB0ZXN0ZWRNZXRob2Q6IHJlc3RvcmVDb250ZXh0CitQQVNTIEdvdCB3ZWJn
bGNvbnRleHRsb3N0LgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogRkFJTCBnbC5n
ZXRFcnJvcigpIHNob3VsZCBiZSAzNzQ0Mi4gV2FzIDAuCiBQQVNTIGdsLmdldEVycm9yKCkgaXMg
Z2wuTk9fRVJST1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jh
c2ggb24gdGVzdGVkIG1ldGhvZCByZXN0b3JlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1l
dGhvZDogZ3B1U3RhdHVzRmFpbHVyZSwgdGVzdGVkTWV0aG9kOiBsb3NlQ29udGV4dAorUEFTUyBH
b3Qgd2ViZ2xjb250ZXh0bG9zdC4KIFBBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKIFBB
U1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5DT05URVhUX0xPU1RfV0VCR0wKIFBBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5OT19FUlJPUgotUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdC4KIFBBU1MgRGlk
IG5vdCBjcmFzaCBvbiB0ZXN0ZWQgbWV0aG9kIGxvc2VDb250ZXh0LgogUnVubmluZyB0ZXN0OiBs
b3NlTWV0aG9kOiBncHVTdGF0dXNGYWlsdXJlLCB0ZXN0ZWRNZXRob2Q6IHJlc3RvcmVDb250ZXh0
CitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMg
dHJ1ZQogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRfTE9TVF9XRUJHTAogUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0Lgog
UEFTUyBEaWQgbm90IGNyYXNoIG9uIHRlc3RlZCBtZXRob2QgcmVzdG9yZUNvbnRleHQuCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL2xvc2UtY29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL2xvc2UtY29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QuaHRtbAppbmRleCAyN2YxMjhkYmUx
NjQ1ZjA0ZmUzMTdhY2U5MWZiZTBlOGY0ZDE4YmRhLi4zZGI3MzFiZDE5MzU3NTExNGExZjNhMWNj
YjJjNDllZjM0MTY2NzZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRl
eHQtYWZ0ZXItY29udGV4dC1sb3N0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvbG9zZS1j
b250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC5odG1sCkBAIC0xLDUgKzEsNCBAQAotPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBVc2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFi
bGVkPWZhbHNlIF0gLS0+Ci08IS0tIFNob3VsZCBiZSByZW1vdmVkIHdoZW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjk2NCBpcyBmaXhlZC4gLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CkBAIC01Niwx
NSArNTUsMTUgQEAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdChzdWJjYXNlKQogICAgICAgICAgICAg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgid2ViZ2wiKTsKICAg
ICB9CiAKLSAgICBzaG91bGRCZVRydWUoImdsLmlzQ29udGV4dExvc3QoKSIpOwotICAgIHNob3Vs
ZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLkNPTlRFWFRfTE9TVF9XRUJHTCIpOwotICAgIHNob3Vs
ZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CiAgICAgdHJ5IHsKICAgICAgICAg
YXdhaXQgd2ViZ2xjb250ZXh0bG9zdDsKICAgICAgICAgdGVzdFBhc3NlZCgiR290IHdlYmdsY29u
dGV4dGxvc3QuIik7CiAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICB0ZXN0RmFpbGVkKCJUaW1l
ZCBvdXQgd2FpdGluZyB3ZWJnbGNvbnRleHRsb3N0LiIpOwogICAgIH0KKyAgICBzaG91bGRCZVRy
dWUoImdsLmlzQ29udGV4dExvc3QoKSIpOworICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwg
ImdsLkNPTlRFWFRfTE9TVF9XRUJHTCIpOworICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwg
ImdsLk5PX0VSUk9SIik7CiAKICAgICBpZiAoc3ViY2FzZS50ZXN0ZWRNZXRob2QgPT0gImxvc2VD
b250ZXh0IikKICAgICAgICAgV0VCR0xfbG9zZV9jb250ZXh0Lmxvc2VDb250ZXh0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWQ3NTZlZWYzMTljZDk5YTcwOWE3NWI1YzkzMTQ4ZjY1OGNjYzYw
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL211bHRpcGxlLWNvbnRleHQt
bG9zc2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5IEBACitUZXN0IHRoYXQgYSBjb250ZXh0
IGNhbiBiZSBsb3N0IG11bHRpcGxlIHRpbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKK1RFU1QgQ09NUExFVEU6IDUwIFBBU1MsIDAgRkFJTAorCitQQVNTIEdvdCB3ZWJnbGNvbnRl
eHRsb3N0IGl0ZXJhdGlvbjowCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNT
IGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlv
bjowCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigp
IGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlvbjoxCitQ
QVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
Q09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BB
U1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjoxCitQQVNTIGdsLmlzQ29udGV4
dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNT
IEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlvbjoyCitQQVNTIGdsLmlzQ29udGV4dExvc3Qo
KSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQ
QVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJl
c3RvcmVkIGl0ZXJhdGlvbjoyCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFT
UyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0
IGl0ZXJhdGlvbjozCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdl
dEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMg
Z2wuTk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjozCitQ
QVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGds
Lk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlvbjo0CitQQVNTIGds
LmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVY
VF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgR290
IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjo0CitQQVNTIGdsLmlzQ29udGV4dExvc3Qo
KSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3
ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlvbjo1CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0
cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGds
LmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVk
IGl0ZXJhdGlvbjo1CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5n
ZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJh
dGlvbjo2CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9f
RVJST1IKK1BBU1MgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjo2CitQQVNTIGds
LmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VS
Uk9SCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2YzOGI2YzUyMDNkYzNkYjYwMjNmMjZmYjM5MDEzYzkzZGVjNjAyYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLmh0bWwK
QEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGEgY29udGV4dCBj
YW4gYmUgbG9zdCBtdWx0aXBsZSB0aW1lcy4iKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwordmFyIGdsOworCithc3luYyBmdW5jdGlvbiB3YWl0Rm9yV2ViR0xDb250ZXh0TG9zdEFuZFJl
c3RvcmUoY2FudmFzKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgIGNvbnN0IHJlamVjdElEID0gc2V0VGltZW91dChyZWplY3QsIDIwMDAp
OworICAgICAgICBmdW5jdGlvbiBoYW5kbGVDb250ZXh0TG9zcyhldmVudCkgeworICAgICAgICAg
ICAgY29uc29sZS5sb2coImdvdCBoZXJlIDEiKTsKKyAgICAgICAgICAgIGNsZWFyVGltZW91dChy
ZWplY3RJRCk7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAg
ICAgY29uc29sZS5sb2coImdvdCBoZXJlIDIiKTsKKworICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICB9CisgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRs
b3N0IiwgaGFuZGxlQ29udGV4dExvc3MsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICB9KTsKK30KKwor
YXN5bmMgZnVuY3Rpb24gd2FpdEZvcldlYkdMQ29udGV4dFJlc3RvcmVkKGNhbnZhcykKK3sKKyAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBzZXRU
aW1lb3V0KHJlamVjdCwgMjAwMCk7CisgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3
ZWJnbGNvbnRleHRyZXN0b3JlZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICB9KTsK
K30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIk5lZWRzIGludGVybmFscy4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJjYW52YXMiKTsKKyAgICBjYW52YXMud2lkdGggPSAxOworICAgIGNhbnZhcy5oZWlnaHQgPSAx
OworICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOworCisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCA3OyArK2kpIHsKKyAgICAgICAgY29uc3Qgd2ViZ2xjb250ZXh0bG9zdGFuZHJl
c3RvcmUgPSB3YWl0Rm9yV2ViR0xDb250ZXh0TG9zdEFuZFJlc3RvcmUoY2FudmFzKTsKKyAgICAg
ICAgY29uc3Qgd2ViZ2xjb250ZXh0cmVzdG9yZWQgPSB3YWl0Rm9yV2ViR0xDb250ZXh0UmVzdG9y
ZWQoY2FudmFzKTsKKworICAgICAgICBpbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdMQ29u
dGV4dCgiR1BVU3RhdHVzRmFpbHVyZSIsIGdsKTsKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1Jf
QlVGRkVSX0JJVCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGF3YWl0IHdlYmdsY29u
dGV4dGxvc3RhbmRyZXN0b3JlOworICAgICAgICAgICAgdGVzdFBhc3NlZChgR290IHdlYmdsY29u
dGV4dGxvc3QgaXRlcmF0aW9uOiR7aX1gKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgICAgdGVzdEZhaWxlZChgVGltZWQgb3V0IHdhaXRpbmcgd2ViZ2xjb250ZXh0bG9zdCBpdGVy
YXRpb246JHtpfWAgKyBlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBzaG91bGRCZVRydWUoImdsLmlzQ29udGV4dExvc3QoKSIpOworICAgICAgICBzaG91bGRCZSgi
Z2wuZ2V0RXJyb3IoKSIsICJnbC5DT05URVhUX0xPU1RfV0VCR0wiKTsKKyAgICAgICAgc2hvdWxk
QmUoImdsLmdldEVycm9yKCkiLCAiZ2wuTk9fRVJST1IiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIGF3YWl0IHdlYmdsY29udGV4dHJlc3RvcmVkOworICAgICAgICAgICAgdGVzdFBhc3Nl
ZChgR290IHdlYmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjoke2l9YCk7CisgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoYFRpbWVkIG91dCB3YWl0aW5nIHdl
YmdsY29udGV4dHJlc3RvcmVkIGl0ZXJhdGlvbjoke2l9YCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiZ2wuaXNDb250ZXh0TG9zdCgpIik7
CisgICAgICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CisgICAg
fQorfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBhd2FpdCBydW5UZXN0KCk7Cisg
ICAgZmluaXNoVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454828</attachid>
            <date>2022-03-16 05:35:05 -0700</date>
            <delta_ts>2022-03-17 04:58:31 -0700</delta_ts>
            <desc>For landing</desc>
            <filename>bug-237952-20220316143503.patch</filename>
            <type>text/plain</type>
            <size>26482</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uNzhhYjRlMjRjOTFlNDFlYTEwNjZhOGQ0NjA0ZGEx
Y2QxYjI0MGNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTAzLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBsb3N0IGV2ZW50IGlzIG5vdCBzZW50IGFnYWluIGZvciBjb250ZXh0cyB0aGF0IGFyZSBsb3N0
IGFuZCByZXN0b3JlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3OTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAg
ICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSBkaWQgbm90IHJlZ2lzdGVyIHRoZSBHcmFw
aGljc0NvbnRleHRHTDo6Q2xpZW50CisgICAgICAgIGZvciBuZXcgY29udGV4dHMgYWZ0ZXIgYSBj
b250ZXh0IGxvc3QuCisgICAgICAgIE1vdmUgdGhlIGNsaWVudCByZWdpc3RyYXRpb24gdG8gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0R3JhcGhpY3NDb250ZXh0R0woKQorICAgICAgICB3
aGljaCBpcyBjYWxsZWQgYWx3YXlzIHdoZW4gc2V0dGluZyBhIG5ldyBjb250ZXh0LgorICAgICAg
ICBSZW5hbWUgdGhlIEdyYXBoaWNzQ29udGV4dEdMOjphZGRDbGllbnQgYXMgR3JhcGhpY3NDb250
ZXh0R0w6OnNldENsaWVudCgpLAorICAgICAgICBtb3ZlIHRoZSBzaGFyZWQgaW1wbGVtZW50YXRp
b24gdG8gdGhlIGJhc2UgY2xhc3MgR3JhcGhpY3NDb250ZXh0R0wuCisgICAgICAgIFJlbW92ZSBH
cmFwaGljc0NvbnRleHRHTDo6Q2xpZW50OjpyZWN5Y2xlQ29udGV4dCgpLCB0aGUgdXNlIHdhcyBy
ZW1vdmVkIGluCisgICAgICAgIHIyOTA4MTYgIldlYkdMIGNvbnRleHQgY291bnQgaXMgbm90IGxp
bWl0ZWQgZm9yIEdQVSBwcm9jZXNzLiIuCisKKyAgICAgICAgVGVzdDogd2ViZ2wvbXVsdGlwbGUt
Y29udGV4dC1sb3NzZXMuaHRtbAorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNldEdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRl
eHRHTCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjptYXJrTGF5ZXJDb21wb3NpdGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpmb3JjZUNvbnRleHRMb3N0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpkaXNwYXRjaENvbnRleHRDaGFu
Z2VkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRHTC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OnNldENsaWVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xB
TkdMRS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0R0xBTkdMRS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg6CisKIDIwMjItMDMtMTUgIEFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODI3MzcpOiBgdGV4dC1z
aGFkb3dgIGlzIGNsaXBwZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTk3NTE2NjhkMWM3OTUxNTg3NDZlZTBjNDY0
ZTdkZWIzMDJlMzc5MC4uY2UyN2Y2ODJlZDkzMzZlNjZkNmVmNGMyNDU3OTY4YjhlM2I3NmM5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMi0wMy0xNiAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkdMIGNvbnRleHQgbG9zdCBldmVudCBp
cyBub3Qgc2VudCBhZ2FpbiBmb3IgY29udGV4dHMgdGhhdCBhcmUgbG9zdCBhbmQgcmVzdG9yZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEFkanVzdCBh
ZnRlciBHcmFwaGljc0NvbnRleHRHTDo6YWRkQ2xpZW50KCkgd2FzIHJlbmFtZWQgc2V0Q2xpZW50
KCkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OndvcmtR
dWV1ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6d29ya1F1ZXVlVW5pbml0aWFsaXplKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Ondhc0xvc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp3YXNDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bWFya0NvbnRleHRMb3N0KToKKwog
MjAyMi0wMy0xNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBT
dXNwZW5kIG5ld2x5IGNyZWF0ZWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyIGlmIG5ldHdvcmsgcHJv
Y2VzcyBpcyBvciB3aWxsIGJlIHN1c3BlbmRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAyZjQyN2Jj
NDlmYzBjNmFmMzEyZDcxNDM0MDc4MzNkYjhjMzY2NTc2Li4wMTU0M2I1ZTkwZjZmYzIzZTk2ZGJm
YWE0MDJhNzg1NjNiOTIxYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtOTgxLDggKzk4MSw2IEBA
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2Fu
dmFzQmFzZSYgY2FudmFzLCBSZWY8R3JhCiAgICAgbV9jb250ZXh0R3JvdXAgPSBXZWJHTENvbnRl
eHRHcm91cDo6Y3JlYXRlKCk7CiAgICAgbV9jb250ZXh0R3JvdXAtPmFkZENvbnRleHQoKnRoaXMp
OwogCi0gICAgbV9jb250ZXh0LT5hZGRDbGllbnQoKnRoaXMpOwotCiAgICAgbV9jb250ZXh0LT5n
ZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHRHTDo6TUFYX1ZJRVdQT1JUX0RJTVMsIG1fbWF4Vmll
d3BvcnREaW1zKTsKIAogICAgIHNldHVwRmxhZ3MoKTsKQEAgLTEyNTYsNyArMTI1NCwxMiBAQCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSgpCiB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNldEdyYXBoaWNzQ29udGV4dEdMKFJlZjxH
cmFwaGljc0NvbnRleHRHTD4mJiBjb250ZXh0KQogewogICAgIGJvb2wgd2FzQWN0aXZlID0gbV9j
b250ZXh0OworICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgbV9jb250ZXh0LT5zZXRDbGll
bnQobnVsbHB0cik7CisgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CisgICAgfQogICAgIG1f
Y29udGV4dCA9IFdURk1vdmUoY29udGV4dCk7CisgICAgbV9jb250ZXh0LT5zZXRDbGllbnQodGhp
cyk7CiAgICAgdXBkYXRlQWN0aXZlT3JkaW5hbCgpOwogICAgIGlmICghd2FzQWN0aXZlKQogICAg
ICAgICBhZGRBY3RpdmVDb250ZXh0KCp0aGlzKTsKQEAgLTEyNzAsNyArMTI3Myw3IEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dEdMKCkKICAg
ICByZW1vdmVBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIoKTsKIAogICAgIGlmIChtX2NvbnRl
eHQpIHsKLSAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVDbGllbnQoKnRoaXMpOworICAgICAgICBt
X2NvbnRleHQtPnNldENsaWVudChudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0
cjsKICAgICAgICAgcmVtb3ZlQWN0aXZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
CmluZGV4IGE4MTY3MzhkOGFkNTFlZGJlZDc5NjU4MzlkNTA5Y2YzOGFiZDNjODcuLmI1MTYxMzA0
Yzk2ODIwODg4NjI0NmE0YTVjNWNmMDBiZTJjZjhhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQxMiw5
ICs0MTIsMTAgQEAgcHVibGljOgogICAgIC8vIEdyYXBoaWNzQ29udGV4dEdMOjpDbGllbnQKICAg
ICB2b2lkIGRpZENvbXBvc2l0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZm9yY2VDb250ZXh0TG9z
dCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVjeWNsZUNvbnRleHQoKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKSBvdmVycmlkZTsKIAorICAg
IHZvaWQgcmVjeWNsZUNvbnRleHQoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBhZGRNZW1iZXJzVG9P
cGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3ImKTsKICAgICAvLyBUaGlzIGxvY2sg
bXVzdCBiZSBoZWxkIGFjcm9zcyBhbGwgbXV0YXRpb25zIG9mIGNvbnRhaW5lcnMgbGlrZQogICAg
IC8vIFZlY3RvcnMsIEhhc2hTZXRzLCBldGMuIHdoaWNoIGNvbnRhaW4gUmVmUHRyPFdlYkdMT2Jq
ZWN0PiwgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggYTE0MDkwYTdmOThkNGFmY2FlMzU4MGRkYzhlNzll
NjE5MzQzZDk1ZS4uODdiOWRhN2VmZjNiYTdkOTkxYmYxOWNiOWY1OTE4YTBjMWE5ZDU2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dEdMLmNwcApAQCAtNjMzLDggKzYzMywyMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMOjpt
YXJrTGF5ZXJDb21wb3NpdGVkKCkKICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwpCiAgICAgICAg
ICAgICBtX2J1ZmZlcnNUb0F1dG9DbGVhciB8PSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9C
VUZGRVJfQklUOwogICAgIH0KLSAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3Rvciht
X2NsaWVudHMpKQotICAgICAgICBjbGllbnQtPmRpZENvbXBvc2l0ZSgpOworICAgIGlmIChtX2Ns
aWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRpZENvbXBvc2l0ZSgpOworfQorCisKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0R0w6OmZvcmNlQ29udGV4dExvc3QoKQoreworICAgIGlmIChtX2NsaWVudCkK
KyAgICAgICAgbV9jbGllbnQtPmZvcmNlQ29udGV4dExvc3QoKTsKK30KKwordm9pZCBHcmFwaGlj
c0NvbnRleHRHTDo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCit7CisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5v
dGlmaWNhdGlvbigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCA2
ODk4NzdjNGMwNWNjY2ViZTZhMGNhMmJkNjNlNmI3NDAxZmRhMGJlLi4zMjIwOTEzNjVlMGZjNmQx
YjM2NTVlNmVjYjlkODg4Mjg2Mjg3MzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTEwMzUsNyArMTAzNSw2IEBA
IHB1YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+Q2xpZW50KCk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wb3NpdGUoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBmb3JjZUNvbnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjeWNsZUNv
bnRleHQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaENvbnRleHRDaGFuZ2Vk
Tm90aWZpY2F0aW9uKCkgPSAwOwogICAgIH07CiAKQEAgLTEwNDgsOCArMTA0Nyw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4
dEdMKCk7CiAKLSAgICB2b2lkIGFkZENsaWVudChDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudHMu
YWRkKCZjbGllbnQpOyB9Ci0gICAgdm9pZCByZW1vdmVDbGllbnQoQ2xpZW50JiBjbGllbnQpIHsg
bV9jbGllbnRzLnJlbW92ZSgmY2xpZW50KTsgfQorICAgIHZvaWQgc2V0Q2xpZW50KENsaWVudCog
Y2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAKICAgICAvLyA9PT09PT09PT09IFdlYkdM
IDEgZW50cnkgcG9pbnRzLgogICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKEdDR0xlbnVt
IHRleHR1cmUpID0gMDsKQEAgLTE1MDcsOSArMTUwNSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwYWludFRvQ2FudmFzKGNvbnN0IEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyYsIFBpeGVsQnVmZmVyJiYsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUs
IEdyYXBoaWNzQ29udGV4dCYpOwogcHJvdGVjdGVkOgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Zm9yY2VDb250ZXh0TG9zdCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hDb250
ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOworCiAgICAgaW50IG1fY3VycmVudFdpZHRoIHsgMCB9
OwogICAgIGludCBtX2N1cnJlbnRIZWlnaHQgeyAwIH07Ci0gICAgSGFzaFNldDxDbGllbnQqPiBt
X2NsaWVudHM7CisgICAgQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICAgICAvLyBBIGJp
dG1hc2sgb2YgR0wgYnVmZmVyIGJpdHMgKEdMX0NPTE9SX0JVRkZFUl9CSVQsCiAgICAgLy8gR0xf
REVQVEhfQlVGRkVSX0JJVCwgR0xfU1RFTkNJTF9CVUZGRVJfQklUKSB3aGljaCBuZWVkIHRvIGJl
CiAgICAgLy8gYXV0by1jbGVhcmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApp
bmRleCA4OTdiZWE0NTg3MGQ2YjBjMThkZTRmMTM4OWM4NmYyNjM1OTU4ZjliLi42N2ZiYzQ0ZmVi
ZGFmNjNlOWQyOGEwODVlM2NmZDUyZjFhODI4ZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcApAQCAtMjE5MiwyNCArMjE5Miw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6c3ludGhlc2l6ZUdMRXJyb3IoR0NHTGVudW0gZXJyb3IpCiAgICAgbV9zeW50aGV0aWNF
cnJvcnMuYWRkKGVycm9yKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpmb3Jj
ZUNvbnRleHRMb3N0KCkKLXsKLSAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3Rvciht
X2NsaWVudHMpKQotICAgICAgICBjbGllbnQtPmZvcmNlQ29udGV4dExvc3QoKTsKLX0KLQotdm9p
ZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZWN5Y2xlQ29udGV4dCgpCi17Ci0gICAgZm9yIChh
dXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKLSAgICAgICAgY2xpZW50LT5y
ZWN5Y2xlQ29udGV4dCgpOwotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmRpc3Bh
dGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKQotewotICAgIGZvciAoYXV0byogY2xpZW50
IDogY29weVRvVmVjdG9yKG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+ZGlzcGF0Y2hDb250
ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwotfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OmRyYXdBcnJheXNJbnN0YW5jZWQoR0NHTGVudW0gbW9kZSwgR0NHTGludCBmaXJzdCwgR0NH
THNpemVpIGNvdW50LCBHQ0dMc2l6ZWkgcHJpbWNvdW50KQogewogICAgIGlmICghbWFrZUNvbnRl
eHRDdXJyZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKaW5kZXggZmQ1NGExYmE3
NWI0MzJmM2ExMDQ2YzE0YTNiZGQ1ZDkwNDhjNmM3Zi4uZjRkYzg3ZGI1MmUwZTI5NzAwYTIwNzc5
MzUxMWFlMGFlOTU2YTIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaApAQCAtMzUy
LDkgKzM1Miw2IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBwYWlu
dFJlbmRlcmluZ1Jlc3VsdHNUb1BpeGVsQnVmZmVyKCkgZmluYWw7CiAgICAgdm9pZCBwYWludENv
bXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXImKSBmaW5hbDsKIAotICAgIHZvaWQg
Zm9yY2VDb250ZXh0TG9zdCgpOwotICAgIHZvaWQgcmVjeWNsZUNvbnRleHQoKTsKLSAgICB2b2lk
IGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKICAgICBzdGQ6Om9wdGlvbmFs
PFBpeGVsQnVmZmVyPiByZWFkUmVuZGVyaW5nUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAgICAgc3Rk
OjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZENvbXBvc2l0ZWRSZXN1bHRzRm9yUGFpbnRpbmco
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggYjViYWM3ZDhm
ZTQzYzQ4MDg1NjZhYjljY2Y3Zjc0NDI0MDc2NDZhOC4uMzYzZTk2MTc3MDZkOGYxZDg0ZDlkNzlj
OTJkZDllMDFkMDE5NzNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3Bw
CkBAIC0yMzM3LDI0ICsyMzM3LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c3lu
dGhlc2l6ZUdMRXJyb3IoR0NHTGVudW0gZXJyb3IpCiAgICAgbV9zeW50aGV0aWNFcnJvcnMuYWRk
KGVycm9yKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Zm9yY2VDb250ZXh0
TG9zdCgpCi17Ci0gICAgZm9yIChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRz
KSkKLSAgICAgICAgY2xpZW50LT5mb3JjZUNvbnRleHRMb3N0KCk7Ci19Ci0KLXZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OnJlY3ljbGVDb250ZXh0KCkKLXsKLSAgICBmb3IgKGF1dG8qIGNs
aWVudCA6IGNvcHlUb1ZlY3RvcihtX2NsaWVudHMpKQotICAgICAgICBjbGllbnQtPnJlY3ljbGVD
b250ZXh0KCk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRpc3BhdGNoQ29u
dGV4dENoYW5nZWROb3RpZmljYXRpb24oKQotewotICAgIGZvciAoYXV0byogY2xpZW50IDogY29w
eVRvVmVjdG9yKG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+ZGlzcGF0Y2hDb250ZXh0Q2hh
bmdlZE5vdGlmaWNhdGlvbigpOwotfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp0
ZXhJbWFnZTJERGlyZWN0KEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0g
aW50ZXJuYWxmb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGlu
dCBib3JkZXIsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4
ZWxzKQogewogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5oCmluZGV4IDQwNTFmYzUyMjBjYTBhMmMzZDUwYWQ5NzcxNmVjMmMxZTk3
ZjU0MzQuLmU4OTk3YjJlNTA0M2Y2Mzc2MjAxNWViMTUyMjkyNzg4YzM1OTY1MjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC0zNzcsMTEgKzM3Nyw2IEBAIHB1YmxpYzoK
ICAgICBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtR0xPYmpl
Y3QpIGZpbmFsOwogCiAgICAgLy8gSGVscGVyIG1ldGhvZHMuCi0gICAgdm9pZCBmb3JjZUNvbnRl
eHRMb3N0KCk7Ci0gICAgdm9pZCByZWN5Y2xlQ29udGV4dCgpOwotCi0gICAgdm9pZCBkaXNwYXRj
aENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7Ci0KICAgICB2b2lkIHBhaW50UmVuZGVyaW5n
UmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxQ
aXhlbEJ1ZmZlcj4gcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9QaXhlbEJ1ZmZlcigpIGZpbmFsOwog
ICAgIHZvaWQgcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJikgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA3ZjZjZWM5YzJjM2QxZTkzZDViNWRm
ZjU0ZGI5NGI4MjI3YThmZTFmLi40ZTkwYWQyYWU3ZDMzYTE5OTZhNzY5NzQxYmVhMDYyNzkwODk3
Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lk
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjp3b3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMQXR0cgogICAgIGFzc2VydElzQ3VycmVudCh3b3JrUXVldWUoKSk7CiAg
ICAgcGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdURk1vdmUoYXR0cmlidXRlcykpOwogICAg
IGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRDbGllbnQoKnRoaXMpOwor
ICAgICAgICBtX2NvbnRleHQtPnNldENsaWVudCh0aGlzKTsKICAgICAgICAgU3RyaW5nIGV4dGVu
c2lvbnMgPSBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHRHTDo6RVhURU5TSU9O
Uyk7CiAgICAgICAgIFN0cmluZyByZXF1ZXN0YWJsZUV4dGVuc2lvbnMgPSBtX2NvbnRleHQtPmdl
dFN0cmluZyhHcmFwaGljc0NvbnRleHRHTDo6UkVRVUVTVEFCTEVfRVhURU5TSU9OU19BTkdMRSk7
CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Oldh
c0NyZWF0ZWQodHJ1ZSwgcmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKS53
YWtlVXBTZW1hcGhvcmUoKSwgZXh0ZW5zaW9ucywgcmVxdWVzdGFibGVFeHRlbnNpb25zKSk7CkBA
IC0xMjksNiArMTI5LDcgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6d29ya1F1ZXVl
SW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHIKIHZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OndvcmtRdWV1ZVVuaW5pdGlhbGl6ZSgpCiB7CiAgICAgYXNzZXJ0SXND
dXJyZW50KHdvcmtRdWV1ZSgpKTsKKyAgICBtX2NvbnRleHQtPnNldENsaWVudChudWxscHRyKTsK
ICAgICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbiA9IG51bGxw
dHI7CiB9CkBAIC0xNDQsMTEgKzE0NSw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OmZvcmNlQ29udGV4dExvc3QoKQogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHk6Oldhc0xvc3QoKSk7CiB9CiAKLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OnJlY3ljbGVDb250ZXh0KCkKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQog
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlm
aWNhdGlvbigpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKaW5kZXggZTgwZGYwNzkyNzgzM2JjZWY1NGQ0ODNlMDczMjlhMGM4MjM3ODNm
Mi4uNmUzMzU3ZTlkZGRjNGRkM2I3NGI2Y2M3OWQwYjljMDgwZjhkNGJjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmgKQEAgLTEwMSw3ICsxMDEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gR3JhcGhp
Y3NDb250ZXh0R0w6OkNsaWVudCBvdmVycmlkZXMuCiAgICAgdm9pZCBkaWRDb21wb3NpdGUoKSBm
aW5hbDsKICAgICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKSBmaW5hbDsKLSAgICB2b2lkIHJlY3lj
bGVDb250ZXh0KCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZp
Y2F0aW9uKCkgZmluYWw7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCmluZGV4IDYxOWFkNGFmYTEzYTdm
NjUxMWZhNTVlOTJlYWM3MGUxOGE3NmVlYzguLmU0NWRmYmQ0OGFiZDlkZTJiMGQ5MDQwN2Y2YThk
MWZiZTU0MjYzNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNw
cApAQCAtMjc5LDIxICsyNzksMjAgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
Ojp3YXNMb3N0KCkKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CiAg
ICAgbWFya0NvbnRleHRMb3N0KCk7CisKIH0KIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5Ojp3YXNDaGFuZ2VkKCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgZm9yIChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRz
KSkKLSAgICAgICAgY2xpZW50LT5kaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7
CisgICAgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwogfQogCiB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Om1hcmtDb250ZXh0TG9zdCgpCiB7CiAgICAgZGlz
Y29ubmVjdEdwdVByb2Nlc3NJZk5lZWRlZCgpOwotICAgIGZvciAoYXV0byogY2xpZW50IDogY29w
eVRvVmVjdG9yKG1fY2xpZW50cykpCi0gICAgICAgIGNsaWVudC0+Zm9yY2VDb250ZXh0TG9zdCgp
OworICAgIGZvcmNlQ29udGV4dExvc3QoKTsKIH0KIAogYm9vbCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5OjpoYW5kbGVNZXNzYWdlVG9SZW1vdmVkRGVzdGluYXRpb24oSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4OWRkODA5OGZlZGRiM2Y4OTE4
Njg3OWRkNmMwZjE1ZmE2MWZhNTUuLjQ5MDhkZGYyN2Y1OGU1MmViYjBjMDllNjQyOGNmYWZlZWJh
YWUwYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMi0wMy0xNiAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkdMIGNvbnRleHQgbG9zdCBldmVu
dCBpcyBub3Qgc2VudCBhZ2FpbiBmb3IgY29udGV4dHMgdGhhdCBhcmUgbG9zdCBhbmQgcmVzdG9y
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1
MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgICogcGxh
dGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHdlYmdsL2xvc2UtY29udGV4
dC1hZnRlci1jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmdsL2xvc2Ut
Y29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QuaHRtbDoKKyAgICAgICAgRW5hYmxlIHRoZSB0ZXN0
IGZvciBHUFVQLCBpdCB3b3JrcyBub3cgYWZ0ZXIKKyAgICAgICAgcjI5MDgxNiAiV2ViR0wgY29u
dGV4dCBjb3VudCBpcyBub3QgbGltaXRlZCBmb3IgR1BVIHByb2Nlc3MuIi4KKyAgICAgICAgQWRq
dXN0IHRoZSBvcmRlciBvZiB3YWl0aW5nIGZvciB3ZWJnbGNvbnRleHRsb3N0IGFuZCBjaGVja2lu
ZworICAgICAgICBpc0NvbnRleHRMb3N0KCksIHNvIHRoYXQgaXQgd29ya3Mgd2hlbiBjb250ZXh0
IGxvc3MgaXMgcmVwb3J0ZWQKKyAgICAgICAgYXN5bmNocm9ub3VzbHkgYnkgR1BVUC4KKworICAg
ICAgICAqIHdlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMuaHRtbDogQWRkZWQuCisg
ICAgICAgIEFkZCBhIHRlc3QgdGVzdGluZyB0aGUgYnVnIGZpeC4KKwogMjAyMi0wMy0xNSAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4Mjcz
Nyk6IGB0ZXh0LXNoYWRvd2AgaXMgY2xpcHBlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDA5MWIxOTZhMmE0MzM3YzA4NjY2YzMzZmMwOTJjOTY3ZmQ3
ZjIzYWIuLmI1M2NjODgyMGM3MjZlOTE2NjAxNzBkNTc4YjdiYzQxNTIzZmM3NzEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzODUsNiArMTM4NSw3
IEBAIHdlYmtpdC5vcmcvYi8yMTkyNTEgZmFzdC9jYW52YXMvd2ViZ2wvZ2V0SW5kZXhlZFBhcmFt
ZXRlci1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNzI4MTIgZmFzdC9j
YW52YXMvd2ViZ2wvbG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLmh0bWwgWyBTa2lwIF0K
IHdlYmtpdC5vcmcvYi8xNzI4MTIgd2ViZ2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9z
dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTcyODEyIHdlYmdsL211bHRpcGxlLWNv
bnRleHQtbG9zc2VzLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIyMzYyNCB3ZWJn
bC9jb25mb3JtYW5jZS9leHRlbnNpb25zL2toci1wYXJhbGxlbC1zaGFkZXItY29tcGlsZS5odG1s
IFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2xvc2UtY29udGV4dC1h
ZnRlci1jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvbG9zZS1j
b250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQKaW5kZXggM2MzNTlhMDU4NGE1
MzNkMGM3YzAxM2MxMDFlYTY2YWU4NDdhYzFmYS4uMTc4N2QzMDY2MTgwNmRjYmIxZWQxODhjNWMw
Njk4MGYzYzJhNzY2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvbG9zZS1jb250ZXh0
LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
bG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQKQEAgLTUsNDAgKzUs
NDAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFRFU1QgQ09NUExFVEU6IDI5IFBBU1MsIDIg
RkFJTAogCiBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGxvc2VDb250ZXh0LCB0ZXN0ZWRNZXRo
b2Q6IGxvc2VDb250ZXh0CitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBnbC5pc0Nv
bnRleHRMb3N0KCkgaXMgdHJ1ZQogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRfTE9T
VF9XRUJHTAogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIEdvdCB3ZWJn
bGNvbnRleHRsb3N0LgogUEFTUyBEaWQgbm90IGNyYXNoIG9uIHRlc3RlZCBtZXRob2QgbG9zZUNv
bnRleHQuCiBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGxvc2VDb250ZXh0LCB0ZXN0ZWRNZXRo
b2Q6IHJlc3RvcmVDb250ZXh0CitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBnbC5p
c0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRf
TE9TVF9XRUJHTAogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIEdvdCB3
ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBEaWQgbm90IGNyYXNoIG9uIHRlc3RlZCBtZXRob2QgcmVz
dG9yZUNvbnRleHQuCiBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IG1hbnlDb250ZXh0cywgdGVz
dGVkTWV0aG9kOiBsb3NlQ29udGV4dAorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdC4KIFBBU1Mg
Z2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKIEZBSUwgZ2wuZ2V0RXJyb3IoKSBzaG91bGQgYmUg
Mzc0NDIuIFdhcyAwLgogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIEdv
dCB3ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBEaWQgbm90IGNyYXNoIG9uIHRlc3RlZCBtZXRob2Qg
bG9zZUNvbnRleHQuCiBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IG1hbnlDb250ZXh0cywgdGVz
dGVkTWV0aG9kOiByZXN0b3JlQ29udGV4dAorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdC4KIFBB
U1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKIEZBSUwgZ2wuZ2V0RXJyb3IoKSBzaG91bGQg
YmUgMzc0NDIuIFdhcyAwLgogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNT
IEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBEaWQgbm90IGNyYXNoIG9uIHRlc3RlZCBtZXRo
b2QgcmVzdG9yZUNvbnRleHQuCiBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGdwdVN0YXR1c0Zh
aWx1cmUsIHRlc3RlZE1ldGhvZDogbG9zZUNvbnRleHQKK1BBU1MgR290IHdlYmdsY29udGV4dGxv
c3QuCiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCiBQQVNTIGdsLmdldEVycm9yKCkg
aXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJS
T1IKLVBBU1MgR290IHdlYmdsY29udGV4dGxvc3QuCiBQQVNTIERpZCBub3QgY3Jhc2ggb24gdGVz
dGVkIG1ldGhvZCBsb3NlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogZ3B1U3Rh
dHVzRmFpbHVyZSwgdGVzdGVkTWV0aG9kOiByZXN0b3JlQ29udGV4dAorUEFTUyBHb3Qgd2ViZ2xj
b250ZXh0bG9zdC4KIFBBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKIFBBU1MgZ2wuZ2V0
RXJyb3IoKSBpcyBnbC5DT05URVhUX0xPU1RfV0VCR0wKIFBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBn
bC5OT19FUlJPUgotUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdC4KIFBBU1MgRGlkIG5vdCBjcmFz
aCBvbiB0ZXN0ZWQgbWV0aG9kIHJlc3RvcmVDb250ZXh0LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQt
YWZ0ZXItY29udGV4dC1sb3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQt
YWZ0ZXItY29udGV4dC1sb3N0Lmh0bWwKaW5kZXggMjdmMTI4ZGJlMTY0NWYwNGZlMzE3YWNlOTFm
YmUwZThmNGQxOGJkYS4uM2RiNzMxYmQxOTM1NzUxMTRhMWYzYTFjY2IyYzQ5ZWYzNDE2Njc2YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQt
bG9zdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2xvc2UtY29udGV4dC1hZnRlci1jb250
ZXh0LWxvc3QuaHRtbApAQCAtMSw1ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZD1mYWxzZSBdIC0tPgot
PCEtLSBTaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzY5NjQgaXMgZml4ZWQuIC0tPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
IDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgpAQCAtNTYsMTUgKzU1LDE1IEBAIGFzeW5j
IGZ1bmN0aW9uIHJ1blRlc3Qoc3ViY2FzZSkKICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIndlYmdsIik7CiAgICAgfQogCi0gICAgc2hvdWxk
QmVUcnVlKCJnbC5pc0NvbnRleHRMb3N0KCkiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3Io
KSIsICJnbC5DT05URVhUX0xPU1RfV0VCR0wiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3Io
KSIsICJnbC5OT19FUlJPUiIpOwogICAgIHRyeSB7CiAgICAgICAgIGF3YWl0IHdlYmdsY29udGV4
dGxvc3Q7CiAgICAgICAgIHRlc3RQYXNzZWQoIkdvdCB3ZWJnbGNvbnRleHRsb3N0LiIpOwogICAg
IH0gY2F0Y2ggKGUpIHsKICAgICAgICAgdGVzdEZhaWxlZCgiVGltZWQgb3V0IHdhaXRpbmcgd2Vi
Z2xjb250ZXh0bG9zdC4iKTsKICAgICB9CisgICAgc2hvdWxkQmVUcnVlKCJnbC5pc0NvbnRleHRM
b3N0KCkiKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5DT05URVhUX0xPU1Rf
V0VCR0wiKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOwog
CiAgICAgaWYgKHN1YmNhc2UudGVzdGVkTWV0aG9kID09ICJsb3NlQ29udGV4dCIpCiAgICAgICAg
IFdFQkdMX2xvc2VfY29udGV4dC5sb3NlQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvbXVsdGlwbGUtY29udGV4dC1sb3NzZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFkNzU2ZWVmMzE5Y2Q5OWE3MDlhNzViNWM5MzE0OGY2NThjY2M2MDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1OSBAQAorVGVzdCB0aGF0IGEgY29udGV4dCBjYW4gYmUgbG9zdCBtdWx0
aXBsZSB0aW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitURVNUIENPTVBMRVRF
OiA1MCBQQVNTLCAwIEZBSUwKKworUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBpdGVyYXRpb246
MAorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQorUEFTUyBnbC5nZXRFcnJvcigpIGlz
IGdsLkNPTlRFWFRfTE9TVF9XRUJHTAorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9S
CitQQVNTIEdvdCB3ZWJnbGNvbnRleHRyZXN0b3JlZCBpdGVyYXRpb246MAorUEFTUyBnbC5pc0Nv
bnRleHRMb3N0KCkgaXMgZmFsc2UKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgor
UEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBpdGVyYXRpb246MQorUEFTUyBnbC5pc0NvbnRleHRM
b3N0KCkgaXMgdHJ1ZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRfTE9TVF9XRUJH
TAorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRl
eHRyZXN0b3JlZCBpdGVyYXRpb246MQorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgZmFsc2UK
K1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0
bG9zdCBpdGVyYXRpb246MgorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQorUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRfTE9TVF9XRUJHTAorUEFTUyBnbC5nZXRFcnJvcigp
IGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRyZXN0b3JlZCBpdGVyYXRpb246
MgorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgZmFsc2UKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBp
cyBnbC5OT19FUlJPUgorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBpdGVyYXRpb246MworUEFT
UyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNP
TlRFWFRfTE9TVF9XRUJHTAorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNT
IEdvdCB3ZWJnbGNvbnRleHRyZXN0b3JlZCBpdGVyYXRpb246MworUEFTUyBnbC5pc0NvbnRleHRM
b3N0KCkgaXMgZmFsc2UKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBH
b3Qgd2ViZ2xjb250ZXh0bG9zdCBpdGVyYXRpb246NAorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkg
aXMgdHJ1ZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRfTE9TVF9XRUJHTAorUEFT
UyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRyZXN0
b3JlZCBpdGVyYXRpb246NAorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgZmFsc2UKK1BBU1Mg
Z2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBp
dGVyYXRpb246NQorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQorUEFTUyBnbC5nZXRF
cnJvcigpIGlzIGdsLkNPTlRFWFRfTE9TVF9XRUJHTAorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGds
Lk5PX0VSUk9SCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRyZXN0b3JlZCBpdGVyYXRpb246NQorUEFT
UyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgZmFsc2UKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5O
T19FUlJPUgorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBpdGVyYXRpb246NgorUEFTUyBnbC5p
c0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNPTlRFWFRf
TE9TVF9XRUJHTAorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIEdvdCB3
ZWJnbGNvbnRleHRyZXN0b3JlZCBpdGVyYXRpb246NgorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkg
aXMgZmFsc2UKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL211bHRpcGxlLWNvbnRleHQtbG9zc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMzhiNmM1MjAz
ZGMzZGI2MDIzZjI2ZmIzOTAxM2M5M2RlYzYwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9tdWx0aXBsZS1jb250ZXh0LWxvc3Nlcy5odG1sCkBAIC0wLDAgKzEsOTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorInVzZSBzdHJp
Y3QiOworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhIGNvbnRleHQgY2FuIGJlIGxvc3QgbXVsdGlw
bGUgdGltZXMuIik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbDsKKworYXN5
bmMgZnVuY3Rpb24gd2FpdEZvcldlYkdMQ29udGV4dExvc3RBbmRSZXN0b3JlKGNhbnZhcykKK3sK
KyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBj
b25zdCByZWplY3RJRCA9IHNldFRpbWVvdXQocmVqZWN0LCAyMDAwKTsKKyAgICAgICAgZnVuY3Rp
b24gaGFuZGxlQ29udGV4dExvc3MoZXZlbnQpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJn
b3QgaGVyZSAxIik7CisgICAgICAgICAgICBjbGVhclRpbWVvdXQocmVqZWN0SUQpOworICAgICAg
ICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJn
b3QgaGVyZSAyIik7CisKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorICAgICAg
ICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsIGhhbmRsZUNvbnRl
eHRMb3NzLCB7IG9uY2U6IHRydWUgfSk7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHdh
aXRGb3JXZWJHTENvbnRleHRSZXN0b3JlZChjYW52YXMpCit7CisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgc2V0VGltZW91dChyZWplY3QsIDIw
MDApOworICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0cmVzdG9y
ZWQiLCByZXNvbHZlLCB7IG9uY2U6IHRydWUgfSk7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICB0
ZXN0RmFpbGVkKCJOZWVkcyBpbnRlcm5hbHMuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAg
Y2FudmFzLndpZHRoID0gMTsKKyAgICBjYW52YXMuaGVpZ2h0ID0gMTsKKyAgICBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoY2FudmFzKTsKKworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgKytp
KSB7CisgICAgICAgIGNvbnN0IHdlYmdsY29udGV4dGxvc3RhbmRyZXN0b3JlID0gd2FpdEZvcldl
YkdMQ29udGV4dExvc3RBbmRSZXN0b3JlKGNhbnZhcyk7CisgICAgICAgIGNvbnN0IHdlYmdsY29u
dGV4dHJlc3RvcmVkID0gd2FpdEZvcldlYkdMQ29udGV4dFJlc3RvcmVkKGNhbnZhcyk7CisKKyAg
ICAgICAgaW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoIkdQVVN0YXR1c0Zh
aWx1cmUiLCBnbCk7CisgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICBhd2FpdCB3ZWJnbGNvbnRleHRsb3N0YW5kcmVzdG9y
ZTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoYEdvdCB3ZWJnbGNvbnRleHRsb3N0IGl0ZXJhdGlv
bjoke2l9YCk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
YFRpbWVkIG91dCB3YWl0aW5nIHdlYmdsY29udGV4dGxvc3QgaXRlcmF0aW9uOiR7aX1gICsgZSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc2hvdWxkQmVUcnVlKCJn
bC5pc0NvbnRleHRMb3N0KCkiKTsKKyAgICAgICAgc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAi
Z2wuQ09OVEVYVF9MT1NUX1dFQkdMIik7CisgICAgICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigp
IiwgImdsLk5PX0VSUk9SIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhd2FpdCB3ZWJn
bGNvbnRleHRyZXN0b3JlZDsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoYEdvdCB3ZWJnbGNvbnRl
eHRyZXN0b3JlZCBpdGVyYXRpb246JHtpfWApOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGBUaW1lZCBvdXQgd2FpdGluZyB3ZWJnbGNvbnRleHRyZXN0b3Jl
ZCBpdGVyYXRpb246JHtpfWApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIHNob3VsZEJlRmFsc2UoImdsLmlzQ29udGV4dExvc3QoKSIpOworICAgICAgICBzaG91bGRC
ZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworICAgIH0KK30KKworYXN5bmMgZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgYXdhaXQgcnVuVGVzdCgpOworICAgIGZpbmlzaFRlc3QoKTsK
K30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>