<?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>65428</bug_id>
          
          <creation_ts>2011-07-31 01:15:39 -0700</creation_ts>
          <short_desc>dir=auto needs to work on value of input and textarea elements</short_desc>
          <delta_ts>2011-08-05 09:09:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          
          <blocked>50910</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aharon (Vladimir) Lanin">aharon</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aharon</cc>
    
    <cc>kbalazs</cc>
    
    <cc>leviw</cc>
    
    <cc>mifenton</cc>
    
    <cc>mitz</cc>
    
    <cc>playmobil</cc>
    
    <cc>rniwa</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xji</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>444407</commentid>
    <comment_count>0</comment_count>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2011-07-31 01:15:39 -0700</bug_when>
    <thetext>dir=auto as currently implemented in WebKit does not do anything useful for input elements, and only works on a textarea&apos;s initial value, without changing as the user modifies it. This is because dir=auto currently looks at the element&apos;s descendant text nodes. The HTML5 spec (http://dev.w3.org/html5/spec/Overview.html#the-dir-attribute) needs to be changed in this regard. Filed bug http://www.w3.org/Bugs/Public/show_bug.cgi?id=13482 on HTML5, asking that the spec be changed such that:

- For input and textarea elements with dir=auto, the directionality should be determined not by the element&apos;s descendants, but by the element&apos;s current value, and should change as the latter changes.

- For other elements, the text node descendants under a descendant textarea element should be excluded, just like those in script and style elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444962</commentid>
    <comment_count>1</comment_count>
      <attachid>102584</attachid>
    <who name="Yael">yael</who>
    <bug_when>2011-08-01 16:06:01 -0700</bug_when>
    <thetext>Created attachment 102584
Patch.

Changed the directionality algorithm to evaluate the value of input elements and textarea elements when they have the attribute dir-auto Set.
Also skip these elements when evaluating the directionality of their ancestors.

HTMLTextAreaElement::childrenChanged is not called when a user types into the textarea, so call calculateAndAdjustDirectionality() explicitly from HTMLTextAreaElement::subtreeHasChanged().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445426</commentid>
    <comment_count>2</comment_count>
      <attachid>102584</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-02 12:27:08 -0700</bug_when>
    <thetext>Comment on attachment 102584
Patch.

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

&gt; Source/WebCore/html/HTMLElement.cpp:887
&gt; +        if (equalIgnoringCase(node-&gt;nodeName(), &quot;bdi&quot;) || node-&gt;hasTagName(scriptTag) || node-&gt;hasTagName(styleTag) || (node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;isTextFormControl())) {

Maybe split into two lines?

&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:259
&gt; +    // When typing in a textarea, childrenChanged is not called, so we need to force the directionality check.
&gt; +    calculateAndAdjustDirectionality();

Should we also call this in setValue and when &quot;dir&quot; attribute is changed?  e.g. dir attribute is removed and we need to figure out new directionality.

&gt; LayoutTests/fast/dom/HTMLElement/attr-dir-auto-text-form-control-expected.txt:9
&gt; +PASS document.defaultView.getComputedStyle(el, null).getPropertyValue(&apos;border-right-color&apos;) is &apos;rgb(255, 0, 0)&apos;

This is a very clever way of testing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445548</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2011-08-02 14:41:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 102584 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102584&amp;action=review
&gt; 
Thank you for the review :)
&gt; &gt; Source/WebCore/html/HTMLElement.cpp:887
&gt; &gt; +        if (equalIgnoringCase(node-&gt;nodeName(), &quot;bdi&quot;) || node-&gt;hasTagName(scriptTag) || node-&gt;hasTagName(styleTag) || (node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;isTextFormControl())) {
&gt; 
&gt; Maybe split into two lines?
&gt; 
ok

&gt; &gt; Source/WebCore/html/HTMLTextAreaElement.cpp:259
&gt; &gt; +    // When typing in a textarea, childrenChanged is not called, so we need to force the directionality check.
&gt; &gt; +    calculateAndAdjustDirectionality();
&gt; 
&gt; Should we also call this in setValue and when &quot;dir&quot; attribute is changed?  e.g. dir attribute is removed and we need to figure out new directionality.
&gt; 
We already handle the case where dir attribute changes in HTMLTextAreaElement, like we handle it for any other HTMLElement so there is no need to explicitly call calculateAndAdjustDirectionality()

&gt; &gt; LayoutTests/fast/dom/HTMLElement/attr-dir-auto-text-form-control-expected.txt:9
&gt; &gt; +PASS document.defaultView.getComputedStyle(el, null).getPropertyValue(&apos;border-right-color&apos;) is &apos;rgb(255, 0, 0)&apos;
&gt; 
&gt; This is a very clever way of testing!
thanks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445567</commentid>
    <comment_count>4</comment_count>
      <attachid>102705</attachid>
    <who name="Yael">yael</who>
    <bug_when>2011-08-02 15:32:34 -0700</bug_when>
    <thetext>Created attachment 102705
Patch.

Added a test for dynamic changes to dir attribute in text form controls, and added explicit call to calculateAndAdjustDirectionality() from HTMLInputElement::subtreeHasChanged(), with a check that it is called only for text fields.

Also broke the line as suggested in comment #2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445646</commentid>
    <comment_count>5</comment_count>
      <attachid>102705</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-02 17:53:45 -0700</bug_when>
    <thetext>Comment on attachment 102705
Patch.

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

&gt; Source/WebCore/html/HTMLElement.cpp:876
&gt; +    HTMLTextFormControlElement* textElement = toTextFormControl(const_cast&lt;HTMLElement*&gt;(this));
&gt; +    if (textElement) {

Would be elegant to put this definition inside the if so it gets scoped.

&gt; Source/WebCore/html/HTMLElement.cpp:881
&gt; +        return (textDirection == WTF::Unicode::LeftToRight) ? LTR : RTL;

Is the WTF:: needed here?

&gt; Source/WebCore/html/HTMLElement.cpp:888
&gt;          // Skip bdi, script and style elements
&gt; -        if (equalIgnoringCase(node-&gt;nodeName(), &quot;bdi&quot;) || node-&gt;hasTagName(scriptTag) || node-&gt;hasTagName(styleTag)) {
&gt; +        if (equalIgnoringCase(node-&gt;nodeName(), &quot;bdi&quot;) || node-&gt;hasTagName(scriptTag) || node-&gt;hasTagName(styleTag) 
&gt; +            || (node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;isTextFormControl())) {

The comment no longer matches the code.

&gt; Source/WebCore/html/HTMLInputElement.cpp:666
&gt; +    // When typing in a input field, childrenChanged is not called, so we need to force the directionality check.

should be &quot;an input field&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446932</commentid>
    <comment_count>6</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2011-08-04 17:48:30 -0700</bug_when>
    <thetext>rniwa, based on Hixie&apos;s comment at http://www.w3.org/Bugs/Public/show_bug.cgi?id=13482#c1, are you ok with committing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446935</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-04 17:53:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; rniwa, based on Hixie&apos;s comment at http://www.w3.org/Bugs/Public/show_bug.cgi?id=13482#c1, are you ok with committing this?

Yes.  After all, Darin has already r+ed it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447192</commentid>
    <comment_count>8</comment_count>
      <attachid>103069</attachid>
    <who name="Yael">yael</who>
    <bug_when>2011-08-05 07:10:19 -0700</bug_when>
    <thetext>Created attachment 103069
Patch.

Addressing comment #5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447204</commentid>
    <comment_count>9</comment_count>
      <attachid>103069</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-05 07:36:48 -0700</bug_when>
    <thetext>Comment on attachment 103069
Patch.

Clearing flags on attachment: 103069

Committed r92480: &lt;http://trac.webkit.org/changeset/92480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447205</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-05 07:36:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447222</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-08-05 08:46:56 -0700</bug_when>
    <thetext>Seems like it broke the Mac and the 64bit bot on the Szeged master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447228</commentid>
    <comment_count>12</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-08-05 09:09:21 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Seems like it broke the Mac and the 64bit bot on the Szeged master.

After another build it&apos;s more likely that it is flakiness.
One test is still failing on the Mac bot but it&apos;s not one of the 2 failure that was appearing first time after this change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102584</attachid>
            <date>2011-08-01 16:06:01 -0700</date>
            <delta_ts>2011-08-02 15:32:34 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>65428.patch</filename>
            <type>text/plain</type>
            <size>12337</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTM4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDgtMDEgIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIGRpcj1hdXRvIG5lZWRzIHRv
IHdvcmsgb24gdmFsdWUgb2YgaW5wdXQgYW5kIHRleHRhcmVhIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQyOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgdGhlIGRpcmVjdGlv
bmFsaXR5IGFsZ29yaXRobSB0byBldmFsdWF0ZSB0aGUgdmFsdWUgb2YgaW5wdXQgZWxlbWVudHMg
YW5kIHRleHRhcmVhIGVsZW1lbnRzIHdoZW4KKyAgICAgICAgdGhleSBoYXZlIHRoZSBhdHRyaWJ1
dGUgZGlyLWF1dG8gU2V0LgorICAgICAgICBBbHNvIHNraXAgdGhlc2UgZWxlbWVudHMgd2hlbiBl
dmFsdWF0aW5nIHRoZSBkaXJlY3Rpb25hbGl0eSBvZiB0aGVpciBhbmNlc3RvcnMuCisKKyAgICAg
ICAgSFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkIGlzIG5vdCBjYWxsZWQgd2hl
biBhIHVzZXIgdHlwZXMgaW50byB0aGUgdGV4dGFyZWEsIHNvIGNhbGwKKyAgICAgICAgY2FsY3Vs
YXRlQW5kQWRqdXN0RGlyZWN0aW9uYWxpdHkoKSBleHBsaWNpdGx5IGZyb20gSFRNTFRleHRBcmVh
RWxlbWVudDo6c3VidHJlZUhhc0NoYW5nZWQoKS4KKworICAgICAgICBUZXN0czogZmFzdC9kb20v
SFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGlsZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9y
bS1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmRpcmVjdGlvbmFsaXR5KToKKyAgICAgICAgKiBodG1s
L0hUTUxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnN1YnRyZWVIYXNDaGFuZ2Vk
KToKKwogMjAxMS0wOC0wMSAgTWFyY28gUGVlcmVib29tICA8bWFyY29AcGVlcmVib29tLnVzPgog
CiAgICAgICAgIFtTb3VwXSBTZXQgZGVmYXVsdCBtYXgtY29ubnMgdG8gYSBtb3JlIHNhbmUgZGVm
YXVsdCB2YWx1ZSBhbmQgZml4IGNvbW1lbnQgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTIxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkhUTUxG
b3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtODcxLDEwICs4NzIsMTkgQEAgVGV4dERpcmVj
dGlvbiBIVE1MRWxlbWVudDo6ZGlyZWN0aW9uYWxpdAogCiBUZXh0RGlyZWN0aW9uIEhUTUxFbGVt
ZW50OjpkaXJlY3Rpb25hbGl0eShOb2RlKiogc3Ryb25nRGlyZWN0aW9uYWxpdHlUZXh0Tm9kZSkg
Y29uc3QKIHsKKyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCogdGV4dEVsZW1lbnQgPSB0
b1RleHRGb3JtQ29udHJvbChjb25zdF9jYXN0PEhUTUxFbGVtZW50Kj4odGhpcykpOworICAgIGlm
ICh0ZXh0RWxlbWVudCkgeworICAgICAgICBib29sIGhhc1N0cm9uZ0RpcmVjdGlvbmFsaXR5Owor
ICAgICAgICBXVEY6OlVuaWNvZGU6OkRpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uID0gdGV4dEVsZW1l
bnQtPnZhbHVlKCkuZGVmYXVsdFdyaXRpbmdEaXJlY3Rpb24oJmhhc1N0cm9uZ0RpcmVjdGlvbmFs
aXR5KTsKKyAgICAgICAgaWYgKGhhc1N0cm9uZ0RpcmVjdGlvbmFsaXR5ICYmIHN0cm9uZ0RpcmVj
dGlvbmFsaXR5VGV4dE5vZGUpCisgICAgICAgICAgICAqc3Ryb25nRGlyZWN0aW9uYWxpdHlUZXh0
Tm9kZSA9IHRleHRFbGVtZW50OworICAgICAgICByZXR1cm4gKHRleHREaXJlY3Rpb24gPT0gV1RG
OjpVbmljb2RlOjpMZWZ0VG9SaWdodCkgPyBMVFIgOiBSVEw7CisgICAgfQorCiAgICAgTm9kZSog
bm9kZSA9IGZpcnN0Q2hpbGQoKTsKICAgICB3aGlsZSAobm9kZSkgewogICAgICAgICAvLyBTa2lw
IGJkaSwgc2NyaXB0IGFuZCBzdHlsZSBlbGVtZW50cwotICAgICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2Uobm9kZS0+bm9kZU5hbWUoKSwgImJkaSIpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc2NyaXB0
VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHN0eWxlVGFnKSkgeworICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2Uobm9kZS0+bm9kZU5hbWUoKSwgImJkaSIpIHx8IG5vZGUtPmhhc1RhZ05hbWUo
c2NyaXB0VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHN0eWxlVGFnKSB8fCAobm9kZS0+aXNFbGVt
ZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aXNUZXh0Rm9ybUNvbnRyb2woKSkpIHsKICAg
ICAgICAgICAgIG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHRTaWJsaW5nKHRoaXMpOwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgJKHJldmlzaW9uIDkyMTMxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw3IEBAIHByb3RlY3RlZDoKICAgICB1bnNpZ25l
ZCBwYXJzZUJvcmRlcldpZHRoQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCiAgICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBi
ZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVs
dGEgPSAwKTsKKyAgICB2b2lkIGNhbGN1bGF0ZUFuZEFkanVzdERpcmVjdGlvbmFsaXR5KCk7CiAK
IHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKQEAgLTEwNiw3
ICsxMDcsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKEF0dHJp
YnV0ZSopOwogICAgIHZvaWQgYWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRB
dHRyaWJ1dGVDaGFuZ2VkKEVsZW1lbnQqIGNoaWxkKTsKLSAgICB2b2lkIGNhbGN1bGF0ZUFuZEFk
anVzdERpcmVjdGlvbmFsaXR5KCk7CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVl
ZGVkQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoTm9kZSogYmVmb3JlQ2hhbmdlLCBpbnQgY2hpbGRDb3Vu
dERlbHRhKTsKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5KE5vZGUqKiBzdHJvbmdE
aXJlY3Rpb25hbGl0eVRleHROb2RlPSAwKSBjb25zdDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDkyMTMxKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjU1LDYgKzI1NSw4IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c3VidHJlZUhhc0No
YW4KIAogICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAg
ICBmcmFtZS0+ZWRpdG9yKCktPnRleHREaWRDaGFuZ2VJblRleHRBcmVhKHRoaXMpOworICAgIC8v
IFdoZW4gdHlwaW5nIGluIGEgdGV4dGFyZWEsIGNoaWxkcmVuQ2hhbmdlZCBpcyBub3QgY2FsbGVk
LCBzbyB3ZSBuZWVkIHRvIGZvcmNlIHRoZSBkaXJlY3Rpb25hbGl0eSBjaGVjay4KKyAgICBjYWxj
dWxhdGVBbmRBZGp1c3REaXJlY3Rpb25hbGl0eSgpOwogfQogCiB2b2lkIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2
ZW50KiBldmVudCkgY29uc3QKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTM4KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMDEg
IFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIGRpcj1hdXRv
IG5lZWRzIHRvIHdvcmsgb24gdmFsdWUgb2YgaW5wdXQgYW5kIHRleHRhcmVhIGVsZW1lbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQyOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20v
SFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGlsZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1
dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8t
dGV4dC1mb3JtLWNvbnRyb2wuaHRtbDogQWRkZWQuCisKIDIwMTEtMDctMjggIEFiaGlzaGVrIEFy
eWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWdyZXNzaW9uKDgyMTQ0KTog
Q3Jhc2ggaW4gVHJhaWxpbmdPYmplY3RzOjp1cGRhdGVNaWRwb2ludHNGb3JUcmFpbGluZ0JveGVz
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRl
eHQtZm9ybS1jb250cm9sLWNoaWxkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9ybS1jb250cm9s
LWNoaWxkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoYXQgZGlyZWN0aW9u
YWxpdHkgb2YgYW4gZWxlbWVudCB3aXRoIGRpcj1hdXRvIHNldCBpcyBub3QgZGV0ZXJtaW5lZCBi
eSB0aGUgdmFsdWUgb2YgaXRzIGNoaWxkIHRleHQgZm9ybSBjb250cm9sLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworCisKKworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRD
b21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29s
b3InKSBpcyAncmdiKDI1NSwgMCwgMCknCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENv
bXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xv
cicpIGlzICdyZ2IoMCwgMTI4LCAwKScKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29t
cHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9y
JykgaXMgJ3JnYigwLCAxMjgsIDApJworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKworCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGlsZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8t
dGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hp
bGQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisudGVzdEVs
ZW1lbnQgey13ZWJraXQtYm9yZGVyLXN0YXJ0OiA1cHggc29saWQgZ3JlZW47IC13ZWJraXQtYm9y
ZGVyLWVuZDogNXB4IHNvbGlkIHJlZDsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L3A+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0icGFyZW50RGl2Ij4KK1Rlc3QgdGhhdCB0aGUgZGlyZWN0
aW9uIG9mIHRoZSBkaXYgaXMgbGVmdC10by1yaWdodCwgaWdub3JpbmcgaXRzIGNoaWxkIHRoYXQg
aXMgYSB0ZXh0IGZvcm0gY29udHJvbC4KKzxkaXYgaWQ9ImxlZnQtdG8tcmlnaHQiIGRpcj0iYXV0
byIgY2xhc3M9InRlc3RFbGVtZW50Ij4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0i157Xp9eV
16gg15TXqdedINei15HXqNeZ16oiPlRlc3QgdGVzdCB0ZXN0Cis8L2Rpdj4KK1Rlc3QgdGhhdCB0
aGUgZGlyZWN0aW9uIG9mIHRoZSBkaXYgaXMgcmlnaHQtdG8tbGVmdCwgaWdub3JpbmcgaXRzIGNo
aWxkIHRoYXQgaXMgYSB0ZXh0IGZvcm0gY29udHJvbC4KKzxkaXYgaWQ9InJpZ2h0LXRvLWxlZnQx
IiBkaXI9ImF1dG8iIGNsYXNzPSJ0ZXN0RWxlbWVudCI+Cis8aW5wdXQgdHlwZT0idGV4dCIgdmFs
dWU9IlRlc3QgdGVzdCB0ZXN0Ij7Xnten15XXqCDXlNep150g16LXkdeo15nXqgorPC9kaXY+Cis8
ZGl2IGlkPSJyaWdodC10by1sZWZ0MiIgZGlyPSJhdXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiPgor
PHRleHRhcmVhPlRlc3QgdGVzdCB0ZXN0PC90ZXh0YXJlYT7Xnten15XXqCDXlNep150g16LXkdeo
15nXqgorPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQg
ZGlyZWN0aW9uYWxpdHkgb2YgYW4gZWxlbWVudCB3aXRoIGRpcj1hdXRvIHNldCBpcyBub3QgZGV0
ZXJtaW5lZCBieSB0aGUgdmFsdWUgb2YgaXRzIGNoaWxkIHRleHQgZm9ybSBjb250cm9sLicpOwor
Cit2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGVmdC10by1yaWdodCIpOworc2hv
dWxkQmUoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdl
dFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIiwgIidyZ2IoMjU1LCAwLCAwKSci
KTsKK2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJpZ2h0LXRvLWxlZnQxIik7CitzaG91
bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0
UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykiLCAiJ3JnYigwLCAxMjgsIDApJyIp
OworZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmlnaHQtdG8tbGVmdDIiKTsKK3Nob3Vs
ZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIsICIncmdiKDAsIDEyOCwgMCknIik7
Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFyZW50RGl2Iikuc3R5bGUuZGlzcGxheSA9ICJu
b25lIjsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9h
dHRyLWRpci1hdXRvLXRleHQtZm9ybS1jb250cm9sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9y
bS1jb250cm9sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACitUZXN0IHRoYXQgZGlyZWN0aW9uYWxp
dHkgb2YgYSB0ZXh0IGZvcm0gY29udHJvbCB3aXRoIGRpcj1hdXRvIHNldCBpcyBkZXRlcm1pbmVk
IGJ5IHRoZSB2YWx1ZSBvZiB0aGF0IGZvcm0gY29udHJvbC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKKworCisKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMg
J3JnYigyNTUsIDAsIDApJworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSBpcyAn
cmdiKDAsIDEyOCwgMCknCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIGlzICdy
Z2IoMCwgMTI4LCAwKScKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHls
ZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMgJ3Jn
YigwLCAxMjgsIDApJworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKworCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQv
YXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRy
b2wuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50
L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisudGVzdEVsZW1lbnQgey13ZWJraXQtYm9yZGVyLXN0YXJ0
OiA1cHggc29saWQgZ3JlZW47IC13ZWJraXQtYm9yZGVyLWVuZDogNXB4IHNvbGlkIHJlZDsgfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L3A+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0icGFy
ZW50RGl2Ij4KK1Rlc3QgdGhhdCB0aGUgZGlyZWN0aW9uIG9mIGVuZ2xpc2ggdGV4dCBpcyBsZWZ0
LXRvLXJpZ2h0IGluIHRoZSB0ZXh0IGZvcm0gY29udHJvbC4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0ibGVmdC10by1yaWdodCIgZGlyPSJhdXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiIHZhbHVlPSJU
ZXN0IHRlc3QgdGVzdCI+CitUZXN0IHRoYXQgdGhlIGRpcmVjdGlvbiBvZiBoZWJyZXcgdGV4dCBp
cyByaWdodC10by1sZWZ0IGluIHRoZSB0ZXh0IGZvcm0gY29udHJvbC4KKzxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0icmlnaHQtdG8tbGVmdDEiIGRpcj0iYXV0byIgY2xhc3M9InRlc3RFbGVtZW50IiB2
YWx1ZT0i157Xp9eV16gg15TXqdedINei15HXqNeZ16oiPgorPHRleHRhcmVhIGlkPSJyaWdodC10
by1sZWZ0MiIgZGlyPSJhdXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiPtee16fXldeoINeU16nXnSDX
oteR16jXmdeqPC90ZXh0YXJlYT4KK1Rlc3QgdGhhdCB0aGUgZGlyZWN0aW9uIG9mIGhlYnJldyB0
ZXh0IGlzIHJpZ2h0LXRvLWxlZnQgaW4gdGhlIHRleHQgZm9ybSBjb250cm9sLCBldmVuIGlmIGlu
c2VydGVkIGR5bmFtaWNhbGx5LgorPHRleHRhcmVhIGlkPSJyaWdodC10by1sZWZ0MyIgZGlyPSJh
dXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiPjwvdGV4dGFyZWE+Cis8L2Rpdj4KKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgZGlyZWN0aW9uYWxpdHkgb2YgYSB0ZXh0IGZvcm0gY29u
dHJvbCB3aXRoIGRpcj1hdXRvIHNldCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGF0
IGZvcm0gY29udHJvbC4nKTsKKwordmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxl
ZnQtdG8tcmlnaHQiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRl
ZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIs
ICIncmdiKDI1NSwgMCwgMCknIik7CitlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyaWdo
dC10by1sZWZ0MSIpOworc2hvdWxkQmUoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVk
U3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIiwg
IidyZ2IoMCwgMTI4LCAwKSciKTsKK2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJpZ2h0
LXRvLWxlZnQyIik7CitzaG91bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykiLCAi
J3JnYigwLCAxMjgsIDApJyIpOworZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmlnaHQt
dG8tbGVmdDMiKTsKK2VsLmlubmVyVGV4dCA9ICLXnten15XXqCDXlNep150g16LXkdeo15nXqiI7
CitzaG91bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVs
bCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykiLCAiJ3JnYigwLCAxMjgs
IDApJyIpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFyZW50RGl2Iikuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102705</attachid>
            <date>2011-08-02 15:32:34 -0700</date>
            <delta_ts>2011-08-05 07:10:19 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>65428.patch</filename>
            <type>text/plain</type>
            <size>16491</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTM4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMDEgIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIGRpcj1hdXRvIG5lZWRzIHRv
IHdvcmsgb24gdmFsdWUgb2YgaW5wdXQgYW5kIHRleHRhcmVhIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQyOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgdGhlIGRpcmVjdGlv
bmFsaXR5IGFsZ29yaXRobSB0byBldmFsdWF0ZSB0aGUgdmFsdWUgb2YgaW5wdXQgZWxlbWVudHMg
YW5kIHRleHRhcmVhIGVsZW1lbnRzIHdoZW4KKyAgICAgICAgdGhleSBoYXZlIHRoZSBhdHRyaWJ1
dGUgZGlyLWF1dG8gU2V0LgorICAgICAgICBBbHNvIHNraXAgdGhlc2UgZWxlbWVudHMgd2hlbiBl
dmFsdWF0aW5nIHRoZSBkaXJlY3Rpb25hbGl0eSBvZiB0aGVpciBhbmNlc3RvcnMuCisKKyAgICAg
ICAgSFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkIGlzIG5vdCBjYWxsZWQgd2hl
biBhIHVzZXIgdHlwZXMgaW50byB0aGUgdGV4dGFyZWEsIHNvIGNhbGwKKyAgICAgICAgY2FsY3Vs
YXRlQW5kQWRqdXN0RGlyZWN0aW9uYWxpdHkoKSBleHBsaWNpdGx5IGZyb20gSFRNTFRleHRBcmVh
RWxlbWVudDo6c3VidHJlZUhhc0NoYW5nZWQoKS4KKworICAgICAgICBIVE1MSW5wdXRFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQgaXMgbm90IGNhbGxlZCB3aGVuIGEgdXNlciB0eXBlcyBpbnRvIHRo
ZSB0ZXh0YXJlYSwgc28gY2FsbAorICAgICAgICBjYWxjdWxhdGVBbmRBZGp1c3REaXJlY3Rpb25h
bGl0eSgpIGV4cGxpY2l0bHkgZnJvbSBIVE1MVGV4dEFyZWFFbGVtZW50OjpzdWJ0cmVlSGFzQ2hh
bmdlZCgpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1h
dXRvLWNoYW5nZWQtdGV4dC1mb3JtLWNvbnRyb2wuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9k
b20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGlsZC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQt
Zm9ybS1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmRpcmVjdGlvbmFsaXR5KToKKyAgICAgICAgKiBo
dG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnN1YnRyZWVIYXNDaGFu
Z2VkKToKKwogMjAxMS0wOC0wMSAgTWFyY28gUGVlcmVib29tICA8bWFyY29AcGVlcmVib29tLnVz
PgogCiAgICAgICAgIFtTb3VwXSBTZXQgZGVmYXVsdCBtYXgtY29ubnMgdG8gYSBtb3JlIHNhbmUg
ZGVmYXVsdCB2YWx1ZSBhbmQgZml4IGNvbW1lbnQgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcAkocmV2aXNpb24gOTIxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkhU
TUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQ
YXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtODcxLDEwICs4NzIsMjAgQEAgVGV4dERp
cmVjdGlvbiBIVE1MRWxlbWVudDo6ZGlyZWN0aW9uYWxpdAogCiBUZXh0RGlyZWN0aW9uIEhUTUxF
bGVtZW50OjpkaXJlY3Rpb25hbGl0eShOb2RlKiogc3Ryb25nRGlyZWN0aW9uYWxpdHlUZXh0Tm9k
ZSkgY29uc3QKIHsKKyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCogdGV4dEVsZW1lbnQg
PSB0b1RleHRGb3JtQ29udHJvbChjb25zdF9jYXN0PEhUTUxFbGVtZW50Kj4odGhpcykpOworICAg
IGlmICh0ZXh0RWxlbWVudCkgeworICAgICAgICBib29sIGhhc1N0cm9uZ0RpcmVjdGlvbmFsaXR5
OworICAgICAgICBXVEY6OlVuaWNvZGU6OkRpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uID0gdGV4dEVs
ZW1lbnQtPnZhbHVlKCkuZGVmYXVsdFdyaXRpbmdEaXJlY3Rpb24oJmhhc1N0cm9uZ0RpcmVjdGlv
bmFsaXR5KTsKKyAgICAgICAgaWYgKGhhc1N0cm9uZ0RpcmVjdGlvbmFsaXR5ICYmIHN0cm9uZ0Rp
cmVjdGlvbmFsaXR5VGV4dE5vZGUpCisgICAgICAgICAgICAqc3Ryb25nRGlyZWN0aW9uYWxpdHlU
ZXh0Tm9kZSA9IHRleHRFbGVtZW50OworICAgICAgICByZXR1cm4gKHRleHREaXJlY3Rpb24gPT0g
V1RGOjpVbmljb2RlOjpMZWZ0VG9SaWdodCkgPyBMVFIgOiBSVEw7CisgICAgfQorCiAgICAgTm9k
ZSogbm9kZSA9IGZpcnN0Q2hpbGQoKTsKICAgICB3aGlsZSAobm9kZSkgewogICAgICAgICAvLyBT
a2lwIGJkaSwgc2NyaXB0IGFuZCBzdHlsZSBlbGVtZW50cwotICAgICAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2Uobm9kZS0+bm9kZU5hbWUoKSwgImJkaSIpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc2Ny
aXB0VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHN0eWxlVGFnKSkgeworICAgICAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2Uobm9kZS0+bm9kZU5hbWUoKSwgImJkaSIpIHx8IG5vZGUtPmhhc1RhZ05h
bWUoc2NyaXB0VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHN0eWxlVGFnKSAKKyAgICAgICAgICAg
IHx8IChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5pc1RleHRGb3Jt
Q29udHJvbCgpKSkgewogICAgICAgICAgICAgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxp
bmcodGhpcyk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24gOTIxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDcgQEAgcHJvdGVj
dGVkOgogICAgIHVuc2lnbmVkIHBhcnNlQm9yZGVyV2lkdGhBdHRyaWJ1dGUoQXR0cmlidXRlKik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2Vy
ID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwg
aW50IGNoaWxkQ291bnREZWx0YSA9IDApOworICAgIHZvaWQgY2FsY3VsYXRlQW5kQWRqdXN0RGly
ZWN0aW9uYWxpdHkoKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgp
IGNvbnN0OwpAQCAtMTA2LDcgKzEwNyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpckF0dHJp
YnV0ZUNoYW5nZWQoQXR0cmlidXRlKik7CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0eUlm
TmVlZGVkQWZ0ZXJDaGlsZEF0dHJpYnV0ZUNoYW5nZWQoRWxlbWVudCogY2hpbGQpOwotICAgIHZv
aWQgY2FsY3VsYXRlQW5kQWRqdXN0RGlyZWN0aW9uYWxpdHkoKTsKICAgICB2b2lkIGFkanVzdERp
cmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkcmVuQ2hhbmdlZChOb2RlKiBiZWZvcmVDaGFu
Z2UsIGludCBjaGlsZENvdW50RGVsdGEpOwogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxp
dHkoTm9kZSoqIHN0cm9uZ0RpcmVjdGlvbmFsaXR5VGV4dE5vZGU9IDApIGNvbnN0OwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gOTIx
MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NjMsNiArNjYzLDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdWJ0cmVl
SGFzQ2hhbmdlZAogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUo
KSkKICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+dGV4dERpZENoYW5nZUluVGV4dEZpZWxk
KHRoaXMpOwogICAgIH0KKyAgICAvLyBXaGVuIHR5cGluZyBpbiBhIGlucHV0IGZpZWxkLCBjaGls
ZHJlbkNoYW5nZWQgaXMgbm90IGNhbGxlZCwgc28gd2UgbmVlZCB0byBmb3JjZSB0aGUgZGlyZWN0
aW9uYWxpdHkgY2hlY2suCisgICAgaWYgKGlzVGV4dEZpZWxkKCkpCisgICAgICAgIGNhbGN1bGF0
ZUFuZEFkanVzdERpcmVjdGlvbmFsaXR5KCk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRN
TElucHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gOTIxMzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTUsNiArMjU1LDggQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzdWJ0cmVlSGFz
Q2hhbgogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAg
ICAgIGZyYW1lLT5lZGl0b3IoKS0+dGV4dERpZENoYW5nZUluVGV4dEFyZWEodGhpcyk7CisgICAg
Ly8gV2hlbiB0eXBpbmcgaW4gYSB0ZXh0YXJlYSwgY2hpbGRyZW5DaGFuZ2VkIGlzIG5vdCBjYWxs
ZWQsIHNvIHdlIG5lZWQgdG8gZm9yY2UgdGhlIGRpcmVjdGlvbmFsaXR5IGNoZWNrLgorICAgIGNh
bGN1bGF0ZUFuZEFkanVzdERpcmVjdGlvbmFsaXR5KCk7CiB9CiAKIHZvaWQgSFRNTFRleHRBcmVh
RWxlbWVudDo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVk
RXZlbnQqIGV2ZW50KSBjb25zdApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTIxMzgpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wOC0w
MSAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgZGlyPWF1
dG8gbmVlZHMgdG8gd29yayBvbiB2YWx1ZSBvZiBpbnB1dCBhbmQgdGV4dGFyZWEgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDI4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLWNoYW5nZWQtdGV4dC1mb3JtLWNvbnRyb2wtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRp
ci1hdXRvLWNoYW5nZWQtdGV4dC1mb3JtLWNvbnRyb2wuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGls
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVtZW50L2F0
dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHIt
ZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wuaHRtbDogQWRkZWQuCisKIDIwMTEtMDctMjggIEFi
aGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWdyZXNzaW9u
KDgyMTQ0KTogQ3Jhc2ggaW4gVHJhaWxpbmdPYmplY3RzOjp1cGRhdGVNaWRwb2ludHNGb3JUcmFp
bGluZ0JveGVzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRp
ci1hdXRvLWNoYW5nZS10ZXh0LWZvcm0tY29udHJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by1jaGFuZ2Ut
dGV4dC1mb3JtLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by1jaGFuZ2UtdGV4dC1mb3JtLWNv
bnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACitUZXN0IHRo
YXQgZGlyZWN0aW9uYWxpdHkgaXMgcmUtZXZhbHVhdGVkIHdoZW4gZGlyIGF0dHJpYnV0ZSBjaGFu
Z2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKKworCitQQVNTIGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFs
dWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScKK1BBU1MgZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1
ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMgJ3JnYigyNTUsIDAsIDApJworUEFTUyBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVl
KCdib3JkZXItcmlnaHQtY29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCknCitQQVNTIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUo
J2JvcmRlci1yaWdodC1jb2xvcicpIGlzICdyZ2IoMjU1LCAwLCAwKScKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tY2hhbmdlLXRleHQtZm9y
bS1jb250cm9sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVs
ZW1lbnQvYXR0ci1kaXItYXV0by1jaGFuZ2UtdGV4dC1mb3JtLWNvbnRyb2wuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8t
Y2hhbmdlLXRleHQtZm9ybS1jb250cm9sLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorLnRlc3RFbGVtZW50IHstd2Via2l0LWJvcmRlci1zdGFydDogNXB4IHNv
bGlkIGdyZWVuOyAtd2Via2l0LWJvcmRlci1lbmQ6IDVweCBzb2xpZCByZWQ7IH0KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPGRpdiBpZD0icGFyZW50RGl2
Ij4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dDEiIGRpcj0iYXV0byIgY2xhc3M9InRlc3RF
bGVtZW50IiB2YWx1ZT0i157Xp9eV16gg15TXqdedINei15HXqNeZ16oiPgorPHRleHRhcmVhIGlk
PSJ0ZXh0MiIgZGlyPSJhdXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiPtee16fXldeoINeU16nXnSDX
oteR16jXmdeqPC90ZXh0YXJlYT4KKzwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rl
c3QgdGhhdCBkaXJlY3Rpb25hbGl0eSBpcyByZS1ldmFsdWF0ZWQgd2hlbiBkaXIgYXR0cmlidXRl
IGNoYW5nZXMuJyk7CisKK3ZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0MSIp
Oworc2hvdWxkQmUoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51
bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIiwgIidyZ2IoMCwgMTI4
LCAwKSciKTsKK2VsLnNldEF0dHJpYnV0ZSgiZGlyIiwgImx0ciIpOworc2hvdWxkQmUoImRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFs
dWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIiwgIidyZ2IoMjU1LCAwLCAwKSciKTsKKworZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dDIiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5kZWZh
dWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3Jk
ZXItcmlnaHQtY29sb3InKSIsICIncmdiKDAsIDEyOCwgMCknIik7CitlbC5zZXRBdHRyaWJ1dGUo
ImRpciIsICJsdHIiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRl
ZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIs
ICIncmdiKDI1NSwgMCwgMCknIik7CisKK2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBh
cmVudERpdiIpOworZWwuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKword2luZG93LnN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3Jt
LWNvbnRyb2wtY2hpbGQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVs
ZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGlsZC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3QgdGhhdCBkaXJlY3Rpb25hbGl0eSBv
ZiBhbiBlbGVtZW50IHdpdGggZGlyPWF1dG8gc2V0IGlzIG5vdCBkZXRlcm1pbmVkIGJ5IHRoZSB2
YWx1ZSBvZiBpdHMgY2hpbGQgdGV4dCBmb3JtIGNvbnRyb2wuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCisKKworCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVk
U3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIGlz
ICdyZ2IoMjU1LCAwLCAwKScKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMg
J3JnYigwLCAxMjgsIDApJworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSBpcyAn
cmdiKDAsIDEyOCwgMCknCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCisKKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVu
dC9hdHRyLWRpci1hdXRvLXRleHQtZm9ybS1jb250cm9sLWNoaWxkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZv
cm0tY29udHJvbC1jaGlsZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGlsZC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD11dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy50ZXN0RWxlbWVudCB7
LXdlYmtpdC1ib3JkZXItc3RhcnQ6IDVweCBzb2xpZCBncmVlbjsgLXdlYmtpdC1ib3JkZXItZW5k
OiA1cHggc29saWQgcmVkOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+
PC9kaXY+Cis8ZGl2IGlkPSJwYXJlbnREaXYiPgorVGVzdCB0aGF0IHRoZSBkaXJlY3Rpb24gb2Yg
dGhlIGRpdiBpcyBsZWZ0LXRvLXJpZ2h0LCBpZ25vcmluZyBpdHMgY2hpbGQgdGhhdCBpcyBhIHRl
eHQgZm9ybSBjb250cm9sLgorPGRpdiBpZD0ibGVmdC10by1yaWdodCIgZGlyPSJhdXRvIiBjbGFz
cz0idGVzdEVsZW1lbnQiPgorPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSLXnten15XXqCDXlNep
150g16LXkdeo15nXqiI+VGVzdCB0ZXN0IHRlc3QKKzwvZGl2PgorVGVzdCB0aGF0IHRoZSBkaXJl
Y3Rpb24gb2YgdGhlIGRpdiBpcyByaWdodC10by1sZWZ0LCBpZ25vcmluZyBpdHMgY2hpbGQgdGhh
dCBpcyBhIHRleHQgZm9ybSBjb250cm9sLgorPGRpdiBpZD0icmlnaHQtdG8tbGVmdDEiIGRpcj0i
YXV0byIgY2xhc3M9InRlc3RFbGVtZW50Ij4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iVGVz
dCB0ZXN0IHRlc3QiPtee16fXldeoINeU16nXnSDXoteR16jXmdeqCis8L2Rpdj4KKzxkaXYgaWQ9
InJpZ2h0LXRvLWxlZnQyIiBkaXI9ImF1dG8iIGNsYXNzPSJ0ZXN0RWxlbWVudCI+Cis8dGV4dGFy
ZWE+VGVzdCB0ZXN0IHRlc3Q8L3RleHRhcmVhPtee16fXldeoINeU16nXnSDXoteR16jXmdeqCis8
L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBkaXJlY3Rp
b25hbGl0eSBvZiBhbiBlbGVtZW50IHdpdGggZGlyPWF1dG8gc2V0IGlzIG5vdCBkZXRlcm1pbmVk
IGJ5IHRoZSB2YWx1ZSBvZiBpdHMgY2hpbGQgdGV4dCBmb3JtIGNvbnRyb2wuJyk7CisKK3ZhciBl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsZWZ0LXRvLXJpZ2h0Iik7CitzaG91bGRCZSgi
ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVy
dHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykiLCAiJ3JnYigyNTUsIDAsIDApJyIpOworZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmlnaHQtdG8tbGVmdDEiKTsKK3Nob3VsZEJlKCJk
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0
eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIsICIncmdiKDAsIDEyOCwgMCknIik7CitlbCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyaWdodC10by1sZWZ0MiIpOworc2hvdWxkQmUoImRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5
VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIiwgIidyZ2IoMCwgMTI4LCAwKSciKTsKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwYXJlbnREaXYiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwor
d2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGly
LWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRy
b2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKK1Rlc3QgdGhhdCBkaXJlY3Rpb25hbGl0eSBvZiBh
IHRleHQgZm9ybSBjb250cm9sIHdpdGggZGlyPWF1dG8gc2V0IGlzIGRldGVybWluZWQgYnkgdGhl
IHZhbHVlIG9mIHRoYXQgZm9ybSBjb250cm9sLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworCisKKworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVs
LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSBpcyAncmdiKDI1
NSwgMCwgMCknCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWws
IG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIGlzICdyZ2IoMCwg
MTI4LCAwKScKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwg
bnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMgJ3JnYigwLCAx
MjgsIDApJworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBu
dWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSBpcyAncmdiKDAsIDEy
OCwgMCknCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCisKKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRp
ci1hdXRvLXRleHQtZm9ybS1jb250cm9sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1k
aXItYXV0by10ZXh0LWZvcm0tY29udHJvbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJD
b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKy50ZXN0RWxlbWVudCB7LXdlYmtpdC1ib3JkZXItc3RhcnQ6IDVweCBz
b2xpZCBncmVlbjsgLXdlYmtpdC1ib3JkZXItZW5kOiA1cHggc29saWQgcmVkOyB9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJwYXJlbnREaXYi
PgorVGVzdCB0aGF0IHRoZSBkaXJlY3Rpb24gb2YgZW5nbGlzaCB0ZXh0IGlzIGxlZnQtdG8tcmln
aHQgaW4gdGhlIHRleHQgZm9ybSBjb250cm9sLgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJsZWZ0
LXRvLXJpZ2h0IiBkaXI9ImF1dG8iIGNsYXNzPSJ0ZXN0RWxlbWVudCIgdmFsdWU9IlRlc3QgdGVz
dCB0ZXN0Ij4KK1Rlc3QgdGhhdCB0aGUgZGlyZWN0aW9uIG9mIGhlYnJldyB0ZXh0IGlzIHJpZ2h0
LXRvLWxlZnQgaW4gdGhlIHRleHQgZm9ybSBjb250cm9sLgorPGlucHV0IHR5cGU9InRleHQiIGlk
PSJyaWdodC10by1sZWZ0MSIgZGlyPSJhdXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiIHZhbHVlPSLX
nten15XXqCDXlNep150g16LXkdeo15nXqiI+Cis8dGV4dGFyZWEgaWQ9InJpZ2h0LXRvLWxlZnQy
IiBkaXI9ImF1dG8iIGNsYXNzPSJ0ZXN0RWxlbWVudCI+157Xp9eV16gg15TXqdedINei15HXqNeZ
16o8L3RleHRhcmVhPgorVGVzdCB0aGF0IHRoZSBkaXJlY3Rpb24gb2YgaGVicmV3IHRleHQgaXMg
cmlnaHQtdG8tbGVmdCBpbiB0aGUgdGV4dCBmb3JtIGNvbnRyb2wsIGV2ZW4gaWYgaW5zZXJ0ZWQg
ZHluYW1pY2FsbHkuCis8dGV4dGFyZWEgaWQ9InJpZ2h0LXRvLWxlZnQzIiBkaXI9ImF1dG8iIGNs
YXNzPSJ0ZXN0RWxlbWVudCI+PC90ZXh0YXJlYT4KKzwvZGl2PgorPHNjcmlwdD4KKworZGVzY3Jp
cHRpb24oJ1Rlc3QgdGhhdCBkaXJlY3Rpb25hbGl0eSBvZiBhIHRleHQgZm9ybSBjb250cm9sIHdp
dGggZGlyPWF1dG8gc2V0IGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlIG9mIHRoYXQgZm9ybSBj
b250cm9sLicpOworCit2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGVmdC10by1y
aWdodCIpOworc2hvdWxkQmUoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
ZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIiwgIidyZ2Io
MjU1LCAwLCAwKSciKTsKK2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJpZ2h0LXRvLWxl
ZnQxIik7CitzaG91bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShl
bCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykiLCAiJ3JnYigw
LCAxMjgsIDApJyIpOworZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmlnaHQtdG8tbGVm
dDIiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVs
LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIsICIncmdiKDAs
IDEyOCwgMCknIik7CitlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyaWdodC10by1sZWZ0
MyIpOworZWwuaW5uZXJUZXh0ID0gItee16fXldeoINeU16nXnSDXoteR16jXmdeqIjsKK3Nob3Vs
ZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIsICIncmdiKDAsIDEyOCwgMCknIik7
CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXJlbnREaXYiKS5zdHlsZS5kaXNwbGF5ID0g
Im5vbmUiOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="98044"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103069</attachid>
            <date>2011-08-05 07:10:19 -0700</date>
            <delta_ts>2011-08-05 07:36:48 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>65428.patch</filename>
            <type>text/plain</type>
            <size>16645</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTM4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMDUgIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIGRpcj1hdXRvIG5lZWRzIHRv
IHdvcmsgb24gdmFsdWUgb2YgaW5wdXQgYW5kIHRleHRhcmVhIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQyOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIENoYW5nZWQgdGhlIGRpcmVjdGlvbmFs
aXR5IGFsZ29yaXRobSB0byBldmFsdWF0ZSB0aGUgdmFsdWUgb2YgaW5wdXQgZWxlbWVudHMgYW5k
IHRleHRhcmVhIGVsZW1lbnRzIHdoZW4KKyAgICAgICAgdGhleSBoYXZlIHRoZSBhdHRyaWJ1dGUg
ZGlyLWF1dG8gU2V0LgorICAgICAgICBBbHNvIHNraXAgdGhlc2UgZWxlbWVudHMgd2hlbiBldmFs
dWF0aW5nIHRoZSBkaXJlY3Rpb25hbGl0eSBvZiB0aGVpciBhbmNlc3RvcnMuCisKKyAgICAgICAg
SFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkIGlzIG5vdCBjYWxsZWQgd2hlbiBh
IHVzZXIgdHlwZXMgaW50byB0aGUgdGV4dGFyZWEsIHNvIGNhbGwKKyAgICAgICAgY2FsY3VsYXRl
QW5kQWRqdXN0RGlyZWN0aW9uYWxpdHkoKSBleHBsaWNpdGx5IGZyb20gSFRNTFRleHRBcmVhRWxl
bWVudDo6c3VidHJlZUhhc0NoYW5nZWQoKS4KKworICAgICAgICBIVE1MSW5wdXRFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQgaXMgbm90IGNhbGxlZCB3aGVuIGEgdXNlciB0eXBlcyBpbnRvIHRoZSB0
ZXh0YXJlYSwgc28gY2FsbAorICAgICAgICBjYWxjdWxhdGVBbmRBZGp1c3REaXJlY3Rpb25hbGl0
eSgpIGV4cGxpY2l0bHkgZnJvbSBIVE1MVGV4dEFyZWFFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdl
ZCgpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRv
LWNoYW5nZWQtdGV4dC1mb3JtLWNvbnRyb2wuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20v
SFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0tY29udHJvbC1jaGlsZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9y
bS1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmRpcmVjdGlvbmFsaXR5KToKKyAgICAgICAgKiBodG1s
L0hUTUxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnN1YnRyZWVIYXNDaGFuZ2Vk
KToKKwogMjAxMS0wOC0wMSAgTWFyY28gUGVlcmVib29tICA8bWFyY29AcGVlcmVib29tLnVzPgog
CiAgICAgICAgIFtTb3VwXSBTZXQgZGVmYXVsdCBtYXgtY29ubnMgdG8gYSBtb3JlIHNhbmUgZGVm
YXVsdCB2YWx1ZSBhbmQgZml4IGNvbW1lbnQgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTIxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkhUTUxG
b3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTIsNiArNTMsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwordXNpbmcgbmFtZXNwYWNlIFdU
RjsKIAogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKQEAgLTg3MSwxMCArODczLDE5
IEBAIFRleHREaXJlY3Rpb24gSFRNTEVsZW1lbnQ6OmRpcmVjdGlvbmFsaXQKIAogVGV4dERpcmVj
dGlvbiBIVE1MRWxlbWVudDo6ZGlyZWN0aW9uYWxpdHkoTm9kZSoqIHN0cm9uZ0RpcmVjdGlvbmFs
aXR5VGV4dE5vZGUpIGNvbnN0CiB7CisgICAgaWYgKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
KiB0ZXh0RWxlbWVudCA9IHRvVGV4dEZvcm1Db250cm9sKGNvbnN0X2Nhc3Q8SFRNTEVsZW1lbnQq
Pih0aGlzKSkpIHsKKyAgICAgICAgYm9vbCBoYXNTdHJvbmdEaXJlY3Rpb25hbGl0eTsKKyAgICAg
ICAgVW5pY29kZTo6RGlyZWN0aW9uIHRleHREaXJlY3Rpb24gPSB0ZXh0RWxlbWVudC0+dmFsdWUo
KS5kZWZhdWx0V3JpdGluZ0RpcmVjdGlvbigmaGFzU3Ryb25nRGlyZWN0aW9uYWxpdHkpOworICAg
ICAgICBpZiAoaGFzU3Ryb25nRGlyZWN0aW9uYWxpdHkgJiYgc3Ryb25nRGlyZWN0aW9uYWxpdHlU
ZXh0Tm9kZSkKKyAgICAgICAgICAgICpzdHJvbmdEaXJlY3Rpb25hbGl0eVRleHROb2RlID0gdGV4
dEVsZW1lbnQ7CisgICAgICAgIHJldHVybiAodGV4dERpcmVjdGlvbiA9PSBVbmljb2RlOjpMZWZ0
VG9SaWdodCkgPyBMVFIgOiBSVEw7CisgICAgfQorCiAgICAgTm9kZSogbm9kZSA9IGZpcnN0Q2hp
bGQoKTsKICAgICB3aGlsZSAobm9kZSkgewotICAgICAgICAvLyBTa2lwIGJkaSwgc2NyaXB0IGFu
ZCBzdHlsZSBlbGVtZW50cwotICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uobm9kZS0+bm9k
ZU5hbWUoKSwgImJkaSIpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc2NyaXB0VGFnKSB8fCBub2RlLT5o
YXNUYWdOYW1lKHN0eWxlVGFnKSkgeworICAgICAgICAvLyBTa2lwIGJkaSwgc2NyaXB0LCBzdHls
ZSBhbmQgdGV4dCBmb3JtIGNvbnRyb2xzLgorICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
bm9kZS0+bm9kZU5hbWUoKSwgImJkaSIpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc2NyaXB0VGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKHN0eWxlVGFnKSAKKyAgICAgICAgICAgIHx8IChub2RlLT5pc0Vs
ZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5pc1RleHRGb3JtQ29udHJvbCgpKSkgewog
ICAgICAgICAgICAgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcodGhpcyk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaAkocmV2aXNpb24gOTIxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDcgQEAgcHJvdGVjdGVkOgogICAgIHVuc2ln
bmVkIHBhcnNlQm9yZGVyV2lkdGhBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUq
IGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnRE
ZWx0YSA9IDApOworICAgIHZvaWQgY2FsY3VsYXRlQW5kQWRqdXN0RGlyZWN0aW9uYWxpdHkoKTsK
IAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0OwpAQCAtMTA2
LDcgKzEwNyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpckF0dHJpYnV0ZUNoYW5nZWQoQXR0
cmlidXRlKik7CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVlZGVkQWZ0ZXJDaGls
ZEF0dHJpYnV0ZUNoYW5nZWQoRWxlbWVudCogY2hpbGQpOwotICAgIHZvaWQgY2FsY3VsYXRlQW5k
QWRqdXN0RGlyZWN0aW9uYWxpdHkoKTsKICAgICB2b2lkIGFkanVzdERpcmVjdGlvbmFsaXR5SWZO
ZWVkZWRBZnRlckNoaWxkcmVuQ2hhbmdlZChOb2RlKiBiZWZvcmVDaGFuZ2UsIGludCBjaGlsZENv
dW50RGVsdGEpOwogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxpdHkoTm9kZSoqIHN0cm9u
Z0RpcmVjdGlvbmFsaXR5VGV4dE5vZGU9IDApIGNvbnN0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gOTIxMzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjMs
NiArNjYzLDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdlZAogICAg
ICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgICAg
IGZyYW1lLT5lZGl0b3IoKS0+dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKHRoaXMpOwogICAgIH0K
KyAgICAvLyBXaGVuIHR5cGluZyBpbiBhbiBpbnB1dCBmaWVsZCwgY2hpbGRyZW5DaGFuZ2VkIGlz
IG5vdCBjYWxsZWQsIHNvIHdlIG5lZWQgdG8gZm9yY2UgdGhlIGRpcmVjdGlvbmFsaXR5IGNoZWNr
LgorICAgIGlmIChpc1RleHRGaWVsZCgpKQorICAgICAgICBjYWxjdWxhdGVBbmRBZGp1c3REaXJl
Y3Rpb25hbGl0eSgpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxJbnB1dEVsZW1lbnQ6
OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDkyMTMxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU1LDYgKzI1
NSw4IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c3VidHJlZUhhc0NoYW4KIAogICAgIGlm
IChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBmcmFtZS0+ZWRp
dG9yKCktPnRleHREaWRDaGFuZ2VJblRleHRBcmVhKHRoaXMpOworICAgIC8vIFdoZW4gdHlwaW5n
IGluIGEgdGV4dGFyZWEsIGNoaWxkcmVuQ2hhbmdlZCBpcyBub3QgY2FsbGVkLCBzbyB3ZSBuZWVk
IHRvIGZvcmNlIHRoZSBkaXJlY3Rpb25hbGl0eSBjaGVjay4KKyAgICBjYWxjdWxhdGVBbmRBZGp1
c3REaXJlY3Rpb25hbGl0eSgpOwogfQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmhhbmRs
ZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KiBldmVudCkg
Y29uc3QKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTM4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDgtMDUgIFlhZWwgQWhhcm9u
ICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIGRpcj1hdXRvIG5lZWRzIHRvIHdv
cmsgb24gdmFsdWUgb2YgaW5wdXQgYW5kIHRleHRhcmVhIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0
ci1kaXItYXV0by1jaGFuZ2VkLXRleHQtZm9ybS1jb250cm9sLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by1jaGFuZ2VkLXRl
eHQtZm9ybS1jb250cm9sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVt
ZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQt
Zm9ybS1jb250cm9sLWNoaWxkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxF
bGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9y
bS1jb250cm9sLmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTI4ICBBYmhpc2hlayBBcnlhICA8aW5m
ZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVncmVzc2lvbig4MjE0NCk6IENyYXNoIGlu
IFRyYWlsaW5nT2JqZWN0czo6dXBkYXRlTWlkcG9pbnRzRm9yVHJhaWxpbmdCb3hlcwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by1jaGFuZ2UtdGV4
dC1mb3JtLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tY2hhbmdlLXRleHQtZm9ybS1jb250cm9s
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxF
bGVtZW50L2F0dHItZGlyLWF1dG8tY2hhbmdlLXRleHQtZm9ybS1jb250cm9sLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMSBAQAorVGVzdCB0aGF0IGRpcmVjdGlvbmFsaXR5
IGlzIHJlLWV2YWx1YXRlZCB3aGVuIGRpciBhdHRyaWJ1dGUgY2hhbmdlcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKKworCisKKworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQt
Y29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCknCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3Lmdl
dENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1j
b2xvcicpIGlzICdyZ2IoMjU1LCAwLCAwKScKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNv
bG9yJykgaXMgJ3JnYigwLCAxMjgsIDApJworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRD
b21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29s
b3InKSBpcyAncmdiKDI1NSwgMCwgMCknCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCisKKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLWNoYW5nZS10ZXh0LWZvcm0tY29udHJvbC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1
dG8tY2hhbmdlLXRleHQtZm9ybS1jb250cm9sLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLWNoYW5nZS10ZXh0LWZvcm0t
Y29udHJvbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy50
ZXN0RWxlbWVudCB7LXdlYmtpdC1ib3JkZXItc3RhcnQ6IDVweCBzb2xpZCBncmVlbjsgLXdlYmtp
dC1ib3JkZXItZW5kOiA1cHggc29saWQgcmVkOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvcD4KKzxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+CisKKzxkaXYgaWQ9InBhcmVudERpdiI+Cis8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InRleHQxIiBkaXI9ImF1dG8iIGNsYXNzPSJ0ZXN0RWxlbWVudCIgdmFsdWU9Itee
16fXldeoINeU16nXnSDXoteR16jXmdeqIj4KKzx0ZXh0YXJlYSBpZD0idGV4dDIiIGRpcj0iYXV0
byIgY2xhc3M9InRlc3RFbGVtZW50Ij7Xnten15XXqCDXlNep150g16LXkdeo15nXqjwvdGV4dGFy
ZWE+Cis8L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgZGlyZWN0aW9u
YWxpdHkgaXMgcmUtZXZhbHVhdGVkIHdoZW4gZGlyIGF0dHJpYnV0ZSBjaGFuZ2VzLicpOworCit2
YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dDEiKTsKK3Nob3VsZEJlKCJkb2N1
bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZh
bHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIsICIncmdiKDAsIDEyOCwgMCknIik7CitlbC5zZXRB
dHRyaWJ1dGUoImRpciIsICJsdHIiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQt
Y29sb3InKSIsICIncmdiKDI1NSwgMCwgMCknIik7CisKK2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRleHQyIik7CitzaG91bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0
ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJyki
LCAiJ3JnYigwLCAxMjgsIDApJyIpOworZWwuc2V0QXR0cmlidXRlKCJkaXIiLCAibHRyIik7Citz
aG91bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCku
Z2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykiLCAiJ3JnYigyNTUsIDAsIDAp
JyIpOworCitlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXJlbnREaXYiKTsKK2VsLnN0
eWxlLmRpc3BsYXkgPSAibm9uZSI7CisKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9ybS1jb250cm9sLWNoaWxkLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVu
dC9hdHRyLWRpci1hdXRvLXRleHQtZm9ybS1jb250cm9sLWNoaWxkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1
dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE5IEBACitUZXN0IHRoYXQgZGlyZWN0aW9uYWxpdHkgb2YgYW4gZWxlbWVudCB3aXRo
IGRpcj1hdXRvIHNldCBpcyBub3QgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUgb2YgaXRzIGNoaWxk
IHRleHQgZm9ybSBjb250cm9sLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisK
KworUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5n
ZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSBpcyAncmdiKDI1NSwgMCwgMCkn
CitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdl
dFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScK
K1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0
UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMgJ3JnYigwLCAxMjgsIDApJwor
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10
ZXh0LWZvcm0tY29udHJvbC1jaGlsZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0
dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtY2hpbGQuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisudGVzdEVsZW1lbnQgey13ZWJraXQtYm9yZGVyLXN0
YXJ0OiA1cHggc29saWQgZ3JlZW47IC13ZWJraXQtYm9yZGVyLWVuZDogNXB4IHNvbGlkIHJlZDsg
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L3A+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0i
cGFyZW50RGl2Ij4KK1Rlc3QgdGhhdCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBkaXYgaXMgbGVmdC10
by1yaWdodCwgaWdub3JpbmcgaXRzIGNoaWxkIHRoYXQgaXMgYSB0ZXh0IGZvcm0gY29udHJvbC4K
KzxkaXYgaWQ9ImxlZnQtdG8tcmlnaHQiIGRpcj0iYXV0byIgY2xhc3M9InRlc3RFbGVtZW50Ij4K
KzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0i157Xp9eV16gg15TXqdedINei15HXqNeZ16oiPlRl
c3QgdGVzdCB0ZXN0Cis8L2Rpdj4KK1Rlc3QgdGhhdCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBkaXYg
aXMgcmlnaHQtdG8tbGVmdCwgaWdub3JpbmcgaXRzIGNoaWxkIHRoYXQgaXMgYSB0ZXh0IGZvcm0g
Y29udHJvbC4KKzxkaXYgaWQ9InJpZ2h0LXRvLWxlZnQxIiBkaXI9ImF1dG8iIGNsYXNzPSJ0ZXN0
RWxlbWVudCI+Cis8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlRlc3QgdGVzdCB0ZXN0Ij7Xnten
15XXqCDXlNep150g16LXkdeo15nXqgorPC9kaXY+Cis8ZGl2IGlkPSJyaWdodC10by1sZWZ0MiIg
ZGlyPSJhdXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiPgorPHRleHRhcmVhPlRlc3QgdGVzdCB0ZXN0
PC90ZXh0YXJlYT7Xnten15XXqCDXlNep150g16LXkdeo15nXqgorPC9kaXY+Cis8L2Rpdj4KKzxz
Y3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgZGlyZWN0aW9uYWxpdHkgb2YgYW4gZWxl
bWVudCB3aXRoIGRpcj1hdXRvIHNldCBpcyBub3QgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUgb2Yg
aXRzIGNoaWxkIHRleHQgZm9ybSBjb250cm9sLicpOworCit2YXIgZWwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibGVmdC10by1yaWdodCIpOworc2hvdWxkQmUoImRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1y
aWdodC1jb2xvcicpIiwgIidyZ2IoMjU1LCAwLCAwKSciKTsKK2VsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJpZ2h0LXRvLWxlZnQxIik7CitzaG91bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJp
Z2h0LWNvbG9yJykiLCAiJ3JnYigwLCAxMjgsIDApJyIpOworZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmlnaHQtdG8tbGVmdDIiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmll
dy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmln
aHQtY29sb3InKSIsICIncmdiKDAsIDEyOCwgMCknIik7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicGFyZW50RGl2Iikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKK3dpbmRvdy5zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9ybS1j
b250cm9sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRWxlbWVudC9hdHRyLWRpci1hdXRvLXRleHQtZm9ybS1jb250cm9sLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGly
LWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDIwIEBACitUZXN0IHRoYXQgZGlyZWN0aW9uYWxpdHkgb2YgYSB0ZXh0IGZvcm0gY29udHJv
bCB3aXRoIGRpcj1hdXRvIHNldCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGF0IGZv
cm0gY29udHJvbC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworCisKK1BBU1Mg
ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVy
dHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMgJ3JnYigyNTUsIDAsIDApJworUEFTUyBk
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0
eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCknCitQQVNTIGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5
VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScKK1BBU1MgZG9j
dW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlW
YWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykgaXMgJ3JnYigwLCAxMjgsIDApJworCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvYXR0ci1kaXItYXV0by10ZXh0LWZvcm0t
Y29udHJvbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVt
ZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3JtLWNvbnRyb2wuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2F0dHItZGlyLWF1dG8tdGV4dC1mb3Jt
LWNvbnRyb2wuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisu
dGVzdEVsZW1lbnQgey13ZWJraXQtYm9yZGVyLXN0YXJ0OiA1cHggc29saWQgZ3JlZW47IC13ZWJr
aXQtYm9yZGVyLWVuZDogNXB4IHNvbGlkIHJlZDsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L3A+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0icGFyZW50RGl2Ij4KK1Rlc3QgdGhhdCB0aGUg
ZGlyZWN0aW9uIG9mIGVuZ2xpc2ggdGV4dCBpcyBsZWZ0LXRvLXJpZ2h0IGluIHRoZSB0ZXh0IGZv
cm0gY29udHJvbC4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibGVmdC10by1yaWdodCIgZGlyPSJh
dXRvIiBjbGFzcz0idGVzdEVsZW1lbnQiIHZhbHVlPSJUZXN0IHRlc3QgdGVzdCI+CitUZXN0IHRo
YXQgdGhlIGRpcmVjdGlvbiBvZiBoZWJyZXcgdGV4dCBpcyByaWdodC10by1sZWZ0IGluIHRoZSB0
ZXh0IGZvcm0gY29udHJvbC4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmlnaHQtdG8tbGVmdDEi
IGRpcj0iYXV0byIgY2xhc3M9InRlc3RFbGVtZW50IiB2YWx1ZT0i157Xp9eV16gg15TXqdedINei
15HXqNeZ16oiPgorPHRleHRhcmVhIGlkPSJyaWdodC10by1sZWZ0MiIgZGlyPSJhdXRvIiBjbGFz
cz0idGVzdEVsZW1lbnQiPtee16fXldeoINeU16nXnSDXoteR16jXmdeqPC90ZXh0YXJlYT4KK1Rl
c3QgdGhhdCB0aGUgZGlyZWN0aW9uIG9mIGhlYnJldyB0ZXh0IGlzIHJpZ2h0LXRvLWxlZnQgaW4g
dGhlIHRleHQgZm9ybSBjb250cm9sLCBldmVuIGlmIGluc2VydGVkIGR5bmFtaWNhbGx5LgorPHRl
eHRhcmVhIGlkPSJyaWdodC10by1sZWZ0MyIgZGlyPSJhdXRvIiBjbGFzcz0idGVzdEVsZW1lbnQi
PjwvdGV4dGFyZWE+Cis8L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQg
ZGlyZWN0aW9uYWxpdHkgb2YgYSB0ZXh0IGZvcm0gY29udHJvbCB3aXRoIGRpcj1hdXRvIHNldCBp
cyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGF0IGZvcm0gY29udHJvbC4nKTsKKwordmFy
IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxlZnQtdG8tcmlnaHQiKTsKK3Nob3VsZEJl
KCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9w
ZXJ0eVZhbHVlKCdib3JkZXItcmlnaHQtY29sb3InKSIsICIncmdiKDI1NSwgMCwgMCknIik7Citl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyaWdodC10by1sZWZ0MSIpOworc2hvdWxkQmUo
ImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3Bl
cnR5VmFsdWUoJ2JvcmRlci1yaWdodC1jb2xvcicpIiwgIidyZ2IoMCwgMTI4LCAwKSciKTsKK2Vs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJpZ2h0LXRvLWxlZnQyIik7CitzaG91bGRCZSgi
ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVy
dHlWYWx1ZSgnYm9yZGVyLXJpZ2h0LWNvbG9yJykiLCAiJ3JnYigwLCAxMjgsIDApJyIpOworZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmlnaHQtdG8tbGVmdDMiKTsKK2VsLmlubmVyVGV4
dCA9ICLXnten15XXqCDXlNep150g16LXkdeo15nXqiI7CitzaG91bGRCZSgiZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9y
ZGVyLXJpZ2h0LWNvbG9yJykiLCAiJ3JnYigwLCAxMjgsIDApJyIpOworCitkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGFyZW50RGl2Iikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKK3dpbmRvdy5z
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>