<?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>59058</bug_id>
          
          <creation_ts>2011-04-20 18:42:20 -0700</creation_ts>
          <short_desc>layoutTestController should be able to create and destroy shadow DOM</short_desc>
          <delta_ts>2011-04-21 00:42:07 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>52962</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Cooney">dominicc</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kling</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>389737</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-20 18:42:20 -0700</bug_when>
    <thetext>layoutTestController can inspect shadow DOM. If layoutTestController can create and destroy shadow DOM too, it will be easier to write reduced test cases for shadow DOM bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389742</commentid>
    <comment_count>1</comment_count>
      <attachid>90472</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-20 18:52:12 -0700</bug_when>
    <thetext>Created attachment 90472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389807</commentid>
    <comment_count>2</comment_count>
      <attachid>90472</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-20 21:00:00 -0700</bug_when>
    <thetext>Comment on attachment 90472
Patch

I can&apos;t believe it&apos;s not butter!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389870</commentid>
    <comment_count>3</comment_count>
      <attachid>90472</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-20 23:33:58 -0700</bug_when>
    <thetext>Comment on attachment 90472
Patch

Clearing flags on attachment: 90472

Committed r84472: &lt;http://trac.webkit.org/changeset/84472&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389871</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-20 23:34:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389895</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-21 00:42:07 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 90472:

java/lc3/JSObject/ToObject-001.html bug 53091 (author: ap@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90472</attachid>
            <date>2011-04-20 18:52:12 -0700</date>
            <delta_ts>2011-04-20 23:33:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59058-20110420185211.patch</filename>
            <type>text/plain</type>
            <size>39685</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQzOTQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MTA5M2UwZDhmYjM3N2Y1YmM4NTRm
ZDM4NDMyZWJjYTY4MTkyNmVkLi4zNDFmN2I5NzlmZGU5NTE3MjA3ZjJlM2IwZmNhYTRhOTE5MzEw
NWQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDQtMjAgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyIGNhbiBjcmVhdGUgYW5kIGRlc3Ry
b3kgc2hhZG93IERPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTkwNTgKKworICAgICAgICBFeGVyY2lzZSB0aGUgbmV3IGxheW91dFRlc3RDb250cm9s
bGVyIG1ldGhvZHMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNh
bi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sOiBBZGRlZC4KKwogMjAx
MS0wNC0yMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIGVtYmVkZGluZyBjaGVja3N1bXMgaW4gcG5nIGZpbGVzIGluIHBsYXRmb3JtL21hYy0q
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1j
YW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOTNmNDNjZDNlMzk3ZjBlOTViMzc2NWFhOGI2NjA0ZDVkNjc3ODA2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNz
LXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitUaGlzIHRlc3RzIHRoYXQg
TGF5b3V0VGVzdENvbnRyb2xsZXIgY2FuIGFjY2VzcyBzaGFkb3cgRE9NLgorCitQQVNTIHNoYWRv
dy5ub2RlTmFtZSBpcyAiI3NoYWRvdy1yb290IgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5z
aGFkb3dSb290KHNoYWRvdykgaXMgbnVsbAorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFk
b3dSb290KHApIGlzIG51bGwKK1BBU1Mgc2hhZG93Lm5vZGVOYW1lIGlzICIjc2hhZG93LXJvb3Qi
CitQQVNTIHNoYWRvdyA9PT0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChwKSBpcyB0
cnVlCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoa2V5Z2VuKSBpcyBudWxs
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNj
ZXNzLXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0
cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0YzBmZWIyZDUyMTgwNGQ3NDI3
ODNmNGM0ZWExZDhjZTY4Zjc1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93Lmh0bWwKQEAgLTAsMCAr
MSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxrZXlnZW4gaWQ9ImtleXMiIC8+Cis8cCBpZD0icGVhcyIgLz4KKzxwcmUgaWQ9ImNvbnNv
bGUiPgorVGhpcyB0ZXN0cyB0aGF0IExheW91dFRlc3RDb250cm9sbGVyIGNhbiBhY2Nlc3Mgc2hh
ZG93IERPTS4KKworPC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIC8vIE1ha2UgYXNzZXJ0aW9ucyBhYm91dCBhIGJ1aWx0LWluIHNoYWRvdwor
ICAgIHZhciBrZXlnZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2V5cycpOworICAgIHZh
ciBzaGFkb3cgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KGtleWdlbik7CisgICAg
c2hvdWxkQmUoJ3NoYWRvdy5ub2RlTmFtZScsICciI3NoYWRvdy1yb290IicpOworCisgICAgLy8g
U2hhZG93IHJvb3RzIHNob3VsZCBub3QgaGF2ZSBzaGFkb3dzCisgICAgc2hvdWxkQmUoJ2xheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KScsICdudWxsJyk7CisKKyAgICAvLyBP
cmRpbmFyeSBlbGVtZW50IHNob3VsZCBub3QgaGF2ZSBzaGFkb3cKKyAgICB2YXIgcCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwZWFzJyk7CisgICAgc2hvdWxkQmUoJ2xheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1Jvb3QocCknLCAnbnVsbCcpOworCisgICAgLy8gTGF5b3V0VGVzdENvbnRy
b2xsZXIgY2FuIGJsZXNzIG9yZGluYXJ5IGVsZW1lbnRzIHdpdGggc2hhZG93cworICAgIHNoYWRv
dyA9IGxheW91dFRlc3RDb250cm9sbGVyLmVuc3VyZVNoYWRvd1Jvb3QocCk7CisgICAgc2hvdWxk
QmUoJ3NoYWRvdy5ub2RlTmFtZScsICciI3NoYWRvdy1yb290IicpOworICAgIHNob3VsZEJlKCdz
aGFkb3cgPT09IGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QocCknLCAndHJ1ZScpOwor
CisgICAgLy8gTGF5b3V0VGVzdENvbnRyb2xsZXIgY2FuIHN0cmlwIGVsZW1lbnRzIG9mIHNoYWRv
d3MKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZW1vdmVTaGFkb3dSb290KGtleWdlbik7Cisg
ICAgc2hvdWxkQmUoJ2xheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoa2V5Z2VuKScsICdu
dWxsJyk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg4NWVhMjBiYjI4ZjM3NjRhN2UwOWNj
M2UxYjU0YmRiZjczZTNjMy4uNTc3ZTZmZTVhNWM5NjljYzRjNzRjMTk5MzQzMWZjYjZhMDc3MmQx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA0LTIwICBEb21pbmljIENvb25l
eSAgPGRvbWluaWNjQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlciBjYW4gY3JlYXRlIGFuZCBk
ZXN0cm95IHNoYWRvdyBET00KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU5MDU4CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L2xheW91dC10
ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjog
TWFjIERSVCBuZWVkcyB0byBzZWUgRWxlbWVudDo6ZW5zdXJlL3JlbW92ZVNoYWRvd1Jvb3QKKwog
MjAxMS0wNC0xOSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IGQ4ZWU1MjYxNzViNWNkNWM0ODE1NjdmMzc2MWE1Y2Y0M2I5YTNiY2IuLjc3YjBkYmU4
MjViMmYwY2JjNmU0MzNiMjVlZTEwNjZmMzY2MGYwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC04MDIsNiArODAyLDggQEAgX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2ViQ29yZTZ0
b05vZGVFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdDb25zb2xlMjFzaG91bGRQcmludEV4
Y2VwdGlvbnNFdgogX19aTjdXZWJDb3JlN0NvbnNvbGUyNHNldFNob3VsZFByaW50RXhjZXB0aW9u
c0ViCitfX1pON1dlYkNvcmU3RWxlbWVudDE2ZW5zdXJlU2hhZG93Um9vdEV2CitfX1pON1dlYkNv
cmU3RWxlbWVudDE2cmVtb3ZlU2hhZG93Um9vdEV2CiBfX1pON1dlYkNvcmU3SW50UmVjdDVzY2Fs
ZUVmCiBfX1pON1dlYkNvcmU3SW50UmVjdDV1bml0ZUVSS1MwXwogX19aTjdXZWJDb3JlN0ludFJl
Y3Q5aW50ZXJzZWN0RVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGM4MmNkM2Ez
YmNiMjgyYjc2Y2NjNzQ4MjQ4YjQ0YTc4YTJjYmU0MGYuLmRmYjUxNDQ1ODIxMGE2OTNhZWMzOTFi
NjdkNmNjYmM3N2FlYWRiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTEtMDQtMjAgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyIGNhbiBjcmVhdGUgYW5kIGRlc3Ryb3kgc2hhZG93IERPTQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkwNTgKKworICAgICAg
ICBDaHJvbWl1bSBEUlQgcmVsaWVzIG9uIHRoZSBDaHJvbWl1bSBXZWJLaXQgQVBJCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViRWxlbWVudC5oOgorICAgICAgICAqIHNyYy9XZWJFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRWxlbWVudDo6c2hhZG93Um9vdCk6IGRvbid0IHN0ZWFsIGEg
emVybyByZWZjb3VudAorICAgICAgICAoV2ViS2l0OjpXZWJFbGVtZW50OjplbnN1cmVTaGFkb3dS
b290KTogYWRkZWQKKyAgICAgICAgKFdlYktpdDo6V2ViRWxlbWVudDo6cmVtb3ZlU2hhZG93Um9v
dCk6IGFkZGVkCisKIDIwMTEtMDQtMjAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFbGVtZW50LmgKaW5kZXggMjA3MmRkMzFiZmU4NDNhYmY3
MDM5NDc4NzQ5MWIzYTAxM2E4NTRhOS4uNTNiNmFhMzI5Y2IyZDk2ZDEwZDk5MGY5OWJkY2U2OTk3
ZGY2Mjk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkVsZW1lbnQuaApA
QCAtNTgsNyArNTgsMTAgQEAgY2xhc3MgV2ViTmFtZWROb2RlTWFwOwogICAgICAgICBXRUJLSVRf
QVBJIGJvb2wgc2V0QXR0cmlidXRlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3Ry
aW5nJiB2YWx1ZSk7CiAgICAgICAgIFdFQktJVF9BUEkgV2ViTmFtZWROb2RlTWFwIGF0dHJpYnV0
ZXMoKSBjb25zdDsKICAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgaW5uZXJUZXh0KCkgY29u
c3Q7CisKICAgICAgICAgV0VCS0lUX0FQSSBXZWJOb2RlIHNoYWRvd1Jvb3QoKTsKKyAgICAgICAg
V0VCS0lUX0FQSSBXZWJOb2RlIGVuc3VyZVNoYWRvd1Jvb3QoKTsKKyAgICAgICAgV0VCS0lUX0FQ
SSB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKIAogICAgICAgICAvLyBSZXR1cm5zIHRoZSBsYW5n
dWFnZSBjb2RlIHNwZWNpZmllZCBmb3IgdGhpcyBlbGVtZW50LiAgVGhpcyBhdHRyaWJ1dGUKICAg
ICAgICAgLy8gaXMgaW5oZXJpdGVkLCBzbyB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgZHJhd24gZnJv
bSB0aGUgY2xvc2VzdCBwYXJlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRWxlbWVu
dC5jcHAKaW5kZXggNjZlM2U5NTYwYWJiNTM3NWMzOWNkYjhiNjlhOTkzOTIxNDExNjdjOS4uZjlj
MWYwZDA1ZmU3NDIwODVlYjBmY2QwNDAxNmE3MDM4NWFhZDViNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRWxlbWVudC5jcHAKQEAgLTkyLDcgKzkyLDE3IEBAIFdlYlN0cmluZyBX
ZWJFbGVtZW50Ojppbm5lclRleHQoKSBjb25zdAogCiBXZWJOb2RlIFdlYkVsZW1lbnQ6OnNoYWRv
d1Jvb3QoKQogewotICAgIHJldHVybiBhZG9wdFJlZihzdGF0aWNfY2FzdDxOb2RlKj4odW53cmFw
PEVsZW1lbnQ+KCktPnNoYWRvd1Jvb3QoKSkpOworICAgIHJldHVybiBQYXNzUmVmUHRyPE5vZGU+
KHN0YXRpY19jYXN0PE5vZGUqPih1bndyYXA8RWxlbWVudD4oKS0+c2hhZG93Um9vdCgpKSk7Cit9
CisKK1dlYk5vZGUgV2ViRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCit7CisgICAgcmV0dXJu
IFBhc3NSZWZQdHI8Tm9kZT4oc3RhdGljX2Nhc3Q8Tm9kZSo+KHVud3JhcDxFbGVtZW50PigpLT5l
bnN1cmVTaGFkb3dSb290KCkpKTsKK30KKwordm9pZCBXZWJFbGVtZW50OjpyZW1vdmVTaGFkb3dS
b290KCkKK3sKKyAgICB1bndyYXA8RWxlbWVudD4oKS0+cmVtb3ZlU2hhZG93Um9vdCgpOwogfQog
CiBXZWJTdHJpbmcgV2ViRWxlbWVudDo6Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCBmMTUzMWQ1M2QxMmU4NTE3OTc3MDg0ZDc4YWE3NmI2OTAzMDhl
YTgyLi44NGE3MDBiZjEwNGVmYjg3ZDdkYzFkOTllMjBiOWYxYjhmNGZjMWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDQtMjAgIERvbWluaWMgQ29vbmV5ICA8ZG9t
aW5pY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyIGNhbiBjcmVhdGUgYW5kIGRlc3Ryb3kg
c2hhZG93IERPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTkwNTgKKworICAgICAgICBTdXBwb3J0IGZvciBuZXcgbWV0aG9kcyBpbiBHVEsgRFJULgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoK
KyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZW5zdXJlU2hhZG93Um9vdCk6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorCiAyMDEx
LTA0LTIwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cAppbmRleCAxY2UwYWRhNzMzODc3OTllYzkzNDZhNzI5ZTU5MWE0MmE4NzY2MDkzLi42OWYxZWQ2
YjJiNGNlZjA0ZmU0MjU0ZGQxOGI1MmQ4MjAxMGViYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5jcHAKQEAgLTY2NCw2ICs2NjQsMjggQEAgSlNWYWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNoYWRvd1Jvb3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYKICAgICBy
ZXR1cm4gdG9SZWYoZXhlYywgdG9KUyhleGVjLCBlbGVtZW50LT5zaGFkb3dSb290KCkpKTsKIH0K
IAorSlNWYWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmVuc3VyZVNoYWRvd1Jvb3Qo
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCit7CisgICAgSlNMb2NrIGxv
Y2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IHRv
SlMoY29udGV4dCk7CisgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudCh0b0pTKGV4ZWMs
IHZhbHVlKSk7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VO
dWxsKGNvbnRleHQpOworCisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZWxlbWVu
dC0+ZW5zdXJlU2hhZG93Um9vdCgpKSk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpyZW1vdmVTaGFkb3dSb290KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZh
bHVlKQoreworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgSlND
OjpFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQpOworICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSB0b0VsZW1lbnQodG9KUyhleGVjLCB2YWx1ZSkpOworICAgIGlmICghZWxlbWVudCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZWxlbWVudC0+cmVtb3ZlU2hhZG93Um9vdCgpOworfQorCiB1bnNp
Z25lZCBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjp3b3JrZXJUaHJlYWRDb3VudCgpCiB7
CiAjaWYgRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDc3MzE3OTg2
YjgxNTVmY2E2YWU4NzM5YWM2N2E3ZDNmZDRiMmYxM2UuLjVkMGFmYjUwNjYxMzU4NWU3YzQ0MjI2
ZTM1MmNhZTIyZmFmNWRmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC02MCw2ICs2MCw5
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSop
OwogCiAgICAgc3RhdGljIEpTVmFsdWVSZWYgc2hhZG93Um9vdChKU0NvbnRleHRSZWYsIEpTVmFs
dWVSZWYpOworICAgIHN0YXRpYyBKU1ZhbHVlUmVmIGVuc3VyZVNoYWRvd1Jvb3QoSlNDb250ZXh0
UmVmLCBKU1ZhbHVlUmVmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVTaGFkb3dSb290KEpTQ29u
dGV4dFJlZiwgSlNWYWx1ZVJlZik7CisKICAgICBzdGF0aWMgV2ViS2l0RE9NUmFuZ2UqIGpzVmFs
dWVUb0RPTVJhbmdlKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CiAKICAgICAvLyBGSVhNRTog
TW92ZSB0aGVzZSB0byB3ZWJraXR3ZWJmcmFtZS5oIG9uY2UgdGhlaXIgQVBJIGhhcyBiZWVuIGRp
c2N1c3NlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1MTM5NzM0ODM3MzNiMmMzZjAwY2I3Zjc0MDg2
MzBkYmI3YzNhODZkLi41NTRhODY4OWM5NjA1YmM0ODA3ZWQxMzhhZWMyZTcxN2Y1OTdlN2YyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDQtMjAgIERvbWluaWMgQ29v
bmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyIGNhbiBjcmVhdGUgYW5k
IGRlc3Ryb3kgc2hhZG93IERPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTkwNTgKKworICAgICAgICBTdXBwb3J0IGZvciBuZXcgbWV0aG9kcyBpbiBN
YWMgRFJULgorCisgICAgICAgICogRE9NL1dlYkRPTU9wZXJhdGlvbnMubW06CisgICAgICAgICgt
W0RPTUVsZW1lbnQgX2Vuc3VyZVNoYWRvd1Jvb3Q6XSk6CisgICAgICAgICgtW0RPTUVsZW1lbnQg
X3JlbW92ZVNoYWRvd1Jvb3RdKToKKyAgICAgICAgKiBET00vV2ViRE9NT3BlcmF0aW9uc1ByaXZh
dGUuaDoKKwogMjAxMS0wNC0xOSAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
RE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KaW5kZXggMjBlOWFjZTUyNmQ5OTMwNjU3Mzk4NTU2OTkz
ZjMwY2IzNDRiNWI2Zi4uN2E3ZTA0OTRmMzc0OWM5MDc5OGMxMWZhMWNjNGU1NWE2MmU2YjJjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KQEAgLTgxLDYgKzgx
LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAgICAgcmV0dXJuIHRvUmVmKGV4ZWNTdGF0ZSwg
dG9KUyhleGVjU3RhdGUsIGNvcmUoc2VsZiktPnNoYWRvd1Jvb3QoKSkpOwogfQogCistIChKU1Zh
bHVlUmVmKV9lbnN1cmVTaGFkb3dSb290OihKU0NvbnRleHRSZWYpY29udGV4dAoreworICAgIEpT
TG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgRXhlY1N0YXRlKiBleGVjU3Rh
dGUgPSB0b0pTKGNvbnRleHQpOworICAgIHJldHVybiB0b1JlZihleGVjU3RhdGUsIHRvSlMoZXhl
Y1N0YXRlLCBjb3JlKHNlbGYpLT5lbnN1cmVTaGFkb3dSb290KCkpKTsKK30KKworLSAodm9pZClf
cmVtb3ZlU2hhZG93Um9vdAoreworICAgIGNvcmUoc2VsZiktPnJlbW92ZVNoYWRvd1Jvb3QoKTsK
K30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViRE9NTm9kZU9wZXJhdGlv
bnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9uc1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zUHJpdmF0ZS5o
CmluZGV4IGNkNWZmMjA1Yzg1N2RlMjkyNTEzZTA2ZmNhNGQ1NjIwZGY1ODc5NDguLmIzNWFmMWRk
MTE1NmNhZjQ3OGRlYTAwZmZlNzMyNzU1YWQxN2E4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0RPTS9XZWJET01PcGVyYXRpb25zUHJpdmF0ZS5oCkBAIC0zMyw2ICszMyw4IEBACiArIChE
T01FbGVtZW50ICopX0RPTUVsZW1lbnRGcm9tSlNDb250ZXh0OihKU0NvbnRleHRSZWYpY29udGV4
dCB2YWx1ZTooSlNWYWx1ZVJlZil2YWx1ZTsKIC0gKE5TU3RyaW5nICopX21hcmtlclRleHRGb3JM
aXN0SXRlbTsKIC0gKEpTVmFsdWVSZWYpX3NoYWRvd1Jvb3Q6KEpTQ29udGV4dFJlZiljb250ZXh0
OworLSAoSlNWYWx1ZVJlZilfZW5zdXJlU2hhZG93Um9vdDooSlNDb250ZXh0UmVmKWNvbnRleHQ7
CistICh2b2lkKV9yZW1vdmVTaGFkb3dSb290OwogQGVuZAogCiBAaW50ZXJmYWNlIERPTURvY3Vt
ZW50IChXZWJET01Eb2N1bWVudE9wZXJhdGlvbnNQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAw
MjU4OWI1ZDY4MThmYmYyMzM4MWZiN2Y1MzQxMjk4ZjdmZWMzM2NlLi43MzM2ZGMwZjdlZTE1ZGE2
MGU3YzE4NTUwZDM1NmFkODVkMjFmNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDExLTA0LTIwICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlciBjYW4gY3JlYXRlIGFuZCBkZXN0cm95IHNoYWRvdyBET00KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDU4CisKKyAgICAgICAgU3Vw
cG9ydCBmb3IgbmV3IG1ldGhvZHMgaW4gUXQgRFJULgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmVuc3VyZVNoYWRvd1Jvb3QpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTEtMDQtMjAgIEJhbGF6cyBLZWxlbWVuICA8a2Jh
bGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOh
Yy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggODExMDJjMzdlZTM3OTlkYzgzNGE1MmRjNjlj
ZmI0NmNlYTU1YzE4My4uNTVkZjU2MjQ5MWZiNWQ5MTgyYTdmZWVmNmZhNGFmNTY1NjBhNTgyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTEwNzcsNiArMTA3NywyMyBAQCBRVmFyaWFudCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2hhZG93Um9vdChjb25zdCBRV2ViRWxlbWVudCYgZWxl
bWVudCkKICAgICByZXR1cm4gUVZhcmlhbnQ6OmZyb21WYWx1ZShRRFJUTm9kZSh3ZWJTaGFkb3dS
b290KSk7CiB9CiAKK1FWYXJpYW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjplbnN1cmVTaGFk
b3dSb290KGNvbnN0IFFXZWJFbGVtZW50JiBlbGVtZW50KQoreworICAgIFdlYkNvcmU6OkVsZW1l
bnQqIHdlYkVsZW1lbnQgPSBlbGVtZW50Lm1fZWxlbWVudDsKKyAgICBpZiAoIXdlYkVsZW1lbnQp
CisgICAgICAgIHJldHVybiBRVmFyaWFudCgpOworCisgICAgcmV0dXJuIFFWYXJpYW50Ojpmcm9t
VmFsdWUoUURSVE5vZGUod2ViRWxlbWVudC0+ZW5zdXJlU2hhZG93Um9vdCgpKSk7Cit9CisKK3Zv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlbW92ZVNoYWRvd1Jvb3QoY29uc3QgUVdlYkVs
ZW1lbnQmIGVsZW1lbnQpCit7CisgICAgV2ViQ29yZTo6RWxlbWVudCogd2ViRWxlbWVudCA9IGVs
ZW1lbnQubV9lbGVtZW50OworICAgIGlmICghd2ViRWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHdlYkVsZW1lbnQtPnJlbW92ZVNoYWRvd1Jvb3QoKTsKK30KKwogLy8gUHJvdmlkZSBhIGJh
Y2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91c2x5IGV4cG9ydGVkIHByaXZhdGUgc3lt
Ym9scyBhcyBvZiBRdFdlYktpdCA0LjYgcmVsZWFzZQogCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0
X3Jlc3VtZUFjdGl2ZURPTU9iamVjdHMoUVdlYkZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aAppbmRleCA0YmU2MDUzMThkMzU5YWIzM2FkMTM1ZmEzNzdjZTUzMTYxYjZiYWZjLi43MDE0MzRk
YzE5MDBjZjViOGI2MTZjYWQ2ZjZiNGZkNTdlYTliMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBA
IC0yMDIsNiArMjAyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldEFsdGVybmF0ZUh0
bWwoUVdlYkZyYW1lKiwgY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3QgUVVybCYgYmFzZVVybCwg
Y29uc3QgUVVybCYgZmFpbGluZ1VybCk7CiAKICAgICBzdGF0aWMgUVZhcmlhbnQgc2hhZG93Um9v
dChjb25zdCBRV2ViRWxlbWVudCYpOworICAgIHN0YXRpYyBRVmFyaWFudCBlbnN1cmVTaGFkb3dS
b290KGNvbnN0IFFXZWJFbGVtZW50Jik7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlU2hhZG93Um9v
dChjb25zdCBRV2ViRWxlbWVudCYpOwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYTRl
ZGM4N2QwMDk4ZmFhNDYwMDVhMjFkNGQ3ZTk0ODgyODUxYy4uYWFhNzRhZWFhNDA3Yzk0NDg0ZDRk
OGZjNTgxZjQ3OTgyY2ZmMDRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTA0
LTIwICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ciBjYW4gY3JlYXRlIGFuZCBkZXN0cm95IHNoYWRvdyBET00KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDU4CisKKyAgICAgICAgU3VwcG9ydCBmb3Ig
bmV3IG1ldGhvZHMgaW4gV0syIFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZU5vZGVIYW5kbGVDb3B5RWxlbWVudEVuc3VyZVNoYWRvd1Jvb3QpOgorICAgICAg
ICAoV0tCdW5kbGVOb2RlSGFuZGxlUmVtb3ZlU2hhZG93Um9vdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2Rl
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpl
bGVtZW50U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhh
bmRsZTo6ZWxlbWVudEVuc3VyZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGU6OmVsZW1lbnRSZW1vdmVTaGFkb3dSb290KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaDoK
KwogMjAxMS0wNC0yMCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBGaXhlZCBHVEsrIGNvbXBpbGF0aW9uIGFmdGVyIHI4NDIwNi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVO
b2RlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCAyOTJiMDIyMzczMTdiM2NlMzg3ODJk
Y2E3MDBlZTY3NWE4ODMxNTQyLi42MGY5NzBlM2Y3NDNhMWQ1ZjIwNmM4OTY3MzRkYzJlNjE5ODJj
MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuY3BwCkBAIC02Nyw2
ICs2NywxNyBAQCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgV0tCdW5kbGVOb2RlSGFuZGxlQ29weUVs
ZW1lbnRTaGFkb3dSb290KFdLQnVuZGxlTm9kZUhhbmRsZQogICAgIHJldHVybiB0b0FQSShub2Rl
SGFuZGxlLnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOwogfQogCitXS0J1bmRsZU5vZGVIYW5kbGVS
ZWYgV0tCdW5kbGVOb2RlSGFuZGxlQ29weUVsZW1lbnRFbnN1cmVTaGFkb3dSb290KFdLQnVuZGxl
Tm9kZUhhbmRsZVJlZiBlbGVtZW50SGFuZGxlUmVmKQoreworICAgIFJlZlB0cjxJbmplY3RlZEJ1
bmRsZU5vZGVIYW5kbGU+IG5vZGVIYW5kbGUgPSB0b0ltcGwoZWxlbWVudEhhbmRsZVJlZiktPmVs
ZW1lbnRFbnN1cmVTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIHRvQVBJKG5vZGVIYW5kbGUucmVs
ZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9CisKK3ZvaWQgV0tCdW5kbGVOb2RlSGFuZGxlUmVtb3Zl
U2hhZG93Um9vdChXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudEhhbmRsZVJlZikKK3sKKyAg
ICB0b0ltcGwoZWxlbWVudEhhbmRsZVJlZiktPmVsZW1lbnRSZW1vdmVTaGFkb3dSb290KCk7Cit9
CisKIHZvaWQgV0tCdW5kbGVOb2RlSGFuZGxlU2V0SFRNTElucHV0RWxlbWVudFZhbHVlRm9yVXNl
cihXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZVJlZiwgV0tTdHJp
bmdSZWYgdmFsdWVSZWYpCiB7CiAgICAgdG9JbXBsKGh0bWxJbnB1dEVsZW1lbnRIYW5kbGVSZWYp
LT5zZXRIVE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKHRvV1RGU3RyaW5nKHZhbHVlUmVmKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5oCmluZGV4
IDM2NTUxOTRhNjk1NzhjNmU2NDAxNTdlNTVjYzdkNzczNzBiYTQyMzEuLjM5OWIwOTRmNDFhMzg0
ZmVkN2ZjNDBjZGMwODFkYmI4NTg3Mzc3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIFdLX0VYUE9SVCBXS1Jl
Y3QgV0tCdW5kbGVOb2RlSGFuZGxlR2V0UmVuZGVyUmVjdChXS0J1bmRsZU5vZGVIYW5kbGVSZWYg
bm9kZUhhbmRsCiAvKiBFbGVtZW50IFNwZWNpZmljIE9wZXJhdGlvbnMgKi8KIFdLX0VYUE9SVCBX
S1JlY3QgV0tCdW5kbGVOb2RlSGFuZGxlR2V0RWxlbWVudEJvdW5kcyhXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgZWxlbWVudEhhbmRsZSk7CiBXS19FWFBPUlQgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIFdL
QnVuZGxlTm9kZUhhbmRsZUNvcHlFbGVtZW50U2hhZG93Um9vdChXS0J1bmRsZU5vZGVIYW5kbGVS
ZWYgZWxlbWVudEhhbmRsZSk7CitXS19FWFBPUlQgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIFdLQnVu
ZGxlTm9kZUhhbmRsZUNvcHlFbGVtZW50RW5zdXJlU2hhZG93Um9vdChXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgZWxlbWVudEhhbmRsZSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZU5vZGVIYW5kbGVS
ZW1vdmVTaGFkb3dSb290KFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50SGFuZGxlKTsKIAog
LyogSFRNTElucHV0RWxlbWVudCBTcGVjaWZpYyBPcGVyYXRpb25zICovCiBXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZU5vZGVIYW5kbGVTZXRIVE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKFdLQnVu
ZGxlTm9kZUhhbmRsZVJlZiBodG1sSW5wdXRFbGVtZW50SGFuZGxlLCBXS1N0cmluZ1JlZiB2YWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRl
eCBiZWYzZjkwOTRhYWFjMjZkZGMzZDNjYmIyMDRhNzU1NmI5MGI2N2YxLi5lNTc4N2Y1MmIzNTkz
NzQ3NzJiYzZmYzk4NzU5ZWYyZTA2ODE0NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTE3Myw2ICsxNzMsMjIgQEAgUGFzc1JlZlB0cjxJ
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6ZWxlbWVu
dFNoYWRvd1Jvb3QKICAgICByZXR1cm4gZ2V0T3JDcmVhdGUoc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KG1fbm9kZS5nZXQoKSktPnNoYWRvd1Jvb3QoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8SW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmVsZW1lbnRFbnN1cmVT
aGFkb3dSb290KCkKK3sKKyAgICBpZiAoIW1fbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIHJldHVybiBnZXRPckNyZWF0ZShzdGF0aWNfY2FzdDxFbGVtZW50
Kj4obV9ub2RlLmdldCgpKS0+ZW5zdXJlU2hhZG93Um9vdCgpKTsKK30KKwordm9pZCBJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGU6OmVsZW1lbnRSZW1vdmVTaGFkb3dSb290KCkKK3sKKyAgICBpZiAo
IW1fbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzdGF0aWNf
Y2FzdDxFbGVtZW50Kj4obV9ub2RlLmdldCgpKS0+cmVtb3ZlU2hhZG93Um9vdCgpOworfQorCiBQ
YXNzUmVmUHRyPFdlYkZyYW1lPiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmRvY3VtZW50RnJh
bWUoKQogewogICAgIGlmICghbV9ub2RlLT5pc0RvY3VtZW50Tm9kZSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaAppbmRleCBlMTAwM2U4OTI4Nzg1ZjcyM2M4
ZDA4MzEzZWI1MTA1ZDNjM2IzMzk1Li5hZjhlZWIzOTFlODI5NTllMDEzZWMwNDE1MGE1NjdmYzY0
ZWRkY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaApA
QCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGU+IGh0bWxUYWJsZUNlbGxFbGVtZW50Q2VsbEFib3ZlKCk7CiAKICAgICBQYXNzUmVm
UHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gZWxlbWVudFNoYWRvd1Jvb3QoKTsKKyAgICBQ
YXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gZWxlbWVudEVuc3VyZVNoYWRvd1Jv
b3QoKTsKKyAgICB2b2lkIGVsZW1lbnRSZW1vdmVTaGFkb3dSb290KCk7CiAKICAgICBQYXNzUmVm
UHRyPFdlYkZyYW1lPiBkb2N1bWVudEZyYW1lKCk7CiAgICAgUGFzc1JlZlB0cjxXZWJGcmFtZT4g
aHRtbEZyYW1lRWxlbWVudENvbnRlbnRGcmFtZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk1MGNhYWI1Y2ZjMWVmMzY1NDkxZmY0Yjg1YmM5
NDZmYTA0OTg3ZDUuLmEwOTNjZDc1NmMxNjA4MmZjYmRmZWQ1ZDQ2YmU5NGQ1Y2VjMTU2MmUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MyBAQAorMjAxMS0wNC0yMCAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIgY2FuIGNyZWF0ZSBhbmQgZGVzdHJveSBzaGFkb3cgRE9NCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTA1OAorCisgICAg
ICAgIENocm9taXVtLCBNYWMsIEdUSyBhbmQgUXQgRFJUOyBhbmQgV0syIHRlc3QgcnVubmVyLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoZW5zdXJlU2hhZG93Um9vdENhbGxiYWNrKToKKyAgICAgICAgKHJlbW92ZVNoYWRvd1Jv
b3RDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rp
b25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmVuc3VyZVNoYWRvd1Jvb3QpOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzaGFkb3dSb290KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjplbnN1cmVTaGFkb3dSb290KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpyZW1v
dmVTaGFkb3dSb290KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjplbnN1cmVTaGFk
b3dSb290KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVTaGFkb3dSb290
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjplbnN1cmVTaGFkb3dSb290KToKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVTaGFkb3dSb290KToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250
cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNoYWRvd1Jvb3QpOgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZW5z
dXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpyZW1v
dmVTaGFkb3dSb290KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0xheW91dFRlc3RDb250cm9sbGVyLmg6CisKIDIwMTEtMDQtMjAgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2Ugb2xkLXJ1bi13ZWJraXQtdGVzdHMncyB3
aW4tNyBwbGF0Zm9ybSB3aXRoIHdpbi03c3AwCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMzEwNWNlNDZhNDQ4ODUwNGJiMjM2ODI5YmExOTk4
ZmZhZjVjNTk2My4uNGNhOTBkODUxNDJlZGE2MDdmNTllNmI3NDllZDYxYzE0MDYwMjkzYiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTcx
NSw2ICsxNzE1LDI1IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNoYWRvd1Jvb3RDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sCiAgICAgcmV0dXJuIGNvbnRy
b2xsZXItPnNoYWRvd1Jvb3QoY29udGV4dCwgYXJndW1lbnRzWzBdKTsKIH0KIAorc3RhdGljIEpT
VmFsdWVSZWYgZW5zdXJlU2hhZG93Um9vdENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAxKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNv
bnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0
UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgcmV0dXJuIGNvbnRyb2xsZXItPmVuc3VyZVNoYWRv
d1Jvb3QoY29udGV4dCwgYXJndW1lbnRzWzBdKTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgcmVt
b3ZlU2hhZG93Um9vdENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAg
ICBpZiAoYXJndW1lbnRDb3VudCAhPSAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9
IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRo
aXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5yZW1vdmVTaGFkb3dSb290KGNvbnRleHQsIGFy
Z3VtZW50c1swXSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIHNob3dXZWJJbnNwZWN0b3JDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0yMTk2LDYgKzIyMTUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9u
KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAiZHVt
cFdpbGxDYWNoZVJlc3BvbnNlIiwgZHVtcFdpbGxDYWNoZVJlc3BvbnNlQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAiZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkIiwg
ZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZW5jb2RlSG9zdE5hbWUiLCBlbmNvZGVIb3N0TmFtZUNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCisgICAgICAgIHsgImVuc3VyZVNoYWRvd1Jvb3QiLCBlbnN1cmVTaGFkb3dSb290Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsIGV2YWx1YXRl
SW5XZWJJbnNwZWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJldmFsdWF0ZVNjcmlw
dEluSXNvbGF0ZWRXb3JsZCIsIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAiZXhlY0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCkBAIC0yMjE2LDYgKzIyMzYsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAibnVtYmVyT2ZBY3RpdmVB
bmltYXRpb25zIiwgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic3VzcGVuZEFuaW1hdGlvbnMiLCBzdXNwZW5kQW5pbWF0aW9uc0NhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInJlc3VtZUFuaW1hdGlvbnMiLCByZXN1bWVBbmltYXRpb25zQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicmVtb3ZlU2hhZG93Um9vdCIsIHJlbW92ZVNoYWRv
d1Jvb3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJvdmVycmlkZVByZWZlcmVuY2UiLCBv
dmVycmlkZVByZWZlcmVuY2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJwYWdlTnVtYmVy
Rm9yRWxlbWVudEJ5SWQiLCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWRDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyIsIHBhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGE0MjlkYmYyM2EyYzk5M2VmMDYyMDNhYjZmOGU0MDA0
MmEwNDUyYTAuLmEzMWU5MDgxZmQ0OWIxODExYjkxYWMxMTlkYTBlYjRlYTJhNjY1ZGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTIyLDcgKzEy
MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9v
bCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9yaWVu
dGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOwogICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9y
KGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcik7CisKICAgICBKU1ZhbHVlUmVmIHNoYWRvd1Jv
b3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKKyAgICBKU1ZhbHVlUmVmIGVuc3VyZVNoYWRv
d1Jvb3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKKyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jv
b3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKIAogICAgIHZvaWQgd2FpdEZvclBvbGljeURl
bGVnYXRlKCk7CiAgICAgc2l6ZV90IHdlYkhpc3RvcnlJdGVtQ291bnQoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApp
bmRleCA3MmMwNWIxODAwMWM3OWNhZWVmM2MzODcwNjMyMTNjZGQwOTQ3NjgyLi43ZWU4ZjVmNGIz
NWY5ZDdiMDdjYzBhYzQwNGU2OTg1NTIwYzcxOGQ2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDUsNiAr
MTA1LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RT
aGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZHVtcFN0YXR1c0NhbGxiYWNrcyIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcFdpbmRvd1N0YXR1c0NoYW5nZXMpOwogICAgIGJpbmRNZXRo
b2QoImR1bXBUaXRsZUNoYW5nZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBUaXRsZUNo
YW5nZXMpOwogICAgIGJpbmRNZXRob2QoImVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVu
dFdpdGhJZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZWxlbWVudERvZXNBdXRvQ29tcGxldGVG
b3JFbGVtZW50V2l0aElkKTsKKyAgICBiaW5kTWV0aG9kKCJlbnN1cmVTaGFkb3dSb290IiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjplbnN1cmVTaGFkb3dSb290KTsKICAgICBiaW5kTWV0aG9kKCJl
dmFsdWF0ZUluV2ViSW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUlu
V2ViSW5zcGVjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRX
b3JsZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29y
bGQpOwogICAgIGJpbmRNZXRob2QoImV4ZWNDb21tYW5kIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpleGVjQ29tbWFuZCk7CkBAIC0xMzEsNiArMTMyLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgi
cXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpxdWV1ZU5vbkxv
YWRpbmdTY3JpcHQpOwogICAgIGJpbmRNZXRob2QoInF1ZXVlUmVsb2FkIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpxdWV1ZVJlbG9hZCk7CiAgICAgYmluZE1ldGhvZCgicmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZU9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5KTsKKyAgICBiaW5kTWV0aG9kKCJyZW1vdmVTaGFkb3dSb290Iiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVTaGFkb3dSb290KTsKICAgICBiaW5kTWV0aG9k
KCJyZXBhaW50U3dlZXBIb3Jpem9udGFsbHkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlcGFp
bnRTd2VlcEhvcml6b250YWxseSk7CiAgICAgYmluZE1ldGhvZCgicmVzdW1lQW5pbWF0aW9ucyIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucyk7CiAgICAgYmluZE1ldGhv
ZCgic2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZSIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZSk7CkBAIC02NzIsNiArNjc0
LDM0IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNoYWRvd1Jvb3QoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhCiAgICAgcmVzdWx0LT5zZXQoV2ViQmluZGlu
Z3M6Om1ha2VOb2RlKHNoYWRvd1Jvb3QpKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZW5zdXJlU2hhZG93Um9vdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9IDEgfHwgIWFy
Z3VtZW50c1swXS5pc09iamVjdCgpKSB7CisgICAgICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgV2ViRWxlbWVudCBlbGVtZW50OworICAgIGlmICgh
V2ViQmluZGluZ3M6OmdldEVsZW1lbnQoYXJndW1lbnRzWzBdLnZhbHVlLm9iamVjdFZhbHVlLCAm
ZWxlbWVudCkpIHsKKyAgICAgICAgcmVzdWx0LT5zZXROdWxsKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICByZXN1bHQtPnNldChXZWJCaW5kaW5nczo6bWFrZU5vZGUoZWxlbWVudC5l
bnN1cmVTaGFkb3dSb290KCkpKTsKK30KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVt
b3ZlU2hhZG93Um9vdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9IDEgfHwgIWFyZ3VtZW50
c1swXS5pc09iamVjdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJFbGVtZW50IGVsZW1l
bnQ7CisgICAgaWYgKCFXZWJCaW5kaW5nczo6Z2V0RWxlbWVudChhcmd1bWVudHNbMF0udmFsdWUu
b2JqZWN0VmFsdWUsICZlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZWxlbWVudC5y
ZW1vdmVTaGFkb3dSb290KCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dX
ZWJJbnNwZWN0b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQog
ewogICAgIG1fc2hlbGwtPnNob3dEZXZUb29scygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNWRmNzE1MzRmMzQ1
NDUyM2U4OTk0ZWZhYTI0NDE3YTUxOTNkOGUzMC4uNDRhYzJjZGI5ODAwMTQ4YWEzNjEzOTRlNDg4
NmM3ZWY5OGQ5ODZmYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0yNzIsNiArMjcyLDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKIAogICAgIHZvaWQgc2hhZG93Um9vdChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBlbnN1cmVTaGFkb3dSb290KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3Qo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgLy8gVGhlIGZhbGxi
YWNrIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiBhIG5vbmV4aXN0ZW50IG1ldGhvZCBpcyBjYWxsZWQg
b24KICAgICAvLyB0aGUgbGF5b3V0IHRlc3QgY29udHJvbGxlciBvYmplY3QuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRl
eCAyOTc0MmJlMjE2ZmVjNDc4YTY0NmJiNmIxMTNmYWY5MGJjZTcwMGQxLi5lOTQwNGU5MDY4MmI1
NzRmNjNjMGUwZDFiNjNlZTFmMDVlNjUwYWU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTkyNCw2ICs5MjQsMTYg
QEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hhZG93Um9vdChKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBlbGUKICAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzaGFkb3dSb290KGNvbnRleHQsIGVsZW1lbnQpOwogfQogCitKU1ZhbHVlUmVmIExh
eW91dFRlc3RDb250cm9sbGVyOjplbnN1cmVTaGFkb3dSb290KEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU1ZhbHVlUmVmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6ZW5zdXJlU2hhZG93Um9vdChjb250ZXh0LCBlbGVtZW50KTsKK30KKwordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlU2hhZG93Um9vdChKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNWYWx1ZVJlZiBlbGVtZW50KQoreworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVt
b3ZlU2hhZG93Um9vdChjb250ZXh0LCBlbGVtZW50KTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWJvcnRNb2RhbCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggNGViZjI3MWMzNTFkYjU3MDdh
MDcwNGI5MzkxYTczYzMyOGU2ZWY5Zi4uMTViMzEyZjJhNWU0NjJiZmQ3NzRlN2JjYzkwYmE4OTcz
YzEzNzcxNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0
Q29udHJvbGxlck1hYy5tbQpAQCAtMTA3MCwxMiArMTA3MCwyOCBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgY2hhciogZWRpdGluZ0JlaGF2aW9y
KQogCiBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpzaGFkb3dSb290KEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIGpzRWxlbWVudCkKIHsKLSAgICBET01FbGVtZW50ICpl
bGVtZW50ID0gW0RPTUVsZW1lbnQgX0RPTUVsZW1lbnRGcm9tSlNDb250ZXh0OmNvbnRleHQgdmFs
dWU6anNFbGVtZW50XTsKKyAgICBET01FbGVtZW50KiBlbGVtZW50ID0gW0RPTUVsZW1lbnQgX0RP
TUVsZW1lbnRGcm9tSlNDb250ZXh0OmNvbnRleHQgdmFsdWU6anNFbGVtZW50XTsKICAgICBpZiAo
IWVsZW1lbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7CiAgICAg
cmV0dXJuIFtlbGVtZW50IF9zaGFkb3dSb290OmNvbnRleHRdOwogfQogCitKU1ZhbHVlUmVmIExh
eW91dFRlc3RDb250cm9sbGVyOjplbnN1cmVTaGFkb3dSb290KEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU1ZhbHVlUmVmIGpzRWxlbWVudCkKK3sKKyAgICBET01FbGVtZW50KiBlbGVtZW50ID0gW0RP
TUVsZW1lbnQgX0RPTUVsZW1lbnRGcm9tSlNDb250ZXh0OmNvbnRleHQgdmFsdWU6anNFbGVtZW50
XTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwoY29u
dGV4dCk7CisgICAgcmV0dXJuIFtlbGVtZW50IF9lbnN1cmVTaGFkb3dSb290OmNvbnRleHRdOwor
fQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVTaGFkb3dSb290KEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIGpzRWxlbWVudCkKK3sKKyAgICBET01FbGVtZW50KiBl
bGVtZW50ID0gW0RPTUVsZW1lbnQgX0RPTUVsZW1lbnRGcm9tSlNDb250ZXh0OmNvbnRleHQgdmFs
dWU6anNFbGVtZW50XTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBb
ZWxlbWVudCBfcmVtb3ZlU2hhZG93Um9vdF07Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmFib3J0TW9kYWwoKQogewogICAgIFtOU0FwcCBhYm9ydE1vZGFsXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggZDlm
MWE3NDA3ZjRiOTExODRjZGE5NTNjNGQ2MDdhYTVhOTQ5NWFiNC4uMmUyNWNiNjAxMDRlYTQ4NmVk
NDJiNzdlZTU5NGEwOTA3NmQ5ZjZlZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTc4NSw2ICs3ODUsMTYgQEAgUVZhcmlh
bnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNoYWRvd1Jvb3QoY29uc3QgUVdlYkVsZW1lbnQmIGVs
ZW1lbnQpCiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzaGFkb3dSb290KGVs
ZW1lbnQpOwogfQogCitRVmFyaWFudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZW5zdXJlU2hhZG93
Um9vdChjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICByZXR1cm4gRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmVuc3VyZVNoYWRvd1Jvb3QoZWxlbWVudCk7Cit9CisKK3ZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVNoYWRvd1Jvb3QoY29uc3QgUVdlYkVsZW1lbnQmIGVs
ZW1lbnQpCit7CisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlbW92ZVNoYWRvd1Jvb3Qo
ZWxlbWVudCk7Cit9CisKIGludCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZQZW5kaW5n
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKQogewogICAgIGludCBwZW5kaW5nUGVybWlz
c2lvbkNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaAppbmRleCAyYzMzNDAxNDczNjM4ZWI4Zjg0NjVjOGZiYTJmY2U0ZDYzNDQ1
NDBmLi5hNWY0NDZlZGU2N2E1ZDU3YTg2ZTExMjAxMjAzZjliNDdhYzZmYTQwIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0yNTAs
NiArMjUwLDggQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKGNv
bnN0IFFTdHJpbmcmIGVkaXRpbmdCZWhhdmlvcik7CiAKICAgICBRVmFyaWFudCBzaGFkb3dSb290
KGNvbnN0IFFXZWJFbGVtZW50Jik7CisgICAgUVZhcmlhbnQgZW5zdXJlU2hhZG93Um9vdChjb25z
dCBRV2ViRWxlbWVudCYpOworICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChjb25zdCBRV2ViRWxl
bWVudCYpOwogCiAgICAgdm9pZCBldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChpbnQgd29y
bGRJRCwgY29uc3QgUVN0cmluZyYgc2NyaXB0KTsKICAgICBib29sIGlzUGFnZUJveFZpc2libGUo
aW50IHBhZ2VJbmRleCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5
b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCAyMDg2YWU3MWM0OGMwOTQ0MmJmYTI2NzI2OTM0
OTQ2NDc4MWZjMWEyLi5hZTNjZDk3MDI3Yjg1ODk3YTJiNzU0NjIyNDhhMzJiNjc4YzQ3MzkzIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxl
cldpbi5jcHAKQEAgLTE0NDcsNiArMTQ0NywxNyBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250
cm9sbGVyOjpzaGFkb3dSb290KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIGpzRQog
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorSlNWYWx1ZVJl
ZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZW5zdXJlU2hhZG93Um9vdChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNWYWx1ZVJlZiBqc0VsZW1lbnQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
aGlzLgorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwordm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlU2hhZG93Um9vdChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNWYWx1ZVJlZiBqc0VsZW1lbnQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
aGlzLgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKCkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKaW5kZXggMDU5Mzg0
MDVkZDNjNjE0YzE4NGFlNWU3MzdhNWM4ODBmZDhmMmUwYS4uYWFkNTY4ZGJhZGZiMzFkZmUwMWMz
ZjAyYmU2NGU4NGM4Y2ZkMTY1OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29u
dHJvbGxlci5pZGwKQEAgLTU4LDcgKzU4LDExIEBAIG1vZHVsZSBXVFIgewogICAgICAgICBib29s
ZWFuIGlzQ29tbWFuZEVuYWJsZWQoaW4gRE9NU3RyaW5nIG5hbWUpOwogICAgICAgICBET01TdHJp
bmcgbWFya2VyVGV4dEZvckxpc3RJdGVtKGluIG9iamVjdCBlbGVtZW50KTsKICAgICAgICAgdW5z
aWduZWQgbG9uZyB3aW5kb3dDb3VudCgpOworCisgICAgICAgIC8vIFNoYWRvdyBET00uCiAgICAg
ICAgIG9iamVjdCBzaGFkb3dSb290KGluIG9iamVjdCBlbGVtZW50KTsKKyAgICAgICAgb2JqZWN0
IGVuc3VyZVNoYWRvd1Jvb3QoaW4gb2JqZWN0IGVsZW1lbnQpOworICAgICAgICB2b2lkIHJlbW92
ZVNoYWRvd1Jvb3QoaW4gb2JqZWN0IGVsZW1lbnQpOwogCiAgICAgICAgIC8vIFJlcGFpbnQgdGVz
dGluZy4KICAgICAgICAgdm9pZCB0ZXN0UmVwYWludCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAppbmRleCA0NTcyNWI0OTU1YzE3NGQ3NjhkYWRiMjkxODAyNWFiNjBiZDNjYWNiLi5mZDAw
N2EwN2ViZWY2ZjMwYmI5MzBmOWQ0MGU1Yjk2M2Y0NjIxODk4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcApAQCAtMzY3LDExICszNjcsNDUgQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2hhZG93Um9vdChKU1ZhbHVlUmVmIGVsZW1lbnQpCiAgICAgaWYgKCFkb21FbGVt
ZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdWxsKGNvbnRleHQpOwogCi0gICAgV0tS
ZXRhaW5QdHI8V0tCdW5kbGVOb2RlSGFuZGxlUmVmPiBzaGFkb3dSb290RE9NRWxlbWVudCA9IGFk
b3B0V0soV0tCdW5kbGVOb2RlSGFuZGxlQ29weUVsZW1lbnRTaGFkb3dSb290KGRvbUVsZW1lbnQu
Z2V0KCkpKTsKLSAgICBpZiAoIXNoYWRvd1Jvb3RET01FbGVtZW50KQorICAgIFdLUmV0YWluUHRy
PFdLQnVuZGxlTm9kZUhhbmRsZVJlZj4gc2hhZG93Um9vdERPTU5vZGUgPSBhZG9wdFdLKFdLQnVu
ZGxlTm9kZUhhbmRsZUNvcHlFbGVtZW50U2hhZG93Um9vdChkb21FbGVtZW50LmdldCgpKSk7Cisg
ICAgaWYgKCFzaGFkb3dSb290RE9NTm9kZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVs
bChjb250ZXh0KTsKIAotICAgIHJldHVybiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBw
ZXJGb3JOb2RlRm9yV29ybGQobWFpbkZyYW1lLCBzaGFkb3dSb290RE9NRWxlbWVudC5nZXQoKSwg
V0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCkpOworICAgIHJldHVybiBXS0J1bmRsZUZy
YW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JOb2RlRm9yV29ybGQobWFpbkZyYW1lLCBzaGFkb3dS
b290RE9NTm9kZS5nZXQoKSwgV0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCkpOworfQor
CitKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjplbnN1cmVTaGFkb3dSb290KEpTVmFs
dWVSZWYgZWxlbWVudCkKK3sKKyAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVu
ZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdl
KCkpOworICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3Jp
cHRDb250ZXh0KG1haW5GcmFtZSk7CisKKyAgICBpZiAoIWVsZW1lbnQgfHwgIUpTVmFsdWVJc09i
amVjdChjb250ZXh0LCBlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVsbChj
b250ZXh0KTsKKworICAgIFdLUmV0YWluUHRyPFdLQnVuZGxlTm9kZUhhbmRsZVJlZj4gZG9tRWxl
bWVudCA9IGFkb3B0V0soV0tCdW5kbGVOb2RlSGFuZGxlQ3JlYXRlKGNvbnRleHQsIGNvbnN0X2Nh
c3Q8SlNPYmplY3RSZWY+KGVsZW1lbnQpKSk7CisgICAgaWYgKCFkb21FbGVtZW50KQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VOdWxsKGNvbnRleHQpOworCisgICAgV0tSZXRhaW5QdHI8V0tC
dW5kbGVOb2RlSGFuZGxlUmVmPiBzaGFkb3dSb290RE9NTm9kZSA9IGFkb3B0V0soV0tCdW5kbGVO
b2RlSGFuZGxlQ29weUVsZW1lbnRFbnN1cmVTaGFkb3dSb290KGRvbUVsZW1lbnQuZ2V0KCkpKTsK
KyAgICBpZiAoIXNoYWRvd1Jvb3RET01Ob2RlKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VO
dWxsKGNvbnRleHQpOworCisgICAgcmV0dXJuIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3Jh
cHBlckZvck5vZGVGb3JXb3JsZChtYWluRnJhbWUsIHNoYWRvd1Jvb3RET01Ob2RlLmdldCgpLCBX
S0J1bmRsZVNjcmlwdFdvcmxkTm9ybWFsV29ybGQoKSk7Cit9CisKK3ZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnJlbW92ZVNoYWRvd1Jvb3QoSlNWYWx1ZVJlZiBlbGVtZW50KQoreworICAgIFdL
QnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CisgICAgSlNDb250ZXh0UmVmIGNv
bnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKKwor
ICAgIGlmICghZWxlbWVudCB8fCAhSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIGVsZW1lbnQpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXS1JldGFpblB0cjxXS0J1bmRsZU5vZGVIYW5kbGVSZWY+
IGRvbUVsZW1lbnQgPSBhZG9wdFdLKFdLQnVuZGxlTm9kZUhhbmRsZUNyZWF0ZShjb250ZXh0LCBj
b25zdF9jYXN0PEpTT2JqZWN0UmVmPihlbGVtZW50KSkpOworICAgIGlmICghZG9tRWxlbWVudCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgV0tCdW5kbGVOb2RlSGFuZGxlUmVtb3ZlU2hhZG93Um9v
dChkb21FbGVtZW50LmdldCgpKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xl
YXJCYWNrRm9yd2FyZExpc3QoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDAwZDdlNTdh
NGRhYzljMmEyN2ViOTQ0MTA2MGI2YmI1ZmY0YTg5ZWYuLjNkN2RjYzRiZTAwYTkwNDEyOTI4ODY4
NGEyZGYzN2FkNTI0YzNmYTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTg2LDcgKzg2
LDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFt
ZSk7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG1hcmtlclRleHRGb3JMaXN0SXRlbShK
U1ZhbHVlUmVmIGVsZW1lbnQpOwogICAgIHVuc2lnbmVkIHdpbmRvd0NvdW50KCk7CisKKyAgICAv
LyBTaGFkb3cgRE9NLgogICAgIEpTVmFsdWVSZWYgc2hhZG93Um9vdChKU1ZhbHVlUmVmIGVsZW1l
bnQpOworICAgIEpTVmFsdWVSZWYgZW5zdXJlU2hhZG93Um9vdChKU1ZhbHVlUmVmIGVsZW1lbnQp
OworICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChKU1ZhbHVlUmVmIGVsZW1lbnQpOwogCiAgICAg
Ly8gUmVwYWludCB0ZXN0aW5nLgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFp
bnQgPSB0cnVlOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>