<?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>7125</bug_id>
          
          <creation_ts>2006-02-06 23:31:23 -0800</creation_ts>
          <short_desc>remove frame, renderer and completed flag from ChildFrame, make Frame track these</short_desc>
          <delta_ts>2006-02-08 10:37:48 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>ap</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31691</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-06 23:31:23 -0800</bug_when>
    <thetext>This patch removes pretty much all remaining interesting content from ChildFrame, and splits frames and plugins more thoroughly. &lt;object&gt; tags containing html now act more like frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31693</commentid>
    <comment_count>1</comment_count>
      <attachid>6319</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-07 00:03:23 -0800</bug_when>
    <thetext>Created attachment 6319
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31696</commentid>
    <comment_count>2</comment_count>
      <attachid>6319</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-07 01:00:52 -0800</bug_when>
    <thetext>Comment on attachment 6319
the patch

Eric reviewed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31736</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-07 10:34:08 -0800</bug_when>
    <thetext>fast/dom/HTMLObjectElement/object-as-frame.html fails for me:

-PASS window.frames[1].location.toString() is &quot;data:text/html,Updated contents of object&quot;
+FAIL window.frames[1].location.toString() should be data:text/html,Updated contents of object. Was data:text/html,New contents of frame

LEAK: 51 RenderObject
LEAK: 63 NodeImpl
LEAK: 3 Frame
LEAK: 526 KJS::Node

Not reopening, because the bug was not closed yet, even though the patch has been landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31813</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-02-07 23:03:23 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; fast/dom/HTMLObjectElement/object-as-frame.html fails for me:
&gt; 
&gt; -PASS window.frames[1].location.toString() is &quot;data:text/html,Updated contents
&gt; of object&quot;
&gt; +FAIL window.frames[1].location.toString() should be data:text/html,Updated
&gt; contents of object. Was data:text/html,New contents of frame

I can confirm that the test is failing as of r12654, but as Alexey said on IRC, only on a dual-processor machine with both processors enabled. If I disable one of the processors, the test passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31814</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-07 23:29:43 -0800</bug_when>
    <thetext>Only fails on dual processors - that means a likely race condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31833</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-08 10:37:48 -0800</bug_when>
    <thetext>Opened bug 7142 to track the test failure.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6319</attachid>
            <date>2006-02-07 00:03:23 -0800</date>
            <delta_ts>2006-02-07 01:00:52 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>still-more-frame-cleanup.patch.txt</filename>
            <type>text/plain</type>
            <size>40570</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyNjM1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDYtMDItMDYgIE1hY2llaiBTdGFjaG93aWFr
ICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgCisgICAgICAgIC0gdGVzdCBjYXNlIHRoYXQgdmVyaWZpZXMgdGhhdCA8b2JqZWN0
PiBjb250YWluaW5nIGh0bWwgaXMgdHJlYXRlZAorICAgICAgICAgIGxpa2UgPGlmcmFtZT4gaW4g
dmFyaW91cyByZXNwZWN0cworICAgICAgICBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcv
c2hvd19idWcuY2dpP2lkPTcxMjUKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxPYmplY3RFbGVt
ZW50L29iamVjdC1hcy1mcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxPYmplY3RFbGVtZW50L29iamVjdC1hcy1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgCisgICAgICAgIC0gdXBkYXRlZCB0aGlzIHRlc3QgdG8gcmVmbGVjdCB0aGF0IHRoZSBvbmxv
YWQgZXZlbnQgbm93IGZpcmVzIGZvciBpZnJhbWVzLAorICAgICAgICAgIGluY2x1ZGluZyBvbmVz
IHdpdGggZW1wdHkgc3JjCisgICAgICAgIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzYwOQorCisgICAgICAgICogZmFzdC9ldmVudHMvZXZlbnQtdGFyZ2V0
cy1leHBlY3RlZC5jaGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9ldmVu
dC10YXJnZXRzLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9l
dmVudC10YXJnZXRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9ldmVudC10
YXJnZXRzLmh0bWw6CisKIDIwMDYtMDItMDUgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2V2ZW50LXRhcmdldHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9ldmVudC10YXJnZXRzLmh0bWwJKHJldmlzaW9uIDEyNjA2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtdGFyZ2V0cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
LDYgKzQsOSBAQAogPEhFQUQ+CiA8VElUTEU+VGVzdCBvbnVubG9hZCBhbmQgb25sb2FkIGV2ZW50
cyBmb3IgYm9keS10eXBlIGRvY3VtZW50PC9USVRMRT4KIDxTQ1JJUFQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKwogZnVuY3Rpb24gcmVtb3ZlRWxlbWVudEJ5SWQodmljdGltSUQpCiB7CiAJdmljID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQodmljdGltSUQpOwpAQCAtMjMsMjEgKzI2LDIxIEBAIGZ1bmN0
aW9uIGJvbGRDYXB0aW9uKGNhcHRpb25JRCkKIAl9CiAJCiAJY2FwLnNldEF0dHJpYnV0ZSgnc3R5
bGUnLCdmb250LXdlaWdodDpib2xkOycpOworCWNhcC5pbm5lclRleHQgKz0gIiAtIGZpcmVkIjsK
IH0KIAogPC9TQ1JJUFQ+CiA8L0hFQUQ+CiA8Qk9EWSBpZD0ibXlCb2R5IiBvbmxvYWQ9InJlbW92
ZUVsZW1lbnRCeUlkKCdteUltYWdlJyk7IHJlbW92ZUVsZW1lbnRCeUlkKCdteU9iamVjdCcpOyBy
ZW1vdmVFbGVtZW50QnlJZCgnbXlJRnJhbWUnKTsiIj4KLTxQPjxVPkFueSBsaW5lcyB0aGF0IGFy
ZSBib2xkIGNvcnJlc3BvbmQgdG8gZXZlbnQgaGFuZGxlcnMgdGhhdCBmaXJlZC48L1U+PC9QPgor
PFA+PFU+QW55IGxpbmVzIHRoYXQgYXJlIGJvbGQgYW5kIHNheSAiLSBmaXJlZCIgY29ycmVzcG9u
ZCB0byBldmVudCBoYW5kbGVycyB0aGF0IGZpcmVkLiBPbmx5IHRoZSBpZnJhbWUgb25sb2FkIGV2
ZW50IHNob3VsZCBmaXJlIGluIHRoaXMgdGVzdCBjYXNlLjwvVT48L1A+CiA8UCBpZD0ibG9hZElN
QUdFIj5JTUcgb25sb2FkRXZlbnQ8L1A+CiA8UCBpZD0ibG9hZE9CSkVDVCI+T0JKRUNUIG9ubG9h
ZEV2ZW50PC9QPgogPFAgaWQ9ImxvYWRJRlJBTUUiPklGUkFNRSBvbmxvYWRFdmVudDwvUD4KIDxQ
IGlkPSJ1bmxvYWRJTUFHRSI+SU1HIG9udW5sb2FkRXZlbnQ8L1A+CiA8UCBpZD0idW5sb2FkT0JK
RUNUIj5PQkpFQ1Qgb251bmxvYWRFdmVudDwvUD4KIDxQIGlkPSJ1bmxvYWRJRlJBTUUiPklGUkFN
RSBvbnVubG9hZEV2ZW50PC9QPgotPFA+IE5PVEU6IElmIElGUkFNRSBldmVudHMgc3RhcnQgZmly
aW5nLCBtYWtlIHN1cmUgdG8gY2hlY2sgb3V0IHRoZSBzZWN1cml0eSBpc3N1ZSAmbHQ7cmRhcjov
L3Byb2JsZW0vNDMxNzU5MyZndDs8L1A+CiA8SU1HIGlkPSJteUltYWdlIiBvbmxvYWQ9ImJvbGRD
YXB0aW9uKCdsb2FkSU1BR0UnKSIgb251bmxvYWQ9ImJvbGRDYXB0aW9uKCd1bmxvYWRJTUFHRScp
IiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiPjwvSU1HPgogPE9CSkVDVCBpZD0ibXlPYmplY3QiIG9u
bG9hZD0iYm9sZENhcHRpb24oJ2xvYWRPQkpFQ1QnKSIgb251bmxvYWQ9ImJvbGRDYXB0aW9uKCd1
bmxvYWRPQkpFQ1QnKSI+QXBwbGU8L09CSkVDVD4KLTxJRlJBTUUgaWQ9Im15SUZyYW1lIiBzcmM9
ImFib3V0OmJsYW5rIiBvbmxvYWQ9ImJvbGRDYXB0aW9uKCdsb2FkSU1BR0UnKSIgb251bmxvYWQ9
ImJvbGRDYXB0aW9uKCdsb2FkSU1BR0UnKSIgc3R5bGU9ImJvcmRlci1zdHlsZTpzb2xpZDsgYm9y
ZGVyLWNvbG9yOnJlZDsiPjwvSUZSQU1FPgorPElGUkFNRSBpZD0ibXlJRnJhbWUiIHNyYz0iYWJv
dXQ6YmxhbmsiIG9ubG9hZD0iYm9sZENhcHRpb24oJ2xvYWRJRlJBTUUnKSIgb251bmxvYWQ9ImJv
bGRDYXB0aW9uKCdsb2FkSUZSQU1FJykiIHN0eWxlPSJib3JkZXItc3R5bGU6c29saWQ7IGJvcmRl
ci1jb2xvcjpyZWQ7Ij48L0lGUkFNRT4KIDwvQk9EWT4KIDwvSFRNTD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9ldmVudC10YXJnZXRz
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9ldmVudC10YXJnZXRzLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LXRhcmdldHMtZXhwZWN0ZWQuY2hlY2tz
dW0JKHJldmlzaW9uIDEyNjA2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtdGFy
Z2V0cy1leHBlY3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi04NTcz
YTg4Y2ZhMmNkZDM0MDgzYWNiMzMzOGQ2MjM4MwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LXRhcmdldHMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LXRhcmdldHMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxMjYwNikKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2
ZW50LXRhcmdldHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICsxLDE1IEBA
Ci1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQ2FudmFzIGF0ICgwLDApIHNp
emUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4Mjg4Ci0gIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyODgKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwx
Nikgc2l6ZSA3ODR4MjU2Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVySW5saW5lIHtVfSBhdCAoMCwwKSBzaXplIDM5MngxOAotICAgICAg
ICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMzkyeDE4Ci0gICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTI6ICJBbnkgbGluZXMgdGhhdCBhcmUgYm9sZCBjb3Jy
ZXNwb25kIHRvIGV2ZW50IGhhbmRsZXJzIHRoYXQgZmlyZWQuIgotICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICgwLDM0KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAo
MCwwKSBzaXplIDExNXgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDExNTog
IklNRyBvbmxvYWRFdmVudCIKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw2OCkgc2l6ZSA3
ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxNDR4MTgKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNDQ6ICJPQkpFQ1Qgb25sb2FkRXZlbnQi
Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTAyKSBzaXplIDc4NHgxOAotICAgICAgICBS
ZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDE0NXgxOAotICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDE0NTogIklGUkFNRSBvbmxvYWRFdmVudCIKLSAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMCwxMzYpIHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRlclRleHQge1RFWFR9
IGF0ICgwLDApIHNpemUgMTMxeDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTMxOiAiSU1HIG9udW5sb2FkRXZlbnQiCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTcw
KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDE2
MHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIk9CSkVDVCBvbnVu
bG9hZEV2ZW50IgotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDIwNCkgc2l6ZSA3ODR4MTgK
LSAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxNjF4MTgKLSAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNjE6ICJJRlJBTUUgb251bmxvYWRFdmVudCIKLSAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwyMzgpIHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRl
clRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNjc0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNjc0OiAiTk9URTogSWYgSUZSQU1FIGV2ZW50cyBzdGFydCBmaXJpbmcsIG1h
a2Ugc3VyZSB0byBjaGVjayBvdXQgdGhlIHNlY3VyaXR5IGlzc3VlIDxyZGFyOi8vcHJvYmxlbS80
MzE3NTkzPiIKLSAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDI3Mikgc2l6ZSA3
ODR4MAotICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAg
ICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5kZXJUZXh0
IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAo
MCwwKSBzaXplIDB4MAorQW55IGxpbmVzIHRoYXQgYXJlIGJvbGQgYW5kIHNheSAiLSBmaXJlZCIg
Y29ycmVzcG9uZCB0byBldmVudCBoYW5kbGVycyB0aGF0IGZpcmVkLiBPbmx5IHRoZSBpZnJhbWUg
b25sb2FkIGV2ZW50IHNob3VsZCBmaXJlIGluIHRoaXMgdGVzdCBjYXNlLgorCitJTUcgb25sb2Fk
RXZlbnQKKworT0JKRUNUIG9ubG9hZEV2ZW50CisKK0lGUkFNRSBvbmxvYWRFdmVudCAtIGZpcmVk
CisKK0lNRyBvbnVubG9hZEV2ZW50CisKK09CSkVDVCBvbnVubG9hZEV2ZW50CisKK0lGUkFNRSBv
bnVubG9hZEV2ZW50CisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE9iamVjdEVs
ZW1lbnQvb2JqZWN0LWFzLWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTE9iamVjdEVsZW1lbnQvb2JqZWN0LWFzLWZyYW1lLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT2JqZWN0RWxlbWVudC9vYmplY3QtYXMtZnJh
bWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciB1cGRhdGVkRnJhbWVVUkwgPSAiZGF0YTp0ZXh0
L2h0bWwsVXBkYXRlZCBjb250ZW50cyBvZiBpZnJhbWUiOwordmFyIHVwZGF0ZWRPYmplY3RVUkwg
PSAiZGF0YTp0ZXh0L2h0bWwsVXBkYXRlZCBjb250ZW50cyBvZiBvYmplY3QiOworCitmdW5jdGlv
biBydW5UZXN0cygpCit7CisgICAgc2hvdWxkQmUoIndpbmRvdy5mcmFtZXMubGVuZ3RoIiwgIjIi
KTsKKyAgICBzaG91bGRCZSgid2luZG93LmZyYW1lc1swXS5mcmFtZUVsZW1lbnQubmFtZSIsICci
ZnJhbWUiJyk7CisgICAgc2hvdWxkQmUoIndpbmRvdy5mcmFtZXNbMV0uZnJhbWVFbGVtZW50Lm5h
bWUiLCAnIm9iaiInKTsKKyAgICBkZWJ1ZygiTG9hZGluZyAnIiArIHVwZGF0ZWRGcmFtZVVSTCAr
ICInIGluIGlmcmFtZS4uLiIpOworICAgIGRlYnVnKCJMb2FkaW5nICciICsgdXBkYXRlZE9iamVj
dFVSTCArICInIGluIG9iamVjdC4uLiIpOworICAgIG9wZW4odXBkYXRlZEZyYW1lVVJMLCAiZnJh
bWUiKTsKKyAgICBvcGVuKHVwZGF0ZWRPYmplY3RVUkwsICJvYmoiKTsKKyAgICBzZXRUaW1lb3V0
KCJydW5Nb3JlVGVzdHMoKSIsIDApOworfQorCitmdW5jdGlvbiBydW5Nb3JlVGVzdHMoKQorewor
ICAgIHNob3VsZEJlKCJ3aW5kb3cuZnJhbWVzWzBdLmxvY2F0aW9uLnRvU3RyaW5nKCkiLCAnIicg
KyB1cGRhdGVkRnJhbWVVUkwgKyAnIicpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZnJhbWVzWzFd
LmxvY2F0aW9uLnRvU3RyaW5nKCkiLCAnIicgKyB1cGRhdGVkT2JqZWN0VVJMICsgJyInKTsKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKworPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxpZnJhbWUgbmFtZT0iZnJhbWUiIHNyYz0iZGF0YTp0
ZXh0L2h0bWwsT2xkIGNvbnRlbnRzIG9mIGlmcmFtZSI+PC9pZnJhbWU+Cis8b2JqZWN0IG5hbWU9
Im9iaiIgdHlwZT0idGV4dC9odG1sIiBkYXRhPSJkYXRhOnRleHQvaHRtbCxOZXcgY29udGVudHMg
b2YgZnJhbWUiPjwvb2JqZWN0PgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MT2JqZWN0RWxlbWVudC9vYmplY3QtYXMtZnJhbWUtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPYmplY3RFbGVtZW50L29i
amVjdC1hcy1mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MT2JqZWN0RWxlbWVudC9vYmplY3QtYXMtZnJhbWUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKK1BBU1Mgd2luZG93LmZyYW1lcy5sZW5ndGggaXMg
MgorUEFTUyB3aW5kb3cuZnJhbWVzWzBdLmZyYW1lRWxlbWVudC5uYW1lIGlzICJmcmFtZSIKK1BB
U1Mgd2luZG93LmZyYW1lc1sxXS5mcmFtZUVsZW1lbnQubmFtZSBpcyAib2JqIgorTG9hZGluZyAn
ZGF0YTp0ZXh0L2h0bWwsVXBkYXRlZCBjb250ZW50cyBvZiBpZnJhbWUnIGluIGlmcmFtZS4uLgor
TG9hZGluZyAnZGF0YTp0ZXh0L2h0bWwsVXBkYXRlZCBjb250ZW50cyBvZiBvYmplY3QnIGluIG9i
amVjdC4uLgorUEFTUyB3aW5kb3cuZnJhbWVzWzBdLmxvY2F0aW9uLnRvU3RyaW5nKCkgaXMgImRh
dGE6dGV4dC9odG1sLFVwZGF0ZWQgY29udGVudHMgb2YgaWZyYW1lIgorUEFTUyB3aW5kb3cuZnJh
bWVzWzFdLmxvY2F0aW9uLnRvU3RyaW5nKCkgaXMgImRhdGE6dGV4dC9odG1sLFVwZGF0ZWQgY29u
dGVudHMgb2Ygb2JqZWN0IgorIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvcmVuZGVyX2ZyYW1l
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvcmVuZGVyX2ZyYW1lcy5jcHAJ
KHJldmlzaW9uIDEyNjA2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvcmVuZGVyX2ZyYW1lcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkwMCw3ICs5MDAsNyBAQCB2b2lkIFJlbmRlclBhcnRPYmplY3Q6
OnVwZGF0ZVdpZGdldCgpCiAgICAgICAgICAgICAgIChjaGlsZC0+aXNUZXh0Tm9kZSgpICYmICFz
dGF0aWNfY2FzdDxUZXh0SW1wbCo+KGNoaWxkKS0+Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpKSkK
ICAgICAgICAgICAgICAgbV9oYXNGYWxsYmFja0NvbnRlbnQgPSB0cnVlOwogICAgICAgfQotICAg
ICAgYm9vbCBzdWNjZXNzID0gZnJhbWUtPnJlcXVlc3RPYmplY3QoIHRoaXMsIHVybCwgc2Vydmlj
ZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzICk7CisgICAgICBib29sIHN1Y2Nlc3MgPSBm
cmFtZS0+cmVxdWVzdE9iamVjdCh0aGlzLCB1cmwsIG8tPm5hbWUoKS5xc3RyaW5nKCksIHNlcnZp
Y2VUeXBlLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAgICAgICBpZiAoIXN1Y2Nlc3MgJiYg
bV9oYXNGYWxsYmFja0NvbnRlbnQpCiAgICAgICAgICAgby0+cmVuZGVyRmFsbGJhY2tDb250ZW50
KCk7CiAgIH0gZWxzZSBpZiAoZWxlbWVudCgpLT5oYXNUYWdOYW1lKGVtYmVkVGFnKSkgewpAQCAt
OTIyLDcgKzkyMiw3IEBAIHZvaWQgUmVuZGVyUGFydE9iamVjdDo6dXBkYXRlV2lkZ2V0KCkKICAg
ICAgICAgICAgICAgcGFyYW1WYWx1ZXMuYXBwZW5kKGl0LT52YWx1ZSgpLnFzdHJpbmcoKSk7CiAg
ICAgICAgICAgfQogICAgICAgfQotICAgICAgZnJhbWUtPnJlcXVlc3RPYmplY3QodGhpcywgdXJs
LCBzZXJ2aWNlVHlwZSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOworICAgICAgZnJhbWUtPnJl
cXVlc3RPYmplY3QodGhpcywgdXJsLCBvLT5nZXRBdHRyaWJ1dGUobmFtZUF0dHIpLnFzdHJpbmco
KSwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKICAgfSBlbHNlIHsKICAg
ICAgIGFzc2VydChlbGVtZW50KCktPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSk7CiAgICAgICBIVE1M
SUZyYW1lRWxlbWVudEltcGwgKm8gPSBzdGF0aWNfY2FzdDxIVE1MSUZyYW1lRWxlbWVudEltcGwg
Kj4oZWxlbWVudCgpKTsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjYzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNTggQEAKIDIwMDYtMDItMDYgIE1hY2llaiBTdGFjaG93
aWFrICA8bWpzQGFwcGxlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAtIGZpeGVkICJyZW1vdmUgZnJhbWUsIHJlbmRlcmVyIGFuZCBjb21wbGV0
ZWQgZmxhZyBmcm9tIENoaWxkRnJhbWUsIG1ha2UgRnJhbWUgdHJhY2sgdGhlc2UiCisgICAgICAg
IGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyNQorICAg
ICAgICAKKyAgICAgICAgLSBmaXhlZCAib25sb2FkIGV2ZW50IG5ldmVyIGNhbGxlZCBmb3IgaWZy
YW1lIGVsZW1lbnQgd2l0aCBlbXRweSBvciBhYm91dDpibGFuayBzcmMiCisgICAgICAgIGh0dHA6
Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYwOQorICAgICAgICAK
KyAgICAgICAgKiBicmlkZ2UvbWFjL01hY0ZyYW1lLmg6CisgICAgICAgICogYnJpZGdlL21hYy9N
YWNGcmFtZS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY0ZyYW1lOjpNYWNGcmFtZSk6IHBhc3Mg
YWxvbmcgcmVuZGVyZXIKKyAgICAgICAgKFdlYkNvcmU6Ok1hY0ZyYW1lOjpuZXh0S2V5Vmlld0lu
RnJhbWVIaWVyYXJjaHkpOiBnZXQgb3duZXIgZWxlbWVudCBpbiBuZXdmYW5nbGVkIHdheQorICAg
ICAgICAqIGJyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLmg6CisgICAgICAgICogYnJpZGdl
L21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UubW06CisgICAgICAgICgtW1dlYkNvcmVGcmFtZUJyaWRn
ZSByZW1vdmVDaGlsZDpdKTogZG9uJ3QgbWVzcyB3aXRoIHJlbmRlcmVyCisgICAgICAgICgtW1dl
YkNvcmVGcmFtZUJyaWRnZSBpbml0XSk6IGNhbGwgbmV3IGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIK
KyAgICAgICAgKC1bV2ViQ29yZUZyYW1lQnJpZGdlIGluaXRXaXRoUmVuZGVyZXI6XSk6IG5ldyBk
ZXNpZ25hdGVkIGluaXRpYWxpemVyCisgICAgICAgICgtW1dlYkNvcmVGcmFtZUJyaWRnZSBkZWFs
bG9jXSk6IGRvbid0IG1lc3Mgd2l0aCByZW5kZXJlcgorICAgICAgICAoLVtXZWJDb3JlRnJhbWVC
cmlkZ2UgZmluYWxpemVdKTogZGl0dG8KKyAgICAgICAgKC1bV2ViQ29yZUZyYW1lQnJpZGdlIGlu
c3RhbGxJbkZyYW1lOl0pOiBkaXR0bworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMaXN0OjpmaW5kKTogZ2V0IG5hbWUgZnJvbSBmcmFtZSBub3QgQ2hp
bGRGcmFtZQorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmluaXQpOiB0YWtlIHJlbmRlcmVyIHBh
cmFtZXRlcgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmNsZWFyKTogY2xlYXIgbV9wbHVnaW5z
LCBub3QgbV9vYmplY3RzCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6Y2hpbGRCZWdpbik6IHVw
ZGF0ZWQgY29tbWVudAorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnN0b3ApOiBhZGQgY2hlY2st
Y29tcGxldGVkIGZvciBkb2N1bWVudGxlc3MgY2FzZSBoZXJlCisgICAgICAgIChXZWJDb3JlOjpG
cmFtZTo6Y2hlY2tDb21wbGV0ZWQpOiBkb24ndCB0cmFjayBzZXBhcmF0ZSBjb21wbGV0ZWQgZmxh
ZworICAgICAgICBpbiBDaGlsZEZyYW1lLCB1c2UgdGhlIHN1YiBGcmFtZSBvYmplY3QncyBvd24K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjaGVja0VtaXRMb2FkRXZlbnQpOiBkaXR0bworICAg
ICAgICAoV2ViQ29yZTo6RnJhbWU6OnJlcXVlc3RGcmFtZSk6IGRvbid0IHN0b3JlIHJlbmRlcmVy
IGFuZCBuYW1lIGluIENoaWxkRnJhbWUsCisgICAgICAgIGluc3RlYWQgcGFzcyB0aGVtIGFsb25n
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cmVxdWVzdE9iamVjdCk6IGRpdHRvIGFib3ZlCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bG9hZFBsdWdpbik6IGV4cGVjdCByZW5kZXJlciBwYXJh
bWV0ZXIKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpsb2FkU3ViZnJhbWUpOiBleHBlY3QgcmVu
ZGVyZXIgYW5kIG5hbWUgcGFyYW1ldGVycworICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNsb3RD
aGlsZFN0YXJ0ZWQpOiBkb24ndCBtZXNzIHdpdGggQ2hpbGRGcmFtZQorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWU6OnNsb3RDaGlsZENvbXBsZXRlZCk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpG
cmFtZTo6Y2hpbGRGcmFtZSk6IGRvbid0IGNoZWNrIG1fb2JqZWN0cworICAgICAgICAoV2ViQ29y
ZTo6RnJhbWU6OmZyYW1lRXhpc3RzKTogZml4IHNwYWNpbmcsIHJlbW92ZSBvYnNvbGV0ZSBjaGVj
ayBhbmQgY29tbWVudAorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmZyYW1lTmFtZXMpOiBnZXQg
bmFtZSBmcm9tIGZyYW1lCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6b3duZXJFbGVtZW50KTog
c2ltcGxpZnkgYSBsb3Qgc2luY2UgdGhlIEZyYW1lIGtub3dzIGl0cyBvd25lcgorICAgICAgICBy
ZW5kZXJlciBub3cKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpvd25lclJlbmRlcmVyKTogYWRk
ZWQKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjYW5DYWNoZVBhZ2UpOiBjaGVjayBtX3BsdWdp
bnMgbm90IG1fb2JqZWN0cworICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGRGcmFtZSk6IFJlbW92ZSBj
b25zdHJ1Y3RvciwgbW9zdCBmaWVsZHMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVByaXZhdGU6
OkZyYW1lUHJpdmF0ZSk6IFBhc3Mgb3duZXJSZW5kZXJlcgorICAgICAgICAqIHJlbmRlcmluZy9y
ZW5kZXJfZnJhbWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhcnRPYmplY3Q6OnVw
ZGF0ZVdpZGdldCk6IE1ha2Ugc3VyZSB0byBwYXNzIG5hbWUgYXR0cgorICAgICAgICB0byByZXF1
ZXN0T2JqZWN0LgorCisyMDA2LTAyLTA2ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5j
b20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCiAgICAgICAgIAogICAgICAgICAtIGZp
eGVkIDcwOTQ6IG9uZm9jdXMvb25ibHVyIG9uIG5vbi1mb3JtLWNvbnRyb2xzIGJ1YmJsZQpJbmRl
eDogV2ViQ29yZS9icmlkZ2UvbWFjL01hY0ZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
cmlkZ2UvbWFjL01hY0ZyYW1lLmgJKHJldmlzaW9uIDEyNjA2KQorKysgV2ViQ29yZS9icmlkZ2Uv
bWFjL01hY0ZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBlbnVtIEtX
UVNlbGVjdGlvbkRpcmVjdGlvbiB7CiBjbGFzcyBNYWNGcmFtZSA6IHB1YmxpYyBGcmFtZQogewog
cHVibGljOgotICAgIE1hY0ZyYW1lKCk7CisgICAgTWFjRnJhbWUoUmVuZGVyUGFydCopOwogICAg
IH5NYWNGcmFtZSgpOwogICAgIAogICAgIHZvaWQgY2xlYXIoKTsKSW5kZXg6IFdlYkNvcmUvYnJp
ZGdlL21hYy9NYWNGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9tYWMvTWFj
RnJhbWUubW0JKHJldmlzaW9uIDEyNjA2KQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL01hY0ZyYW1l
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNyArMTMwLDcgQEAgYm9vbCBGcmFtZVZpZXc6Omlz
RnJhbWVWaWV3KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotTWFjRnJhbWU6Ok1hY0Zy
YW1lKCkKK01hY0ZyYW1lOjpNYWNGcmFtZShSZW5kZXJQYXJ0KiBvd25lclJlbmRlcmVyKQogICAg
IDogX2JyaWRnZShuaWwpCiAgICAgLCBfc3RhcnRlZCh0aGlzLCBTSUdOQUwoc3RhcnRlZChLSU86
OkpvYiAqKSkpCiAgICAgLCBfY29tcGxldGVkKHRoaXMsIFNJR05BTChjb21wbGV0ZWQoKSkpCkBA
IC0xNTIsNyArMTUyLDcgQEAgTWFjRnJhbWU6Ok1hY0ZyYW1lKCkKICAgICBDYWNoZTo6aW5pdCgp
OwogCiAgICAgLy8gVGhlIHdpZGdldCBpcyBtYWRlIG91dHNpZGUgdGhpcyBjbGFzcyBpbiBvdXIg
Y2FzZS4KLSAgICBGcmFtZTo6aW5pdCgwKTsKKyAgICBGcmFtZTo6aW5pdCgwLCBvd25lclJlbmRl
cmVyKTsKIAogICAgIG11dGFibGVJbnN0YW5jZXMoKS5wcmVwZW5kKHRoaXMpOwogfQpAQCAtOTg3
LDkgKzk4Nyw4IEBAIE5TVmlldyAqTWFjRnJhbWU6Om5leHRLZXlWaWV3SW5GcmFtZUhpZXIKICAg
ICBOU1ZpZXcgKm5leHQgPSBuZXh0S2V5Vmlld0luRnJhbWUobm9kZSwgZGlyZWN0aW9uKTsKICAg
ICBpZiAoIW5leHQpIHsKICAgICAgICAgTWFjRnJhbWUgKnBhcmVudCA9IE1hYyh0cmVlTm9kZSgp
LT5wYXJlbnQoKSk7Ci0gICAgICAgIGlmIChwYXJlbnQpIHsKLSAgICAgICAgICAgIG5leHQgPSBw
YXJlbnQtPm5leHRLZXlWaWV3SW5GcmFtZUhpZXJhcmNoeShwYXJlbnQtPmNoaWxkRnJhbWUodGhp
cyktPm1fcmVuZGVyZXItPmVsZW1lbnQoKSwgZGlyZWN0aW9uKTsKLSAgICAgICAgfQorICAgICAg
ICBpZiAocGFyZW50KQorICAgICAgICAgICAgbmV4dCA9IHBhcmVudC0+bmV4dEtleVZpZXdJbkZy
YW1lSGllcmFyY2h5KG93bmVyRWxlbWVudCgpLCBkaXJlY3Rpb24pOwogICAgIH0KICAgICAKICAg
ICAvLyByZW1vdmUgZm9jdXMgZnJvbSBjdXJyZW50bHkgZm9jdXNlZCBub2RlIGlmIHdlJ3JlIGdp
dmluZyBmb2N1cyB0byBhbm90aGVyIHZpZXcKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJD
b3JlRnJhbWVCcmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29y
ZUZyYW1lQnJpZGdlLmgJKHJldmlzaW9uIDEyNjA2KQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL1dl
YkNvcmVGcmFtZUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsOCArMTgzLDYgQEAgdHlw
ZWRlZiBlbnVtCiBAaW50ZXJmYWNlIFdlYkNvcmVGcmFtZUJyaWRnZSA6IE5TT2JqZWN0CiB7CiAg
ICAgV2ViQ29yZU1hY0ZyYW1lICptX2ZyYW1lOwotICAgIFdlYkNvcmVSZW5kZXJQYXJ0ICpfcmVu
ZGVyUGFydDsKLSAgICBSZW5kZXJBcmVuYSAqX3JlbmRlclBhcnRBcmVuYTsKICAgICBCT09MIF9z
aG91bGRDcmVhdGVSZW5kZXJlcnM7CiAKICAgICBOU1N0cmluZyAqX2ZyYW1lTmFtZXNwYWNlOwpA
QCAtMTkyLDEzICsxOTAsMTIgQEAgdHlwZWRlZiBlbnVtCiAKICsgKFdlYkNvcmVGcmFtZUJyaWRn
ZSAqKWJyaWRnZUZvckRPTURvY3VtZW50OihET01Eb2N1bWVudCAqKWRvY3VtZW50OwogCistIChp
ZClpbml0V2l0aFJlbmRlcmVyOihXZWJDb3JlUmVuZGVyUGFydCAqKXJlbmRlcmVyOworCiArIChO
U0FycmF5ICopc3VwcG9ydGVkTUlNRVR5cGVzOwogCiAtICh2b2lkKWluaXRpYWxpemVTZXR0aW5n
czooV2ViQ29yZVNldHRpbmdzICopc2V0dGluZ3M7CiAKLS0gKHZvaWQpc2V0UmVuZGVyUGFydDoo
V2ViQ29yZVJlbmRlclBhcnQgKilyZW5kZXJQYXJ0OwotLSAoV2ViQ29yZVJlbmRlclBhcnQgKily
ZW5kZXJQYXJ0OwotCiAtICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmFtZTsKIC0gKE5TU3Ry
aW5nICopbmFtZTsKIC8qIENyZWF0ZXMgYSBuYW1lIGZvciBhbiBmcmFtZSB1bm5hbWVkIGluIHRo
ZSBIVE1MLiAgSXQgc2hvdWxkIHByb2R1Y2UgcmVwZWF0YWJsZSByZXN1bHRzIGZvciBsb2FkcyBv
ZiB0aGUgc2FtZSBmcmFtZXNldC4gKi8KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3Jl
RnJhbWVCcmlkZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVG
cmFtZUJyaWRnZS5tbQkocmV2aXNpb24gMTI2MDYpCisrKyBXZWJDb3JlL2JyaWRnZS9tYWMvV2Vi
Q29yZUZyYW1lQnJpZGdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsMTYgKzI2Nyw4IEBAIHN0
YXRpYyBpbmxpbmUgV2ViQ29yZUZyYW1lQnJpZGdlICpicmlkZ2UKICAgICBtX2ZyYW1lLT50cmVl
Tm9kZSgpLT5hcHBlbmRDaGlsZChhZG9wdFJlZihbY2hpbGQgcGFydF0pKTsKIH0KIAotLSAodm9p
ZClfY2xlYXJSZW5kZXJQYXJ0Ci17Ci0gICAgaWYgKF9yZW5kZXJQYXJ0KQotICAgICAgICBfcmVu
ZGVyUGFydC0+ZGVyZWYoX3JlbmRlclBhcnRBcmVuYSk7Ci0gICAgX3JlbmRlclBhcnQgPSAwOwot
fQotCiAtICh2b2lkKXJlbW92ZUNoaWxkOihXZWJDb3JlRnJhbWVCcmlkZ2UgKiljaGlsZAogewot
ICAgIFtjaGlsZCBfY2xlYXJSZW5kZXJQYXJ0XTsKICAgICBtX2ZyYW1lLT50cmVlTm9kZSgpLT5y
ZW1vdmVDaGlsZChbY2hpbGQgcGFydF0pOwogfQogCkBAIC00NzUsMTAgKzQ2NywxNSBAQCBzdGF0
aWMgaW5saW5lIFdlYkNvcmVGcmFtZUJyaWRnZSAqYnJpZGdlCiAKIC0gKGlkKWluaXQKIHsKKyAg
ICByZXR1cm4gW3NlbGYgaW5pdFdpdGhSZW5kZXJlcjowXTsKK30KKworLSAoaWQpaW5pdFdpdGhS
ZW5kZXJlcjooV2ViQ29yZVJlbmRlclBhcnQgKilyZW5kZXJlcgorewogICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAotICAgIG1fZnJhbWUg
PSBuZXcgTWFjRnJhbWU7CisgICAgbV9mcmFtZSA9IG5ldyBNYWNGcmFtZShyZW5kZXJlcik7CiAg
ICAgbV9mcmFtZS0+c2V0QnJpZGdlKHNlbGYpOwogCiAgICAgaWYgKCFpbml0aWFsaXplZE9iamVj
dENhY2hlU2l6ZSl7CkBAIC01MDksMTAgKzUwNiw2IEBAIHN0YXRpYyBpbmxpbmUgV2ViQ29yZUZy
YW1lQnJpZGdlICpicmlkZ2UKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtzZWxmIHJlbW92ZUZy
b21GcmFtZV07Ci0gICAgCi0gICAgaWYgKF9yZW5kZXJQYXJ0KQotICAgICAgICBfcmVuZGVyUGFy
dC0+ZGVyZWYoX3JlbmRlclBhcnRBcmVuYSk7Ci0gICAgICAgIAogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIApAQCAtNTIyLDEwICs1MTUsNiBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmVGcmFtZUJy
aWRnZSAqYnJpZGdlCiAgICAgLy8gV2UgbmVlZCB0byBkbyBpdCBhdCBzb21lIHdlbGwtZGVmaW5l
ZCB0aW1lIGluc3RlYWQuCiAKICAgICBbc2VsZiByZW1vdmVGcm9tRnJhbWVdOwotICAgIAotICAg
IGlmIChfcmVuZGVyUGFydCkgewotICAgICAgICBfcmVuZGVyUGFydC0+ZGVyZWYoX3JlbmRlclBh
cnRBcmVuYSk7Ci0gICAgfQogICAgIG1fZnJhbWUtPnNldEJyaWRnZShuaWwpOwogICAgICAgICAK
ICAgICBbc3VwZXIgZmluYWxpemVdOwpAQCAtNTM2LDIxICs1MjUsNiBAQCBzdGF0aWMgaW5saW5l
IFdlYkNvcmVGcmFtZUJyaWRnZSAqYnJpZGdlCiAgICAgcmV0dXJuIG1fZnJhbWU7CiB9CiAKLS0g
KHZvaWQpc2V0UmVuZGVyUGFydDooUmVuZGVyUGFydCAqKW5ld1BhcnQ7Ci17Ci0gICAgUmVuZGVy
QXJlbmEgKmFyZW5hID0gbmV3UGFydC0+cmVmKCk7Ci0gICAgaWYgKF9yZW5kZXJQYXJ0KSB7Ci0g
ICAgICAgIF9yZW5kZXJQYXJ0LT5kZXJlZihfcmVuZGVyUGFydEFyZW5hKTsKLSAgICB9Ci0gICAg
X3JlbmRlclBhcnQgPSBuZXdQYXJ0OwotICAgIF9yZW5kZXJQYXJ0QXJlbmEgPSBhcmVuYTsKLX0K
LQotLSAoUmVuZGVyUGFydCAqKXJlbmRlclBhcnQKLXsKLSAgICByZXR1cm4gX3JlbmRlclBhcnQ7
Ci19Ci0KIC0gKHZvaWQpc2V0UGFyZW50OihXZWJDb3JlRnJhbWVCcmlkZ2UgKilwYXJlbnQKIHsK
ICAgICAvLyBGSVhNRTogZnJhbWVzIHNob3VsZCBiZSBjcmVhdGVkIHdpdGggdGhlIHJpZ2h0IHBh
cmVudCBpbiB0aGUgZmlyc3QgcGxhY2UKQEAgLTEwODEsMTEgKzEwNTUsMTIgQEAgc3RhdGljIEJP
T0wgbm93UHJpbnRpbmcoV2ViQ29yZUZyYW1lQnJpZAogewogICAgIC8vIElmIHRoaXMgaXNuJ3Qg
dGhlIG1haW4gZnJhbWUsIGl0IG11c3QgaGF2ZSBhIHJlbmRlciBtX2ZyYW1lIHNldCwgb3IgaXQK
ICAgICAvLyB3b24ndCBldmVyIGdldCBpbnN0YWxsZWQgaW4gdGhlIHZpZXcgaGllcmFyY2h5Lgot
ICAgIEFTU0VSVChzZWxmID09IFtzZWxmIG1haW5GcmFtZV0gfHwgX3JlbmRlclBhcnQgIT0gbmls
KTsKKyAgICBBU1NFUlQoc2VsZiA9PSBbc2VsZiBtYWluRnJhbWVdIHx8IG1fZnJhbWUtPm93bmVy
UmVuZGVyZXIoKSk7CiAKICAgICBtX2ZyYW1lLT52aWV3KCktPnNldFZpZXcodmlldyk7Ci0gICAg
aWYgKF9yZW5kZXJQYXJ0KSB7Ci0gICAgICAgIF9yZW5kZXJQYXJ0LT5zZXRXaWRnZXQobV9mcmFt
ZS0+dmlldygpKTsKKyAgICAvLyBGSVhNRTogZnJhbWUgdHJpZXMgdG8gZG8gdGhpcyB0b28sIGlz
IGl0IG5lZWRlZD8KKyAgICBpZiAobV9mcmFtZS0+b3duZXJSZW5kZXJlcigpKSB7CisgICAgICAg
IG1fZnJhbWUtPm93bmVyUmVuZGVyZXIoKS0+c2V0V2lkZ2V0KG1fZnJhbWUtPnZpZXcoKSk7CiAg
ICAgICAgIC8vIE5vdyB0aGUgcmVuZGVyIHBhcnQgb3ducyB0aGUgdmlldywgc28gd2UgZG9uJ3Qg
YW55IG1vcmUuCiAgICAgfQogCkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkocmV2aXNpb24gMTI2MDYpCisrKyBXZWJDb3JlL3Bh
Z2UvRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtODY3LDIxICs4NjcsMjEgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nICZ0YXJnZXQsIGNvbnN0IFFTdHJpbmcm
IGNvbnRlbnRUeXBlID0gUVN0cmluZzo6bnVsbCwKICAgICAgICAgICAgICAgICAgICBjb25zdCBR
U3RyaW5nJiBib3VuZGFyeSA9IFFTdHJpbmc6Om51bGwgKTsKIAotICB2b2lkIGluaXQoRnJhbWVW
aWV3Kik7CisgIHZvaWQgaW5pdChGcmFtZVZpZXcqLCBSZW5kZXJQYXJ0Kik7CiAKICAgYm9vbCBz
Y2hlZHVsZVNjcmlwdChOb2RlSW1wbCosIGNvbnN0IFFTdHJpbmcmIHNjcmlwdCk7CiAKICAgS0pT
OjpKU1ZhbHVlKiBleGVjdXRlU2NoZWR1bGVkU2NyaXB0KCk7CiAKICAgYm9vbCByZXF1ZXN0RnJh
bWUoUmVuZGVyUGFydCAqZnJhbWUsIGNvbnN0IFFTdHJpbmcgJnVybCwgY29uc3QgUVN0cmluZyAm
ZnJhbWVOYW1lKTsKLSAgYm9vbCByZXF1ZXN0T2JqZWN0KFJlbmRlclBhcnQgKmZyYW1lLCBjb25z
dCBRU3RyaW5nICZ1cmwsIGNvbnN0IFFTdHJpbmcgJnNlcnZpY2VUeXBlLAotICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QgJnBhcmFtTmFtZXMsIGNvbnN0IFFTdHJpbmdMaXN0
ICZwYXJhbVZhbHVlcyk7CisgIGJvb2wgcmVxdWVzdE9iamVjdChSZW5kZXJQYXJ0ICpmcmFtZSwg
Y29uc3QgUVN0cmluZyAmdXJsLCBjb25zdCBRU3RyaW5nICZmcmFtZU5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBRU3RyaW5nICZzZXJ2aWNlVHlwZSwgY29uc3QgUVN0cmluZ0xpc3Qg
JnBhcmFtTmFtZXMsIGNvbnN0IFFTdHJpbmdMaXN0ICZwYXJhbVZhbHVlcyk7CiAKICAgCiAgIGJv
b2wgc2hvdWxkVXNlUGx1Z2luKE5vZGVJbXBsKiBlbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFFTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBib29sJiB1c2VGYWxsYmFj
ayk7Ci0gIGJvb2wgbG9hZFBsdWdpbihDaGlsZEZyYW1lICpjaGlsZCwgY29uc3QgS1VSTCAmdXJs
LCBjb25zdCBRU3RyaW5nICZtaW1lVHlwZSwgCisgIGJvb2wgbG9hZFBsdWdpbihSZW5kZXJQYXJ0
KiByZW5kZXJlciwgY29uc3QgS1VSTCAmdXJsLCBjb25zdCBRU3RyaW5nICZtaW1lVHlwZSwgCiAg
ICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nTGlzdCYgcGFyYW1OYW1lcywgY29uc3QgUVN0
cmluZ0xpc3QmIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKTsKLSAgYm9vbCBsb2FkU3Vi
ZnJhbWUoQ2hpbGRGcmFtZSogY2hpbGQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgRE9NU3RyaW5n
JiByZWZlcnJlcik7CisgIGJvb2wgbG9hZFN1YmZyYW1lKENoaWxkRnJhbWUqIGNoaWxkLCBSZW5k
ZXJQYXJ0KiByZW5kZXJlciwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBj
b25zdCBET01TdHJpbmcmIHJlZmVycmVyKTsKIAogcHVibGljOgogICBET01TdHJpbmcgcmVxdWVz
dEZyYW1lTmFtZSgpOwpAQCAtOTI1LDggKzkyNSwxMiBAQCBwcml2YXRlOgogICB2b2lkIGFkZE1l
dGFEYXRhKGNvbnN0IFFTdHJpbmcgJmtleSwgY29uc3QgUVN0cmluZyAmdmFsdWUpOwogICB2b2lk
IHNldE1lZGlhVHlwZShjb25zdCBRU3RyaW5nICYpOwogCi0gIFJlbmRlck9iamVjdCAqcmVuZGVy
ZXIoKSBjb25zdDsKLSAgRWxlbWVudEltcGwgKm93bmVyRWxlbWVudCgpOworICAvLyByb290IHJl
bmRlcmVyIGZvciB0aGUgZG9jdW1lbnQgY29udGFpbmVkIGluIHRoaXMgZnJhbWUKKyAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlcigpIGNvbnN0OworICAKKyAgRWxlbWVudEltcGwqIG93bmVyRWxlbWVu
dCgpOworICAvLyByZW5kZXJlciBmb3IgdGhlIGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGlzIGZy
YW1lCisgIFJlbmRlclBhcnQqIG93bmVyUmVuZGVyZXIoKTsKIAogICBJbnRSZWN0IHNlbGVjdGlv
blJlY3QoKSBjb25zdDsKICAgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3Q7CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJl
dmlzaW9uIDEyNjA2KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI5LDE5ICsxMjksMTkgQEAgcHVibGljOgogICAgIENhY2hlZENTU1N0eWxlU2hlZXQqIG1f
Y2FjaGVkU2hlZXQ7CiB9OwogCi1GcmFtZUxpc3Q6Okl0ZXJhdG9yIEZyYW1lTGlzdDo6ZmluZCgg
Y29uc3QgUVN0cmluZyAmbmFtZSApCitGcmFtZUxpc3Q6Okl0ZXJhdG9yIEZyYW1lTGlzdDo6Zmlu
ZChjb25zdCBRU3RyaW5nJiBuYW1lKQogewogICAgIEl0ZXJhdG9yIGl0ID0gYmVnaW4oKTsKICAg
ICBJdGVyYXRvciBlID0gZW5kKCk7CiAKLSAgICBmb3IgKDsgaXQhPWU7ICsraXQgKQotICAgICAg
ICBpZiAoICgqaXQpLm1fbmFtZT09bmFtZSApCisgICAgZm9yICg7IGl0IT1lOyArK2l0KQorICAg
ICAgICBpZiAoKCppdCkubV9mcmFtZSAmJiAoKml0KS5tX2ZyYW1lLT50cmVlTm9kZSgpLT5uYW1l
KCkgPT0gbmFtZSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgcmV0dXJuIGl0OwogfQogCi12
b2lkIEZyYW1lOjppbml0KEZyYW1lVmlldyAqdmlldykKK3ZvaWQgRnJhbWU6OmluaXQoRnJhbWVW
aWV3KiB2aWV3LCBSZW5kZXJQYXJ0KiBvd25lclJlbmRlcmVyKQogewogICBBdG9taWNTdHJpbmc6
OmluaXQoKTsKICAgUXVhbGlmaWVkTmFtZTo6aW5pdCgpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHZv
aWQgRnJhbWU6OmluaXQoRnJhbWVWaWV3ICp2aWV3KQogICBmcmFtZUNvdW50ID0gMDsKIAogICAv
LyBGSVhNRTogRnJhbWVQcml2YXRlIGNvbnN0cnVjdG9yIHdhbnRzIHRvIHRha2UgYSBwYXJlbnQg
YnV0IHdlIGRvIG5vdCBoYXZlIG9uZSB5ZXQKLSAgZCA9IG5ldyBGcmFtZVByaXZhdGUoMCwgdGhp
cyk7CisgIGQgPSBuZXcgRnJhbWVQcml2YXRlKDAsIHRoaXMsIG93bmVyUmVuZGVyZXIpOwogCiAg
IGQtPm1fdmlldyA9IHZpZXc7CiAgIApAQCAtNTQ1LDcgKzU0NSw3IEBAIHZvaWQgRnJhbWU6OmNs
ZWFyKGJvb2wgY2xlYXJXaW5kb3dQcm9wZXIKICAgICB9CiAgIH0KICAgZC0+bV9mcmFtZXMuY2xl
YXIoKTsKLSAgZC0+bV9vYmplY3RzLmNsZWFyKCk7CisgIGQtPm1fcGx1Z2lucy5jbGVhcigpOwog
CiAgIGQtPm1fc2NoZWR1bGVkUmVkaXJlY3Rpb24gPSBub1JlZGlyZWN0aW9uU2NoZWR1bGVkOwog
ICBkLT5tX2RlbGF5UmVkaXJlY3QgPSAwOwpAQCAtNjY4LDExICs2NjgsOSBAQCB2b2lkIEZyYW1l
OjpzbG90RmluaXNoZWQoIEtJTzo6Sm9iICogam9iCiAKIHZvaWQgRnJhbWU6OmNoaWxkQmVnaW4o
KQogewotICAgIC8vIFdlIG5lZWQgdG8gZG8gdGhpcyB3aGVuIHRoZSBjaGlsZCBpcyBjcmVhdGVk
IHNvIGFzIHRvIGF2b2lkIHRoZSBib2d1cyBzdGF0ZSBvZiB0aGUgcGFyZW50J3MKLSAgICAvLyBj
aGlsZC0+bV9iQ29tcGxldGVkIGJlaW5nIGZhbHNlIGJ1dCB0aGUgY2hpbGQncyBtX2JDb21wbGV0
ZSBiZWluZyB0cnVlLiAgSWYgdGhlIGNoaWxkIGdldHMKLSAgICAvLyBhbiBlcnJvciBlYXJseSBv
biwgd2UgaGFkIHRyb3VibGUgd2hlcmUgY2hlY2tpbmdDb21wbGV0ZSBvbiB0aGUgY2hpbGQgd2Fz
IGEgTk9QIGJlY2F1c2UKLSAgICAvLyBpdCB0aG91Z2h0IGl0IHdhcyBhbHJlYWR5IGNvbXBsZXRl
LCBhbmQgdGh1cyB0aGUgcGFyZW50IHdhcyBuZXZlciBzaWduYWxlZCwgYW5kIG5ldmVyIHNldAot
ICAgIC8vIGl0cyBjaGlsZC0+bV9iQ29tcGxldGUuCisgICAgLy8gV2UgbmVlZCB0byBkbyB0aGlz
IHdoZW4gdGhlIGNoaWxkIGlzIGNyZWF0ZWQgc28gYXMgdG8gYXZvaWQgdGhlIHBhcmVudCB0aGlu
aW5nIHRoZSBjaGlsZAorICAgIC8vIGlzIGNvbXBsZXRlIGJlZm9yZSBpdCBoYXMgZXZlbiBzdGFy
dGVkIGxvYWRpbmcuCisgICAgLy8gRklYTUU6IGRvIHdlIHJlYWxseSBzdGlsbCBuZWVkIHRoaXM/
CiAgICAgZC0+bV9iQ29tcGxldGUgPSBmYWxzZTsKIH0KIApAQCAtODIxLDEwICs4MTksMTQgQEAg
dm9pZCBGcmFtZTo6c3RvcCgpCiAgICAgICAgIGlmIChkLT5tX2RvYy0+dG9rZW5pemVyKCkpCiAg
ICAgICAgICAgICBkLT5tX2RvYy0+dG9rZW5pemVyKCktPnN0b3BQYXJzaW5nKCk7CiAgICAgICAg
IGQtPm1fZG9jLT5maW5pc2hQYXJzaW5nKCk7Ci0gICAgfQorICAgIH0gZWxzZQorICAgICAgICAv
LyBXZWJLaXQgcGFydGlhbGx5IHVzZXMgV2ViQ29yZSB3aGVuIGxvYWRpbmcgbm9uLUhUTUwgZG9j
cy4gIEluIHRoZXNlIGNhc2VzIGRvYz09bmlsLCBidXQKKyAgICAgICAgLy8gV2ViQ29yZSBpcyBl
bm91Z2ggaW52b2x2ZWQgdGhhdCB3ZSBuZWVkIHRvIGNoZWNrQ29tcGxldGVkKCkgaW4gb3JkZXIg
Zm9yIG1fYkNvbXBsZXRlIHRvCisgICAgICAgIC8vIGJlY29tZSB0cnVlLiAgQW4gZXhhbXBsZSBp
cyB3aGVuIGEgc3ViZnJhbWUgaXMgYSBwdXJlIHRleHQgZG9jLCBhbmQgdGhhdCBzdWJmcmFtZSBp
cyB0aGUKKyAgICAgICAgLy8gbGFzdCBvbmUgdG8gY29tcGxldGUuCisgICAgICAgIGNoZWNrQ29t
cGxldGVkKCk7CiB9CiAKLQogdm9pZCBGcmFtZTo6c3RvcEFuaW1hdGlvbnMoKQogewogICBpZiAo
IGQtPm1fZG9jICkKQEAgLTg5Miw4ICs4OTQsOCBAQCB2b2lkIEZyYW1lOjpjaGVja0NvbXBsZXRl
ZCgpCiAgIC8vIEFueSBmcmFtZSB0aGF0IGhhc24ndCBjb21wbGV0ZWQgeWV0ID8KICAgQ29uc3RG
cmFtZUl0IGl0ID0gZC0+bV9mcmFtZXMuYmVnaW4oKTsKICAgQ29uc3RGcmFtZUl0IGVuZCA9IGQt
Pm1fZnJhbWVzLmVuZCgpOwotICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0ICkKLSAgICBpZiAoICEo
Kml0KS5tX2JDb21wbGV0ZWQgKQorICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KQorICAgIGlmICgh
KCppdCkubV9mcmFtZS0+ZC0+bV9iQ29tcGxldGUpCiAgICAgICByZXR1cm47CiAKICAgLy8gSGF2
ZSB3ZSBjb21wbGV0ZWQgYmVmb3JlPwpAQCAtOTQyLDggKzk0NCw4IEBAIHZvaWQgRnJhbWU6OmNo
ZWNrRW1pdExvYWRFdmVudCgpCiAKICAgQ29uc3RGcmFtZUl0IGl0ID0gZC0+bV9mcmFtZXMuYmVn
aW4oKTsKICAgQ29uc3RGcmFtZUl0IGVuZCA9IGQtPm1fZnJhbWVzLmVuZCgpOwotICBmb3IgKDsg
aXQgIT0gZW5kOyArK2l0ICkKLSAgICBpZiAoICEoKml0KS5tX2JDb21wbGV0ZWQgKSAvLyBzdGls
bCBnb3QgYSBmcmFtZSBydW5uaW5nIC0+IHRvbyBlYXJseQorICBmb3IgKDsgaXQgIT0gZW5kOyAr
K2l0KQorICAgIGlmICghKCppdCkubV9mcmFtZS0+ZC0+bV9iQ29tcGxldGUpIC8vIHN0aWxsIGdv
dCBhIGZyYW1lIHJ1bm5pbmcgLT4gdG9vIGVhcmx5CiAgICAgICByZXR1cm47CiAKIApAQCAtMTQ3
NywxNSArMTQ3OSwxMyBAQCBET01TdHJpbmcgRnJhbWU6OnJlcXVlc3RGcmFtZU5hbWUoKQogICAg
IHJldHVybiBnZW5lcmF0ZUZyYW1lTmFtZSgpOwogfQogCi1ib29sIEZyYW1lOjpyZXF1ZXN0RnJh
bWUoUmVuZGVyUGFydCAqcGFydCwgY29uc3QgUVN0cmluZyAmX3VybCwgY29uc3QgUVN0cmluZyAm
ZnJhbWVOYW1lKQorYm9vbCBGcmFtZTo6cmVxdWVzdEZyYW1lKFJlbmRlclBhcnQqIHJlbmRlcmVy
LCBjb25zdCBRU3RyaW5nJiBfdXJsLCBjb25zdCBRU3RyaW5nJiBmcmFtZU5hbWUpCiB7CiAgICAg
RnJhbWVJdCBpdCA9IGQtPm1fZnJhbWVzLmZpbmQoZnJhbWVOYW1lKTsKICAgICBpZiAoaXQgPT0g
ZC0+bV9mcmFtZXMuZW5kKCkpIHsKICAgICAgICAgQ2hpbGRGcmFtZSBjaGlsZDsKLSAgICAgICAg
Y2hpbGQubV9uYW1lID0gZnJhbWVOYW1lOwogICAgICAgICBpdCA9IGQtPm1fZnJhbWVzLmFwcGVu
ZChjaGlsZCk7CiAgICAgfQotICAgICgqaXQpLm1fcmVuZGVyZXIgPSBwYXJ0OwogCiAgICAgLy8g
U3VwcG9ydCBmb3IgPGZyYW1lIHNyYz0iamF2YXNjcmlwdDpzdHJpbmciPgogICAgIEtVUkwgc2Ny
aXB0VVJMOwpAQCAtMTUwMSw4ICsxNTAxLDEwIEBAIGJvb2wgRnJhbWU6OnJlcXVlc3RGcmFtZShS
ZW5kZXJQYXJ0ICpwYXIKICAgICAgICAgYXJncy5tZXRhRGF0YSgpLnNldCgicmVmZXJyZXIiLCBk
LT5tX3JlZmVycmVyKTsKICAgICAgICAgYXJncy5yZWxvYWQgPSAoZC0+bV9jYWNoZVBvbGljeSA9
PSBLSU86OkNDX1JlbG9hZCkgfHwgKGQtPm1fY2FjaGVQb2xpY3kgPT0gS0lPOjpDQ19SZWZyZXNo
KTsKICAgICAgICAgc3RhdGljX2Nhc3Q8RnJhbWUgKj4oKCppdCkubV9mcmFtZS5nZXQoKSktPm9w
ZW5VUkxSZXF1ZXN0KHVybCwgYXJncyk7Ci0gICAgfSBlbHNlIGlmICghbG9hZFN1YmZyYW1lKCYo
Kml0KSwgdXJsLCBkLT5tX3JlZmVycmVyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGlmICghbG9hZFN1YmZyYW1lKCYoKml0KSwgcmVuZGVyZXIsIHVybCwg
ZnJhbWVOYW1lLCBkLT5tX3JlZmVycmVyKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CiAgICAgICAgIAogICAgIGlmICghc2NyaXB0VVJMLmlzRW1wdHkoKSkgewogICAgICAgICBG
cmFtZSAqbmV3UGFydCA9IHN0YXRpY19jYXN0PEZyYW1lICo+KCYqKCppdCkubV9mcmFtZSk7IApA
QCAtMTUxMiwyOCArMTUxNCwyNCBAQCBib29sIEZyYW1lOjpyZXF1ZXN0RnJhbWUoUmVuZGVyUGFy
dCAqcGFyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRnJhbWU6OnJlcXVlc3RPYmplY3Qo
UmVuZGVyUGFydCAqcmVuZGVyZXIsIGNvbnN0IFFTdHJpbmcgJnVybCwgY29uc3QgUVN0cmluZyAm
bWltZVR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0ICZw
YXJhbU5hbWVzLCBjb25zdCBRU3RyaW5nTGlzdCAmcGFyYW1WYWx1ZXMpCitib29sIEZyYW1lOjpy
ZXF1ZXN0T2JqZWN0KFJlbmRlclBhcnQgKnJlbmRlcmVyLCBjb25zdCBRU3RyaW5nICZ1cmwsIGNv
bnN0IFFTdHJpbmcgJmZyYW1lTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
UVN0cmluZyAmbWltZVR5cGUsIGNvbnN0IFFTdHJpbmdMaXN0ICZwYXJhbU5hbWVzLCBjb25zdCBR
U3RyaW5nTGlzdCAmcGFyYW1WYWx1ZXMpCiB7Ci0gICAgQ2hpbGRGcmFtZSBjaGlsZDsKLSAgICBR
VmFsdWVMaXN0PENoaWxkRnJhbWU+OjpJdGVyYXRvciBpdCA9IGQtPm1fb2JqZWN0cy5hcHBlbmQo
Y2hpbGQpOwotICAgICgqaXQpLm1fcmVuZGVyZXIgPSByZW5kZXJlcjsKLSAgICAKICAgICBLVVJM
IGNvbXBsZXRlZFVSTDsKICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCiAgICAgICAgIGNvbXBsZXRl
ZFVSTCA9IGNvbXBsZXRlVVJMKHVybCk7CiAgICAgCi0gICAgaWYgKHVybC5pc0VtcHR5KCkgJiYg
bWltZVR5cGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNoZWNrRW1pdExvYWRFdmVudCgpOwotICAg
ICAgICBjaGlsZC5tX2JDb21wbGV0ZWQgPSB0cnVlOworICAgIGlmICh1cmwuaXNFbXB0eSgpICYm
IG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQogICAgIAog
ICAgIGJvb2wgdXNlRmFsbGJhY2s7Ci0gICAgaWYgKHNob3VsZFVzZVBsdWdpbigoKml0KS5tX3Jl
bmRlcmVyLT5lbGVtZW50KCksIGNvbXBsZXRlZFVSTCwgbWltZVR5cGUsIHJlbmRlcmVyLT5oYXNG
YWxsYmFja0NvbnRlbnQoKSwgdXNlRmFsbGJhY2spKQotICAgICAgICByZXR1cm4gbG9hZFBsdWdp
bigmKCppdCksIGNvbXBsZXRlZFVSTCwgbWltZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVz
LCB1c2VGYWxsYmFjayk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gbG9hZFN1YmZyYW1lKCYo
Kml0KSwgY29tcGxldGVkVVJMLCBkLT5tX3JlZmVycmVyKTsKKyAgICBpZiAoc2hvdWxkVXNlUGx1
Z2luKHJlbmRlcmVyLT5lbGVtZW50KCksIGNvbXBsZXRlZFVSTCwgbWltZVR5cGUsIHJlbmRlcmVy
LT5oYXNGYWxsYmFja0NvbnRlbnQoKSwgdXNlRmFsbGJhY2spKSB7CisgICAgICAgIHJldHVybiBs
b2FkUGx1Z2luKHJlbmRlcmVyLCBjb21wbGV0ZWRVUkwsIG1pbWVUeXBlLCBwYXJhbU5hbWVzLCBw
YXJhbVZhbHVlcywgdXNlRmFsbGJhY2spOworICAgIH0gZWxzZSB7CisgICAgICAgIENoaWxkRnJh
bWUgY2hpbGQ7CisgICAgICAgIFFWYWx1ZUxpc3Q8Q2hpbGRGcmFtZT46Okl0ZXJhdG9yIGl0ID0g
ZC0+bV9mcmFtZXMuYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgcmV0dXJuIGxvYWRTdWJmcmFtZSgm
KCppdCksIHJlbmRlcmVyLCBjb21wbGV0ZWRVUkwsIGZyYW1lTmFtZSwgZC0+bV9yZWZlcnJlcik7
CisgICAgfQogfQogCiBib29sIEZyYW1lOjpzaG91bGRVc2VQbHVnaW4oTm9kZUltcGwqIGVsZW1l
bnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUVN0cmluZyYgbWltZVR5cGUsIGJvb2wgaGFzRmFs
bGJhY2ssIGJvb2wmIHVzZUZhbGxiYWNrKQpAQCAtMTU1MCw3ICsxNTQ4LDcgQEAgYm9vbCBGcmFt
ZTo6c2hvdWxkVXNlUGx1Z2luKE5vZGVJbXBsKiBlbAogfQogCiAKLWJvb2wgRnJhbWU6OmxvYWRQ
bHVnaW4oQ2hpbGRGcmFtZSAqY2hpbGQsIGNvbnN0IEtVUkwgJnVybCwgY29uc3QgUVN0cmluZyAm
bWltZVR5cGUsIAorYm9vbCBGcmFtZTo6bG9hZFBsdWdpbihSZW5kZXJQYXJ0ICpyZW5kZXJlciwg
Y29uc3QgS1VSTCAmdXJsLCBjb25zdCBRU3RyaW5nICZtaW1lVHlwZSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0JiBwYXJhbU5hbWVzLCBjb25zdCBRU3RyaW5nTGlz
dCYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJhY2spCiB7CiAgICAgaWYgKHVzZUZhbGxiYWNr
KSB7CkBAIC0xNTYzLDI0ICsxNTYxLDE5IEBAIGJvb2wgRnJhbWU6OmxvYWRQbHVnaW4oQ2hpbGRG
cmFtZSAqY2hpbGQKICAgICAgICAgY2hlY2tFbWl0TG9hZEV2ZW50KCk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CisgICAgZC0+bV9wbHVnaW5zLmFwcGVuZChwbHVnaW4pOwogICAgIAot
ICAgIGlmIChjaGlsZC0+bV9yZW5kZXJlciAmJiBwbHVnaW4tPnZpZXcoKSkKLSAgICAgICAgY2hp
bGQtPm1fcmVuZGVyZXItPnNldFdpZGdldChwbHVnaW4tPnZpZXcoKSk7Ci0gICAgY2hpbGQtPm1f
ZnJhbWUgPSBwbHVnaW47CisgICAgaWYgKHJlbmRlcmVyICYmIHBsdWdpbi0+dmlldygpKQorICAg
ICAgICByZW5kZXJlci0+c2V0V2lkZ2V0KHBsdWdpbi0+dmlldygpKTsKICAgICAKICAgICBjaGVj
a0VtaXRMb2FkRXZlbnQoKTsKICAgICAKLSAgICAvLyBTb21lIEpTIGNvZGUgaW4gdGhlIGxvYWQg
ZXZlbnQgbWF5IGhhdmUgZGVzdHJveWVkIHRoZSBwbHVnaW4sIGluIHRoYXQgY2FzZSwgYWJvcnQK
LSAgICBpZiAoIWNoaWxkLT5tX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
Ci0gICAgY2hpbGQtPm1fYkNvbXBsZXRlZCA9IGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIEZyYW1lOjpsb2FkU3ViZnJhbWUoQ2hpbGRGcmFtZSogY2hpbGQsIGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgRE9NU3RyaW5nJiByZWZlcnJlcikKK2Jvb2wgRnJhbWU6OmxvYWRTdWJmcmFt
ZShDaGlsZEZyYW1lKiBjaGlsZCwgUmVuZGVyUGFydCogcmVuZGVyZXIsIGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgRE9NU3RyaW5nJiByZWZlcnJlcikKIHsKLSAg
ICBGcmFtZSogZnJhbWUgPSBjcmVhdGVGcmFtZSh1cmwsIGNoaWxkLT5tX25hbWUsIGNoaWxkLT5t
X3JlbmRlcmVyLCByZWZlcnJlcik7CisgICAgRnJhbWUqIGZyYW1lID0gY3JlYXRlRnJhbWUodXJs
LCBuYW1lLCByZW5kZXJlciwgcmVmZXJyZXIpOwogICAgIGlmICghZnJhbWUpICB7CiAgICAgICAg
IGNoZWNrRW1pdExvYWRFdmVudCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTkxLDIw
ICsxNTg0LDE0IEBAIGJvb2wgRnJhbWU6OmxvYWRTdWJmcmFtZShDaGlsZEZyYW1lKiBjaGkKICAg
ICBpZiAoY2hpbGQtPm1fZnJhbWUpCiAgICAgICAgIGRpc2Nvbm5lY3RDaGlsZChjaGlsZCk7CiAg
ICAgCi0gICAgaWYgKGNoaWxkLT5tX3JlbmRlcmVyICYmIGZyYW1lLT52aWV3KCkpCi0gICAgICAg
IGNoaWxkLT5tX3JlbmRlcmVyLT5zZXRXaWRnZXQoZnJhbWUtPnZpZXcoKSk7CisgICAgaWYgKHJl
bmRlcmVyICYmIGZyYW1lLT52aWV3KCkpCisgICAgICAgIHJlbmRlcmVyLT5zZXRXaWRnZXQoZnJh
bWUtPnZpZXcoKSk7CiAgICAgCiAgICAgY2hpbGQtPm1fZnJhbWUgPSBmcmFtZTsKICAgICBjb25u
ZWN0Q2hpbGQoY2hpbGQpOwogICAgIAogICAgIGNoZWNrRW1pdExvYWRFdmVudCgpOwogICAgIAot
ICAgIC8vIFNvbWUgSlMgY29kZSBpbiB0aGUgbG9hZCBldmVudCBtYXkgaGF2ZSBkZXN0cm95ZWQg
dGhlIGZyYW1lLCBpbiB0aGF0IGNhc2UsIGFib3J0Ci0gICAgaWYgKCFjaGlsZC0+bV9yZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGNoaWxkLT5tX2JDb21wbGV0ZWQg
PSBmYWxzZTsKLSAgICAKICAgICAvLyBJbiB0aGVzZSBjYXNlcywgdGhlIHN5bmNocm9ub3VzIGxv
YWQgd291bGQgaGF2ZSBmaW5pc2hlZAogICAgIC8vIGJlZm9yZSB3ZSBjb3VsZCBjb25uZWN0IHRo
ZSBzaWduYWxzLCBzbyBtYWtlIHN1cmUgdG8gc2VuZCB0aGUgCiAgICAgLy8gY29tcGxldGVkKCkg
c2lnbmFsIGZvciB0aGUgY2hpbGQgYnkgaGFuZApAQCAtMTczMSwxOCArMTcxOCwxMiBAQCB2b2lk
IEZyYW1lOjpzbG90UGFyZW50Q29tcGxldGVkKCkKICAgICAgICAgc3RhcnRSZWRpcmVjdGlvblRp
bWVyKCk7CiB9CiAKLXZvaWQgRnJhbWU6OnNsb3RDaGlsZFN0YXJ0ZWQoIEtJTzo6Sm9iICpqb2Ig
KQordm9pZCBGcmFtZTo6c2xvdENoaWxkU3RhcnRlZChLSU86OkpvYiAqam9iKQogewotICBDaGls
ZEZyYW1lICpjaGlsZCA9IGNoaWxkRnJhbWUoIHNlbmRlcigpICk7Ci0KLSAgYXNzZXJ0KCBjaGls
ZCApOwotCi0gIGNoaWxkLT5tX2JDb21wbGV0ZWQgPSBmYWxzZTsKLQotICBpZiAoIGQtPm1fYkNv
bXBsZXRlICkKKyAgaWYgKGQtPm1fYkNvbXBsZXRlKQogICB7Ci0gICAgZC0+bV9iQ29tcGxldGUg
PSBmYWxzZTsKLSAgICBlbWl0IHN0YXJ0ZWQoIGpvYiApOworICAgICAgZC0+bV9iQ29tcGxldGUg
PSBmYWxzZTsKKyAgICAgIGVtaXQgc3RhcnRlZChqb2IpOwogICB9CiB9CiAKQEAgLTE3NTMsMTIg
KzE3MzQsNiBAQCB2b2lkIEZyYW1lOjpzbG90Q2hpbGRDb21wbGV0ZWQoKQogCiB2b2lkIEZyYW1l
OjpzbG90Q2hpbGRDb21wbGV0ZWQoIGJvb2wgY29tcGxldGUgKQogewotICBDaGlsZEZyYW1lICpj
aGlsZCA9IGNoaWxkRnJhbWUoIHNlbmRlcigpICk7Ci0KLSAgYXNzZXJ0KCBjaGlsZCApOwotCi0g
IGNoaWxkLT5tX2JDb21wbGV0ZWQgPSB0cnVlOwotCiAgIGlmIChjb21wbGV0ZSAmJiB0cmVlTm9k
ZSgpLT5wYXJlbnQoKSA9PSAwKQogICAgIGQtPm1fYlBlbmRpbmdDaGlsZFJlZGlyZWN0aW9uID0g
dHJ1ZTsKIApAQCAtMTc3NiwxMiArMTc1MSw2IEBAIENoaWxkRnJhbWUgKkZyYW1lOjpjaGlsZEZy
YW1lKGNvbnN0IFFPYmoKICAgICAgIGlmICgoKml0KS5tX2ZyYW1lID09IHBhcnQpCiAgICAgICAg
IHJldHVybiAmKCppdCk7CiAKLSAgICBpdCA9IGQtPm1fb2JqZWN0cy5iZWdpbigpOwotICAgIGVu
ZCA9IGQtPm1fb2JqZWN0cy5lbmQoKTsKLSAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0ICkKLSAg
ICAgIGlmICgoKml0KS5tX2ZyYW1lID09IHBhcnQpCi0gICAgICAgIHJldHVybiAmKCppdCk7Ci0K
ICAgICByZXR1cm4gMEw7CiB9CiAKQEAgLTE4MDEsMTYgKzE3NzAsMTAgQEAgRnJhbWUgKkZyYW1l
OjpmaW5kRnJhbWUoIGNvbnN0IFFTdHJpbmcgJgogfQogCiAKLWJvb2wgRnJhbWU6OmZyYW1lRXhp
c3RzKCBjb25zdCBRU3RyaW5nICZmcmFtZU5hbWUgKQorYm9vbCBGcmFtZTo6ZnJhbWVFeGlzdHMo
Y29uc3QgUVN0cmluZyYgZnJhbWVOYW1lKQogewotICBDb25zdEZyYW1lSXQgaXQgPSBkLT5tX2Zy
YW1lcy5maW5kKCBmcmFtZU5hbWUgKTsKLSAgaWYgKCBpdCA9PSBkLT5tX2ZyYW1lcy5lbmQoKSAp
Ci0gICAgcmV0dXJuIGZhbHNlOwotCi0gIC8vIFdBQkE6IFdlIG9ubHkgcmV0dXJuIHRydWUgaWYg
dGhlIGNoaWxkIGFjdHVhbGx5IGhhcyBhIGZyYW1lCi0gIC8vIHNldC4gT3RoZXJ3aXNlIHdlIG1p
Z2h0IGZpbmQgb3VyIHByZWxvYWRlZC1zZWx2ZS4KLSAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gd2Ug
cmVzdG9yZSB0aGUgZnJhbWVzZXQuCi0gIHJldHVybiAoISgqaXQpLm1fcmVuZGVyZXIuaXNOdWxs
KCkpOworICBDb25zdEZyYW1lSXQgaXQgPSBkLT5tX2ZyYW1lcy5maW5kKGZyYW1lTmFtZSk7Cisg
ICAgcmV0dXJuIGl0ICE9IGQtPm1fZnJhbWVzLmVuZCgpOwogfQogCiBpbnQgRnJhbWU6Onpvb21G
YWN0b3IoKSBjb25zdApAQCAtMTkzNCw3ICsxODk3LDcgQEAgUVN0cmluZ0xpc3QgRnJhbWU6OmZy
YW1lTmFtZXMoKSBjb25zdAogICBDb25zdEZyYW1lSXQgaXQgPSBkLT5tX2ZyYW1lcy5iZWdpbigp
OwogICBDb25zdEZyYW1lSXQgZW5kID0gZC0+bV9mcmFtZXMuZW5kKCk7CiAgIGZvciAoOyBpdCAh
PSBlbmQ7ICsraXQgKQotICAgICAgcmVzICs9ICgqaXQpLm1fbmFtZTsKKyAgICAgIHJlcyArPSAo
Kml0KS5tX2ZyYW1lLT50cmVlTm9kZSgpLT5uYW1lKCkucXN0cmluZygpOwogCiAgIHJldHVybiBy
ZXM7CiB9CkBAIC0yOTQ2LDE4ICsyOTA5LDE4IEBAIFJlbmRlck9iamVjdCAqRnJhbWU6OnJlbmRl
cmVyKCkgY29uc3QKIAogRWxlbWVudEltcGwqIEZyYW1lOjpvd25lckVsZW1lbnQoKQogewotICAg
IEZyYW1lKiBwYXJlbnQgPSB0cmVlTm9kZSgpLT5wYXJlbnQoKTsKLSAgICBpZiAoIXBhcmVudCkK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgQ2hpbGRGcmFtZSogY2hpbGRGcmFtZSA9IHBhcmVudC0+
Y2hpbGRGcmFtZSh0aGlzKTsKLSAgICBpZiAoIWNoaWxkRnJhbWUpCi0gICAgICAgIHJldHVybiAw
OwotICAgIFJlbmRlclBhcnQqIG93bmVyRWxlbWVudFJlbmRlcmVyID0gY2hpbGRGcmFtZS0+bV9y
ZW5kZXJlcjsKKyAgICBSZW5kZXJQYXJ0KiBvd25lckVsZW1lbnRSZW5kZXJlciA9IGQtPm1fb3du
ZXJSZW5kZXJlcjsKICAgICBpZiAoIW93bmVyRWxlbWVudFJlbmRlcmVyKQogICAgICAgICByZXR1
cm4gMDsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudEltcGwqPihvd25lckVsZW1lbnRS
ZW5kZXJlci0+ZWxlbWVudCgpKTsKIH0KIAorUmVuZGVyUGFydCogRnJhbWU6Om93bmVyUmVuZGVy
ZXIoKQoreworICAgIHJldHVybiBkLT5tX293bmVyUmVuZGVyZXI7Cit9CisKKwogSW50UmVjdCBG
cmFtZTo6c2VsZWN0aW9uUmVjdCgpIGNvbnN0CiB7CiAgICAgUmVuZGVyQ2FudmFzICpyb290ID0g
c3RhdGljX2Nhc3Q8UmVuZGVyQ2FudmFzICo+KHJlbmRlcmVyKCkpOwpAQCAtMzE5MSw3ICszMTU0
LDcgQEAgYm9vbCBGcmFtZTo6Y2FuQ2FjaGVQYWdlKCkKICAgICAvLyAzLiAgVGhlIHBhZ2UgaGFz
IG5vIHBhc3N3b3JkIGZpZWxkcy4KICAgICAvLyA0LiAgVGhlIFVSTCBmb3IgdGhlIHBhZ2UgaXMg
bm90IGh0dHBzLgogICAgIC8vIDUuICBUaGUgcGFnZSBoYXMgbm8gYXBwbGV0cy4KLSAgICBpZiAo
ZC0+bV9mcmFtZXMuY291bnQoKSB8fCBkLT5tX29iamVjdHMuY291bnQoKSB8fAorICAgIGlmIChk
LT5tX2ZyYW1lcy5jb3VudCgpIHx8IGQtPm1fcGx1Z2lucy5zaXplKCkgfHwKICAgICAgICAgdHJl
ZU5vZGUoKS0+cGFyZW50KCkgfHwKICAgICAgICAgZC0+bV91cmwucHJvdG9jb2woKS5zdGFydHNX
aXRoKCJodHRwcyIpIHx8IAogICAgICAgICAoZC0+bV9kb2MgJiYgKGQtPm1fZG9jLT5hcHBsZXRz
KCktPmxlbmd0aCgpICE9IDAgfHwKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWVQcml2YXRlLmgJKHJldmlzaW9uIDEyNjA2
KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAia2pzX3Byb3h5LmgiCiAjaW5jbHVkZSA8a2lvL2dsb2JhbC5o
PgogI2luY2x1ZGUgIkZyYW1lVHJlZU5vZGUuaCIKKyNpbmNsdWRlICJreG1sY29yZS9WZWN0b3Iu
aCIKIAogbmFtZXNwYWNlIEtJTyB7CiAgICAgY2xhc3MgVHJhbnNmZXJKb2I7CkBAIC00NiwxNSAr
NDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZQogCiAgICAgc3RydWN0IENoaWxkRnJhbWUKICAgICB7
Ci0gICAgICAgIENoaWxkRnJhbWUoKSAKLSAgICAgICAgICAgICA6IG1fYkNvbXBsZXRlZChmYWxz
ZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgUUd1YXJkZWRQdHI8UmVuZGVyUGFy
dD4gbV9yZW5kZXJlcjsKLSAgICAgICAgUmVmUHRyPE9iamVjdENvbnRlbnRzPiBtX2ZyYW1lOwot
ICAgICAgICBib29sIG1fYkNvbXBsZXRlZDsKLSAgICAgICAgUVN0cmluZyBtX25hbWU7CisgICAg
ICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKICAgICB9OwogCiBjbGFzcyBGcmFtZUxpc3QgOiBw
dWJsaWMgUVZhbHVlTGlzdDxDaGlsZEZyYW1lPgpAQCAtNzcsOCArNzAsOSBAQCBlbnVtIFJlZGly
ZWN0aW9uU2NoZWR1bGVkIHsKIGNsYXNzIEZyYW1lUHJpdmF0ZQogewogcHVibGljOgotICBGcmFt
ZVByaXZhdGUoRnJhbWUgKnBhcmVudCwgRnJhbWUgKnRoaXNGcmFtZSkKKyAgRnJhbWVQcml2YXRl
KEZyYW1lICpwYXJlbnQsIEZyYW1lICp0aGlzRnJhbWUsIFJlbmRlclBhcnQqIG93bmVyUmVuZGVy
ZXIpCiAgICAgICA6IG1fdHJlZU5vZGUodGhpc0ZyYW1lLCBwYXJlbnQpCisgICAgICAsIG1fb3du
ZXJSZW5kZXJlcihvd25lclJlbmRlcmVyKQogICAgICAgLCBtX3JlZGlyZWN0aW9uVGltZXIodGhp
c0ZyYW1lLCAmRnJhbWU6OnJlZGlyZWN0aW9uVGltZXJGaXJlZCkKICAgICAgICwgbV9jYXJldEJs
aW5rVGltZXIodGhpc0ZyYW1lLCAmRnJhbWU6OmNhcmV0QmxpbmtUaW1lckZpcmVkKQogICAgICAg
LCBtX2xpZmVTdXBwb3J0VGltZXIodGhpc0ZyYW1lLCAmRnJhbWU6OmxpZmVTdXBwb3J0VGltZXJG
aXJlZCkKQEAgLTE1Nyw4ICsxNTEsOSBAQCBwdWJsaWM6CiAKICAgLy8gb2xkIHN0eWxlIGZyYW1l
IGluZm8KICAgRnJhbWVMaXN0IG1fZnJhbWVzOwotICBRVmFsdWVMaXN0PENoaWxkRnJhbWU+IG1f
b2JqZWN0czsKKyAgVmVjdG9yPFJlZlB0cjxQbHVnaW4+ID4gbV9wbHVnaW5zOwogCisgIFFHdWFy
ZGVkUHRyPFJlbmRlclBhcnQ+IG1fb3duZXJSZW5kZXJlcjsKICAgUUd1YXJkZWRQdHI8RnJhbWVW
aWV3PiBtX3ZpZXc7CiAgIEJyb3dzZXJFeHRlbnNpb24gKm1fZXh0ZW5zaW9uOwogICBEb2N1bWVu
dEltcGwgKm1fZG9jOwpJbmRleDogV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYlBhZ2VCcmlkZ2Uu
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViUGFnZUJyaWRnZS5tCShy
ZXZpc2lvbiAxMjYwNikKKysrIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJQYWdlQnJpZGdlLm0J
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogLSAoaWQpaW5pdFdpdGhNYWluRnJh
bWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSB3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBm
cmFtZVZpZXc6KFdlYkZyYW1lVmlldyAqKWZyYW1lVmlldwogewotICAgIHNlbGYgPSBbc3VwZXIg
aW5pdFdpdGhNYWluRnJhbWU6W1tbV2ViRnJhbWVCcmlkZ2UgYWxsb2NdIGluaXRXaXRoUGFnZTpz
ZWxmIHdlYlZpZXc6d2ViVmlldyBmcmFtZU5hbWU6ZnJhbWVOYW1lIHZpZXc6ZnJhbWVWaWV3XSBh
dXRvcmVsZWFzZV1dOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhNYWluRnJhbWU6W1tbV2Vi
RnJhbWVCcmlkZ2UgYWxsb2NdIGluaXRXaXRoUGFnZTpzZWxmIHdlYlZpZXc6d2ViVmlldyByZW5k
ZXJlcjpuaWwgZnJhbWVOYW1lOmZyYW1lTmFtZSB2aWV3OmZyYW1lVmlld10gYXV0b3JlbGVhc2Vd
XTsKICAgICBpZiAoc2VsZikKICAgICAgICAgX3dlYlZpZXcgPSB3ZWJWaWV3OwogICAgIHJldHVy
biBzZWxmOwpJbmRleDogV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLmgJKHJldmlz
aW9uIDEyNjA2KQorKysgV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKIEBjbGFzcyBXZWJEYXRhU291cmNlOwogQGNs
YXNzIFdlYkZyYW1lOwogQGNsYXNzIFdlYkZyYW1lVmlldzsKK0BjbGFzcyBXZWJDb3JlUmVuZGVy
UGFydDsKIEBwcm90b2NvbCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIAogQGludGVyZmFj
ZSBXZWJGcmFtZUJyaWRnZSA6IFdlYkNvcmVGcmFtZUJyaWRnZSA8V2ViQ29yZUZyYW1lQnJpZGdl
PgpAQCAtNDgsNyArNDksNyBAQAogICAgIE5TRGljdGlvbmFyeSAqbGFzdERhc2hib2FyZFJlZ2lv
bnM7CiB9CiAKLS0gKGlkKWluaXRXaXRoUGFnZTooV2ViUGFnZUJyaWRnZSAqKXBhZ2Ugd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgZnJhbWVOYW1lOihOU1N0cmluZyAqKW5hbWUgdmlldzooV2Vi
RnJhbWVWaWV3ICopdmlldzsKKy0gKGlkKWluaXRXaXRoUGFnZTooV2ViUGFnZUJyaWRnZSAqKXBh
Z2Ugd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcmVuZGVyZXI6KFdlYkNvcmVSZW5kZXJQYXJ0
ICopcmVuZGVyZXIgZnJhbWVOYW1lOihOU1N0cmluZyAqKW5hbWUgdmlldzooV2ViRnJhbWVWaWV3
ICopdmlldzsKIC0gKHZvaWQpY2xvc2U7CiAKIC0gKHZvaWQpcmVjZWl2ZWREYXRhOihOU0RhdGEg
KilkYXRhIHRleHRFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopdGV4dEVuY29kaW5nTmFtZTsKSW5k
ZXg6IFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCShyZXZpc2lvbiAxMjYwNikK
KysrIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTYsOSArMTE2LDkgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9ICAg
QCJXZQogCiBAaW1wbGVtZW50YXRpb24gV2ViRnJhbWVCcmlkZ2UKIAotLSAoaWQpaW5pdFdpdGhQ
YWdlOihXZWJQYWdlQnJpZGdlICopcGFnZSB3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBmcmFt
ZU5hbWU6KE5TU3RyaW5nICopbmFtZSB2aWV3OihXZWJGcmFtZVZpZXcgKil2aWV3CistIChpZClp
bml0V2l0aFBhZ2U6KFdlYlBhZ2VCcmlkZ2UgKilwYWdlIHdlYlZpZXc6KFdlYlZpZXcgKil3ZWJW
aWV3IHJlbmRlcmVyOihXZWJDb3JlUmVuZGVyUGFydCAqKXJlbmRlcmVyIGZyYW1lTmFtZTooTlNT
dHJpbmcgKiluYW1lIHZpZXc6KFdlYkZyYW1lVmlldyAqKXZpZXcKIHsKLSAgICBzZWxmID0gW3N1
cGVyIGluaXRdOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhSZW5kZXJlcjpyZW5kZXJlcl07
CiAKICAgICArK1dlYkJyaWRnZUNvdW50OwogICAgIApAQCAtNzY0LDE5ICs3NjQsMjUgQEAgTlNT
dHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9ICAgQCJXZQogICAgIGlmICghW3NlbGYgY2Fu
TG9hZFVSTDpVUkwgZnJvbVJlZmVycmVyOnJlZmVycmVyIGhpZGVSZWZlcnJlcjomaGlkZVJlZmVy
cmVyXSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFTU0VSVChfZnJhbWUgIT0gbmlsKTsK
LSAgICBXZWJGcmFtZSAqbmV3RnJhbWUgPSBbW19wYWdlIHdlYlZpZXddIF9jcmVhdGVGcmFtZU5h
bWVkOmZyYW1lTmFtZSBpblBhcmVudDpfZnJhbWUgYWxsb3dzU2Nyb2xsaW5nOmFsbG93c1Njcm9s
bGluZ107Ci0gICAgaWYgKG5ld0ZyYW1lID09IG5pbCkKLSAgICAgICAgcmV0dXJuIG5pbDsKKyAg
ICBBU1NFUlQoX2ZyYW1lKTsKICAgICAKLSAgICBbW25ld0ZyYW1lIF9icmlkZ2VdIHNldFJlbmRl
clBhcnQ6Y2hpbGRSZW5kZXJQYXJ0XTsKKyAgICBXZWJGcmFtZVZpZXcgKmNoaWxkVmlldyA9IFtb
V2ViRnJhbWVWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwwLDAsMCldOwor
ICAgIFtjaGlsZFZpZXcgc2V0QWxsb3dzU2Nyb2xsaW5nOmFsbG93c1Njcm9sbGluZ107CisgICAg
V2ViRnJhbWVCcmlkZ2UgKm5ld0JyaWRnZSA9IFtbV2ViRnJhbWVCcmlkZ2UgYWxsb2NdIGluaXRX
aXRoUGFnZTpfcGFnZSB3ZWJWaWV3OltfcGFnZSB3ZWJWaWV3XSByZW5kZXJlcjpjaGlsZFJlbmRl
clBhcnQgZnJhbWVOYW1lOmZyYW1lTmFtZSB2aWV3OmNoaWxkVmlld107CisgICAgW19mcmFtZSBf
YWRkQ2hpbGQ6W25ld0JyaWRnZSB3ZWJGcmFtZV1dOworICAgIFtjaGlsZFZpZXcgcmVsZWFzZV07
CisKKyAgICBbY2hpbGRWaWV3IF9zZXRNYXJnaW5XaWR0aDp3aWR0aF07CisgICAgW2NoaWxkVmll
dyBfc2V0TWFyZ2luSGVpZ2h0OmhlaWdodF07CiAKLSAgICBbW25ld0ZyYW1lIGZyYW1lVmlld10g
X3NldE1hcmdpbldpZHRoOndpZHRoXTsKLSAgICBbW25ld0ZyYW1lIGZyYW1lVmlld10gX3NldE1h
cmdpbkhlaWdodDpoZWlnaHRdOworICAgIFtuZXdCcmlkZ2UgcmVsZWFzZV07CisKKyAgICBpZiAo
IW5ld0JyaWRnZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFtfZnJhbWUgX2xvYWRVUkw6
VVJMIHJlZmVycmVyOihoaWRlUmVmZXJyZXIgPyBuaWwgOiByZWZlcnJlcikgaW50b0NoaWxkOm5l
d0ZyYW1lXTsKKyAgICBbX2ZyYW1lIF9sb2FkVVJMOlVSTCByZWZlcnJlcjooaGlkZVJlZmVycmVy
ID8gbmlsIDogcmVmZXJyZXIpIGludG9DaGlsZDpbbmV3QnJpZGdlIHdlYkZyYW1lXV07CiAKLSAg
ICByZXR1cm4gW25ld0ZyYW1lIF9icmlkZ2VdOworICAgIHJldHVybiBuZXdCcmlkZ2U7CiB9CiAK
IC0gKHZvaWQpc2F2ZURvY3VtZW50U3RhdGU6KE5TQXJyYXkgKilkb2N1bWVudFN0YXRlCkluZGV4
OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEyNjMyKQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIyIEBACisyMDA2LTAyLTA2ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBmaXhlZCAi
cmVtb3ZlIGZyYW1lLCByZW5kZXJlciBhbmQgY29tcGxldGVkIGZsYWcgZnJvbSBDaGlsZEZyYW1l
LCBtYWtlIEZyYW1lIHRyYWNrIHRoZXNlIgorICAgICAgICBodHRwOi8vYnVnemlsbGEub3BlbmRh
cndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjUKKyAgICAgICAgCisgICAgICAgIC0gZml4ZWQg
Im9ubG9hZCBldmVudCBuZXZlciBjYWxsZWQgZm9yIGlmcmFtZSBlbGVtZW50IHdpdGggZW10cHkg
b3IgYWJvdXQ6Ymxhbmsgc3JjIgorICAgICAgICBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5v
cmcvc2hvd19idWcuY2dpP2lkPTM2MDkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lQnJpZGdlLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubToK
KyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2UgaW5pdFdpdGhQYWdlOndlYlZpZXc6cmVuZGVyZXI6
ZnJhbWVOYW1lOnZpZXc6XSk6IFBhc3MgYWxvbmcgcmVuZGVyZXIuCisgICAgICAgICgtW1dlYkZy
YW1lQnJpZGdlIGNyZWF0ZUNoaWxkRnJhbWVOYW1lZDp3aXRoVVJMOnJlZmVycmVyOnJlbmRlclBh
cnQ6YWxsb3dzU2Nyb2xsaW5nOm1hcmdpbldpZHRoOm1hcmdpbkhlaWdodDpdKTogUGFzcyBhbG9u
ZyByZW5kZXJlci4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYWdlQnJpZGdlLm06Cisg
ICAgICAgICgtW1dlYlBhZ2VCcmlkZ2UgaW5pdFdpdGhNYWluRnJhbWVOYW1lOndlYlZpZXc6ZnJh
bWVWaWV3Ol0pOiBQYXNzIG51bGwgZm9yIHJlbmRlcmVyLgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAwNi0wMi0w
NiAgSm9obiBTdWxsaXZhbiAgPHN1bGxpdmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYlZpZXdQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAkocmV2
aXNpb24gMTI2MDYpCisrKyBXZWJLaXQvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDAsOCArMTQwLDYgQEAgdHlwZWRlZiBlbnVtIHsKICovCiArIChOU1N0cmlu
ZyAqKXN1Z2dlc3RlZEZpbGVFeHRlbnNpb25Gb3JNSU1FVHlwZTogKE5TU3RyaW5nICopTUlNRVR5
cGU7CiAKLS0gKFdlYkZyYW1lICopX2NyZWF0ZUZyYW1lTmFtZWQ6KE5TU3RyaW5nICopbmFtZSBp
blBhcmVudDooV2ViRnJhbWUgKilwYXJlbnQgYWxsb3dzU2Nyb2xsaW5nOihCT09MKWFsbG93c1Nj
cm9sbGluZzsKLQogLSAodm9pZClfZmluaXNoZWRMb2FkaW5nUmVzb3VyY2VGcm9tRGF0YVNvdXJj
ZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2U7CiAtICh2b2lkKV9yZWNlaXZlZEVycm9yOihO
U0Vycm9yICopZXJyb3IgZnJvbURhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNl
OwogLSAodm9pZClfbWFpblJlY2VpdmVkQnl0ZXNTb0ZhcjoodW5zaWduZWQpYnl0ZXNTb0ZhciBm
cm9tRGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UgY29tcGxldGU6KEJPT0wp
aXNDb21wbGV0ZTsKSW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYlZpZXcubQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvV2ViVmlldy9XZWJWaWV3Lm0JKHJldmlzaW9uIDEyNjA2KQorKysgV2ViS2l0L1dl
YlZpZXcvV2ViVmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC01NTksMjIgKzU1OSw2IEBAIHN0YXRp
YyBib29sIGRlYnVnV2lkZ2V0ID0gdHJ1ZTsKICAgICB9CiB9CiAKLS0gKFdlYkZyYW1lICopX2Ny
ZWF0ZUZyYW1lTmFtZWQ6KE5TU3RyaW5nICopZm5hbWUgaW5QYXJlbnQ6KFdlYkZyYW1lICopcGFy
ZW50IGFsbG93c1Njcm9sbGluZzooQk9PTClhbGxvd3NTY3JvbGxpbmcKLXsKLSAgICBXZWJGcmFt
ZVZpZXcgKmNoaWxkVmlldyA9IFtbV2ViRnJhbWVWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwwLDAsMCldOwotCi0gICAgW2NoaWxkVmlldyBzZXRBbGxvd3NTY3JvbGxpbmc6
YWxsb3dzU2Nyb2xsaW5nXTsKLSAgICAKLSAgICBXZWJGcmFtZUJyaWRnZSAqbmV3QnJpZGdlID0g
W1tXZWJGcmFtZUJyaWRnZSBhbGxvY10gaW5pdFdpdGhQYWdlOl9wcml2YXRlLT5fcGFnZUJyaWRn
ZSB3ZWJWaWV3OnNlbGYgZnJhbWVOYW1lOmZuYW1lIHZpZXc6Y2hpbGRWaWV3XTsKLQotICAgIFtw
YXJlbnQgX2FkZENoaWxkOltuZXdCcmlkZ2Ugd2ViRnJhbWVdXTsKLSAgICAKLSAgICBbY2hpbGRW
aWV3IHJlbGVhc2VdOwotICAgIFtuZXdCcmlkZ2UgcmVsZWFzZV07Ci0gICAgICAgIAotICAgIHJl
dHVybiBbbmV3QnJpZGdlIHdlYkZyYW1lXTsKLX0KLQogLSAodm9pZClfZmluaXNoZWRMb2FkaW5n
UmVzb3VyY2VGcm9tRGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UKIHsKICAg
ICBXZWJGcmFtZSAqZnJhbWUgPSBbZGF0YVNvdXJjZSB3ZWJGcmFtZV07Cg==
</data>
<flag name="review"
          id="1543"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>