<?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>76056</bug_id>
          
          <creation_ts>2012-01-11 06:14:53 -0800</creation_ts>
          <short_desc>Web Inspector: make setOuterHTML use new DOMEditor, cover it with tests.</short_desc>
          <delta_ts>2012-01-11 08:18:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>533840</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-11 06:14:53 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533841</commentid>
    <comment_count>1</comment_count>
      <attachid>122013</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-11 06:17:00 -0800</bug_when>
    <thetext>Created attachment 122013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533890</commentid>
    <comment_count>2</comment_count>
      <attachid>122013</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-01-11 07:44:02 -0800</bug_when>
    <thetext>Comment on attachment 122013
Patch

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

&gt; Source/WebCore/inspector/DOMEditor.cpp:55
&gt; +    Digest(Node* node) : m_node(node) { }

missing explicit modifier

&gt; Source/WebCore/inspector/DOMEditor.cpp:114
&gt; +            *errorString = &quot;DOMException: failed to set outer html.&quot;;

Can you return DOM exception description here?

&gt; Source/WebCore/inspector/DOMEditor.cpp:162
&gt;      if (oldDigest-&gt;m_node-&gt;nodeType() != Node::ELEMENT_NODE)

oldNode-&gt;nodeType() != Node::ELEMENT_NODE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533914</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-11 08:18:35 -0800</bug_when>
    <thetext>Committed r104713: &lt;http://trac.webkit.org/changeset/104713&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122013</attachid>
            <date>2012-01-11 06:17:00 -0800</date>
            <delta_ts>2012-01-11 07:44:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76056-20120111181657.patch</filename>
            <type>text/plain</type>
            <size>39036</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBjYWE3NWZjZmRmOGU5
YzNmNTExM2RjZTgzMGMwYjJhNGQ3MDhiMy4uYTNjNDhlMjUyMTdhZGVjOGE3YzRhZDdkYTU4MzZl
ODhmMGM5OTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAxLTExICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBtYWtlIHNldE91dGVySFRNTCB1c2UgbmV3IERPTUVkaXRvciwgY292ZXIgaXQgd2l0aCB0ZXN0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDU2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDog
aW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLmh0bWwKKworICAgICAgICAqIGluc3Bl
Y3Rvci9ET01FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjpEaWdlc3Q6
OkRpZ2VzdCk6CisgICAgICAgIChXZWJDb3JlOjpET01FZGl0b3I6OnBhdGNoRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjpwYXRjaE5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NRWRpdG9yOjppbm5lclBhdGNoSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NRWRpdG9yOjppbm5lclBhdGNoTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpET01FZGl0b3I6
OmRpZmYpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjppbm5lclBhdGNoQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjpjcmVhdGVEaWdlc3QpOgorICAgICAgICAq
IGluc3BlY3Rvci9ET01FZGl0b3IuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLTAu
MS5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01Ob2RlLnByb3RvdHlwZS5fcmVudW1iZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNUcmVlT3V0bGluZS5qczoKKyAgICAgICAgKCk6CisKIDIwMTItMDEtMTAgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4LiBGb3Jn
b3QgdG8gcmV2ZXJ0IE5vZGUuaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9ET01FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAK
aW5kZXggNjIwOWZkYjZkMzUzNmZhZWMxZTU5Yzk4YTNiNWNlZWMzOGY2MTg1OS4uOGVkODI2ZDcy
Y2M0ZmM4ODA4YjQ1YWMxOWU2ZjczNzQwOTNhYzgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0RPTUVkaXRvci5jcHAKQEAgLTMzLDggKzMzLDEwIEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogCisjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiSFRNTEVsZW1lbnQuaCIKQEAgLTQ5LDIwICs1MSwyMCBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBET01FZGl0b3I6Ok5vZGVEaWdlc3Qg
ewotICAgIE5vZGVEaWdlc3QoTm9kZSogbm9kZSkgOiBtX25vZGUobm9kZSkgeyB9CitzdHJ1Y3Qg
RE9NRWRpdG9yOjpEaWdlc3QgeworICAgIERpZ2VzdChOb2RlKiBub2RlKSA6IG1fbm9kZShub2Rl
KSB7IH0KIAotICAgIFN0cmluZyBtX2RpZ2VzdDsKLSAgICBTdHJpbmcgbV9hdHRyc0RpZ2VzdDsK
KyAgICBTdHJpbmcgbV9zaGExOworICAgIFN0cmluZyBtX2F0dHJzU0hBMTsKICAgICBOb2RlKiBt
X25vZGU7Ci0gICAgVmVjdG9yPE93blB0cjxOb2RlRGlnZXN0PiA+IG1fY2hpbGRyZW47CisgICAg
VmVjdG9yPE93blB0cjxEaWdlc3Q+ID4gbV9jaGlsZHJlbjsKIH07CiAKIERPTUVkaXRvcjo6RE9N
RWRpdG9yKERvY3VtZW50KiBkb2N1bWVudCkgOiBtX2RvY3VtZW50KGRvY3VtZW50KSB7IH0KIAog
RE9NRWRpdG9yOjp+RE9NRWRpdG9yKCkgeyB9CiAKLXZvaWQgRE9NRWRpdG9yOjpwYXRjaChjb25z
dCBTdHJpbmcmIG1hcmt1cCkKK3ZvaWQgRE9NRWRpdG9yOjpwYXRjaERvY3VtZW50KGNvbnN0IFN0
cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxIVE1MRG9jdW1lbnQ+IG5ld0RvY3VtZW50ID0g
SFRNTERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKICAgICBSZWZQdHI8RG9jdW1lbnRQYXJz
ZXI+IHBhcnNlciA9IEhUTUxEb2N1bWVudFBhcnNlcjo6Y3JlYXRlKG5ld0RvY3VtZW50LmdldCgp
LCBmYWxzZSk7CkBAIC03MCwyMCArNzIsNTkgQEAgdm9pZCBET01FZGl0b3I6OnBhdGNoKGNvbnN0
IFN0cmluZyYgbWFya3VwKQogICAgIHBhcnNlci0+ZmluaXNoKCk7CiAgICAgcGFyc2VyLT5kZXRh
Y2goKTsKIAotICAgIGlmICghcGF0Y2hFbGVtZW50KG1fZG9jdW1lbnQtPmhlYWQoKSwgbmV3RG9j
dW1lbnQtPmhlYWQoKSkgfHwgIXBhdGNoRWxlbWVudChtX2RvY3VtZW50LT5ib2R5KCksIG5ld0Rv
Y3VtZW50LT5ib2R5KCkpKSB7CisgICAgaWYgKCFpbm5lclBhdGNoSFRNTEVsZW1lbnQobV9kb2N1
bWVudC0+aGVhZCgpLCBuZXdEb2N1bWVudC0+aGVhZCgpKSB8fCAhaW5uZXJQYXRjaEhUTUxFbGVt
ZW50KG1fZG9jdW1lbnQtPmJvZHkoKSwgbmV3RG9jdW1lbnQtPmJvZHkoKSkpIHsKICAgICAgICAg
Ly8gRmFsbCBiYWNrIHRvIHJld3JpdGUuCiAgICAgICAgIG1fZG9jdW1lbnQtPndyaXRlKG1hcmt1
cCk7CiAgICAgICAgIG1fZG9jdW1lbnQtPmNsb3NlKCk7CiAgICAgfQogfQogCi1ib29sIERPTUVk
aXRvcjo6cGF0Y2hFbGVtZW50KEVsZW1lbnQqIG9sZEVsZW1lbnQsIEVsZW1lbnQqIG5ld0VsZW1l
bnQpCitOb2RlKiBET01FZGl0b3I6OnBhdGNoTm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya3VwKQoreworICAgIEVsZW1lbnQqIHBhcmVu
dEVsZW1lbnQgPSBub2RlLT5wYXJlbnRFbGVtZW50KCk7CisgICAgaWYgKCFwYXJlbnRFbGVtZW50
KSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJDYW4gb25seSBzZXQgb3V0ZXIgSFRNTCB0byBu
b2RlcyB3aXRoaW4gRWxlbWVudCI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIE5v
ZGUqIHByZXZpb3VzU2libGluZyA9IG5vZGUtPnByZXZpb3VzU2libGluZygpOworICAgIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZSht
X2RvY3VtZW50KTsKKyAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgcGFyZW50RWxlbWVu
dCk7CisKKyAgICAvLyBDb21wb3NlIHRoZSBvbGQgbGlzdC4KKyAgICBWZWN0b3I8T3duUHRyPERp
Z2VzdD4gPiBvbGRMaXN0OworICAgIGZvciAoTm9kZSogY2hpbGQgPSBwYXJlbnRFbGVtZW50LT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAg
ICBvbGRMaXN0LmFwcGVuZChjcmVhdGVEaWdlc3QoY2hpbGQpKTsKKworICAgIC8vIENvbXBvc2Ug
dGhlIG5ldyBsaXN0LgorICAgIFZlY3RvcjxPd25QdHI8RGlnZXN0PiA+IG5ld0xpc3Q7CisgICAg
Zm9yIChOb2RlKiBjaGlsZCA9IHBhcmVudEVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQgIT0g
bm9kZTsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbmV3TGlzdC5hcHBl
bmQoY3JlYXRlRGlnZXN0KGNoaWxkKSk7CisgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZyYWdtZW50
LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAg
ICAgICBuZXdMaXN0LmFwcGVuZChjcmVhdGVEaWdlc3QoY2hpbGQpKTsKKyAgICBmb3IgKE5vZGUq
IGNoaWxkID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpCisgICAgICAgIG5ld0xpc3QuYXBwZW5kKGNyZWF0ZURpZ2VzdChjaGlsZCkpOwor
CisgICAgYm9vbCBzdWNjZXNzID0gaW5uZXJQYXRjaENoaWxkcmVuKHBhcmVudEVsZW1lbnQsIG9s
ZExpc3QsIG5ld0xpc3QpOworICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAvLyBGYWxsIGJh
Y2sgdG8gdG90YWwgcmVwbGFjZS4KKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
ICAgIHBhcmVudEVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIG5vZGUs
IGVjKTsKKyAgICAgICAgaWYgKGVjKSB7CisgICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRE9N
RXhjZXB0aW9uOiBmYWlsZWQgdG8gc2V0IG91dGVyIGh0bWwuIjsKKyAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBwcmV2aW91c1NpYmxpbmcgPyBwcmV2
aW91c1NpYmxpbmctPm5leHRTaWJsaW5nKCkgOiBwYXJlbnRFbGVtZW50LT5maXJzdENoaWxkKCk7
Cit9CisKK2Jvb2wgRE9NRWRpdG9yOjppbm5lclBhdGNoSFRNTEVsZW1lbnQoSFRNTEVsZW1lbnQq
IG9sZEVsZW1lbnQsIEhUTUxFbGVtZW50KiBuZXdFbGVtZW50KQogewogICAgIGlmIChvbGRFbGVt
ZW50KSAgewogICAgICAgICBpZiAobmV3RWxlbWVudCkgewotICAgICAgICAgICAgT3duUHRyPE5v
ZGVEaWdlc3Q+IG9sZEluZm8gPSBjcmVhdGVOb2RlRGlnZXN0KG9sZEVsZW1lbnQpOwotICAgICAg
ICAgICAgT3duUHRyPE5vZGVEaWdlc3Q+IG5ld0luZm8gPSBjcmVhdGVOb2RlRGlnZXN0KG5ld0Vs
ZW1lbnQpOwotICAgICAgICAgICAgcmV0dXJuIHBhdGNoTm9kZShvbGRJbmZvLmdldCgpLCBuZXdJ
bmZvLmdldCgpKTsKKyAgICAgICAgICAgIE93blB0cjxEaWdlc3Q+IG9sZEluZm8gPSBjcmVhdGVE
aWdlc3Qob2xkRWxlbWVudCk7CisgICAgICAgICAgICBPd25QdHI8RGlnZXN0PiBuZXdJbmZvID0g
Y3JlYXRlRGlnZXN0KG5ld0VsZW1lbnQpOworICAgICAgICAgICAgcmV0dXJuIGlubmVyUGF0Y2hO
b2RlKG9sZEluZm8uZ2V0KCksIG5ld0luZm8uZ2V0KCkpOwogICAgICAgICB9CiAgICAgICAgIG9s
ZEVsZW1lbnQtPnJlbW92ZUFsbENoaWxkcmVuKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
OTYsOSArMTM3LDkgQEAgYm9vbCBET01FZGl0b3I6OnBhdGNoRWxlbWVudChFbGVtZW50KiBvbGRF
bGVtZW50LCBFbGVtZW50KiBuZXdFbGVtZW50KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IERPTUVkaXRvcjo6cGF0Y2hOb2RlKE5vZGVEaWdlc3QqIG9sZERpZ2VzdCwgTm9kZURpZ2VzdCog
bmV3RGlnZXN0KQorYm9vbCBET01FZGl0b3I6OmlubmVyUGF0Y2hOb2RlKERpZ2VzdCogb2xkRGln
ZXN0LCBEaWdlc3QqIG5ld0RpZ2VzdCkKIHsKLSAgICBpZiAob2xkRGlnZXN0LT5tX2RpZ2VzdCA9
PSBuZXdEaWdlc3QtPm1fZGlnZXN0KQorICAgIGlmIChvbGREaWdlc3QtPm1fc2hhMSA9PSBuZXdE
aWdlc3QtPm1fc2hhMSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBOb2RlKiBvbGROb2Rl
ID0gb2xkRGlnZXN0LT5tX25vZGU7CkBAIC0xMTgsMzYgKzE1OSwzNCBAQCBib29sIERPTUVkaXRv
cjo6cGF0Y2hOb2RlKE5vZGVEaWdlc3QqIG9sZERpZ2VzdCwgTm9kZURpZ2VzdCogbmV3RGlnZXN0
KQogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG9sZE5vZGUt
Pm5vZGVUeXBlKCkgPT0gTm9kZTo6RUxFTUVOVF9OT0RFICYmIG9sZERpZ2VzdC0+bV9hdHRyc0Rp
Z2VzdCAhPSBuZXdEaWdlc3QtPm1fYXR0cnNEaWdlc3QpIHsKLSAgICAgICAgRWxlbWVudCogb2xk
RWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihvbGROb2RlKTsKLSAgICAgICAgRWxlbWVu
dCogbmV3RWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuZXdOb2RlKTsKLSAgICAgICAg
b2xkRWxlbWVudC0+c2V0QXR0cmlidXRlc0Zyb21FbGVtZW50KCpuZXdFbGVtZW50KTsKLSAgICB9
CiAgICAgaWYgKG9sZERpZ2VzdC0+bV9ub2RlLT5ub2RlVHlwZSgpICE9IE5vZGU6OkVMRU1FTlRf
Tk9ERSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gcGF0Y2hDaGlsZHJlbihz
dGF0aWNfY2FzdDxDb250YWluZXJOb2RlKj4ob2xkTm9kZSksIG9sZERpZ2VzdC0+bV9jaGlsZHJl
biwgbmV3RGlnZXN0LT5tX2NoaWxkcmVuKTsKLX0KLQotYm9vbCBET01FZGl0b3I6OnBhdGNoQ2hp
bGRyZW4oQ29udGFpbmVyTm9kZSogb2xkUGFyZW50LCBWZWN0b3I8T3duUHRyPE5vZGVEaWdlc3Q+
ID4mIG9sZExpc3QsIFZlY3RvcjxPd25QdHI8Tm9kZURpZ2VzdD4gPiYgbmV3TGlzdCkKLXsKLSAg
ICAvLyBUcmltIHRhaWwuCi0gICAgc2l6ZV90IG9mZnNldCA9IDA7Ci0gICAgZm9yICg7IG9mZnNl
dCA8IG9sZExpc3Quc2l6ZSgpICYmIG9mZnNldCA8IG5ld0xpc3Quc2l6ZSgpICYmIG9sZExpc3Rb
b2xkTGlzdC5zaXplKCkgLSBvZmZzZXQgLSAxXS0+bV9kaWdlc3QgPT0gbmV3TGlzdFtuZXdMaXN0
LnNpemUoKSAtIG9mZnNldCAtIDFdLT5tX2RpZ2VzdDsgKytvZmZzZXQpIHsgfQotICAgIGlmIChv
ZmZzZXQgPiAwKSB7Ci0gICAgICAgIG9sZExpc3QucmVzaXplKG9sZExpc3Quc2l6ZSgpIC0gb2Zm
c2V0KTsKLSAgICAgICAgbmV3TGlzdC5yZXNpemUobmV3TGlzdC5zaXplKCkgLSBvZmZzZXQpOwor
ICAgIC8vIFBhdGNoIGF0dHJpYnV0ZXMKKyAgICBFbGVtZW50KiBvbGRFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KG9sZE5vZGUpOworICAgIEVsZW1lbnQqIG5ld0VsZW1lbnQgPSBzdGF0
aWNfY2FzdDxFbGVtZW50Kj4obmV3Tm9kZSk7CisgICAgaWYgKG9sZERpZ2VzdC0+bV9hdHRyc1NI
QTEgIT0gbmV3RGlnZXN0LT5tX2F0dHJzU0hBMSkgeworICAgICAgICBOYW1lZE5vZGVNYXAqIG9s
ZEF0dHJpYnV0ZU1hcCA9IG9sZEVsZW1lbnQtPmF0dHJpYnV0ZU1hcCgpOworCisgICAgICAgIHdo
aWxlIChvbGRBdHRyaWJ1dGVNYXAgJiYgb2xkQXR0cmlidXRlTWFwLT5sZW5ndGgoKSkKKyAgICAg
ICAgICAgIG9sZEF0dHJpYnV0ZU1hcC0+cmVtb3ZlQXR0cmlidXRlKDApOworCisgICAgICAgIE5h
bWVkTm9kZU1hcCogbmV3QXR0cmlidXRlTWFwID0gbmV3RWxlbWVudC0+YXR0cmlidXRlTWFwKCk7
CisgICAgICAgIGlmIChuZXdBdHRyaWJ1dGVNYXApIHsKKyAgICAgICAgICAgIHNpemVfdCBudW1B
dHRycyA9IG5ld0F0dHJpYnV0ZU1hcC0+bGVuZ3RoKCk7CisgICAgICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG51bUF0dHJzOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBBdHRy
aWJ1dGUqIGF0dHJpYnV0ZSA9IG5ld0F0dHJpYnV0ZU1hcC0+YXR0cmlidXRlSXRlbShpKTsKKyAg
ICAgICAgICAgICAgICBvbGRFbGVtZW50LT5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLT5uYW1lKCks
IGF0dHJpYnV0ZS0+dmFsdWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAK
LSAgICAvLyBUcmltIGhlYWQuCi0gICAgZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBvbGRMaXN0
LnNpemUoKSAmJiBvZmZzZXQgPCBuZXdMaXN0LnNpemUoKSAmJiBvbGRMaXN0W29mZnNldF0tPm1f
ZGlnZXN0ID09IG5ld0xpc3Rbb2Zmc2V0XS0+bV9kaWdlc3Q7ICsrb2Zmc2V0KSB7IH0KLSAgICBp
ZiAob2Zmc2V0ID4gMCkgewotICAgICAgICBvbGRMaXN0LnJlbW92ZSgwLCBvZmZzZXQpOwotICAg
ICAgICBuZXdMaXN0LnJlbW92ZSgwLCBvZmZzZXQpOwotICAgIH0KKyAgICByZXR1cm4gaW5uZXJQ
YXRjaENoaWxkcmVuKG9sZEVsZW1lbnQsIG9sZERpZ2VzdC0+bV9jaGlsZHJlbiwgbmV3RGlnZXN0
LT5tX2NoaWxkcmVuKTsKK30KIAotICAgIC8vIERpZmYgdGhlIGNoaWxkcmVuIGxpc3RzLgotICAg
IHR5cGVkZWYgVmVjdG9yPHBhaXI8Tm9kZURpZ2VzdCosIHNpemVfdD4gPiBSZXN1bHRNYXA7Citw
YWlyPERPTUVkaXRvcjo6UmVzdWx0TWFwLCBET01FZGl0b3I6OlJlc3VsdE1hcD4KK0RPTUVkaXRv
cjo6ZGlmZihWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYgb2xkTGlzdCwgVmVjdG9yPE93blB0cjxE
aWdlc3Q+ID4mIG5ld0xpc3QpCit7CiAgICAgUmVzdWx0TWFwIG5ld01hcChuZXdMaXN0LnNpemUo
KSk7CiAgICAgUmVzdWx0TWFwIG9sZE1hcChvbGRMaXN0LnNpemUoKSk7CiAKQEAgLTE2MSwxMiAr
MjAwLDEyIEBAIGJvb2wgRE9NRWRpdG9yOjpwYXRjaENoaWxkcmVuKENvbnRhaW5lck5vZGUqIG9s
ZFBhcmVudCwgVmVjdG9yPE93blB0cjxOb2RlRGlnZXN0CiAgICAgRGlmZlRhYmxlIG9sZFRhYmxl
OwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuZXdMaXN0LnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgIERpZmZUYWJsZTo6aXRlcmF0b3IgaXQgPSBuZXdUYWJsZS5hZGQobmV3TGlzdFtpXS0+
bV9kaWdlc3QsIFZlY3RvcjxzaXplX3Q+KCkpLmZpcnN0OworICAgICAgICBEaWZmVGFibGU6Oml0
ZXJhdG9yIGl0ID0gbmV3VGFibGUuYWRkKG5ld0xpc3RbaV0tPm1fc2hhMSwgVmVjdG9yPHNpemVf
dD4oKSkuZmlyc3Q7CiAgICAgICAgIGl0LT5zZWNvbmQuYXBwZW5kKGkpOwogICAgIH0KIAogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2xkTGlzdC5zaXplKCk7ICsraSkgewotICAgICAgICBE
aWZmVGFibGU6Oml0ZXJhdG9yIGl0ID0gb2xkVGFibGUuYWRkKG9sZExpc3RbaV0tPm1fZGlnZXN0
LCBWZWN0b3I8c2l6ZV90PigpKS5maXJzdDsKKyAgICAgICAgRGlmZlRhYmxlOjppdGVyYXRvciBp
dCA9IG9sZFRhYmxlLmFkZChvbGRMaXN0W2ldLT5tX3NoYTEsIFZlY3RvcjxzaXplX3Q+KCkpLmZp
cnN0OwogICAgICAgICBpdC0+c2Vjb25kLmFwcGVuZChpKTsKICAgICB9CiAKQEAgLTE4Nyw3ICsy
MjYsNyBAQCBib29sIERPTUVkaXRvcjo6cGF0Y2hDaGlsZHJlbihDb250YWluZXJOb2RlKiBvbGRQ
YXJlbnQsIFZlY3RvcjxPd25QdHI8Tm9kZURpZ2VzdAogICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgc2l6ZV90IGogPSBuZXdNYXBbaV0uc2Vjb25kICsgMTsKLSAgICAgICAgaWYgKGog
PCBvbGRNYXAuc2l6ZSgpICYmICFvbGRNYXBbal0uZmlyc3QgJiYgbmV3TGlzdFtpICsgMV0tPm1f
ZGlnZXN0ID09IG9sZExpc3Rbal0tPm1fZGlnZXN0KSB7CisgICAgICAgIGlmIChqIDwgb2xkTWFw
LnNpemUoKSAmJiAhb2xkTWFwW2pdLmZpcnN0ICYmIG5ld0xpc3RbaSArIDFdLT5tX3NoYTEgPT0g
b2xkTGlzdFtqXS0+bV9zaGExKSB7CiAgICAgICAgICAgICBuZXdNYXBbaSArIDFdID0gbWFrZV9w
YWlyKG5ld0xpc3RbaSArIDFdLmdldCgpLCBqKTsKICAgICAgICAgICAgIG9sZE1hcFtqXSA9IG1h
a2VfcGFpcihvbGRMaXN0W2pdLmdldCgpLCBpICsgMSk7CiAgICAgICAgIH0KQEAgLTE5OCwxMyAr
MjM3LDM2IEBAIGJvb2wgRE9NRWRpdG9yOjpwYXRjaENoaWxkcmVuKENvbnRhaW5lck5vZGUqIG9s
ZFBhcmVudCwgVmVjdG9yPE93blB0cjxOb2RlRGlnZXN0CiAgICAgICAgICAgICBjb250aW51ZTsK
IAogICAgICAgICBzaXplX3QgaiA9IG5ld01hcFtpXS5zZWNvbmQgLSAxOwotICAgICAgICBpZiAo
IW9sZE1hcFtqXS5maXJzdCAmJiBuZXdMaXN0W2kgLSAxXS0+bV9kaWdlc3QgPT0gb2xkTGlzdFtq
XS0+bV9kaWdlc3QpIHsKKyAgICAgICAgaWYgKCFvbGRNYXBbal0uZmlyc3QgJiYgbmV3TGlzdFtp
IC0gMV0tPm1fc2hhMSA9PSBvbGRMaXN0W2pdLT5tX3NoYTEpIHsKICAgICAgICAgICAgIG5ld01h
cFtpIC0gMV0gPSBtYWtlX3BhaXIobmV3TGlzdFtpIC0gMV0uZ2V0KCksIGopOwogICAgICAgICAg
ICAgb2xkTWFwW2pdID0gbWFrZV9wYWlyKG9sZExpc3Rbal0uZ2V0KCksIGkgLSAxKTsKICAgICAg
ICAgfQogICAgIH0KKyAgICByZXR1cm4gbWFrZV9wYWlyKG9sZE1hcCwgbmV3TWFwKTsKK30KKwor
Ym9vbCBET01FZGl0b3I6OmlubmVyUGF0Y2hDaGlsZHJlbihFbGVtZW50KiBlbGVtZW50LCBWZWN0
b3I8T3duUHRyPERpZ2VzdD4gPiYgb2xkTGlzdCwgVmVjdG9yPE93blB0cjxEaWdlc3Q+ID4mIG5l
d0xpc3QpCit7CisgICAgLy8gVHJpbSB0YWlsLgorICAgIHNpemVfdCBvZmZzZXQgPSAwOworICAg
IGZvciAoOyBvZmZzZXQgPCBvbGRMaXN0LnNpemUoKSAmJiBvZmZzZXQgPCBuZXdMaXN0LnNpemUo
KSAmJiBvbGRMaXN0W29sZExpc3Quc2l6ZSgpIC0gb2Zmc2V0IC0gMV0tPm1fc2hhMSA9PSBuZXdM
aXN0W25ld0xpc3Quc2l6ZSgpIC0gb2Zmc2V0IC0gMV0tPm1fc2hhMTsgKytvZmZzZXQpIHsgfQor
ICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgIG9sZExpc3QucmVzaXplKG9sZExpc3Quc2l6
ZSgpIC0gb2Zmc2V0KTsKKyAgICAgICAgbmV3TGlzdC5yZXNpemUobmV3TGlzdC5zaXplKCkgLSBv
ZmZzZXQpOworICAgIH0KIAotICAgIEhhc2hTZXQ8Tm9kZURpZ2VzdCo+IG1lcmdlczsKKyAgICAv
LyBUcmltIGhlYWQuCisgICAgZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBvbGRMaXN0LnNpemUo
KSAmJiBvZmZzZXQgPCBuZXdMaXN0LnNpemUoKSAmJiBvbGRMaXN0W29mZnNldF0tPm1fc2hhMSA9
PSBuZXdMaXN0W29mZnNldF0tPm1fc2hhMTsgKytvZmZzZXQpIHsgfQorICAgIGlmIChvZmZzZXQg
PiAwKSB7CisgICAgICAgIG9sZExpc3QucmVtb3ZlKDAsIG9mZnNldCk7CisgICAgICAgIG5ld0xp
c3QucmVtb3ZlKDAsIG9mZnNldCk7CisgICAgfQorCisgICAgcGFpcjxSZXN1bHRNYXAsIFJlc3Vs
dE1hcD4gcmVzdWx0TWFwcyA9IGRpZmYob2xkTGlzdCwgbmV3TGlzdCk7CisgICAgUmVzdWx0TWFw
JiBvbGRNYXAgPSByZXN1bHRNYXBzLmZpcnN0OworICAgIFJlc3VsdE1hcCYgbmV3TWFwID0gcmVz
dWx0TWFwcy5zZWNvbmQ7CisKKyAgICBIYXNoU2V0PERpZ2VzdCo+IG1lcmdlczsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG9sZExpc3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG9s
ZE1hcFtpXS5maXJzdCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjE0LDE2ICsyNzYsMTQg
QEAgYm9vbCBET01FZGl0b3I6OnBhdGNoQ2hpbGRyZW4oQ29udGFpbmVyTm9kZSogb2xkUGFyZW50
LCBWZWN0b3I8T3duUHRyPE5vZGVEaWdlc3QKICAgICAgICAgICAgIHNpemVfdCBhbmNob3JDYW5k
aWRhdGUgPSBpID8gb2xkTWFwW2kgLSAxXS5zZWNvbmQgKyAxIDogMDsKICAgICAgICAgICAgIHNp
emVfdCBhbmNob3JBZnRlciA9IGkgPT0gb2xkTWFwLnNpemUoKSAtIDEgPyBhbmNob3JDYW5kaWRh
dGUgKyAxIDogb2xkTWFwW2kgKyAxXS5zZWNvbmQ7CiAgICAgICAgICAgICBpZiAoYW5jaG9yQWZ0
ZXIgLSBhbmNob3JDYW5kaWRhdGUgPT0gMSAmJiBhbmNob3JDYW5kaWRhdGUgPCBuZXdMaXN0LnNp
emUoKSkgewotICAgICAgICAgICAgICAgIGlmICghcGF0Y2hOb2RlKG9sZExpc3RbaV0uZ2V0KCks
IG5ld0xpc3RbYW5jaG9yQ2FuZGlkYXRlXS5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKCFp
bm5lclBhdGNoTm9kZShvbGRMaXN0W2ldLmdldCgpLCBuZXdMaXN0W2FuY2hvckNhbmRpZGF0ZV0u
Z2V0KCkpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAg
ICAgICBtZXJnZXMuYWRkKG5ld0xpc3RbYW5jaG9yQ2FuZGlkYXRlXS5nZXQoKSk7CiAgICAgICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBvbGRMaXN0W2ldLT5tX25vZGUtPnBhcmVudE5v
ZGUoKS0+cmVtb3ZlQ2hpbGQob2xkTGlzdFtpXS0+bV9ub2RlKTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGUgPSBzdGF0aWNfY2FzdDxDb250
YWluZXJOb2RlKj4ob2xkTGlzdFtpXS0+bV9ub2RlLT5wYXJlbnROb2RlKCkpOwotICAgICAgICAg
ICAgcGFyZW50Tm9kZS0+cmVtb3ZlQ2hpbGQob2xkTGlzdFtpXS0+bV9ub2RlKTsKLSAgICAgICAg
fQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPnJlbW92ZUNoaWxkKG9sZExpc3RbaV0tPm1fbm9k
ZSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGQob2xk
TGlzdFtpXS0+bV9ub2RlKTsKICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5l
d01hcC5zaXplKCk7ICsraSkgewpAQCAtMjMxLDcgKzI5MSw3IEBAIGJvb2wgRE9NRWRpdG9yOjpw
YXRjaENoaWxkcmVuKENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCwgVmVjdG9yPE93blB0cjxOb2Rl
RGlnZXN0CiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICAgICAgb2xkUGFyZW50LT5pbnNlcnRCZWZvcmUobmV3TGlzdFtpXS0+bV9ub2Rl
LCBvbGRQYXJlbnQtPmNoaWxkTm9kZShpICsgb2Zmc2V0KSwgZWMpOworICAgICAgICBlbGVtZW50
LT5pbnNlcnRCZWZvcmUobmV3TGlzdFtpXS0+bV9ub2RlLCBlbGVtZW50LT5jaGlsZE5vZGUoaSAr
IG9mZnNldCksIGVjKTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KQEAgLTI0NSw5ICszMDUsOSBAQCBzdGF0aWMgdm9pZCBhZGRTdHJpbmdUb1NIQTEo
U0hBMSYgc2hhMSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgc2hhMS5hZGRCeXRlcyhyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihjU3RyaW5nLmRhdGEoKSksIGNTdHJpbmcubGVu
Z3RoKCkpOwogfQogCi1QYXNzT3duUHRyPERPTUVkaXRvcjo6Tm9kZURpZ2VzdD4gRE9NRWRpdG9y
OjpjcmVhdGVOb2RlRGlnZXN0KE5vZGUqIG5vZGUpCitQYXNzT3duUHRyPERPTUVkaXRvcjo6RGln
ZXN0PiBET01FZGl0b3I6OmNyZWF0ZURpZ2VzdChOb2RlKiBub2RlKQogewotICAgIE5vZGVEaWdl
c3QqIG5vZGVEaWdlc3QgPSBuZXcgTm9kZURpZ2VzdChub2RlKTsKKyAgICBEaWdlc3QqIGRpZ2Vz
dCA9IG5ldyBEaWdlc3Qobm9kZSk7CiAKICAgICBTSEExIHNoYTE7CiAKQEAgLTI1OSwzMyArMzE5
LDMzIEBAIFBhc3NPd25QdHI8RE9NRWRpdG9yOjpOb2RlRGlnZXN0PiBET01FZGl0b3I6OmNyZWF0
ZU5vZGVEaWdlc3QoTm9kZSogbm9kZSkKICAgICBpZiAobm9kZS0+bm9kZVR5cGUoKSA9PSBOb2Rl
OjpFTEVNRU5UX05PREUpIHsKICAgICAgICAgTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxk
KCk7CiAgICAgICAgIHdoaWxlIChjaGlsZCkgewotICAgICAgICAgICAgT3duUHRyPE5vZGVEaWdl
c3Q+IGNoaWxkSW5mbyA9IGNyZWF0ZU5vZGVEaWdlc3QoY2hpbGQpOwotICAgICAgICAgICAgYWRk
U3RyaW5nVG9TSEExKHNoYTEsIGNoaWxkSW5mby0+bV9kaWdlc3QpOworICAgICAgICAgICAgT3du
UHRyPERpZ2VzdD4gY2hpbGRJbmZvID0gY3JlYXRlRGlnZXN0KGNoaWxkKTsKKyAgICAgICAgICAg
IGFkZFN0cmluZ1RvU0hBMShzaGExLCBjaGlsZEluZm8tPm1fc2hhMSk7CiAgICAgICAgICAgICBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwotICAgICAgICAgICAgbm9kZURpZ2VzdC0+bV9j
aGlsZHJlbi5hcHBlbmQoY2hpbGRJbmZvLnJlbGVhc2UoKSk7CisgICAgICAgICAgICBkaWdlc3Qt
Pm1fY2hpbGRyZW4uYXBwZW5kKGNoaWxkSW5mby5yZWxlYXNlKCkpOwogICAgICAgICB9Ci0KICAg
ICAgICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKTsKLSAg
ICAgICAgY29uc3QgTmFtZWROb2RlTWFwKiBhdHRyTWFwID0gZWxlbWVudC0+YXR0cmlidXRlcyh0
cnVlKTsKKworICAgICAgICBOYW1lZE5vZGVNYXAqIGF0dHJNYXAgPSBlbGVtZW50LT5hdHRyaWJ1
dGVNYXAoKTsKICAgICAgICAgaWYgKGF0dHJNYXAgJiYgYXR0ck1hcC0+bGVuZ3RoKCkpIHsKLSAg
ICAgICAgICAgIHVuc2lnbmVkIG51bUF0dHJzID0gYXR0ck1hcC0+bGVuZ3RoKCk7CisgICAgICAg
ICAgICBzaXplX3QgbnVtQXR0cnMgPSBhdHRyTWFwLT5sZW5ndGgoKTsKICAgICAgICAgICAgIFNI
QTEgYXR0cnNTSEExOwotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUF0
dHJzOyArK2kpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQXR0cnM7
ICsraSkgewogICAgICAgICAgICAgICAgIGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlID0gYXR0
ck1hcC0+YXR0cmlidXRlSXRlbShpKTsKICAgICAgICAgICAgICAgICBhZGRTdHJpbmdUb1NIQTEo
YXR0cnNTSEExLCBhdHRyaWJ1dGUtPm5hbWUoKS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAg
ICBhZGRTdHJpbmdUb1NIQTEoYXR0cnNTSEExLCBhdHRyaWJ1dGUtPnZhbHVlKCkpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3QsIDIwPiBhdHRyc0hhc2g7CiAgICAg
ICAgICAgICBhdHRyc1NIQTEuY29tcHV0ZUhhc2goYXR0cnNIYXNoKTsKLSAgICAgICAgICAgIG5v
ZGVEaWdlc3QtPm1fYXR0cnNEaWdlc3QgPSBiYXNlNjRFbmNvZGUocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oYXR0cnNIYXNoLmRhdGEoKSksIDEwKTsKLSAgICAgICAgICAgIGFkZFN0cmlu
Z1RvU0hBMShzaGExLCBub2RlRGlnZXN0LT5tX2F0dHJzRGlnZXN0KTsKKyAgICAgICAgICAgIGRp
Z2VzdC0+bV9hdHRyc1NIQTEgPSBiYXNlNjRFbmNvZGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oYXR0cnNIYXNoLmRhdGEoKSksIDEwKTsKKyAgICAgICAgICAgIGFkZFN0cmluZ1RvU0hB
MShzaGExLCBkaWdlc3QtPm1fYXR0cnNTSEExKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIFZl
Y3Rvcjx1aW50OF90LCAyMD4gaGFzaDsKICAgICBzaGExLmNvbXB1dGVIYXNoKGhhc2gpOwotICAg
IG5vZGVEaWdlc3QtPm1fZGlnZXN0ID0gYmFzZTY0RW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KGhhc2guZGF0YSgpKSwgMTApOwotICAgIHJldHVybiBhZG9wdFB0cihub2RlRGln
ZXN0KTsKKyAgICBkaWdlc3QtPm1fc2hhMSA9IGJhc2U2NEVuY29kZShyZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPihoYXNoLmRhdGEoKSksIDEwKTsKKyAgICByZXR1cm4gYWRvcHRQdHIoZGln
ZXN0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RP
TUVkaXRvci5oCmluZGV4IDY1NzAzNGM0ODZhODg1MTYzNTQ4OWIzNTczZDA2YjVmNmNjNzk2MDgu
LjBiMzQwMmQ0YmUyMTgwYzFlOWEwNjU2OTZjN2ZhNmMxOTNiZTAzMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NRWRpdG9yLmgKQEAgLTQxLDggKzQxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7
CitjbGFzcyBIVE1MRWxlbWVudDsKK2NsYXNzIE5hbWVkTm9kZU1hcDsKIGNsYXNzIE5vZGU7CiAK
K3R5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOworCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAog
Y2xhc3MgRE9NRWRpdG9yIHsKQEAgLTUwLDE2ICs1NCwxOCBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgRE9NRWRpdG9yKERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+RE9NRWRpdG9yKCk7CiAKLSAg
ICB2b2lkIHBhdGNoKGNvbnN0IFN0cmluZyYgbWFya3VwKTsKKyAgICB2b2lkIHBhdGNoRG9jdW1l
bnQoY29uc3QgU3RyaW5nJiBtYXJrdXApOworICAgIE5vZGUqIHBhdGNoTm9kZShFcnJvclN0cmlu
ZyosIE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCk7CiAKIHByaXZhdGU6Ci0gICAgc3RydWN0
IE5vZGVEaWdlc3Q7Ci0KLSAgICBib29sIHBhdGNoRWxlbWVudChFbGVtZW50KiBvbGRFbGVtZW50
LCBFbGVtZW50KiBuZXdFbGVtZW50KTsKLSAgICBib29sIHBhdGNoTm9kZShOb2RlRGlnZXN0KiBv
bGROb2RlLCBOb2RlRGlnZXN0KiBuZXdOb2RlKTsKLSAgICBib29sIHBhdGNoQ2hpbGRyZW4oQ29u
dGFpbmVyTm9kZSogb2xkUGFyZW50LCBWZWN0b3I8T3duUHRyPE5vZGVEaWdlc3Q+ID4mIG9sZENo
aWxkcmVuLCBWZWN0b3I8T3duUHRyPE5vZGVEaWdlc3Q+ID4mIG5ld0NoaWxkcmVuKTsKLSAgICBQ
YXNzT3duUHRyPE5vZGVEaWdlc3Q+IGNyZWF0ZU5vZGVEaWdlc3QoTm9kZSopOworICAgIHN0cnVj
dCBEaWdlc3Q7CisgICAgdHlwZWRlZiBWZWN0b3I8cGFpcjxEaWdlc3QqLCBzaXplX3Q+ID4gUmVz
dWx0TWFwOwogCisgICAgYm9vbCBpbm5lclBhdGNoSFRNTEVsZW1lbnQoSFRNTEVsZW1lbnQqIG9s
ZEVsZW1lbnQsIEhUTUxFbGVtZW50KiBuZXdFbGVtZW50KTsKKyAgICBib29sIGlubmVyUGF0Y2hO
b2RlKERpZ2VzdCogb2xkTm9kZSwgRGlnZXN0KiBuZXdOb2RlKTsKKyAgICBzdGQ6OnBhaXI8UmVz
dWx0TWFwLCBSZXN1bHRNYXA+IGRpZmYoVmVjdG9yPE93blB0cjxEaWdlc3Q+ID4mIG9sZENoaWxk
cmVuLCBWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYgbmV3Q2hpbGRyZW4pOworICAgIGJvb2wgaW5u
ZXJQYXRjaENoaWxkcmVuKEVsZW1lbnQqLCBWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYgb2xkQ2hp
bGRyZW4sIFZlY3RvcjxPd25QdHI8RGlnZXN0PiA+JiBuZXdDaGlsZHJlbik7CisgICAgUGFzc093
blB0cjxEaWdlc3Q+IGNyZWF0ZURpZ2VzdChOb2RlKik7CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1l
bnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
LTAuMS5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci0wLjEuanNvbgpp
bmRleCBiNTc4OWFlNWZhNDRmYWFmZWQ1OWZkMzk0YjNiZWQ3ODg1Y2YzMTE3Li4yNzYxZGVkMmQ5
MmFlMTlkMTNmOWJhMzZmYzZkYTg5Nzk1NWQ1OGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLTAuMS5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3ItMC4xLmpzb24KQEAgLTEwNDcsOSArMTA0Nyw2IEBACiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0
aW9uIjogIklkIG9mIHRoZSBub2RlIHRvIHNldCBtYXJrdXAgZm9yLiIgfSwKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJvdXRlckhUTUwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiT3V0ZXIgSFRNTCBtYXJrdXAgdG8gc2V0LiIgfQogICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlNldHRpbmcg
b3V0ZXIgSFRNTCBjYW4gY2hhbmdlIG5vZGUncyBpZC4iIH0KLSAgICAgICAgICAgICAgICBdLAog
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIG5vZGUgSFRNTCBtYXJrdXAsIHJl
dHVybnMgbmV3IG5vZGUgaWQuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAxODE3ZDZiYjY2NGY3OTYzN2M5
NGUwNGJiMTJiYjUzOTgyNTMzOGZlLi41YmI3ODRkNTQyM2YwMTk1Njg3MTQ4NGZkODUwZDUxNjcy
ODZiNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xMjY3
LDkgKzEyNjcsNiBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIk
cmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgbm9kZSB0byBzZXQgbWFy
a3VwIGZvci4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3V0ZXJIVE1MIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk91dGVyIEhUTUwgbWFya3VwIHRvIHNl
dC4iIH0KICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIs
ICJkZXNjcmlwdGlvbiI6ICJTZXR0aW5nIG91dGVyIEhUTUwgY2FuIGNoYW5nZSBub2RlJ3MgaWQu
IiB9Ci0gICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
U2V0cyBub2RlIEhUTUwgbWFya3VwLCByZXR1cm5zIG5ldyBub2RlIGlkLiIKICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAppbmRleCA2MGRmMGY2YmNjZjY1OTZkZWE5MTZkOTIwNTc2MGVlMzI1YTg2
MjYzLi42ZThiMjg3MWJmNjdkZTY2NmIzODllZjNjYjg3YWRjZTc5YTg2Y2JjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTYzMSwxMiAr
NjMxLDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldE91dGVySFRNTChFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFdURjo6CiAgICAgKmVycm9yU3RyaW5nID0gIk9u
bHkgSFRNTEVsZW1lbnRzLCBDb21tZW50cywgYW5kIFRleHQgbm9kZXMgYXJlIHN1cHBvcnRlZCI7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgb3V0ZXJIVE1MLCBpbnQqIG5l
d0lkKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwpCiB7CiAgICAg
aWYgKCFub2RlSWQpIHsKICAgICAgICAgRE9NRWRpdG9yIGRvbUVkaXRvcihtX2RvY3VtZW50Lmdl
dCgpKTsKLSAgICAgICAgZG9tRWRpdG9yLnBhdGNoKG91dGVySFRNTCk7Ci0gICAgICAgICpuZXdJ
ZCA9IDA7CisgICAgICAgIGRvbUVkaXRvci5wYXRjaERvY3VtZW50KG91dGVySFRNTCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY1Niw0MiArNjU1LDI5IEBAIHZvaWQgSW5zcGVjdG9y
RE9NQWdlbnQ6OnNldE91dGVySFRNTChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2Rl
SWQsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOb2RlKiBwcmV2aW91c1Np
YmxpbmcgPSBub2RlLT5wcmV2aW91c1NpYmxpbmcoKTsgLy8gUmVtZW1iZXIgcHJldmlvdXMgc2li
bGluZyBiZWZvcmUgcmVwbGFjaW5nIG5vZGUuCi0KLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGZy
YWdtZW50LT5wYXJzZUhUTUwob3V0ZXJIVE1MLCBwYXJlbnROb2RlLT5ub2RlVHlwZSgpID09IE5v
ZGU6OkVMRU1FTlRfTk9ERSA/IHN0YXRpY19jYXN0PEVsZW1lbnQqPihwYXJlbnROb2RlKSA6IGRv
Y3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKSk7Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBwYXJlbnROb2RlLT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQucmVsZWFzZSgpLCBub2RlLCBl
Yyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJGYWlsZWQgdG8gcmVw
bGFjZSBOb2RlIHdpdGggbmV3IGNvbnRlbnRzIjsKKyAgICBET01FZGl0b3IgZG9tRWRpdG9yKGRv
Y3VtZW50KTsKKyAgICBOb2RlKiBuZXdOb2RlID0gZG9tRWRpdG9yLnBhdGNoTm9kZShlcnJvclN0
cmluZywgbm9kZSwgb3V0ZXJIVE1MKTsKKyAgICBpZiAoIWVycm9yU3RyaW5nLT5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBib29sIHJlcXVpcmVzVG90YWxVcGRhdGUg
PSBmYWxzZTsKLSAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKQotICAgICAgICByZXF1aXJl
c1RvdGFsVXBkYXRlID0gbm9kZS0+bm9kZU5hbWUoKSA9PSAiSFRNTCIgfHwgbm9kZS0+bm9kZU5h
bWUoKSA9PSAiQk9EWSIgfHwgbm9kZS0+bm9kZU5hbWUoKSA9PSAiSEVBRCI7CiAKKyAgICBib29s
IHJlcXVpcmVzVG90YWxVcGRhdGUgPSBub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgKG5vZGUtPm5v
ZGVOYW1lKCkgPT0gIkhUTUwiIHx8IG5vZGUtPm5vZGVOYW1lKCkgPT0gIkJPRFkiIHx8IG5vZGUt
Pm5vZGVOYW1lKCkgPT0gIkhFQUQiKTsKICAgICBpZiAocmVxdWlyZXNUb3RhbFVwZGF0ZSkgewog
ICAgICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gbV9kb2N1bWVudDsKICAgICAgICAg
cmVzZXQoKTsKICAgICAgICAgc2V0RG9jdW1lbnQoZG9jdW1lbnQuZ2V0KCkpOwotICAgICAgICAq
bmV3SWQgPSAwOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTm9kZSogbmV3Tm9kZSA9
IHByZXZpb3VzU2libGluZyA/IHByZXZpb3VzU2libGluZy0+bmV4dFNpYmxpbmcoKSA6IHBhcmVu
dE5vZGUtPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAoIW5ld05vZGUpIHsKICAgICAgICAgLy8gVGhl
IG9ubHkgY2hpbGQgbm9kZSBoYXMgYmVlbiBkZWxldGVkLgotICAgICAgICAqbmV3SWQgPSAwOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgKm5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9u
dGVuZChuZXdOb2RlKTsKKyAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5l
d05vZGUpOwogCiAgICAgYm9vbCBjaGlsZHJlblJlcXVlc3RlZCA9IG1fY2hpbGRyZW5SZXF1ZXN0
ZWQuY29udGFpbnMobm9kZUlkKTsKICAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0ZWQpCi0gICAgICAg
IHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZCgqbmV3SWQpOworICAgICAgICBwdXNoQ2hpbGROb2Rl
c1RvRnJvbnRlbmQobmV3SWQpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXROb2Rl
VmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcm
IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApp
bmRleCAxN2Y2MmE2Yjc0NzdiYjJhYzM0NDgxYTI2NWY5N2IyZDU3MmY4MTAxLi45MTA5ZWEyODc2
MWNiYTJjZDJjNjAyNmU5MTQ3NjJlNGM2ODg5YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlbW92ZU5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkKTsKICAgICB2b2lkIHNl
dE5vZGVOYW1lKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBp
bnQqIG5ld0lkKTsKICAgICB2b2lkIGdldE91dGVySFRNTChFcnJvclN0cmluZyosIGludCBub2Rl
SWQsIFdURjo6U3RyaW5nKiBvdXRlckhUTUwpOwotICAgIHZvaWQgc2V0T3V0ZXJIVE1MKEVycm9y
U3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwsIGludCogbmV3SWQp
OworICAgIHZvaWQgc2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3Qg
U3RyaW5nJiBvdXRlckhUTUwpOwogICAgIHZvaWQgc2V0Tm9kZVZhbHVlKEVycm9yU3RyaW5nKiwg
aW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBnZXRFdmVudExpc3Rl
bmVyc0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+JiBsaXN0ZW5lcnNBcnJheSk7CiAgICAgdm9pZCBwZXJmb3JtU2VhcmNoKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBTdHJpbmcqIHNlYXJjaElk
LCBpbnQqIHJlc3VsdENvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzCmluZGV4IGRmZDQ4NmNhNzM3NWZkMzk5NjUxMjJmMTFkNWI4YWZlNDY1
YWY2ZWQuLmZiODY4ZmE5MjhmZTc2OGNjZTE0ZjM0NDA2MDliOGEzMmYwZWZiOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtNTIsNyAr
NTIsNyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGZ1bmN0aW9uKGRvYywgcGF5bG9hZCkgewog
ICAgIHRoaXMuY2hpbGRyZW4gPSBudWxsOwogCiAgICAgdGhpcy5uZXh0U2libGluZyA9IG51bGw7
Ci0gICAgdGhpcy5wcmV2U2libGluZyA9IG51bGw7CisgICAgdGhpcy5wcmV2aW91c1NpYmxpbmcg
PSBudWxsOwogICAgIHRoaXMuZmlyc3RDaGlsZCA9IG51bGw7CiAgICAgdGhpcy5sYXN0Q2hpbGQg
PSBudWxsOwogICAgIHRoaXMucGFyZW50Tm9kZSA9IG51bGw7CkBAIC00MjIsNyArNDIyLDcgQEAg
V2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGNoaWxk
ID0gdGhpcy5jaGlsZHJlbltpXTsKICAgICAgICAgICAgIGNoaWxkLmluZGV4ID0gaTsKICAgICAg
ICAgICAgIGNoaWxkLm5leHRTaWJsaW5nID0gaSArIDEgPCB0aGlzLl9jaGlsZE5vZGVDb3VudCA/
IHRoaXMuY2hpbGRyZW5baSArIDFdIDogbnVsbDsKLSAgICAgICAgICAgIGNoaWxkLnByZXZTaWJs
aW5nID0gaSAtIDEgPj0gMCA/IHRoaXMuY2hpbGRyZW5baSAtIDFdIDogbnVsbDsKKyAgICAgICAg
ICAgIGNoaWxkLnByZXZpb3VzU2libGluZyA9IGkgLSAxID49IDAgPyB0aGlzLmNoaWxkcmVuW2kg
LSAxXSA6IG51bGw7CiAgICAgICAgICAgICBjaGlsZC5wYXJlbnROb2RlID0gdGhpczsKICAgICAg
ICAgfQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggNTAxNzg5NmQ5NzM5MzI5OWY3MzFl
YjY3MzhlMWIzNWU5MDc2YWIzZS4uMmU5MzJjZmJmNTg3OWI0Nzc5NWVjZWVkZGNkNTA4ZDg4ZTZj
OGExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMTY2NCwyMCArMTY2NCwyNiBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2
YXIgdHJlZU91dGxpbmUgPSB0aGlzLnRyZWVPdXRsaW5lOwogICAgICAgICB2YXIgbm9kZSA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIHZhciBwYXJlbnROb2RlID0gbm9kZS5wYXJl
bnROb2RlOworICAgICAgICB2YXIgaW5kZXggPSBub2RlLmluZGV4OwogICAgICAgICB2YXIgd2Fz
RXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkOwogCiAgICAgICAgIGZ1bmN0aW9uIHNlbGVjdE5vZGUo
ZXJyb3IsIG5vZGVJZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFub2Rl
SWQpCisgICAgICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgICAgICB2YXIgbm9kZSA9IFdlYkluc3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQobm9k
ZUlkKTsKICAgICAgICAgICAgIC8vIFNlbGVjdCBpdCBhbmQgZXhwYW5kIGlmIG5lY2Vzc2FyeS4g
V2UgZm9yY2UgdHJlZSB1cGRhdGUgc28gdGhhdCBpdCBwcm9jZXNzZXMgZG9tIGV2ZW50cyBhbmQg
aXMgdXAgdG8gZGF0ZS4KICAgICAgICAgICAgIHRyZWVPdXRsaW5lLl91cGRhdGVNb2RpZmllZE5v
ZGVzKCk7Ci0gICAgICAgICAgICB0cmVlT3V0bGluZS5zZWxlY3RET01Ob2RlKG5vZGUsIHRydWUp
OworCisgICAgICAgICAgICB2YXIgbmV3Tm9kZSA9IHBhcmVudE5vZGUgPyBwYXJlbnROb2RlLmNo
aWxkcmVuW2luZGV4XSB8fCBwYXJlbnROb2RlIDogbnVsbDsKKyAgICAgICAgICAgIGlmICghbmV3
Tm9kZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHRyZWVPdXRsaW5l
LnNlbGVjdERPTU5vZGUobmV3Tm9kZSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGlmICh3YXNFeHBh
bmRlZCkgewotICAgICAgICAgICAgICAgIHZhciBuZXdUcmVlSXRlbSA9IHRyZWVPdXRsaW5lLmZp
bmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAgICAgICAgICB2YXIgbmV3VHJlZUl0ZW0gPSB0
cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobmV3Tm9kZSk7CiAgICAgICAgICAgICAgICAgaWYg
KG5ld1RyZWVJdGVtKQogICAgICAgICAgICAgICAgICAgICBuZXdUcmVlSXRlbS5leHBhbmQoKTsK
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTYxOGI0YWYxOGU5NmFmOTE1ZDg2MTFmNmUxNGE3MWNj
ZmM2MDZhLi5kOWRlNWE1Njc3NWIyYzhiOWZlNDMwNDhiNmIzYjEzMGVlYjU2YTc3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMDEtMTEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29n
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2Ugc2V0T3V0ZXJIVE1MIHVzZSBu
ZXcgRE9NRWRpdG9yLCBjb3ZlciBpdCB3aXRoIHRlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1h
Y3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1k
b20tYWN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXIt
aHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9z
ZXQtb3V0ZXItaHRtbC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0xMCAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEwNDI2MyBhbmQgcjEwNDM4MS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBh
YTRkM2VkY2U0YWUxNDU2NTg4ZTE5NDVkMmRjNWEwNmJlOTMxYzFlLi4wYTViODkxMGZiOGYxMjJk
NmVlOTU2Yjg1MDBkZjNkMzRkMmU1OTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC05
Nyw4ICs5Nyw4IEBAIFJ1bm5pbmc6IHRlc3RFZGl0QXNIVE1MCiA8ZGl2IGlkPSJub2RlLXRvLWVk
aXQtYXMtaHRtbCI+PHNwYW4gaWQ9InNwYW4iPlRleHQ8L3NwYW4+PC9kaXY+CiA9PT09IGFmdGVy
ID09PT0KIC0gPGRpdiBpZD0idGVzdEVkaXRBc0hUTUwiPgotICAgIC0gPGRpdiBmb289ImJhciI+
CisgICAgLSA8c3BhbiBmb289ImJhciI+CiAgICAgICAgICAgPHNwYW4gaWQ9ImlubmVyLXNwYW4i
PlNwYW4gY29udGVudHM8L3NwYW4+Ci0gICAgICA8L2Rpdj4KKyAgICAgIDwvc3Bhbj4KICAgPC9k
aXY+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRv
bS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20t
YWN0aW9ucy5odG1sCmluZGV4IDgxOGM2YjNmYTE4YjdiM2QzMmI2ZGJmY2MwMDZmZTljMjAzZTg4
Y2QuLmY2ZDgzZmNmOTY4YTYzMDlkZDQ4NGIyOTE1MTBkOTVlZWNkM2EzZTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMuaHRtbApA
QCAtMTQ3LDcgKzE0Nyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KHRyZWVFbGVtZW50Ll9odG1sRWRpdEVsZW1lbnQudGV4dENvbnRl
bnQpOwotICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50LnRl
eHRDb250ZW50ID0gIjxkaXYgZm9vPVwiYmFyXCI+PHNwYW4gaWQ9XCJpbm5lci1zcGFuXCI+U3Bh
biBjb250ZW50czwvc3Bhbj48L2Rpdj4iOworICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVu
dC5faHRtbEVkaXRFbGVtZW50LnRleHRDb250ZW50ID0gIjxzcGFuIGZvbz1cImJhclwiPjxzcGFu
IGlkPVwiaW5uZXItc3BhblwiPlNwYW4gY29udGVudHM8L3NwYW4+PC9zcGFuPiI7CiAgICAgICAg
ICAgICAgICAgICAgIHZhciBldmVudCA9IEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVu
dGVyIik7CiAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmlzTWV0YU9yQ3RybEZvclRlc3QgPSB0
cnVlOwogICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50LmRp
c3BhdGNoRXZlbnQoZXZlbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL3NldC1vdXRlci1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU0NTMw
ODc0MDkzYTVkYjIyOTUzYzgzZjhjNDkzNTU1NmQwY2YxYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMDMgQEAKK1Rlc3RzIERPTUFnZW50LnNldE91dGVySFRNTCBwcm90b2NvbCBt
ZXRob2QuCisKKworUnVubmluZzogdGVzdFNldFVwCisKK1J1bm5pbmc6IHRlc3RDaGFuZ2VDaGFy
YWN0ZXJEYXRhCitSZXBsYWNpbmcgJ0dldHRpbmcgaW52b2x2ZWQnIHdpdGggJ0dldHRpbmcgbm90
IGludm9sdmVkJyBhbmQgYmFjaycKK0V2ZW50IENoYXJhY3RlckRhdGFNb2RpZmllZDogCis9PT09
PT09PT09ODw9PT09PT09PT09Cis8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5v
bmUiPgorPGgyPldlbGNvbWUgdG8gdGhlIHdlYnNpdGUgZm9yIHRoZSBXZWJLaXQgT3BlbiBTb3Vy
Y2UgUHJvamVjdCE8L2gyPgorPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3
dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KKwor
PGgyPkdldHRpbmcgbm90IGludm9sdmVkPC9oMj4KKzxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5Lndl
YmtpdC5vcmcvIj48L2E+Cis8cD5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4g
WW91IGNhbjo8L3A+Cis8dWw+CisgICA8bGk+PGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0
Lm9yZy8iPmRvd25sb2FkIHRoZSBsYXRlc3QgbmlnaHRseSBidWlsZDwvYT48L2xpPgorPC91bD4K
KzwvZGl2PgorPT09PT09PT09PT44PT09PT09PT09PQorRXZlbnQgQ2hhcmFjdGVyRGF0YU1vZGlm
aWVkOiAKKz09PT09PT09PT04PD09PT09PT09PT0KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9
ImRpc3BsYXk6bm9uZSI+Cis8aDI+V2VsY29tZSB0byB0aGUgd2Vic2l0ZSBmb3IgdGhlIFdlYktp
dCBPcGVuIFNvdXJjZSBQcm9qZWN0ITwvaDI+Cis8cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVm
PSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0
Yy4uPC9wPgorCis8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Cis8YSBocmVmPSJodHRwOi8vbmln
aHRseS53ZWJraXQub3JnLyI+PC9hPgorPHA+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52
b2x2ZWQuIFlvdSBjYW46PC9wPgorPHVsPgorICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5
LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9saT4K
KzwvdWw+Cis8L2Rpdj4KKz09PT09PT09PT0+OD09PT09PT09PT0KKworUnVubmluZzogdGVzdENo
YW5nZUF0dHJpYnV0ZXMKK1JlcGxhY2luZyAnPGEgaHJlZicgd2l0aCAnPGEgZm9vPSJiYXIiIGhy
ZWYnIGFuZCBiYWNrJworRXZlbnQgQXR0clJlbW92ZWQ6IEEKK0V2ZW50IEF0dHJNb2RpZmllZDog
QQorRXZlbnQgQXR0ck1vZGlmaWVkOiBBCis9PT09PT09PT09ODw9PT09PT09PT09Cis8ZGl2IGlk
PSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorPGgyPldlbGNvbWUgdG8gdGhlIHdl
YnNpdGUgZm9yIHRoZSBXZWJLaXQgT3BlbiBTb3VyY2UgUHJvamVjdCE8L2gyPgorPHA+V2ViS2l0
IGlzIHVzZWQgYnkgPGEgZm9vPSJiYXIiIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFy
aS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+CisKKzxoMj5HZXR0aW5nIGludm9s
dmVkPC9oMj4KKzxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj48L2E+Cis8cD5U
aGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Cis8dWw+Cisg
ICA8bGk+PGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPmRvd25sb2FkIHRoZSBs
YXRlc3QgbmlnaHRseSBidWlsZDwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPT09PT09PT09PT44
PT09PT09PT09PQorRXZlbnQgQXR0clJlbW92ZWQ6IEEKK0V2ZW50IEF0dHJSZW1vdmVkOiBBCitF
dmVudCBBdHRyTW9kaWZpZWQ6IEEKKz09PT09PT09PT04PD09PT09PT09PT0KKzxkaXYgaWQ9ImNv
bnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cis8aDI+V2VsY29tZSB0byB0aGUgd2Vic2l0
ZSBmb3IgdGhlIFdlYktpdCBPcGVuIFNvdXJjZSBQcm9qZWN0ITwvaDI+Cis8cD5XZWJLaXQgaXMg
dXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+
LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgorCis8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Cis8YSBo
cmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+PC9hPgorPHA+VGhlcmUgYXJlIG1hbnkg
d2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgorPHVsPgorICAgPGxpPjxhIGhyZWY9
Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0ZXN0IG5pZ2h0bHkg
YnVpbGQ8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKz09PT09PT09PT0+OD09PT09PT09PT0KKwor
UnVubmluZzogdGVzdFJlbW92ZUxhc3RDaGlsZAorUmVwbGFjaW5nICdHZXR0aW5nIGludm9sdmVk
JyB3aXRoICcnIGFuZCBiYWNrJworRXZlbnQgTm9kZVJlbW92ZWQ6IAorPT09PT09PT09PTg8PT09
PT09PT09PQorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KKzxoMj5X
ZWxjb21lIHRvIHRoZSB3ZWJzaXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3Qh
PC9oMj4KKzxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29t
L3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+CisKKzxoMj48L2gyPgor
PGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPjwvYT4KKzxwPlRoZXJlIGFyZSBt
YW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzx1bD4KKyAgIDxsaT48YSBo
cmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+ZG93bmxvYWQgdGhlIGxhdGVzdCBuaWdo
dGx5IGJ1aWxkPC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis9PT09PT09PT09Pjg9PT09PT09PT09
CitFdmVudCBOb2RlSW5zZXJ0ZWQ6IAorPT09PT09PT09PTg8PT09PT09PT09PQorPGRpdiBpZD0i
Y29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KKzxoMj5XZWxjb21lIHRvIHRoZSB3ZWJz
aXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9oMj4KKzxwPldlYktpdCBp
cyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwv
YT4sIERhc2hib2FyZCwgZXRjLi48L3A+CisKKzxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KKzxh
IGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj48L2E+Cis8cD5UaGVyZSBhcmUgbWFu
eSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Cis8dWw+CisgICA8bGk+PGEgaHJl
Zj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPmRvd25sb2FkIHRoZSBsYXRlc3QgbmlnaHRs
eSBidWlsZDwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPT09PT09PT09PT44PT09PT09PT09PQor
CitSdW5uaW5nOiB0ZXN0U3BsaXROb2RlCitSZXBsYWNpbmcgJ0dldHRpbmcgaW52b2x2ZWQnIHdp
dGggJ0dldHRpbmc8L2gyPjxoMj5pbnZvbHZlZCcgYW5kIGJhY2snCitFdmVudCBDaGFyYWN0ZXJE
YXRhTW9kaWZpZWQ6IAorRXZlbnQgTm9kZUluc2VydGVkOiBIMgorPT09PT09PT09PTg8PT09PT09
PT09PQorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KKzxoMj5XZWxj
b21lIHRvIHRoZSB3ZWJzaXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9o
Mj4KKzxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3Nh
ZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+CisKKzxoMj5HZXR0aW5nPC9o
Mj48aDI+aW52b2x2ZWQ8L2gyPgorPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8i
PjwvYT4KKzxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwv
cD4KKzx1bD4KKyAgIDxsaT48YSBocmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+ZG93
bmxvYWQgdGhlIGxhdGVzdCBuaWdodGx5IGJ1aWxkPC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis9
PT09PT09PT09Pjg9PT09PT09PT09CitFdmVudCBOb2RlUmVtb3ZlZDogSDIKK0V2ZW50IE5vZGVS
ZW1vdmVkOiBIMgorRXZlbnQgTm9kZUluc2VydGVkOiBIMgorPT09PT09PT09PTg8PT09PT09PT09
PQorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KKzxoMj5XZWxjb21l
IHRvIHRoZSB3ZWJzaXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9oMj4K
KzxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFy
aS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+CisKKzxoMj5HZXR0aW5nIGludm9s
dmVkPC9oMj4KKzxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj48L2E+Cis8cD5U
aGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Cis8dWw+Cisg
ICA8bGk+PGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPmRvd25sb2FkIHRoZSBs
YXRlc3QgbmlnaHRseSBidWlsZDwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPT09PT09PT09PT44
PT09PT09PT09PQorCitSdW5uaW5nOiB0ZXN0Q2hhbmdlTm9kZU5hbWUKK1JlcGxhY2luZyAnPGgy
PkdldHRpbmcgaW52b2x2ZWQ8L2gyPicgd2l0aCAnPGgzPkdldHRpbmcgaW52b2x2ZWQ8L2gzPicg
YW5kIGJhY2snCitFdmVudCBOb2RlUmVtb3ZlZDogSDIKK0V2ZW50IE5vZGVJbnNlcnRlZDogSDMK
Kz09PT09PT09PT04PD09PT09PT09PT0KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+Cis8aDI+V2VsY29tZSB0byB0aGUgd2Vic2l0ZSBmb3IgdGhlIFdlYktpdCBPcGVu
IFNvdXJjZSBQcm9qZWN0ITwvaDI+Cis8cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRw
Oi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9w
PgorCis8aDM+R2V0dGluZyBpbnZvbHZlZDwvaDM+Cis8YSBocmVmPSJodHRwOi8vbmlnaHRseS53
ZWJraXQub3JnLyI+PC9hPgorPHA+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQu
IFlvdSBjYW46PC9wPgorPHVsPgorICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtp
dC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9saT4KKzwvdWw+
Cis8L2Rpdj4KKz09PT09PT09PT0+OD09PT09PT09PT0KK0V2ZW50IE5vZGVSZW1vdmVkOiBIMwor
RXZlbnQgTm9kZUluc2VydGVkOiBIMgorPT09PT09PT09PTg8PT09PT09PT09PQorPGRpdiBpZD0i
Y29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KKzxoMj5XZWxjb21lIHRvIHRoZSB3ZWJz
aXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9oMj4KKzxwPldlYktpdCBp
cyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwv
YT4sIERhc2hib2FyZCwgZXRjLi48L3A+CisKKzxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KKzxh
IGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj48L2E+Cis8cD5UaGVyZSBhcmUgbWFu
eSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Cis8dWw+CisgICA8bGk+PGEgaHJl
Zj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPmRvd25sb2FkIHRoZSBsYXRlc3QgbmlnaHRs
eSBidWlsZDwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPT09PT09PT09PT44PT09PT09PT09PQor
CitSdW5uaW5nOiB0ZXN0Q2hhbmdlTXVsdGlwbGVUaGluZ3MKK0V2ZW50IEF0dHJNb2RpZmllZDog
SDIKK0V2ZW50IEF0dHJNb2RpZmllZDogSDIKK0V2ZW50IE5vZGVSZW1vdmVkOiBMSQorPT09PT09
PT09PTg8PT09PT09PT09PQorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25l
Ij4KKzxoMiBmb289ImJhciIgYmFyPSJiYXoiPldlbGNvbWUgdG8gdGhlIHdlYnNpdGUgZm9yIHRo
ZSBXZWJLaXQgT3BlbiBTb3VyY2UgUHJvamVjdCE8L2gyPgorPHA+V2ViS2l0IGlzIHVzZWQgYnkg
PGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJv
YXJkLCBldGMuLjwvcD4KKworPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgorPGEgaHJlZj0iaHR0
cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPjwvYT4KKzxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8g
Z2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzx1bD4KKyAgIAorPC91bD4KKzwvZGl2PgorPT09
PT09PT09PT44PT09PT09PT09PQorRXZlbnQgQXR0clJlbW92ZWQ6IEgyCitFdmVudCBBdHRyUmVt
b3ZlZDogSDIKK0V2ZW50IE5vZGVJbnNlcnRlZDogTEkKKz09PT09PT09PT04PD09PT09PT09PT0K
KzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cis8aDI+V2VsY29tZSB0
byB0aGUgd2Vic2l0ZSBmb3IgdGhlIFdlYktpdCBPcGVuIFNvdXJjZSBQcm9qZWN0ITwvaDI+Cis8
cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkv
Ij5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgorCis8aDI+R2V0dGluZyBpbnZvbHZl
ZDwvaDI+Cis8YSBocmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+PC9hPgorPHA+VGhl
cmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgorPHVsPgorICAg
PGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0
ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKz09PT09PT09PT0+OD09
PT09PT09PT0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Nl
dC1vdXRlci1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91
dGVyLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzU3NzkzNzc3Y2M3M2RlMTA0MWFlYTFjN2YwYTQ3
MDU0MTk2ZTBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL3NldC1vdXRlci1odG1sLmh0bWwKQEAgLTAsMCArMSwxMzYgQEAKKzxodG1sPgorPGhlYWQ+
CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICB2YXIgY29udGFpbmVySWQ7CisgICAgdmFyIGNvbnRhaW5lclRleHQ7CisKKyAgICBJ
bnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRVcChu
ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRz
VHJlZShzdGVwMSk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoImNvbnRh
aW5lciIsIHN0ZXAyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3Rl
cDIobm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb250YWluZXJJZCA9IG5v
ZGUuaWQ7CisgICAgICAgICAgICAgICAgRE9NQWdlbnQuZ2V0T3V0ZXJIVE1MKGNvbnRhaW5lcklk
LCBzdGVwMyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKGVy
cm9yLCB0ZXh0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnRhaW5lclRleHQg
PSB0ZXh0OworCisgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIFdlYkluc3BlY3Rvci5E
T01BZ2VudC5FdmVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50TmFtZSA9IFdl
Ykluc3BlY3Rvci5ET01BZ2VudC5FdmVudHNba2V5XTsKKyAgICAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBkdW1wRXZlbnQu
YmluZChudWxsLCBldmVudE5hbWUpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rp
b24gdGVzdENoYW5nZUNoYXJhY3RlckRhdGEobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAg
cGF0Y2hPdXRlckhUTUwoIkdldHRpbmcgaW52b2x2ZWQiLCAiR2V0dGluZyBub3QgaW52b2x2ZWQi
LCBuZXh0KTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0Q2hhbmdlQXR0cmli
dXRlcyhuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBwYXRjaE91dGVySFRNTCgiPGEgaHJl
ZiIsICI8YSBmb289XCJiYXJcIiBocmVmIiwgbmV4dCk7CisgICAgICAgIH0sCisKKyAgICAgICAg
ZnVuY3Rpb24gdGVzdFJlbW92ZUxhc3RDaGlsZChuZXh0KQorICAgICAgICB7CisgICAgICAgICAg
ICBwYXRjaE91dGVySFRNTCgiR2V0dGluZyBpbnZvbHZlZCIsICIiLCBuZXh0KTsKKyAgICAgICAg
fSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0U3BsaXROb2RlKG5leHQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHBhdGNoT3V0ZXJIVE1MKCJHZXR0aW5nIGludm9sdmVkIiwgIkdldHRpbmc8L2gy
PjxoMj5pbnZvbHZlZCIsIG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRl
c3RDaGFuZ2VOb2RlTmFtZShuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBwYXRjaE91dGVy
SFRNTCgiPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPiIsICI8aDM+R2V0dGluZyBpbnZvbHZlZDwv
aDM+IiwgbmV4dCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdENoYW5nZU11
bHRpcGxlVGhpbmdzKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRleHQgPSBjb250YWlu
ZXJUZXh0LnJlcGxhY2UoLzxsaT4uKjxcL2xpPi8sICIiKTsKKyAgICAgICAgICAgIHRleHQgPSB0
ZXh0LnJlcGxhY2UoIjxoMj4iLCAiPGgyIGZvbz1cImJhclwiIGJhcj1cImJhelwiPiIpOworICAg
ICAgICAgICAgc2V0T3V0ZXJIVE1MKHRleHQsIG5leHQpOworICAgICAgICB9CisgICAgXSk7CisK
KyAgICBmdW5jdGlvbiBkdW1wRXZlbnQoZXZlbnROYW1lLCBldmVudCkKKyAgICB7CisgICAgICAg
IHZhciBub2RlID0gZXZlbnQuZGF0YS5ub2RlIHx8IGV2ZW50LmRhdGE7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJFdmVudCAiICsgZXZlbnROYW1lICsgIjogIiArIG5vZGUubm9k
ZU5hbWUoKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcGF0Y2hPdXRlckhUTUwocGF0dGVybiwg
cmVwbGFjZW1lbnQsIG5leHQpCisgICAgeworICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJSZXBsYWNpbmcgJyIgKyBwYXR0ZXJuICsgIicgd2l0aCAnIiArIHJlcGxhY2VtZW50ICsgIicg
YW5kIGJhY2snIik7CisgICAgICAgc2V0T3V0ZXJIVE1MKGNvbnRhaW5lclRleHQucmVwbGFjZShw
YXR0ZXJuLCByZXBsYWNlbWVudCksIG5leHQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldE91
dGVySFRNTChuZXdUZXh0LCBuZXh0KQorICAgIHsKKyAgICAgICAgaW5uZXJTZXRPdXRlckhUTUwo
bmV3VGV4dCwgYnJpbmdCYWNrKTsKKworICAgICAgICBmdW5jdGlvbiBicmluZ0JhY2soKQorICAg
ICAgICB7CisgICAgICAgICAgICBpbm5lclNldE91dGVySFRNTChjb250YWluZXJUZXh0LCBuZXh0
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGlubmVyU2V0T3V0ZXJIVE1MKG5l
d1RleHQsIG5leHQpCisgICAgeworICAgICAgICBET01BZ2VudC5zZXRPdXRlckhUTUwoY29udGFp
bmVySWQsIG5ld1RleHQsIGR1bXBPdXRlckhUTUwpOworCisgICAgICAgIGZ1bmN0aW9uIGR1bXBP
dXRlckhUTUwoKQorICAgICAgICB7CisgICAgICAgICAgICBET01BZ2VudC5nZXRPdXRlckhUTUwo
Y29udGFpbmVySWQsIGNhbGxiYWNrKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2so
ZXJyb3IsIHRleHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIj09PT09PT09PT04PD09PT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT44PT09PT09PT09PSIpOworICAgICAgICAgICAgICAg
IG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIERPTUFnZW50
LnNldE91dGVySFRNTCBwcm90b2NvbCBtZXRob2QuCis8L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5l
ciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cis8aDI+V2VsY29tZSB0byB0aGUgd2Vic2l0ZSBmb3Ig
dGhlIFdlYktpdCBPcGVuIFNvdXJjZSBQcm9qZWN0ITwvaDI+Cis8cD5XZWJLaXQgaXMgdXNlZCBi
eSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNo
Ym9hcmQsIGV0Yy48L2E+LjwvcD4KKworPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgorPGEgaHJl
Zj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPjwvYT4KKzxwPlRoZXJlIGFyZSBtYW55IHdh
eXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzx1bD4KKyAgIDxsaT48YSBocmVmPSJo
dHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+ZG93bmxvYWQgdGhlIGxhdGVzdCBuaWdodGx5IGJ1
aWxkPC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="122697"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>