<?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>123153</bug_id>
          
          <creation_ts>2013-10-22 05:42:27 -0700</creation_ts>
          <short_desc>[ATK] Avoid explicit traversal of text controls and the render tree in AtkText implementation</short_desc>
          <delta_ts>2013-11-01 03:57:51 -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>Accessibility</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apinheiro</cc>
    
    <cc>enrica</cc>
    
    <cc>jdiggs</cc>
    
    <cc>k.czech</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>942249</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-22 05:42:27 -0700</bug_when>
    <thetext>At the moment, the implementation of atk_text_get_text() relies sometimes on code that do things such as manually traversing the render tree, or manually checking line by line for text controls, to compose the text for a given AtkObject. Fortunately, this is only done when certain conditions apply, such as exposing an anonymous block or multiline text controls, but to me is an error-prone approach and most likely not the way to go, since by doing things like this we are not properly considering all the possible scenarios that might happen when traversing text, which is a task better suited for the TextIterator, for instance.

Another reason why that code is placed there (and the textForRenderer() function specially) is to deal with the case of exposing replaced objects to AT-SPI/ATK ATs, which again is something that the TextIterator should probably do instead, IMHO.

Furthermore, after some conversations with Joanie on IRC, I learned that the way we are currently exposing those replaced objects is not the right one, even if some test expectations seem to say so. For instance, consider the following code:

  &lt;html&gt;&lt;body&gt;&lt;p&gt;This is a text with a &lt;button type=&quot;button&quot;&gt;nice button&lt;/button&gt; in the middle&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;

At the moment, the code that we have in WebKitGTK+ exposes the text for that paragraph as this:

   &quot;This is a text with a &lt;obj&gt;nice button in the middle&quot;

...and this is coherent with what the test expectations for layout tests checking the exposure of replaced objects claim to expect (e.g. deleting-iframe-destroys-axcache). However, the expected output for Orca would better be something like this:

   &quot;This is a text with a &lt;obj&gt; in the middle&quot;  --&gt; Orca can query on that &lt;obj&gt; to know what&apos;s in, if she wants

So, this means that the current code, besides being error-prone, is wrong anyway. Great :)


Fortunately, after doing some experiments locally, I believe there&apos;s a better way to do all this, and it is by removing all that code (textForObject() and textForRenderer() mainly) from WebKitAccessibleInterfaceText.cpp and make sure the same functionality is achieved by using the AccessibilityObject API (which we are already using anyway) + slightly modifying the TextIterator to allow it not walk the subtree under a replaced object when asked for it (presumably, only EFL and GTK will want that).

I plan to upload such a patch soon to this bug. Hope it will make WebKitGTK/EFL a11y support of AtkText better, without disturbing the Mac port at all.

Let&apos;s see...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942250</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-22 05:43:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/15287471&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942274</commentid>
    <comment_count>2</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-22 06:21:28 -0700</bug_when>
    <thetext>*** Bug 118577 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942276</commentid>
    <comment_count>3</comment_count>
      <attachid>214850</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-22 06:23:05 -0700</bug_when>
    <thetext>Created attachment 214850
Patch proposal

Here is the patch.

I&apos;ll be adding Enrica to CC for an extra pair of eyes on the changes proposed for TextIterator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944453</commentid>
    <comment_count>4</comment_count>
      <attachid>214850</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-10-29 09:50:40 -0700</bug_when>
    <thetext>Comment on attachment 214850
Patch proposal

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Remove functions from the AtkText implementation that manually walk the

can you add why you want to do this. its not clear what the purpose is

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1976
&gt; +        | TextIteratorIgnoresChildrenForReplacedObjects);

is there ever a case where you don&apos;t want to do these two things together?

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:659
&gt; +        if (!m_renderer-&gt;isAnonymous()) {

can this check be done by just checking if this-&gt;node() == 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944856</commentid>
    <comment_count>5</comment_count>
      <attachid>214850</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-30 04:03:24 -0700</bug_when>
    <thetext>Comment on attachment 214850
Patch proposal

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Remove functions from the AtkText implementation that manually walk the
&gt; 
&gt; can you add why you want to do this. its not clear what the purpose is

Sure. I will expand the description in the ChangeLog with more detail, more in the line of this bug&apos;s description.

&gt;&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1976
&gt;&gt; +        | TextIteratorIgnoresChildrenForReplacedObjects);
&gt; 
&gt; is there ever a case where you don&apos;t want to do these two things together?

Not for ATK. However, I added this extra option because I assume other port might be using the TextIteratorEmitsObjectReplacementCharacters value, since it was there already before I added this bit some time ago.

In any case, that does not seem to keep being the case, since a quick grep tells me nobody other than this function is actually requiring that behaviour:

  $ git grep TextIteratorEmitsObjectReplacementCharacters
  WebCore/ChangeLog-2011-06-04:        enumeration (TextIteratorEmitsObjectReplacementCharacters) and new
  WebCore/accessibility/AccessibilityObject.cpp:    behavior = static_cast&lt;TextIteratorBehavior&gt;(behavior | TextIteratorEmitsObjectReplacementCharacters);
  WebCore/editing/TextIterator.cpp:    , m_emitsObjectReplacementCharacters(behavior &amp; TextIteratorEmitsObjectReplacementCharacters)
  WebCore/editing/TextIterator.h:    TextIteratorEmitsObjectReplacementCharacters = 1 &lt;&lt; 4,


Thus, I think it makes sense to merge them in two, probably by keeping the old name and just expanding its effect so it ignores the children when enabled.

I don&apos;t know... maybe this was used in the past by ports such as chromium or Qt?

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:659
&gt;&gt; +        if (!m_renderer-&gt;isAnonymous()) {
&gt; 
&gt; can this check be done by just checking if this-&gt;node() == 0?

Probably, actually node() includes the isAnonymous() check anyway:

  Node* RenderObject::node() const { return isAnonymous() ? 0 : &amp;m_node; }

I&apos;ll change that, if you think it&apos;s better.

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:671
&gt; +                ASSERT(!firstChildRenderer-&gt;isAnonymous());
&gt; +                ASSERT(!lastChildRenderer-&gt;isAnonymous());

I&apos;ll change this asserts too to check that ASSERT({first|last}ChildRenderer-&gt;node())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944895</commentid>
    <comment_count>6</comment_count>
      <attachid>215500</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-30 07:28:20 -0700</bug_when>
    <thetext>Created attachment 215500
Patch proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944896</commentid>
    <comment_count>7</comment_count>
      <attachid>215501</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-30 07:29:48 -0700</bug_when>
    <thetext>Created attachment 215501
Patch proposal

Sorry. Wrong patch attached before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944925</commentid>
    <comment_count>8</comment_count>
      <attachid>215501</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-10-30 09:13:40 -0700</bug_when>
    <thetext>Comment on attachment 215501
Patch proposal

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

minor comment. I think it&apos;s OK to collapse those for now. Mac may eventually want to use the emitsObjectReplacement and I think we&apos;d also want the same children behavior GTK wants

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:657
&gt; +        if (m_renderer-&gt;node()) {

you can probably do a if (Node* node = m_renderer-&gt;node()) and then get rid of the next if check. 
I know sometimes those results might be different but I&apos;m pretty sure AXrenderObject&apos;s node() method just does m_renderer-&gt;node() anyway</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945885</commentid>
    <comment_count>9</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-11-01 03:57:51 -0700</bug_when>
    <thetext>Committed r158428: &lt;http://trac.webkit.org/changeset/158428&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214850</attachid>
            <date>2013-10-22 06:23:05 -0700</date>
            <delta_ts>2013-10-30 07:28:20 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2013-10-22-Mario-Sanchez-Prada-mario.prada-samsung.c.patch</filename>
            <type>text/plain</type>
            <size>27037</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA4NTZiZGY2ZjUyNjJmNWQwMjNjYjVmZmQ2MzM5YTg4YTM0ZjUzYjNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogVHVlLCAyMiBPY3QgMjAxMyAxNDoxODozMCArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIDIwMTMtMTAtMjIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KCiAgICAgICAgW0FUS10gQXZvaWQgZXhwbGljaXQgdHJhdmVyc2FsIG9mIHRleHQg
Y29udHJvbHMgYW5kIHRoZSByZW5kZXIgdHJlZSBpbiBBdGtUZXh0IGltcGxlbWVudGF0aW9uCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzE1MwoKICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgUmVtb3ZlIGZ1bmN0aW9u
cyBmcm9tIHRoZSBBdGtUZXh0IGltcGxlbWVudGF0aW9uIHRoYXQgbWFudWFsbHkgd2FsayB0aGUK
ICAgICAgICByZW5kZXIgdHJlZSwgYXMgd2VsbCBhcyB0ZXh0IGNvbnRyb2xzLCB0byBjb21wb3Nl
IHRoZSB0ZXh0IGZvciBhIGV4cG9zZWQKICAgICAgICBvYmplY3RzIGluIGNlcnRhaW4gY2FzZXMg
KGUuZy4gYW5vbnltb3VzIGJsb2NrcykuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgogICAgICAgICh3ZWJraXRBY2Nlc3NpYmxl
VGV4dEdldFRleHQpOiBSZW1vdmVkIGNhbGwgdG8gdGV4dEZvck9iamVjdCgpLCBub3cgdGhhdAog
ICAgICAgIHdlIGhhdmUganVzdCByZW1vdmVkIHRoYXQgZnVuY3Rpb24sIHRvZ2V0aGVyIHdpdGgg
dGV4dEZvclJlbmRlcmVyKCkuCgogICAgICAgIE1ha2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudCgpIGFibGUgdG8gZGVhbCB3aXRoCiAgICAgICAgYW5vbnltb3Vz
IGJsb2NrcyBkaXJlY3RseSwgYnkgY3JlYXRpbmcgYSByYW5nZSBiYXNlZCBpbiB0aGUgYm91bmRh
cmllcwogICAgICAgIGRlZmluZWQgYnkgdGhlIGZpcnN0IGFuZCBsYXN0IGNoaWxkIHJlbmRlcmVy
cyBmb3IgdGhhdCBibG9jay4gVGhpcyB3aWxsCiAgICAgICAgbWFrZSBwb3NzaWJsZSB0byB0cmVh
dCBhbiBhbm9ueW1vdXMgYmxvY2sgYXMgYSB3aG9sZSBpbnN0ZWFkIG9mIGhhdmluZwogICAgICAg
IHRvIHJlbHkgaW4gdGhlIGNvbmNhdGVuYXRpb24gb2YgZWFjaCBvZiBpdHMgY2hpbGRyZW4sIGFz
IGl0IGRvZXMgbm93LgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnRleHRVbmRlckVsZW1lbnQpOiBBZGRlZCBhIG5ldyBjb2RlCiAgICAgICAgcGF0aCB0byBkZWFs
IHdpdGggYW5vbnltb3VzIGJsb2NrcyBmb3IgdGV4dCByZW5kZXJlcnMsIG9yIHdoZW4gaW5jbHVk
aW5nCiAgICAgICAgYWxsIHRoZSBjaGlsZHJlbiBpcyBleHBsaWNpdGx5IHJlcXVlc3RlZC4KCiAg
ICAgICAgRXh0ZW5kZWQgVGV4dEl0ZXJhdG9yIHRvIGFsbG93IHNwZWNpZnlpbmcgdGhhdCB3ZSBh
cmUgbm90IGludGVyZXN0ZWQgaW4KICAgICAgICBlbWl0dGluZyBhbnkgdGV4dCBiZWxvbmdpbmcg
dG8gYSBzdWJ0cmVlIHVuZGVyIGEgcmVwbGFjZWQgb2JqZWN0LgoKICAgICAgICAqIGVkaXRpbmcv
VGV4dEl0ZXJhdG9yLmg6IEFkZGVkIGEgbmV3IG9wdGlvbiBpbiB0aGUgVGV4dEl0ZXJhdG9yQmVo
YXZpb3IKICAgICAgICBlbnVtZXJhdGlvbjogVGV4dEl0ZXJhdG9ySWdub3Jlc0NoaWxkcmVuRm9y
UmVwbGFjZWRPYmplY3RzLiBBbHNvLCBhZGRlZAogICAgICAgIGEgbmV3IHByaXZhdGUgYXR0cmli
dXRlIG1faWdub3Jlc0NoaWxkcmVuRm9yUmVwbGFjZWRPYmplY3RzIHRvIHVzZSB0aGF0LgogICAg
ICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgogICAgICAgIChXZWJDb3JlOjpUZXh0SXRl
cmF0b3I6OlRleHRJdGVyYXRvcik6IEluaXRpYWxpemUgdGhlIG5ldyBhdHRyaWJ1dGUuCiAgICAg
ICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6YWR2YW5jZSk6IE1ha2Ugc3VyZSBubyBjaGlsZHJl
biBhcmUgaGFuZGxlZCBmb3IKICAgICAgICBhIHJlcGxhY2VkIG9iamVjdCBpZiBtX2lnbm9yZXND
aGlsZHJlbkZvclJlcGxhY2VkT2JqZWN0cyBpcyBzZXQuCgogICAgICAgIEFzayBHVEsgYW5kIEVG
TCBwb3J0cyBub3QgdG8gZXhwb3NlIHRleHQgdW5kZXIgcmVwbGFjZWQgb2JqZWN0cywgYnkKICAg
ICAgICB1c2luZyB0aGUgbmV3bHkgYWRkZWQgdmFsdWUgb2YgVGV4dEl0ZXJhdG9yQmVoYXZpb3Iu
CgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dGV4dEl0ZXJhdG9yQmVoYXZpb3JGb3JU
ZXh0UmFuZ2UpOiBBZGQKICAgICAgICBUZXh0SXRlcmF0b3JJZ25vcmVzQ2hpbGRyZW5Gb3JSZXBs
YWNlZE9iamVjdHMgdG8gdGhlIHJlcXVpcmVkIGJlaGF2aW9yLgoKMjAxMy0xMC0yMiAgTWFyaW8g
U2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgoKICAgICAgICBbQVRLXSBB
dm9pZCBleHBsaWNpdCB0cmF2ZXJzYWwgb2YgdGV4dCBjb250cm9scyBhbmQgdGhlIHJlbmRlciB0
cmVlIGluIEF0a1RleHQgaW1wbGVtZW50YXRpb24KICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTUzCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgoKICAgICAgICBVcGRhdGVkIHRlc3QgZXhwZWN0YXRpb25zIHRvIHByb3Blcmx5IHJl
ZmxlY3QgdGhlIG5ldyByZWFsaXR5IHdoZW4gaXQKICAgICAgICBjb21lcyB0byBleHBvc2luZyBy
ZXBsYWNlZCBvYmplY3RzIGFuZCBhbnltb3VzIGJsb2Nrcy4KCiAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB0
bwogICAgICAgIHByaW50IDxcbj4gZXhwbGljaXRseSBmb3IgdGhlIHR3byBpbnN0YW5jZXMgb2Yg
PEJSPiB0aGF0IGFyZSBwcmVzZW50IGluIHRoZQogICAgICAgIHRlc3QsIHRoYXQgd2lsbCBiZSBp
bmNsdWRlZCBhcyBwYXJ0IG9mIGFuIGFub255bW91cyBibG9jay4KICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0OiBEaXR0by4K
ICAgICAgICAqIHBsYXRmb3JtL2VmbC13azIvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVz
LWV4cGVjdGVkLnR4dDogRGl0dG8uCgogICAgICAgICogcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxp
dHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0OiBVcGRhdGVk
CiAgICAgICAgZXhwZWN0YXRpb25zIG5vdCB0byBleHBlY3QgdGhlIHRleHQgb2YgYSBidXR0b24g
dG8gYmUgc2hvd24uCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kZWxldGlu
Zy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQ6IERpdHRvLgogICAgICAgICog
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMt
YmxvY2tzLWV4cGVjdGVkLnR4dDogRGl0dG8uCgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnM6IFJlbW92ZWQgcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tz
Lmh0bWwKICAgICAgICBmcm9tIHRoZSBsaXN0IG9mIGV4cGVjdGVkIGZhaWx1cmVzLCBhcyBpdCdz
IG5vdyBiZWluZyBwcm9wZXJseSBleHBvc2VkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKwogLi4uL2FjY2Vzc2liaWxp
dHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQgICAgfCAgICAyICstCiAuLi4vZGVsZXRp
bmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0ICB8ICAgIDIgKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0ICAgIHwgICAgMiArLQog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgfCAgICAy
IC0KIC4uLi9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQgIHwg
ICAgMiArLQogLi4ucGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJsb2Nrcy1leHBlY3RlZC50
eHQgfCAgICA4ICstCiAuLi4vYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVk
LnR4dCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICA0NCArKysrKysrKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgfCAgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgMzYgKysrKysrLQogLi4uL2F0ay9XZWJL
aXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgICAgICAgICAgfCAgMTA1IC0tLS0tLS0tLS0t
LS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgICAgICAg
ICAgICB8ICAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmggICAg
ICAgICAgICAgIHwgICAgOSArLQogMTQgZmlsZXMgY2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyks
IDEyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmQ5YzU5Yy4uYTk1NjZhYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDEzLTEwLTIyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10gQXZvaWQgZXhwbGljaXQgdHJhdmVyc2FsIG9m
IHRleHQgY29udHJvbHMgYW5kIHRoZSByZW5kZXIgdHJlZSBpbiBBdGtUZXh0IGltcGxlbWVudGF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMx
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGVkIHRlc3QgZXhwZWN0YXRpb25zIHRvIHByb3Blcmx5IHJlZmxlY3QgdGhlIG5ldyByZWFsaXR5
IHdoZW4gaXQKKyAgICAgICAgY29tZXMgdG8gZXhwb3NpbmcgcmVwbGFjZWQgb2JqZWN0cyBhbmQg
YW55bW91cyBibG9ja3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS90
YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB0bworICAgICAgICBwcmludCA8
XG4+IGV4cGxpY2l0bHkgZm9yIHRoZSB0d28gaW5zdGFuY2VzIG9mIDxCUj4gdGhhdCBhcmUgcHJl
c2VudCBpbiB0aGUKKyAgICAgICAgdGVzdCwgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGFzIHBhcnQg
b2YgYW4gYW5vbnltb3VzIGJsb2NrLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9hY2Nlc3NpYmls
aXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwtd2syL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6
IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxpdHkvZGVsZXRpbmct
aWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0OiBVcGRhdGVkCisgICAgICAgIGV4
cGVjdGF0aW9ucyBub3QgdG8gZXhwZWN0IHRoZSB0ZXh0IG9mIGEgYnV0dG9uIHRvIGJlIHNob3du
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1k
ZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLWV4
cGVjdGVkLnR4dDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9uczogUmVtb3ZlZCByZXBsYWNlZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MuaHRtbAor
ICAgICAgICBmcm9tIHRoZSBsaXN0IG9mIGV4cGVjdGVkIGZhaWx1cmVzLCBhcyBpdCdzIG5vdyBi
ZWluZyBwcm9wZXJseSBleHBvc2VkLgorCiAyMDEzLTEwLTIxICBTYW50b3NoIE1haHRvICA8c2Fu
dG9zaC5tYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAhc3R5bGUt
PnByb3BlcnR5SXNJbXBvcnRhbnQocHJvcGVydHlJRCkgaW4gV2ViQ29yZTo6c2V0VGV4dERlY29y
YXRpb25Qcm9wZXJ0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9h
Y2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsLXdrMi9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IDMyMzg2NWUuLjllNThiMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC13azIvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0
aC1ydWxlcy1leHBlY3RlZC50eHQKQEAgLTg0LDcgKzg0LDcgQEAgQVhQb3NpdGlvbjogeyAwLjAw
MDAwMCwgMC4wMDAwMDAgfQogQVhTaXplOiB7IDc2OS4wMDAwMDAsIDM2LjAwMDAwMCB9CiBBWFRp
dGxlOiAKIEFYRGVzY3JpcHRpb246IAotQVhWYWx1ZTogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitBWFZhbHVlOiA8XG4+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tPFxuPgogQVhGb2N1c2FibGU6IDAKIEFYRm9jdXNlZDogMAogQVhTZWxlY3RhYmxlOiAw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS9kZWxl
dGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNo
ZS1leHBlY3RlZC50eHQKaW5kZXggMGZlZTIzNS4uMGM4NDZkNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lz
LWF4Y2FjaGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9hY2Nl
c3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dApA
QCAtMTcsNyArMTcsNyBAQCBBWFJvbGU6IEFYU2Nyb2xsQXJlYQogICAgICAgICBBWFJvbGU6IEFY
R3JvdXAgQVhWYWx1ZTogPG9iaj4KICAgICAgICAgICAgIEFYUm9sZTogQVhTY3JvbGxBcmVhIAog
ICAgICAgICAgICAgICAgIEFYUm9sZTogQVhXZWJBcmVhIAotICAgICAgICAgICAgICAgICAgICBB
WFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj5DbGljayBtZQorICAgICAgICAgICAgICAgICAg
ICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4KICAgICAgICAgICAgICAgICAgICAgICAg
IEFYUm9sZTogQVhCdXR0b24gCiAgICAgICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTog
QWZ0ZXIKICAgICAgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBFbmQgb2YgdGVzdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxpdHkvdGFibGUt
d2l0aC1ydWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNz
aWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAppbmRleCA4NGM1MDRmLi4xOTZh
ZmEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS90
YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dApAQCAtODQsNyAr
ODQsNyBAQCBBWFBvc2l0aW9uOiB7IDguMDAwMDAwLCAxMTYuMDAwMDAwIH0KIEFYU2l6ZTogeyA3
NjUuMDAwMDAwLCAzNi4wMDAwMDAgfQogQVhUaXRsZTogCiBBWERlc2NyaXB0aW9uOiAKLUFYVmFs
dWU6IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQVhWYWx1ZTogPFxuPi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxcbj4KIEFYRm9jdXNhYmxlOiAwCiBB
WEZvY3VzZWQ6IDAKIEFYU2VsZWN0YWJsZTogMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAxNTgxYjE2Li5lOGRhYTM1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTMyMyw4ICsxMzIzLDYgQEAgd2Via2l0Lm9y
Zy9iLzExNDI1MSBhY2Nlc3NpYmlsaXR5L3N2Zy1ncm91cC1lbGVtZW50LXdpdGgtdGl0bGUuaHRt
bCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExNDI1OSBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9hcmlhLXNsaWRlci1yZXF1aXJlZC1hdHRyaWJ1dGVzLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xMTQyNTkgcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNv
bGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcv
Yi8xMTg1NzcgcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQtb2JqZWN0cy1pbi1h
bm9ueW1vdXMtYmxvY2tzLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzExNDYxMiBl
ZGl0aW5nL3N0eWxlL2Jsb2NrLXN0eWxlLTAwNS5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xMTUwMjUgZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21vdXNlLWV2ZW50LWNvbnN0cnVj
dG9yLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlm
cmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dAppbmRleCAwZmVlMjM1Li4wYzg0NmQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kZWxl
dGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4
Y2FjaGUtZXhwZWN0ZWQudHh0CkBAIC0xNyw3ICsxNyw3IEBAIEFYUm9sZTogQVhTY3JvbGxBcmVh
CiAgICAgICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPgogICAgICAgICAgICAgQVhS
b2xlOiBBWFNjcm9sbEFyZWEgCiAgICAgICAgICAgICAgICAgQVhSb2xlOiBBWFdlYkFyZWEgCi0g
ICAgICAgICAgICAgICAgICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPkNsaWNrIG1l
CisgICAgICAgICAgICAgICAgICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPgogICAg
ICAgICAgICAgICAgICAgICAgICAgQVhSb2xlOiBBWEJ1dHRvbiAKICAgICAgICAgQVhSb2xlOiBB
WFBhcmFncmFwaCBBWFZhbHVlOiBBZnRlcgogICAgICAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFY
VmFsdWU6IEVuZCBvZiB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9yZXBsYWNlZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQt
b2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLWV4cGVjdGVkLnR4dAppbmRleCA4Y2FlNTgwLi4w
ZWZmMmQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9yZXBsYWNlZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3JlcGxhY2VkLW9iamVjdHMt
aW4tYW5vbnltb3VzLWJsb2Nrcy1leHBlY3RlZC50eHQKQEAgLTEyLDE2ICsxMiwxNiBAQCBidXR0
b24KIEVuZCBvZiB0ZXN0CiBBWFJvbGU6IEFYV2ViQXJlYSAKICAgICBBWFJvbGU6IEFYUGFyYWdy
YXBoIEFYVmFsdWU6IFBhcmFncmFwaAotICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2Jq
PmJ1dHRvbjxcbj4KKyAgICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4KICAgICAgICAg
QVhSb2xlOiBBWEJ1dHRvbiAKICAgICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4KICAg
ICAgICAgQVhSb2xlOiBBWFNjcm9sbEFyZWEgCiAgICAgICAgICAgICBBWFJvbGU6IEFYV2ViQXJl
YSAKLSAgICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj50ZXh0IGFyZWE8XG4+CisgICAg
QVhSb2xlOiBBWEdyb3VwIEFYVmFsdWU6IDxvYmo+CiAgICAgICAgIEFYUm9sZTogQVhUZXh0Rmll
bGQgQVhWYWx1ZTogdGV4dCBhcmVhCi0gICAgQVhSb2xlOiBBWERpdiBBWFZhbHVlOiBEaXY8XG4+
PG9iaj5idXR0b24KKyAgICBBWFJvbGU6IEFYRGl2IEFYVmFsdWU6IERpdjxcbj48b2JqPgogICAg
ICAgICBBWFJvbGU6IEFYQnV0dG9uIAotICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFsdWU6IEhl
YWRpbmc8XG4+PG9iaj5idXR0b248XG4+PG9iaj4KKyAgICBBWFJvbGU6IEFYSGVhZGluZyBBWFZh
bHVlOiBIZWFkaW5nPFxuPjxvYmo+PFxuPjxvYmo+CiAgICAgICAgIEFYUm9sZTogQVhCdXR0b24g
CiAgICAgICAgIEFYUm9sZTogQVhJbWFnZSAKICAgICBBWFJvbGU6IEFYRGl2IEFYVmFsdWU6IEVu
ZCBvZiB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDEw
NjdlZGEuLmExMzkxZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0
CkBAIC04NCw3ICs4NCw3IEBAIEFYUG9zaXRpb246IHsgOC4wMDAwMDAsIDExMS4wMDAwMDAgfQog
QVhTaXplOiB7IDc2OS4wMDAwMDAsIDM0LjAwMDAwMCB9CiBBWFRpdGxlOiAKIEFYRGVzY3JpcHRp
b246IAotQVhWYWx1ZTogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBWFZh
bHVlOiA8XG4+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPFxuPgogQVhGb2N1
c2FibGU6IDAKIEFYRm9jdXNlZDogMAogQVhTZWxlY3RhYmxlOiAwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTg5
NmRmZi4uY2FlNzJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTEwLTIyICBN
YXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0FUS10gQXZvaWQgZXhwbGljaXQgdHJhdmVyc2FsIG9mIHRleHQgY29udHJvbHMgYW5kIHRoZSBy
ZW5kZXIgdHJlZSBpbiBBdGtUZXh0IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZnVuY3Rpb25zIGZyb20gdGhlIEF0
a1RleHQgaW1wbGVtZW50YXRpb24gdGhhdCBtYW51YWxseSB3YWxrIHRoZQorICAgICAgICByZW5k
ZXIgdHJlZSwgYXMgd2VsbCBhcyB0ZXh0IGNvbnRyb2xzLCB0byBjb21wb3NlIHRoZSB0ZXh0IGZv
ciBhIGV4cG9zZWQKKyAgICAgICAgb2JqZWN0cyBpbiBjZXJ0YWluIGNhc2VzIChlLmcuIGFub255
bW91cyBibG9ja3MpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNz
aWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZVRleHRHZXRU
ZXh0KTogUmVtb3ZlZCBjYWxsIHRvIHRleHRGb3JPYmplY3QoKSwgbm93IHRoYXQKKyAgICAgICAg
d2UgaGF2ZSBqdXN0IHJlbW92ZWQgdGhhdCBmdW5jdGlvbiwgdG9nZXRoZXIgd2l0aCB0ZXh0Rm9y
UmVuZGVyZXIoKS4KKworICAgICAgICBNYWtlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRl
eHRVbmRlckVsZW1lbnQoKSBhYmxlIHRvIGRlYWwgd2l0aAorICAgICAgICBhbm9ueW1vdXMgYmxv
Y2tzIGRpcmVjdGx5LCBieSBjcmVhdGluZyBhIHJhbmdlIGJhc2VkIGluIHRoZSBib3VuZGFyaWVz
CisgICAgICAgIGRlZmluZWQgYnkgdGhlIGZpcnN0IGFuZCBsYXN0IGNoaWxkIHJlbmRlcmVycyBm
b3IgdGhhdCBibG9jay4gVGhpcyB3aWxsCisgICAgICAgIG1ha2UgcG9zc2libGUgdG8gdHJlYXQg
YW4gYW5vbnltb3VzIGJsb2NrIGFzIGEgd2hvbGUgaW5zdGVhZCBvZiBoYXZpbmcKKyAgICAgICAg
dG8gcmVseSBpbiB0aGUgY29uY2F0ZW5hdGlvbiBvZiBlYWNoIG9mIGl0cyBjaGlsZHJlbiwgYXMg
aXQgZG9lcyBub3cuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudCk6IEFkZGVkIGEgbmV3IGNvZGUKKyAgICAgICAgcGF0aCB0byBk
ZWFsIHdpdGggYW5vbnltb3VzIGJsb2NrcyBmb3IgdGV4dCByZW5kZXJlcnMsIG9yIHdoZW4gaW5j
bHVkaW5nCisgICAgICAgIGFsbCB0aGUgY2hpbGRyZW4gaXMgZXhwbGljaXRseSByZXF1ZXN0ZWQu
CisKKyAgICAgICAgRXh0ZW5kZWQgVGV4dEl0ZXJhdG9yIHRvIGFsbG93IHNwZWNpZnlpbmcgdGhh
dCB3ZSBhcmUgbm90IGludGVyZXN0ZWQgaW4KKyAgICAgICAgZW1pdHRpbmcgYW55IHRleHQgYmVs
b25naW5nIHRvIGEgc3VidHJlZSB1bmRlciBhIHJlcGxhY2VkIG9iamVjdC4KKworICAgICAgICAq
IGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmg6IEFkZGVkIGEgbmV3IG9wdGlvbiBpbiB0aGUgVGV4dEl0
ZXJhdG9yQmVoYXZpb3IKKyAgICAgICAgZW51bWVyYXRpb246IFRleHRJdGVyYXRvcklnbm9yZXND
aGlsZHJlbkZvclJlcGxhY2VkT2JqZWN0cy4gQWxzbywgYWRkZWQKKyAgICAgICAgYSBuZXcgcHJp
dmF0ZSBhdHRyaWJ1dGUgbV9pZ25vcmVzQ2hpbGRyZW5Gb3JSZXBsYWNlZE9iamVjdHMgdG8gdXNl
IHRoYXQuCisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEl0ZXJhdG9yOjpUZXh0SXRlcmF0b3IpOiBJbml0aWFsaXplIHRoZSBuZXcgYXR0
cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjphZHZhbmNlKTogTWFrZSBz
dXJlIG5vIGNoaWxkcmVuIGFyZSBoYW5kbGVkIGZvcgorICAgICAgICBhIHJlcGxhY2VkIG9iamVj
dCBpZiBtX2lnbm9yZXNDaGlsZHJlbkZvclJlcGxhY2VkT2JqZWN0cyBpcyBzZXQuCisKKyAgICAg
ICAgQXNrIEdUSyBhbmQgRUZMIHBvcnRzIG5vdCB0byBleHBvc2UgdGV4dCB1bmRlciByZXBsYWNl
ZCBvYmplY3RzLCBieQorICAgICAgICB1c2luZyB0aGUgbmV3bHkgYWRkZWQgdmFsdWUgb2YgVGV4
dEl0ZXJhdG9yQmVoYXZpb3IuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dGV4
dEl0ZXJhdG9yQmVoYXZpb3JGb3JUZXh0UmFuZ2UpOiBBZGQKKyAgICAgICAgVGV4dEl0ZXJhdG9y
SWdub3Jlc0NoaWxkcmVuRm9yUmVwbGFjZWRPYmplY3RzIHRvIHRoZSByZXF1aXJlZCBiZWhhdmlv
ci4KKwogMjAxMy0xMC0yMSAgU2FudG9zaCBNYWh0byAgPHNhbnRvc2gubWFAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogIXN0eWxlLT5wcm9wZXJ0eUlzSW1wb3J0YW50
KHByb3BlcnR5SUQpIGluIFdlYkNvcmU6OnNldFRleHREZWNvcmF0aW9uUHJvcGVydHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CmluZGV4IDY2ZTIwZjcuLjRkZDQ5NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTk3MSw3ICsxOTcxLDkgQEAg
VGV4dEl0ZXJhdG9yQmVoYXZpb3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6dGV4dEl0ZXJhdG9yQmVo
YXZpb3JGb3JUZXh0UmFuZ2UoKSBjb24KICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVG
TCkKICAgICAvLyBXZSBuZWVkIHRvIGVtaXQgcmVwbGFjZWQgZWxlbWVudHMgZm9yIEdUSywgYW5k
IHByZXNlbnQKICAgICAvLyB0aGVtIHdpdGggdGhlICdvYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFj
dGVyJyAoMHhGRkZDKS4KLSAgICBiZWhhdmlvciA9IHN0YXRpY19jYXN0PFRleHRJdGVyYXRvckJl
aGF2aW9yPihiZWhhdmlvciB8IFRleHRJdGVyYXRvckVtaXRzT2JqZWN0UmVwbGFjZW1lbnRDaGFy
YWN0ZXJzKTsKKyAgICBiZWhhdmlvciA9IHN0YXRpY19jYXN0PFRleHRJdGVyYXRvckJlaGF2aW9y
PihiZWhhdmlvcgorICAgICAgICB8IFRleHRJdGVyYXRvckVtaXRzT2JqZWN0UmVwbGFjZW1lbnRD
aGFyYWN0ZXJzCisgICAgICAgIHwgVGV4dEl0ZXJhdG9ySWdub3Jlc0NoaWxkcmVuRm9yUmVwbGFj
ZWRPYmplY3RzKTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiBiZWhhdmlvcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCmluZGV4IGY2OWYwMDQuLjI3YTNjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApA
QCAtNjU0LDEzICs2NTQsMzkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRl
eHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnQKICAgICBpZiAobV9y
ZW5kZXJlci0+aXNUZXh0KCkgfHwgbW9kZS5jaGlsZHJlbkluY2x1c2lvbiA9PSBBY2Nlc3NpYmls
aXR5VGV4dFVuZGVyRWxlbWVudE1vZGU6OlRleHRVbmRlckVsZW1lbnRNb2RlSW5jbHVkZUFsbENo
aWxkcmVuKSB7CiAgICAgICAgIC8vIElmIHBvc3NpYmxlLCB1c2UgYSB0ZXh0IGl0ZXJhdG9yIHRv
IGdldCB0aGUgdGV4dCwgc28gdGhhdCB3aGl0ZXNwYWNlCiAgICAgICAgIC8vIGlzIGhhbmRsZWQg
Y29uc2lzdGVudGx5LgotICAgICAgICBpZiAoTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKSkgewot
ICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSkg
eworICAgICAgICBEb2N1bWVudCogbm9kZURvY3VtZW50ID0gMDsKKyAgICAgICAgUmVmUHRyPFJh
bmdlPiB0ZXh0UmFuZ2U7CisgICAgICAgIGlmICghbV9yZW5kZXJlci0+aXNBbm9ueW1vdXMoKSkg
eworICAgICAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsKKyAgICAgICAg
ICAgICAgICBub2RlRG9jdW1lbnQgPSAmbm9kZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAg
ICB0ZXh0UmFuZ2UgPSByYW5nZU9mQ29udGVudHMoKm5vZGUpOworICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gRm9yIGFub255bW91cyBibG9ja3MsIHdlIHdv
cmsgYXJvdW5kIG5vdCBoYXZpbmcgYSBkaXJlY3Qgbm9kZSB0byBjcmVhdGUgYSByYW5nZSBmcm9t
CisgICAgICAgICAgICAvLyBkZWZpbmluZyBvbmUgYmFzZWQgaW4gdGhlIHR3byBleHRlcm5hbCBw
b3NpdGlvbnMgZGVmaW5pbmcgdGhlIGJvdW5kYXJpZXMgb2YgdGhlIHN1YnRyZWUuCisgICAgICAg
ICAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGRSZW5kZXJlciA9IG1fcmVuZGVyZXItPmZpcnN0
Q2hpbGRTbG93KCk7CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZFJlbmRlcmVy
ID0gbV9yZW5kZXJlci0+bGFzdENoaWxkU2xvdygpOworICAgICAgICAgICAgaWYgKGZpcnN0Q2hp
bGRSZW5kZXJlciAmJiBsYXN0Q2hpbGRSZW5kZXJlcikgeworICAgICAgICAgICAgICAgIEFTU0VS
VCghZmlyc3RDaGlsZFJlbmRlcmVyLT5pc0Fub255bW91cygpKTsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoIWxhc3RDaGlsZFJlbmRlcmVyLT5pc0Fub255bW91cygpKTsKKworICAgICAgICAgICAg
ICAgIC8vIFdlIGRlZmluZSB0aGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMgZm9yIHRoZSByYW5n
ZSBhcyB0aGUgb25lcyByaWdodCBiZWZvcmUgYW5kIGFmdGVyCisgICAgICAgICAgICAgICAgLy8g
dGhlIGZpcnN0IGFuZCB0aGUgbGFzdCBub2RlcyBpbiB0aGUgRE9NIHRyZWUgdGhhdCBpcyB3cmFw
cGVkIGluc2lkZSB0aGUgYW5vbnltb3VzIGJsb2NrLgorICAgICAgICAgICAgICAgIE5vZGUqIGZp
cnN0Tm9kZUluQmxvY2sgPSBmaXJzdENoaWxkUmVuZGVyZXItPm5vZGUoKTsKKyAgICAgICAgICAg
ICAgICBQb3NpdGlvbiBzdGFydFBvc2l0aW9uID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUo
Zmlyc3ROb2RlSW5CbG9jayk7CisgICAgICAgICAgICAgICAgUG9zaXRpb24gZW5kUG9zaXRpb24g
PSBwb3NpdGlvbkluUGFyZW50QWZ0ZXJOb2RlKGxhc3RDaGlsZFJlbmRlcmVyLT5ub2RlKCkpOwor
CisgICAgICAgICAgICAgICAgbm9kZURvY3VtZW50ID0gJmZpcnN0Tm9kZUluQmxvY2stPmRvY3Vt
ZW50KCk7CisgICAgICAgICAgICAgICAgdGV4dFJhbmdlID0gUmFuZ2U6OmNyZWF0ZSgqbm9kZURv
Y3VtZW50LCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBpZiAobm9kZURvY3VtZW50ICYmIHRleHRSYW5nZSkgeworICAgICAg
ICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGVEb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgICAgIC8vIGNhdGNoIHN0YWxlIFdlYkNvcmVBWE9iamVjdCAoc2VlIDxyZGFyOi8vcHJv
YmxlbS8zOTYwMTk2PikKLSAgICAgICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgIT0g
Jm5vZGUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgp
ICE9IG5vZGVEb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwot
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBsYWluVGV4dChyYW5nZU9mQ29udGVudHMoKm5vZGUp
LmdldCgpLCB0ZXh0SXRlcmF0b3JCZWhhdmlvckZvclRleHRSYW5nZSgpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcGxhaW5UZXh0KHRleHRSYW5nZS5nZXQoKSwgdGV4dEl0ZXJhdG9yQmVoYXZp
b3JGb3JUZXh0UmFuZ2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJ
bnRlcmZhY2VUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktp
dEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcAppbmRleCBhNzcyYWUwLi5iMTQzOWFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxl
SW50ZXJmYWNlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCkBAIC02OSwxMDMgKzY5LDYgQEAgc3Rh
dGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmUoQXRrVGV4dCogdGV4dCkKICAgICByZXR1cm4g
d2Via2l0QWNjZXNzaWJsZUdldEFjY2Vzc2liaWxpdHlPYmplY3QoV0VCS0lUX0FDQ0VTU0lCTEUo
dGV4dCkpOwogfQogCi1zdGF0aWMgZ2NoYXIqIHRleHRGb3JSZW5kZXJlcihSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQotewotICAgIEdTdHJpbmcqIHJlc3VsdFRleHQgPSBnX3N0cmluZ19uZXcoMCk7
Ci0KLSAgICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm4gZ19zdHJpbmdfZnJlZShyZXN1
bHRUZXh0LCBGQUxTRSk7Ci0KLSAgICAvLyBGb3IgUmVuZGVyQmxvY2tzLCBwaWVjZSB0b2dldGhl
ciB0aGUgdGV4dCBmcm9tIHRoZSBSZW5kZXJUZXh0IG9iamVjdHMgdGhleSBjb250YWluLgotICAg
IGZvciAoUmVuZGVyT2JqZWN0KiBvYmplY3QgPSByZW5kZXJlci0+Zmlyc3RDaGlsZFNsb3coKTsg
b2JqZWN0OyBvYmplY3QgPSBvYmplY3QtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKG9i
amVjdC0+aXNCUigpKSB7Ci0gICAgICAgICAgICBnX3N0cmluZ19hcHBlbmQocmVzdWx0VGV4dCwg
IlxuIik7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlbmRl
clRleHQqIHJlbmRlclRleHQ7Ci0gICAgICAgIGlmIChvYmplY3QtPmlzVGV4dCgpKQotICAgICAg
ICAgICAgcmVuZGVyVGV4dCA9IHRvUmVuZGVyVGV4dChvYmplY3QpOwotICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIC8vIExpc3QgaXRlbSdzIG1hcmtlcnMgd2lsbCBiZSB0cmVhdGVkIGluIGFu
IHNwZWNpYWwgd2F5Ci0gICAgICAgICAgICAvLyBsYXRlciBvbiB0aGlzIGZ1bmN0aW9uLCBzbyBp
Z25vcmUgdGhlbSBoZXJlLgotICAgICAgICAgICAgaWYgKG9iamVjdC0+aXNSZXBsYWNlZCgpICYm
ICFvYmplY3QtPmlzTGlzdE1hcmtlcigpKQotICAgICAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVu
ZF91bmljaGFyKHJlc3VsdFRleHQsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyKTsKLQotICAg
ICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayBjaGlsZHJlbiwgaWYgYW55LCB0byBjb25zaWRl
ciB3aGVuCi0gICAgICAgICAgICAvLyBjdXJyZW50IG9iamVjdCBpcyBub3QgYSB0ZXh0IG9iamVj
dCBidXQgc29tZSBvZiBpdHMKLSAgICAgICAgICAgIC8vIGNoaWxkcmVuIGFyZSwgaW4gb3JkZXIg
bm90IHRvIG1pc3MgdGhvc2UgcG9ydGlvbnMgb2YKLSAgICAgICAgICAgIC8vIHRleHQgYnkgbm90
IHByb3Blcmx5IGhhbmRsaW5nIHRob3NlIHNpdHVhdGlvbnMKLSAgICAgICAgICAgIGlmIChvYmpl
Y3QtPmZpcnN0Q2hpbGRTbG93KCkpIHsKLSAgICAgICAgICAgICAgICBHT3duUHRyPGNoYXI+IG9i
amVjdFRleHQodGV4dEZvclJlbmRlcmVyKG9iamVjdCkpOwotICAgICAgICAgICAgICAgIGdfc3Ry
aW5nX2FwcGVuZChyZXN1bHRUZXh0LCBvYmplY3RUZXh0LmdldCgpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5saW5lVGV4dEJv
eCogYm94ID0gcmVuZGVyVGV4dCA/IHJlbmRlclRleHQtPmZpcnN0VGV4dEJveCgpIDogMDsKLSAg
ICAgICAgd2hpbGUgKGJveCkgewotICAgICAgICAgICAgLy8gV2ViQ29yZSBpbnRyb2R1Y2VzIGxp
bmUgYnJlYWtzIGluIHRoZSB0ZXh0IHRoYXQgZG8gbm90IHJlZmxlY3QKLSAgICAgICAgICAgIC8v
IHRoZSBsYXlvdXQgeW91IHNlZSBvbiB0aGUgc2NyZWVuLCByZXBsYWNlIHRoZW0gd2l0aCBzcGFj
ZXMuCi0gICAgICAgICAgICBTdHJpbmcgdGV4dCA9IFN0cmluZyhyZW5kZXJUZXh0LT5jaGFyYWN0
ZXJzKCksIHJlbmRlclRleHQtPnRleHRMZW5ndGgoKSkucmVwbGFjZSgiXG4iLCAiICIpOwotICAg
ICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHJlc3VsdFRleHQsIHRleHQuc3Vic3RyaW5nKGJveC0+
c3RhcnQoKSwgYm94LT5lbmQoKSAtIGJveC0+c3RhcnQoKSArIDEpLnV0ZjgoKS5kYXRhKCkpOwot
Ci0gICAgICAgICAgICAvLyBOZXdsaW5lIGNoYXJzIGluIHRoZSBzb3VyY2UgcmVzdWx0IGluIHNl
cGFyYXRlIHRleHQgYm94ZXMsIHNvIGNoZWNrCi0gICAgICAgICAgICAvLyBiZWZvcmUgYWRkaW5n
IGEgbmV3bGluZSBpbiB0aGUgbGF5b3V0LiBTZWUgYnVnIDI1NDE1IGNvbW1lbnQgIzc4LgotICAg
ICAgICAgICAgLy8gSWYgdGhlIG5leHQgc2libGluZyBpcyBhIEJSLCB3ZSdsbCBhZGQgdGhlIG5l
d2xpbmUgd2hlbiB3ZSBleGFtaW5lIHRoYXQgY2hpbGQuCi0gICAgICAgICAgICBpZiAoIWJveC0+
bmV4dE9uTGluZUV4aXN0cygpICYmICEob2JqZWN0LT5uZXh0U2libGluZygpICYmIG9iamVjdC0+
bmV4dFNpYmxpbmcoKS0+aXNCUigpKSkgewotICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIHdh
cyBhICdcbicgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlCi0gICAgICAgICAgICAgICAgLy8g
Y3VycmVudCB0ZXh0IGJveCwgaXQgd291bGQgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byBhCi0gICAg
ICAgICAgICAgICAgLy8gc3BhY2UgaW4gU3RyaW5nOjpyZXBsYWNlKCksIHNvIHJlbW92ZSBpdCBm
aXJzdC4KLSAgICAgICAgICAgICAgICBpZiAocmVuZGVyVGV4dC0+Y2hhcmFjdGVycygpW2JveC0+
ZW5kKCldID09ICdcbicpCi0gICAgICAgICAgICAgICAgICAgIGdfc3RyaW5nX2VyYXNlKHJlc3Vs
dFRleHQsIHJlc3VsdFRleHQtPmxlbiAtIDEsIC0xKTsKLQotICAgICAgICAgICAgICAgIGdfc3Ry
aW5nX2FwcGVuZChyZXN1bHRUZXh0LCAiXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGJveCA9IGJveC0+bmV4dFRleHRCb3goKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIElu
c2VydCB0aGUgdGV4dCBvZiB0aGUgbWFya2VyIGZvciBsaXN0IGl0ZW0gaW4gdGhlIHJpZ2h0IHBs
YWNlLCBpZiBwcmVzZW50Ci0gICAgaWYgKHJlbmRlcmVyLT5pc0xpc3RJdGVtKCkpIHsKLSAgICAg
ICAgU3RyaW5nIG1hcmtlclRleHQgPSB0b1JlbmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2Vy
VGV4dFdpdGhTdWZmaXgoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5kaXJlY3Rp
b24oKSA9PSBMVFIpCi0gICAgICAgICAgICBnX3N0cmluZ19wcmVwZW5kKHJlc3VsdFRleHQsIG1h
cmtlclRleHQudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGdfc3Ry
aW5nX2FwcGVuZChyZXN1bHRUZXh0LCBtYXJrZXJUZXh0LnV0ZjgoKS5kYXRhKCkpOwotICAgIH0K
LQotICAgIHJldHVybiBnX3N0cmluZ19mcmVlKHJlc3VsdFRleHQsIEZBTFNFKTsKLX0KLQotc3Rh
dGljIGdjaGFyKiB0ZXh0Rm9yT2JqZWN0KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVP
YmplY3QpCi17Ci0gICAgR1N0cmluZyogc3RyID0gZ19zdHJpbmdfbmV3KDApOwotCi0gICAgLy8g
Rm9yIHRleHQgY29udHJvbHMsIHdlIGNhbiBnZXQgdGhlIHRleHQgbGluZSBieSBsaW5lLgotICAg
IGlmIChjb3JlT2JqZWN0LT5pc1RleHRDb250cm9sKCkpIHsKLSAgICAgICAgdW5zaWduZWQgdGV4
dExlbmd0aCA9IGNvcmVPYmplY3QtPnRleHRMZW5ndGgoKTsKLSAgICAgICAgaW50IGxpbmVOdW1i
ZXIgPSAwOwotICAgICAgICBQbGFpblRleHRSYW5nZSByYW5nZSA9IGNvcmVPYmplY3QtPmRvQVhS
YW5nZUZvckxpbmUobGluZU51bWJlcik7Ci0gICAgICAgIHdoaWxlIChyYW5nZS5sZW5ndGgpIHsK
LSAgICAgICAgICAgIFN0cmluZyBsaW5lVGV4dCA9IGNvcmVPYmplY3QtPmRvQVhTdHJpbmdGb3JS
YW5nZShyYW5nZSk7Ci0gICAgICAgICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCBsaW5lVGV4dC51
dGY4KCkuZGF0YSgpKTsKLQotICAgICAgICAgICAgLy8gV2hlbiBhIGxpbmUgb2YgdGV4dCB3cmFw
cyBpbiBhIHRleHQgYXJlYSwgdGhlIGZpbmFsIHNwYWNlCi0gICAgICAgICAgICAvLyBhZnRlciBl
YWNoIG5vbi1maW5hbCBsaW5lIG11c3QgYmUgcmVwbGFjZWQgd2l0aCBhIGxpbmUgYnJlYWsuCi0g
ICAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGggPCB0ZXh0TGVuZ3RoKQot
ICAgICAgICAgICAgICAgIGdfc3RyaW5nX292ZXJ3cml0ZV9sZW4oc3RyLCBzdHItPmxlbiAtIDEs
ICJcbiIsIDEpOwotCi0gICAgICAgICAgICByYW5nZSA9IGNvcmVPYmplY3QtPmRvQVhSYW5nZUZv
ckxpbmUoKytsaW5lTnVtYmVyKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoY29yZU9iamVj
dC0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpIHsKLSAgICAgICAgR093blB0cjxnY2hh
cj4gcmVuZGVyZXJUZXh0KHRleHRGb3JSZW5kZXJlcihjb3JlT2JqZWN0LT5yZW5kZXJlcigpKSk7
Ci0gICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsIHJlbmRlcmVyVGV4dC5nZXQoKSk7Ci0gICAg
fQotCi0gICAgcmV0dXJuIGdfc3RyaW5nX2ZyZWUoc3RyLCBGQUxTRSk7Ci19Ci0KIHN0YXRpYyBp
bnQgYmFzZWxpbmVQb3NpdGlvbkZvclJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlck9i
amVjdCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBiYXNlbGluZVBv
c2l0aW9uIG9yaWdpbmF0ZXMgZnJvbSBSZW5kZXJPYmplY3QuY3BwIGFuZCB3YXMKQEAgLTU4OCwx
NCArNDkxLDYgQEAgc3RhdGljIGdjaGFyKiB3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldFRleHQoQXRr
VGV4dCogdGV4dCwgZ2ludCBzdGFydE9mZnNldCwgZ2ludAogICAgICAgICAgICAgcmV0ID0gY29y
ZU9iamVjdC0+dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1v
ZGUoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlOjpUZXh0VW5kZXJFbGVtZW50TW9k
ZUluY2x1ZGVBbGxDaGlsZHJlbikpOwogICAgIH0KIAotICAgIGlmICghcmV0Lmxlbmd0aCgpKSB7
Ci0gICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBhdCBsZWFzdCB3aXRoIGFub255bW91cyBSZW5k
ZXJCbG9ja3MgKGUuZy4gYm9keSB0ZXh0IGFtb25nc3QgcGFyYWdyYXBocykKLSAgICAgICAgLy8g
SW4gc3VjaCBpbnN0YW5jZXMsIHRoZXJlIG1heSBhbHNvIGJlIGVtYmVkZGVkIG9iamVjdHMuIFRo
ZSBvYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCi0gICAgICAgIC8vIGlzIHNvbWV0aGluZyBB
VHMgd2FudCBpbmNsdWRlZCBhbmQgd2UgaGF2ZSB0byBhY2NvdW50IGZvciB0aGUgZmFjdCB0aGF0
IGl0IGlzIG11bHRpYnl0ZS4KLSAgICAgICAgR093blB0cjxjaGFyPiBvYmplY3RUZXh0KHRleHRG
b3JPYmplY3QoY29yZU9iamVjdCkpOwotICAgICAgICByZXQgPSBTdHJpbmc6OmZyb21VVEY4KG9i
amVjdFRleHQuZ2V0KCkpOwotICAgIH0KLQogICAgIC8vIFByZWZpeCBhIGl0ZW0gbnVtYmVyL2J1
bGxldCBpZiBuZWVkZWQKICAgICBpbnQgYWN0dWFsRW5kT2Zmc2V0ID0gZW5kT2Zmc2V0ID09IC0x
ID8gcmV0Lmxlbmd0aCgpIDogZW5kT2Zmc2V0OwogICAgIGlmIChjb3JlT2JqZWN0LT5yb2xlVmFs
dWUoKSA9PSBMaXN0SXRlbVJvbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9y
LmNwcAppbmRleCBiNjU1ZjI1Li5hZTU1NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
SXRlcmF0b3IuY3BwCkBAIC0yODcsNiArMjg3LDcgQEAgVGV4dEl0ZXJhdG9yOjpUZXh0SXRlcmF0
b3IoY29uc3QgUmFuZ2UqIHIsIFRleHRJdGVyYXRvckJlaGF2aW9yIGJlaGF2aW9yKQogICAgICwg
bV9oYW5kbGVkRmlyc3RMZXR0ZXIoZmFsc2UpCiAgICAgLCBtX2lnbm9yZXNTdHlsZVZpc2liaWxp
dHkoYmVoYXZpb3IgJiBUZXh0SXRlcmF0b3JJZ25vcmVzU3R5bGVWaXNpYmlsaXR5KQogICAgICwg
bV9lbWl0c09iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVycyhiZWhhdmlvciAmIFRleHRJdGVyYXRv
ckVtaXRzT2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJzKQorICAgICwgbV9pZ25vcmVzQ2hpbGRy
ZW5Gb3JSZXBsYWNlZE9iamVjdHMoYmVoYXZpb3IgJiBUZXh0SXRlcmF0b3JJZ25vcmVzQ2hpbGRy
ZW5Gb3JSZXBsYWNlZE9iamVjdHMpCiAgICAgLCBtX3N0b3BzT25Gb3JtQ29udHJvbHMoYmVoYXZp
b3IgJiBUZXh0SXRlcmF0b3JTdG9wc09uRm9ybUNvbnRyb2xzKQogICAgICwgbV9zaG91bGRTdG9w
KGZhbHNlKQogICAgICwgbV9lbWl0c0ltYWdlQWx0VGV4dChiZWhhdmlvciAmIFRleHRJdGVyYXRv
ckVtaXRzSW1hZ2VBbHRUZXh0KQpAQCAtNDA4LDkgKzQwOSwxMSBAQCB2b2lkIFRleHRJdGVyYXRv
cjo6YWR2YW5jZSgpCiAgICAgICAgICAgICBpZiAoIW1faGFuZGxlZE5vZGUpIHsKICAgICAgICAg
ICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpICYmIG1fbm9kZS0+bm9kZVR5cGUoKSA9PSBO
b2RlOjpURVhUX05PREUpIC8vIEZJWE1FOiBXaGF0IGFib3V0IENEQVRBX1NFQ1RJT05fTk9ERT8K
ICAgICAgICAgICAgICAgICAgICAgbV9oYW5kbGVkTm9kZSA9IGhhbmRsZVRleHROb2RlKCk7Ci0g
ICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNSZW5kZXJlclJlcGxhY2VkRWxlbWVudChyZW5kZXJl
cikpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNSZW5kZXJlclJlcGxhY2VkRWxlbWVudChy
ZW5kZXJlcikpIHsKICAgICAgICAgICAgICAgICAgICAgbV9oYW5kbGVkTm9kZSA9IGhhbmRsZVJl
cGxhY2VkRWxlbWVudCgpOwotICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1faWdub3Jlc0NoaWxkcmVuRm9yUmVwbGFjZWRPYmplY3RzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9oYW5kbGVkQ2hpbGRyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgICAgICBtX2hhbmRsZWROb2RlID0gaGFuZGxlTm9uVGV4dE5v
ZGUoKTsKICAgICAgICAgICAgICAgICBpZiAobV9wb3NpdGlvbk5vZGUpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oCmluZGV4IGI5
ZTgzMTAuLmYxYmFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaApAQCAt
NDMsOSArNDMsMTAgQEAgZW51bSBUZXh0SXRlcmF0b3JCZWhhdmlvciB7CiAgICAgVGV4dEl0ZXJh
dG9yRW1pdHNUZXh0c1dpdGhvdXRUcmFuc2NvZGluZyA9IDEgPDwgMiwKICAgICBUZXh0SXRlcmF0
b3JJZ25vcmVzU3R5bGVWaXNpYmlsaXR5ID0gMSA8PCAzLAogICAgIFRleHRJdGVyYXRvckVtaXRz
T2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJzID0gMSA8PCA0LAotICAgIFRleHRJdGVyYXRvckVt
aXRzT3JpZ2luYWxUZXh0ID0gMSA8PCA1LAotICAgIFRleHRJdGVyYXRvclN0b3BzT25Gb3JtQ29u
dHJvbHMgPSAxIDw8IDYsCi0gICAgVGV4dEl0ZXJhdG9yRW1pdHNJbWFnZUFsdFRleHQgPSAxIDw8
IDcsCisgICAgVGV4dEl0ZXJhdG9ySWdub3Jlc0NoaWxkcmVuRm9yUmVwbGFjZWRPYmplY3RzID0g
MSA8PCA1LAorICAgIFRleHRJdGVyYXRvckVtaXRzT3JpZ2luYWxUZXh0ID0gMSA8PCA2LAorICAg
IFRleHRJdGVyYXRvclN0b3BzT25Gb3JtQ29udHJvbHMgPSAxIDw8IDcsCisgICAgVGV4dEl0ZXJh
dG9yRW1pdHNJbWFnZUFsdFRleHQgPSAxIDw8IDgsCiB9OwogICAgIAogLy8gRklYTUU6IENhbid0
IHJlYWxseSBhbnN3ZXIgdGhpcyBxdWVzdGlvbiBjb3JyZWN0bHkgd2l0aG91dCBrbm93aW5nIHRo
ZSB3aGl0ZS1zcGFjZSBtb2RlLgpAQCAtMTg5LDYgKzE5MCw4IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lnbm9yZXNTdHlsZVZpc2liaWxpdHk7CiAgICAgLy8gVXNlZCB3aGVuIGVtaXR0aW5nIHRo
ZSBzcGVjaWFsIDB4RkZGQyBjaGFyYWN0ZXIgaXMgcmVxdWlyZWQuCiAgICAgYm9vbCBtX2VtaXRz
T2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJzOworICAgIC8vIFVzZWQgd2hlbiBjaGlsZHJlbiBm
b3IgcmVwbGFjZWQgb2JqZWN0cyBzaG91bGQgYmUgaWdub3JlZC4gVXNlZCB0b2dldGhlciB3aXRo
IG1fZW1pdHNPYmplY3RSZXBsYWNlbWVudENoYXJhY3RlcnMuCisgICAgYm9vbCBtX2lnbm9yZXND
aGlsZHJlbkZvclJlcGxhY2VkT2JqZWN0czsKICAgICAvLyBVc2VkIHdoZW4gdGhlIGl0ZXJhdGlv
biBzaG91bGQgc3RvcCBpZiBmb3JtIGNvbnRyb2xzIGFyZSByZWFjaGVkLgogICAgIGJvb2wgbV9z
dG9wc09uRm9ybUNvbnRyb2xzOwogICAgIC8vIFVzZWQgd2hlbiBtX3N0b3BzT25Gb3JtQ29udHJv
bHMgaXMgc2V0IHRvIGRldGVybWluZSBpZiB0aGUgaXRlcmF0b3Igc2hvdWxkIGtlZXAgYWR2YW5j
aW5nLgotLSAKMS43LjEwLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215500</attachid>
            <date>2013-10-30 07:28:20 -0700</date>
            <delta_ts>2013-10-30 07:29:48 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-ATK-Avoid-explicit-traversal-of-text-controls-and-th.patch</filename>
            <type>text/plain</type>
            <size>21453</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA4NDlmOWYxNzM1ZTE2ZGZiNWQxYTIwZTM4ZjBiZDk0YjJlYWYyODJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogV2VkLCAzMCBPY3QgMjAxMyAxMzoxOToyNCArMDAwMApTdWJqZWN0OiBb
UEFUQ0hdIFtBVEtdIEF2b2lkIGV4cGxpY2l0IHRyYXZlcnNhbCBvZiB0ZXh0IGNvbnRyb2xzIGFu
ZCB0aGUKIHJlbmRlciB0cmVlIGluIEF0a1RleHQgaW1wbGVtZW50YXRpb24KIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTMKCi0tLQogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrCiAuLi4vYWNj
ZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dCAgICB8ICAgIDIgKy0KIC4u
Li9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQgIHwgICAgMiAr
LQogLi4uL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQgICAgfCAg
ICAyICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAg
ICB8ICAgIDIgLQogLi4uL2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVk
LnR4dCAgfCAgICAyICstCiAuLi5wbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLWV4
cGVjdGVkLnR4dCB8ICAgIDggKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMt
ZXhwZWN0ZWQudHh0ICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDUxICsrKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgICAzNiArKysrKystCiAuLi4vYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCAgICAgICAgICB8ICAxMDUgLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCAg
ICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5o
ICAgICAgICAgICAgICB8ICAgIDIgKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25z
KCspLCAxMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVhY2JhZTQuLmVlZmE5MzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAxMy0xMC0zMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnBy
YWRhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBVEtdIEF2b2lkIGV4cGxpY2l0IHRyYXZlcnNh
bCBvZiB0ZXh0IGNvbnRyb2xzIGFuZCB0aGUgcmVuZGVyIHRyZWUgaW4gQXRrVGV4dCBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIzMTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlZCB0ZXN0IGV4cGVjdGF0aW9ucyB0byBwcm9wZXJseSByZWZsZWN0IHRoZSBuZXcgcmVh
bGl0eSB3aGVuIGl0CisgICAgICAgIGNvbWVzIHRvIGV4cG9zaW5nIHJlcGxhY2VkIG9iamVjdHMg
YW5kIGFueW1vdXMgYmxvY2tzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgdG8KKyAgICAgICAgcHJp
bnQgPFxuPiBleHBsaWNpdGx5IGZvciB0aGUgdHdvIGluc3RhbmNlcyBvZiA8QlI+IHRoYXQgYXJl
IHByZXNlbnQgaW4gdGhlCisgICAgICAgIHRlc3QsIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBhcyBw
YXJ0IG9mIGFuIGFub255bW91cyBibG9jay4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvYWNjZXNz
aWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vZWZsLXdrMi9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQu
dHh0OiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9hY2Nlc3NpYmlsaXR5L2RlbGV0
aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dDogVXBkYXRlZAorICAgICAg
ICBleHBlY3RhdGlvbnMgbm90IHRvIGV4cGVjdCB0aGUgdGV4dCBvZiBhIGJ1dHRvbiB0byBiZSBz
aG93bi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJh
bWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJsb2Nr
cy1leHBlY3RlZC50eHQ6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6IFJlbW92ZWQgcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLmh0
bWwKKyAgICAgICAgZnJvbSB0aGUgbGlzdCBvZiBleHBlY3RlZCBmYWlsdXJlcywgYXMgaXQncyBu
b3cgYmVpbmcgcHJvcGVybHkgZXhwb3NlZC4KKwogMjAxMy0xMC0yOCAgTWFyaW8gU2FuY2hleiBQ
cmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIEV4cG9zZSB0
aXRsZSBhbmQgYWx0ZXJuYXRpdmUgdGV4dCBmb3IgbGlua3MgaW4gaW1hZ2UgbWFwcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdp
dGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9hY2Nl
c3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDMyMzg2NWUuLjll
NThiMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvYWNjZXNzaWJp
bGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwtd2syL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQK
QEAgLTg0LDcgKzg0LDcgQEAgQVhQb3NpdGlvbjogeyAwLjAwMDAwMCwgMC4wMDAwMDAgfQogQVhT
aXplOiB7IDc2OS4wMDAwMDAsIDM2LjAwMDAwMCB9CiBBWFRpdGxlOiAKIEFYRGVzY3JpcHRpb246
IAotQVhWYWx1ZTogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBWFZhbHVl
OiA8XG4+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPFxuPgogQVhGb2N1c2Fi
bGU6IDAKIEFYRm9jdXNlZDogMAogQVhTZWxlY3RhYmxlOiAwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMt
YXhjYWNoZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJp
bGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQKaW5kZXgg
MGZlZTIzNS4uMGM4NDZkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2Fj
Y2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlm
cmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMTcsNyArMTcsNyBAQCBBWFJv
bGU6IEFYU2Nyb2xsQXJlYQogICAgICAgICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4K
ICAgICAgICAgICAgIEFYUm9sZTogQVhTY3JvbGxBcmVhIAogICAgICAgICAgICAgICAgIEFYUm9s
ZTogQVhXZWJBcmVhIAotICAgICAgICAgICAgICAgICAgICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1
ZTogPG9iaj5DbGljayBtZQorICAgICAgICAgICAgICAgICAgICBBWFJvbGU6IEFYR3JvdXAgQVhW
YWx1ZTogPG9iaj4KICAgICAgICAgICAgICAgICAgICAgICAgIEFYUm9sZTogQVhCdXR0b24gCiAg
ICAgICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogQWZ0ZXIKICAgICAgICAgQVhSb2xl
OiBBWFBhcmFncmFwaCBBWFZhbHVlOiBFbmQgb2YgdGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1
bGVzLWV4cGVjdGVkLnR4dAppbmRleCA4NGM1MDRmLi4xOTZhZmEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS90YWJs
ZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dApAQCAtODQsNyArODQsNyBAQCBBWFBvc2l0aW9uOiB7
IDguMDAwMDAwLCAxMTYuMDAwMDAwIH0KIEFYU2l6ZTogeyA3NjUuMDAwMDAwLCAzNi4wMDAwMDAg
fQogQVhUaXRsZTogCiBBWERlc2NyaXB0aW9uOiAKLUFYVmFsdWU6IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorQVhWYWx1ZTogPFxuPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLTxcbj4KIEFYRm9jdXNhYmxlOiAwCiBBWEZvY3VzZWQ6IDAKIEFYU2VsZWN0
YWJsZTogMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBl
ODE4ODYwLi5jYWEwY2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTMyMSw4ICsxMzIxLDYgQEAgd2Via2l0Lm9yZy9iLzExNDI1MSBhY2Nlc3NpYmls
aXR5L3N2Zy1ncm91cC1lbGVtZW50LXdpdGgtdGl0bGUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzExNDI1OSBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXNsaWRlci1yZXF1
aXJlZC1hdHRyaWJ1dGVzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTQyNTkgcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hh
bmdlZC5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMTg1NzcgcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLmh0bWwg
WyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzExNDYxMiBlZGl0aW5nL3N0eWxlL2Jsb2NrLXN0
eWxlLTAwNS5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMTUwMjUgZmFzdC9ldmVu
dHMvY29uc3RydWN0b3JzL21vdXNlLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgWyBGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RlbGV0
aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hl
LWV4cGVjdGVkLnR4dAppbmRleCAwZmVlMjM1Li4wYzg0NmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMt
YXhjYWNoZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0CkBA
IC0xNyw3ICsxNyw3IEBAIEFYUm9sZTogQVhTY3JvbGxBcmVhCiAgICAgICAgIEFYUm9sZTogQVhH
cm91cCBBWFZhbHVlOiA8b2JqPgogICAgICAgICAgICAgQVhSb2xlOiBBWFNjcm9sbEFyZWEgCiAg
ICAgICAgICAgICAgICAgQVhSb2xlOiBBWFdlYkFyZWEgCi0gICAgICAgICAgICAgICAgICAgIEFY
Um9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPkNsaWNrIG1lCisgICAgICAgICAgICAgICAgICAg
IEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPgogICAgICAgICAgICAgICAgICAgICAgICAg
QVhSb2xlOiBBWEJ1dHRvbiAKICAgICAgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBB
ZnRlcgogICAgICAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFYVmFsdWU6IEVuZCBvZiB0ZXN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9yZXBsYWNl
ZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMt
YmxvY2tzLWV4cGVjdGVkLnR4dAppbmRleCA4Y2FlNTgwLi4wZWZmMmQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9yZXBsYWNlZC1vYmplY3RzLWlu
LWFub255bW91cy1ibG9ja3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJsb2Nrcy1l
eHBlY3RlZC50eHQKQEAgLTEyLDE2ICsxMiwxNiBAQCBidXR0b24KIEVuZCBvZiB0ZXN0CiBBWFJv
bGU6IEFYV2ViQXJlYSAKICAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFYVmFsdWU6IFBhcmFncmFw
aAotICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPmJ1dHRvbjxcbj4KKyAgICBBWFJv
bGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4KICAgICAgICAgQVhSb2xlOiBBWEJ1dHRvbiAKICAg
ICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4KICAgICAgICAgQVhSb2xlOiBBWFNjcm9s
bEFyZWEgCiAgICAgICAgICAgICBBWFJvbGU6IEFYV2ViQXJlYSAKLSAgICBBWFJvbGU6IEFYR3Jv
dXAgQVhWYWx1ZTogPG9iaj50ZXh0IGFyZWE8XG4+CisgICAgQVhSb2xlOiBBWEdyb3VwIEFYVmFs
dWU6IDxvYmo+CiAgICAgICAgIEFYUm9sZTogQVhUZXh0RmllbGQgQVhWYWx1ZTogdGV4dCBhcmVh
Ci0gICAgQVhSb2xlOiBBWERpdiBBWFZhbHVlOiBEaXY8XG4+PG9iaj5idXR0b24KKyAgICBBWFJv
bGU6IEFYRGl2IEFYVmFsdWU6IERpdjxcbj48b2JqPgogICAgICAgICBBWFJvbGU6IEFYQnV0dG9u
IAotICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFsdWU6IEhlYWRpbmc8XG4+PG9iaj5idXR0b248
XG4+PG9iaj4KKyAgICBBWFJvbGU6IEFYSGVhZGluZyBBWFZhbHVlOiBIZWFkaW5nPFxuPjxvYmo+
PFxuPjxvYmo+CiAgICAgICAgIEFYUm9sZTogQVhCdXR0b24gCiAgICAgICAgIEFYUm9sZTogQVhJ
bWFnZSAKICAgICBBWFJvbGU6IEFYRGl2IEFYVmFsdWU6IEVuZCBvZiB0ZXN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3Rh
YmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDEwNjdlZGEuLmExMzkxZmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgt
cnVsZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CkBAIC04NCw3ICs4NCw3IEBAIEFY
UG9zaXRpb246IHsgOC4wMDAwMDAsIDExMS4wMDAwMDAgfQogQVhTaXplOiB7IDc2OS4wMDAwMDAs
IDM0LjAwMDAwMCB9CiBBWFRpdGxlOiAKIEFYRGVzY3JpcHRpb246IAotQVhWYWx1ZTogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBWFZhbHVlOiA8XG4+LS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPFxuPgogQVhGb2N1c2FibGU6IDAKIEFYRm9jdXNlZDog
MAogQVhTZWxlY3RhYmxlOiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI4NWQxZS4uZWZkMWQ1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTEwLTMwICBNYXJpbyBTYW5jaGV6IFByYWRhICA8
bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10gQXZvaWQgZXhwbGljaXQg
dHJhdmVyc2FsIG9mIHRleHQgY29udHJvbHMgYW5kIHRoZSByZW5kZXIgdHJlZSBpbiBBdGtUZXh0
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjMxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgZnVuY3Rpb25zIGZyb20gdGhlIEF0a1RleHQgaW1wbGVtZW50YXRpb24g
dGhhdCBtYW51YWxseQorICAgICAgICB3YWxrIHRoZSByZW5kZXIgdHJlZSB0byBjb21wb3NlIHRo
ZSB0ZXh0IGZvciBhIGV4cG9zZWQgb2JqZWN0cyBpbgorICAgICAgICBjZXJ0YWluIGNhc2VzIChl
LmcuIGFub255bW91cyBibG9ja3MsIHRleHQgY29udHJvbHMpLgorCisgICAgICAgIFRoZSByZWFz
b24gZm9yIHRoaXMgY2hhbmdlIGlzIHRoYXQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24KKyAg
ICAgICAgZm9sbG93cyBhbiBlcnJvci1wcm9uZSBhcHByb2FjaCwgc2luY2UgYnkgZG9pbmcgdGhp
bmdzIGxpa2UKKyAgICAgICAgbWFudWFsbHkgd2Fsa2luZyB0aGUgcmVuZGVyIHRyZWUgZnJvbSBo
ZXJlIHdlIGFyZSBub3QgcHJvcGVybHkKKyAgICAgICAgY29uc2lkZXJpbmcgYWxsIHRoZSBwb3Nz
aWJsZSBzY2VuYXJpb3MgdGhhdCBtaWdodCBoYXBwZW4gd2hlbgorICAgICAgICB0cmF2ZXJzaW5n
IHRleHQuIFRoaXMsIGhvd2V2ZXIsIGlzIGEgdGFzayB0aGF0IGlzIGJldHRlciBzdWl0ZWQKKyAg
ICAgICAgZm9yIHRoZSBUZXh0SXRlcmF0b3IsIHdoaWNoIGlzIGFscmVhZHkgd3JpdHRlbiB0byBj
b25zaWRlciBhbGwKKyAgICAgICAgdGhvc2UgY2FzZXMgYW5kIHRvIGVtaXQgdGhlIHByb3BlciBj
aGFyYWN0ZXIgaW4gZXZlcnkgc2luZ2xlCisgICAgICAgIHNpdHVhdGlvbjogdGV4dCBub2Rlcywg
cmVwbGFjZWQgb2JqZWN0cyBhbmQgc28gb24uCisKKyAgICAgICAgU28sIGJ5IHJlbW92aW5nIGFs
bCB0aGF0IHRvbyBzcGVjaWZpYyBjb2RlICh0ZXh0Rm9yT2JqZWN0KCkgYW5kCisgICAgICAgIHRl
eHRGb3JSZW5kZXJlcigpIG1haW5seSkgZnJvbSBXZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4
dC5jcHAKKyAgICAgICAgYW5kIHJlbHlpbmcgaW4gQWNjZXNzaWJpbGl0eU9iamVjdDo6dGV4dFVu
ZGVyRWxlbWVudCgpLCB3aGljaCBpdAorICAgICAgICBlbmRzIHVwIHVzaW5nIHRoZSBUZXh0SXRl
cmF0b3IgZm9yIGNlcnRhaW4gY2FzZXMsIHdlIGhhdmUgYSBtdWNoCisgICAgICAgIGJldHRlciBh
bmQgcm9idXN0IG1ldGhvZCBvZiByZXRyaWV2aW5nIHRoZSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCBh
bgorICAgICAgICBpbnN0YW5jZSBvZiBBdGtPYmplY3QgaW1wbGVtZW50aW5nIHRoZSBBdGtUZXh0
IGludGVyZmFjZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VUZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0VGV4
dCk6IFJlbW92ZWQgY2FsbCB0byB0ZXh0Rm9yT2JqZWN0KCksIG5vdyB0aGF0CisgICAgICAgIHdl
IGhhdmUganVzdCByZW1vdmVkIHRoYXQgZnVuY3Rpb24sIHRvZ2V0aGVyIHdpdGggdGV4dEZvclJl
bmRlcmVyKCkuCisKKyAgICAgICAgTWFrZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0
VW5kZXJFbGVtZW50KCkgYWJsZSB0byBkZWFsIHdpdGgKKyAgICAgICAgYW5vbnltb3VzIGJsb2Nr
cyBkaXJlY3RseSwgYnkgY3JlYXRpbmcgYSByYW5nZSBiYXNlZCBpbiB0aGUgYm91bmRhcmllcwor
ICAgICAgICBkZWZpbmVkIGJ5IHRoZSBmaXJzdCBhbmQgbGFzdCBjaGlsZCByZW5kZXJlcnMgZm9y
IHRoYXQgYmxvY2suIFRoaXMgd2lsbAorICAgICAgICBtYWtlIHBvc3NpYmxlIHRvIHRyZWF0IGFu
IGFub255bW91cyBibG9jayBhcyBhIHdob2xlIGluc3RlYWQgb2YgaGF2aW5nCisgICAgICAgIHRv
IHJlbHkgaW4gdGhlIGNvbmNhdGVuYXRpb24gb2YgZWFjaCBvZiBpdHMgY2hpbGRyZW4sIGFzIGl0
IGRvZXMgbm93LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnRleHRVbmRlckVsZW1lbnQpOiBBZGRlZCBhIG5ldyBjb2RlCisgICAgICAgIHBhdGggdG8gZGVh
bCB3aXRoIGFub255bW91cyBibG9ja3MgZm9yIHRleHQgcmVuZGVyZXJzLCBvciB3aGVuIGluY2x1
ZGluZworICAgICAgICBhbGwgdGhlIGNoaWxkcmVuIGlzIGV4cGxpY2l0bHkgcmVxdWVzdGVkLgor
CisgICAgICAgIE1vZGlmaWVkIFRleHRJdGVyYXRvciBzbyB0ZXh0IGZvciBjaGlsZHJlbiBvZiBy
ZXBsYWNlZCBvYmplY3RzIGFyZQorICAgICAgICBpZ25vcmVkIGlmIHdlIGFyZSBlbW1pdGluZyB0
aGUgc3BlY2lhbCBjaGFyYWN0ZXIgZm9yIHRob3NlIG9iamVjdHMuCisKKyAgICAgICAgKiBlZGl0
aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6Omhh
bmRsZVJlcGxhY2VkRWxlbWVudCk6IE1ha2Ugc3VyZSBubyBjaGlsZHJlbiBhcmUKKyAgICAgICAg
aGFuZGxlZCBhIHJlcGxhY2VkIG9iamVjdCBpZiBtX2VtaXRzT2JqZWN0UmVwbGFjZW1lbnRDaGFy
YWN0ZXJzIGlzIHNldC4KKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6IFVwZGF0
ZWQgbV9lbWl0c09iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVycworICAgICAgICBkZXNjcmlwdGlv
biB0byByZWZsZWN0IHRoZSBuZXcgYmVoYXZpb3IuCisKIDIwMTMtMTAtMjggIE1hcmlvIFNhbmNo
ZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBFeHBv
c2UgdGl0bGUgYW5kIGFsdGVybmF0aXZlIHRleHQgZm9yIGxpbmtzIGluIGltYWdlIG1hcHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCmluZGV4IDVjMDQ0YTIuLmNlMTc0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcApAQCAtNjUyLDEzICs2NTIsMzkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnQKICAgICBp
ZiAobV9yZW5kZXJlci0+aXNUZXh0KCkgfHwgbW9kZS5jaGlsZHJlbkluY2x1c2lvbiA9PSBBY2Nl
c3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGU6OlRleHRVbmRlckVsZW1lbnRNb2RlSW5jbHVk
ZUFsbENoaWxkcmVuKSB7CiAgICAgICAgIC8vIElmIHBvc3NpYmxlLCB1c2UgYSB0ZXh0IGl0ZXJh
dG9yIHRvIGdldCB0aGUgdGV4dCwgc28gdGhhdCB3aGl0ZXNwYWNlCiAgICAgICAgIC8vIGlzIGhh
bmRsZWQgY29uc2lzdGVudGx5LgotICAgICAgICBpZiAoTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUo
KSkgewotICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJh
bWUoKSkgeworICAgICAgICBEb2N1bWVudCogbm9kZURvY3VtZW50ID0gMDsKKyAgICAgICAgUmVm
UHRyPFJhbmdlPiB0ZXh0UmFuZ2U7CisgICAgICAgIGlmIChtX3JlbmRlcmVyLT5ub2RlKCkpIHsK
KyAgICAgICAgICAgIGlmIChOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpKSB7CisgICAgICAgICAg
ICAgICAgbm9kZURvY3VtZW50ID0gJm5vZGUtPmRvY3VtZW50KCk7CisgICAgICAgICAgICAgICAg
dGV4dFJhbmdlID0gcmFuZ2VPZkNvbnRlbnRzKCpub2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZvciBhbm9ueW1vdXMgYmxvY2tzLCB3ZSB3b3Jr
IGFyb3VuZCBub3QgaGF2aW5nIGEgZGlyZWN0IG5vZGUgdG8gY3JlYXRlIGEgcmFuZ2UgZnJvbQor
ICAgICAgICAgICAgLy8gZGVmaW5pbmcgb25lIGJhc2VkIGluIHRoZSB0d28gZXh0ZXJuYWwgcG9z
aXRpb25zIGRlZmluaW5nIHRoZSBib3VuZGFyaWVzIG9mIHRoZSBzdWJ0cmVlLgorICAgICAgICAg
ICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkUmVuZGVyZXIgPSBtX3JlbmRlcmVyLT5maXJzdENo
aWxkU2xvdygpOworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGRSZW5kZXJlciA9
IG1fcmVuZGVyZXItPmxhc3RDaGlsZFNsb3coKTsKKyAgICAgICAgICAgIGlmIChmaXJzdENoaWxk
UmVuZGVyZXIgJiYgbGFzdENoaWxkUmVuZGVyZXIpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
Zmlyc3RDaGlsZFJlbmRlcmVyLT5ub2RlKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChsYXN0
Q2hpbGRSZW5kZXJlci0+bm9kZSgpKTsKKworICAgICAgICAgICAgICAgIC8vIFdlIGRlZmluZSB0
aGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMgZm9yIHRoZSByYW5nZSBhcyB0aGUgb25lcyByaWdo
dCBiZWZvcmUgYW5kIGFmdGVyCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGFuZCB0aGUg
bGFzdCBub2RlcyBpbiB0aGUgRE9NIHRyZWUgdGhhdCBpcyB3cmFwcGVkIGluc2lkZSB0aGUgYW5v
bnltb3VzIGJsb2NrLgorICAgICAgICAgICAgICAgIE5vZGUqIGZpcnN0Tm9kZUluQmxvY2sgPSBm
aXJzdENoaWxkUmVuZGVyZXItPm5vZGUoKTsKKyAgICAgICAgICAgICAgICBQb3NpdGlvbiBzdGFy
dFBvc2l0aW9uID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUoZmlyc3ROb2RlSW5CbG9jayk7
CisgICAgICAgICAgICAgICAgUG9zaXRpb24gZW5kUG9zaXRpb24gPSBwb3NpdGlvbkluUGFyZW50
QWZ0ZXJOb2RlKGxhc3RDaGlsZFJlbmRlcmVyLT5ub2RlKCkpOworCisgICAgICAgICAgICAgICAg
bm9kZURvY3VtZW50ID0gJmZpcnN0Tm9kZUluQmxvY2stPmRvY3VtZW50KCk7CisgICAgICAgICAg
ICAgICAgdGV4dFJhbmdlID0gUmFuZ2U6OmNyZWF0ZSgqbm9kZURvY3VtZW50LCBzdGFydFBvc2l0
aW9uLCBlbmRQb3NpdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBp
ZiAobm9kZURvY3VtZW50ICYmIHRleHRSYW5nZSkgeworICAgICAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IG5vZGVEb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgICAgIC8vIGNhdGNo
IHN0YWxlIFdlYkNvcmVBWE9iamVjdCAoc2VlIDxyZGFyOi8vcHJvYmxlbS8zOTYwMTk2PikKLSAg
ICAgICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgIT0gJm5vZGUtPmRvY3VtZW50KCkp
CisgICAgICAgICAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICE9IG5vZGVEb2N1bWVudCkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHBsYWluVGV4dChyYW5nZU9mQ29udGVudHMoKm5vZGUpLmdldCgpLCB0ZXh0SXRlcmF0
b3JCZWhhdmlvckZvclRleHRSYW5nZSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcGxhaW5U
ZXh0KHRleHRSYW5nZS5nZXQoKSwgdGV4dEl0ZXJhdG9yQmVoYXZpb3JGb3JUZXh0UmFuZ2UoKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZh
Y2VUZXh0LmNwcAppbmRleCBhNzcyYWUwLi5iMTQzOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUlu
dGVyZmFjZVRleHQuY3BwCkBAIC02OSwxMDMgKzY5LDYgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlP
YmplY3QqIGNvcmUoQXRrVGV4dCogdGV4dCkKICAgICByZXR1cm4gd2Via2l0QWNjZXNzaWJsZUdl
dEFjY2Vzc2liaWxpdHlPYmplY3QoV0VCS0lUX0FDQ0VTU0lCTEUodGV4dCkpOwogfQogCi1zdGF0
aWMgZ2NoYXIqIHRleHRGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQotewotICAg
IEdTdHJpbmcqIHJlc3VsdFRleHQgPSBnX3N0cmluZ19uZXcoMCk7Ci0KLSAgICBpZiAoIXJlbmRl
cmVyKQotICAgICAgICByZXR1cm4gZ19zdHJpbmdfZnJlZShyZXN1bHRUZXh0LCBGQUxTRSk7Ci0K
LSAgICAvLyBGb3IgUmVuZGVyQmxvY2tzLCBwaWVjZSB0b2dldGhlciB0aGUgdGV4dCBmcm9tIHRo
ZSBSZW5kZXJUZXh0IG9iamVjdHMgdGhleSBjb250YWluLgotICAgIGZvciAoUmVuZGVyT2JqZWN0
KiBvYmplY3QgPSByZW5kZXJlci0+Zmlyc3RDaGlsZFNsb3coKTsgb2JqZWN0OyBvYmplY3QgPSBv
YmplY3QtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKG9iamVjdC0+aXNCUigpKSB7Ci0g
ICAgICAgICAgICBnX3N0cmluZ19hcHBlbmQocmVzdWx0VGV4dCwgIlxuIik7Ci0gICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlbmRlclRleHQqIHJlbmRlclRleHQ7
Ci0gICAgICAgIGlmIChvYmplY3QtPmlzVGV4dCgpKQotICAgICAgICAgICAgcmVuZGVyVGV4dCA9
IHRvUmVuZGVyVGV4dChvYmplY3QpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIExp
c3QgaXRlbSdzIG1hcmtlcnMgd2lsbCBiZSB0cmVhdGVkIGluIGFuIHNwZWNpYWwgd2F5Ci0gICAg
ICAgICAgICAvLyBsYXRlciBvbiB0aGlzIGZ1bmN0aW9uLCBzbyBpZ25vcmUgdGhlbSBoZXJlLgot
ICAgICAgICAgICAgaWYgKG9iamVjdC0+aXNSZXBsYWNlZCgpICYmICFvYmplY3QtPmlzTGlzdE1h
cmtlcigpKQotICAgICAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF91bmljaGFyKHJlc3VsdFRl
eHQsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyKTsKLQotICAgICAgICAgICAgLy8gV2UgbmVl
ZCB0byBjaGVjayBjaGlsZHJlbiwgaWYgYW55LCB0byBjb25zaWRlciB3aGVuCi0gICAgICAgICAg
ICAvLyBjdXJyZW50IG9iamVjdCBpcyBub3QgYSB0ZXh0IG9iamVjdCBidXQgc29tZSBvZiBpdHMK
LSAgICAgICAgICAgIC8vIGNoaWxkcmVuIGFyZSwgaW4gb3JkZXIgbm90IHRvIG1pc3MgdGhvc2Ug
cG9ydGlvbnMgb2YKLSAgICAgICAgICAgIC8vIHRleHQgYnkgbm90IHByb3Blcmx5IGhhbmRsaW5n
IHRob3NlIHNpdHVhdGlvbnMKLSAgICAgICAgICAgIGlmIChvYmplY3QtPmZpcnN0Q2hpbGRTbG93
KCkpIHsKLSAgICAgICAgICAgICAgICBHT3duUHRyPGNoYXI+IG9iamVjdFRleHQodGV4dEZvclJl
bmRlcmVyKG9iamVjdCkpOwotICAgICAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChyZXN1bHRU
ZXh0LCBvYmplY3RUZXh0LmdldCgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5saW5lVGV4dEJveCogYm94ID0gcmVuZGVyVGV4
dCA/IHJlbmRlclRleHQtPmZpcnN0VGV4dEJveCgpIDogMDsKLSAgICAgICAgd2hpbGUgKGJveCkg
ewotICAgICAgICAgICAgLy8gV2ViQ29yZSBpbnRyb2R1Y2VzIGxpbmUgYnJlYWtzIGluIHRoZSB0
ZXh0IHRoYXQgZG8gbm90IHJlZmxlY3QKLSAgICAgICAgICAgIC8vIHRoZSBsYXlvdXQgeW91IHNl
ZSBvbiB0aGUgc2NyZWVuLCByZXBsYWNlIHRoZW0gd2l0aCBzcGFjZXMuCi0gICAgICAgICAgICBT
dHJpbmcgdGV4dCA9IFN0cmluZyhyZW5kZXJUZXh0LT5jaGFyYWN0ZXJzKCksIHJlbmRlclRleHQt
PnRleHRMZW5ndGgoKSkucmVwbGFjZSgiXG4iLCAiICIpOwotICAgICAgICAgICAgZ19zdHJpbmdf
YXBwZW5kKHJlc3VsdFRleHQsIHRleHQuc3Vic3RyaW5nKGJveC0+c3RhcnQoKSwgYm94LT5lbmQo
KSAtIGJveC0+c3RhcnQoKSArIDEpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgICAgICAgICAvLyBO
ZXdsaW5lIGNoYXJzIGluIHRoZSBzb3VyY2UgcmVzdWx0IGluIHNlcGFyYXRlIHRleHQgYm94ZXMs
IHNvIGNoZWNrCi0gICAgICAgICAgICAvLyBiZWZvcmUgYWRkaW5nIGEgbmV3bGluZSBpbiB0aGUg
bGF5b3V0LiBTZWUgYnVnIDI1NDE1IGNvbW1lbnQgIzc4LgotICAgICAgICAgICAgLy8gSWYgdGhl
IG5leHQgc2libGluZyBpcyBhIEJSLCB3ZSdsbCBhZGQgdGhlIG5ld2xpbmUgd2hlbiB3ZSBleGFt
aW5lIHRoYXQgY2hpbGQuCi0gICAgICAgICAgICBpZiAoIWJveC0+bmV4dE9uTGluZUV4aXN0cygp
ICYmICEob2JqZWN0LT5uZXh0U2libGluZygpICYmIG9iamVjdC0+bmV4dFNpYmxpbmcoKS0+aXNC
UigpKSkgewotICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhICdcbicgaW4gdGhlIGxh
c3QgcG9zaXRpb24gb2YgdGhlCi0gICAgICAgICAgICAgICAgLy8gY3VycmVudCB0ZXh0IGJveCwg
aXQgd291bGQgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byBhCi0gICAgICAgICAgICAgICAgLy8gc3Bh
Y2UgaW4gU3RyaW5nOjpyZXBsYWNlKCksIHNvIHJlbW92ZSBpdCBmaXJzdC4KLSAgICAgICAgICAg
ICAgICBpZiAocmVuZGVyVGV4dC0+Y2hhcmFjdGVycygpW2JveC0+ZW5kKCldID09ICdcbicpCi0g
ICAgICAgICAgICAgICAgICAgIGdfc3RyaW5nX2VyYXNlKHJlc3VsdFRleHQsIHJlc3VsdFRleHQt
PmxlbiAtIDEsIC0xKTsKLQotICAgICAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChyZXN1bHRU
ZXh0LCAiXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJveCA9IGJveC0+bmV4dFRl
eHRCb3goKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIEluc2VydCB0aGUgdGV4dCBvZiB0
aGUgbWFya2VyIGZvciBsaXN0IGl0ZW0gaW4gdGhlIHJpZ2h0IHBsYWNlLCBpZiBwcmVzZW50Ci0g
ICAgaWYgKHJlbmRlcmVyLT5pc0xpc3RJdGVtKCkpIHsKLSAgICAgICAgU3RyaW5nIG1hcmtlclRl
eHQgPSB0b1JlbmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKTsK
LSAgICAgICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIpCi0gICAg
ICAgICAgICBnX3N0cmluZ19wcmVwZW5kKHJlc3VsdFRleHQsIG1hcmtlclRleHQudXRmOCgpLmRh
dGEoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChyZXN1bHRU
ZXh0LCBtYXJrZXJUZXh0LnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLQotICAgIHJldHVybiBnX3N0
cmluZ19mcmVlKHJlc3VsdFRleHQsIEZBTFNFKTsKLX0KLQotc3RhdGljIGdjaGFyKiB0ZXh0Rm9y
T2JqZWN0KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QpCi17Ci0gICAgR1N0
cmluZyogc3RyID0gZ19zdHJpbmdfbmV3KDApOwotCi0gICAgLy8gRm9yIHRleHQgY29udHJvbHMs
IHdlIGNhbiBnZXQgdGhlIHRleHQgbGluZSBieSBsaW5lLgotICAgIGlmIChjb3JlT2JqZWN0LT5p
c1RleHRDb250cm9sKCkpIHsKLSAgICAgICAgdW5zaWduZWQgdGV4dExlbmd0aCA9IGNvcmVPYmpl
Y3QtPnRleHRMZW5ndGgoKTsKLSAgICAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwotICAgICAgICBQ
bGFpblRleHRSYW5nZSByYW5nZSA9IGNvcmVPYmplY3QtPmRvQVhSYW5nZUZvckxpbmUobGluZU51
bWJlcik7Ci0gICAgICAgIHdoaWxlIChyYW5nZS5sZW5ndGgpIHsKLSAgICAgICAgICAgIFN0cmlu
ZyBsaW5lVGV4dCA9IGNvcmVPYmplY3QtPmRvQVhTdHJpbmdGb3JSYW5nZShyYW5nZSk7Ci0gICAg
ICAgICAgICBnX3N0cmluZ19hcHBlbmQoc3RyLCBsaW5lVGV4dC51dGY4KCkuZGF0YSgpKTsKLQot
ICAgICAgICAgICAgLy8gV2hlbiBhIGxpbmUgb2YgdGV4dCB3cmFwcyBpbiBhIHRleHQgYXJlYSwg
dGhlIGZpbmFsIHNwYWNlCi0gICAgICAgICAgICAvLyBhZnRlciBlYWNoIG5vbi1maW5hbCBsaW5l
IG11c3QgYmUgcmVwbGFjZWQgd2l0aCBhIGxpbmUgYnJlYWsuCi0gICAgICAgICAgICBpZiAocmFu
Z2Uuc3RhcnQgKyByYW5nZS5sZW5ndGggPCB0ZXh0TGVuZ3RoKQotICAgICAgICAgICAgICAgIGdf
c3RyaW5nX292ZXJ3cml0ZV9sZW4oc3RyLCBzdHItPmxlbiAtIDEsICJcbiIsIDEpOwotCi0gICAg
ICAgICAgICByYW5nZSA9IGNvcmVPYmplY3QtPmRvQVhSYW5nZUZvckxpbmUoKytsaW5lTnVtYmVy
KTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoY29yZU9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KCkpIHsKLSAgICAgICAgR093blB0cjxnY2hhcj4gcmVuZGVyZXJUZXh0KHRl
eHRGb3JSZW5kZXJlcihjb3JlT2JqZWN0LT5yZW5kZXJlcigpKSk7Ci0gICAgICAgIGdfc3RyaW5n
X2FwcGVuZChzdHIsIHJlbmRlcmVyVGV4dC5nZXQoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGdf
c3RyaW5nX2ZyZWUoc3RyLCBGQUxTRSk7Ci19Ci0KIHN0YXRpYyBpbnQgYmFzZWxpbmVQb3NpdGlv
bkZvclJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCkKIHsKICAgICAvLyBG
SVhNRTogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBiYXNlbGluZVBvc2l0aW9uIG9yaWdpbmF0ZXMg
ZnJvbSBSZW5kZXJPYmplY3QuY3BwIGFuZCB3YXMKQEAgLTU4OCwxNCArNDkxLDYgQEAgc3RhdGlj
IGdjaGFyKiB3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldFRleHQoQXRrVGV4dCogdGV4dCwgZ2ludCBz
dGFydE9mZnNldCwgZ2ludAogICAgICAgICAgICAgcmV0ID0gY29yZU9iamVjdC0+dGV4dFVuZGVy
RWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUoQWNjZXNzaWJpbGl0eVRl
eHRVbmRlckVsZW1lbnRNb2RlOjpUZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1ZGVBbGxDaGlsZHJl
bikpOwogICAgIH0KIAotICAgIGlmICghcmV0Lmxlbmd0aCgpKSB7Ci0gICAgICAgIC8vIFRoaXMg
Y2FuIGhhcHBlbiBhdCBsZWFzdCB3aXRoIGFub255bW91cyBSZW5kZXJCbG9ja3MgKGUuZy4gYm9k
eSB0ZXh0IGFtb25nc3QgcGFyYWdyYXBocykKLSAgICAgICAgLy8gSW4gc3VjaCBpbnN0YW5jZXMs
IHRoZXJlIG1heSBhbHNvIGJlIGVtYmVkZGVkIG9iamVjdHMuIFRoZSBvYmplY3QgcmVwbGFjZW1l
bnQgY2hhcmFjdGVyCi0gICAgICAgIC8vIGlzIHNvbWV0aGluZyBBVHMgd2FudCBpbmNsdWRlZCBh
bmQgd2UgaGF2ZSB0byBhY2NvdW50IGZvciB0aGUgZmFjdCB0aGF0IGl0IGlzIG11bHRpYnl0ZS4K
LSAgICAgICAgR093blB0cjxjaGFyPiBvYmplY3RUZXh0KHRleHRGb3JPYmplY3QoY29yZU9iamVj
dCkpOwotICAgICAgICByZXQgPSBTdHJpbmc6OmZyb21VVEY4KG9iamVjdFRleHQuZ2V0KCkpOwot
ICAgIH0KLQogICAgIC8vIFByZWZpeCBhIGl0ZW0gbnVtYmVyL2J1bGxldCBpZiBuZWVkZWQKICAg
ICBpbnQgYWN0dWFsRW5kT2Zmc2V0ID0gZW5kT2Zmc2V0ID09IC0xID8gcmV0Lmxlbmd0aCgpIDog
ZW5kT2Zmc2V0OwogICAgIGlmIChjb3JlT2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBMaXN0SXRlbVJv
bGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCBkNGQ4OWVk
Li41OGI1NWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC03
MjMsNiArNzIzLDkgQEAgYm9vbCBUZXh0SXRlcmF0b3I6OmhhbmRsZVJlcGxhY2VkRWxlbWVudCgp
CiAKICAgICBpZiAobV9lbWl0c09iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVycyAmJiByZW5kZXJl
ciAmJiByZW5kZXJlci0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIGVtaXRDaGFyYWN0ZXIob2Jq
ZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIG1fbm9kZS0+cGFyZW50Tm9kZSgpLCBtX25vZGUsIDAs
IDEpOworICAgICAgICAvLyBEb24ndCBwcm9jZXNzIHN1YnRyZWVzIGZvciBlbWJlZGRlZCBvYmpl
Y3RzLiBJZiB0aGUgdGV4dCB0aGVyZSBpcyByZXF1aXJlZCwKKyAgICAgICAgLy8gaXQgbXVzdCBi
ZSBleHBsaWNpdGx5IGFza2VkIGJ5IHNwZWNpZnlpbmcgYSByYW5nZSBmYWxsaW5nIGluc2lkZSBp
dHMgYm91bmRhcmllcy4KKyAgICAgICAgbV9oYW5kbGVkQ2hpbGRyZW4gPSB0cnVlOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5o
CmluZGV4IGI5ZTgzMTAuLjEyYjQ1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dEl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0
b3IuaApAQCAtMTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhbmRsZWRGaXJz
dExldHRlcjsKICAgICAvLyBVc2VkIHdoZW4gdGhlIHZpc2liaWxpdHkgb2YgdGhlIHN0eWxlIHNo
b3VsZCBub3QgYWZmZWN0IHRleHQgZ2F0aGVyaW5nLgogICAgIGJvb2wgbV9pZ25vcmVzU3R5bGVW
aXNpYmlsaXR5OwotICAgIC8vIFVzZWQgd2hlbiBlbWl0dGluZyB0aGUgc3BlY2lhbCAweEZGRkMg
Y2hhcmFjdGVyIGlzIHJlcXVpcmVkLgorICAgIC8vIFVzZWQgd2hlbiBlbWl0dGluZyB0aGUgc3Bl
Y2lhbCAweEZGRkMgY2hhcmFjdGVyIGlzIHJlcXVpcmVkLiBDaGlsZHJlbiBmb3IgcmVwbGFjZWQg
b2JqZWN0cyB3aWxsIGJlIGlnbm9yZWQuCiAgICAgYm9vbCBtX2VtaXRzT2JqZWN0UmVwbGFjZW1l
bnRDaGFyYWN0ZXJzOwogICAgIC8vIFVzZWQgd2hlbiB0aGUgaXRlcmF0aW9uIHNob3VsZCBzdG9w
IGlmIGZvcm0gY29udHJvbHMgYXJlIHJlYWNoZWQuCiAgICAgYm9vbCBtX3N0b3BzT25Gb3JtQ29u
dHJvbHM7Ci0tIAoxLjcuMTAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215501</attachid>
            <date>2013-10-30 07:29:48 -0700</date>
            <delta_ts>2013-10-30 09:13:40 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-ATK-Avoid-explicit-traversal-of-text-controls-and-th.patch</filename>
            <type>text/plain</type>
            <size>21451</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBkMWRlZjk5MmYwYTQxYjJkZDM0NDI0ZTVkMmMzMDg1YzM5NThmNDMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogV2VkLCAzMCBPY3QgMjAxMyAxMzoxOToyNCArMDAwMApTdWJqZWN0OiBb
UEFUQ0hdIFtBVEtdIEF2b2lkIGV4cGxpY2l0IHRyYXZlcnNhbCBvZiB0ZXh0IGNvbnRyb2xzIGFu
ZCB0aGUKIHJlbmRlciB0cmVlIGluIEF0a1RleHQgaW1wbGVtZW50YXRpb24KIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNTMKCi0tLQogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrCiAuLi4vYWNj
ZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dCAgICB8ICAgIDIgKy0KIC4u
Li9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQgIHwgICAgMiAr
LQogLi4uL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQgICAgfCAg
ICAyICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAg
ICB8ICAgIDIgLQogLi4uL2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVk
LnR4dCAgfCAgICAyICstCiAuLi5wbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLWV4
cGVjdGVkLnR4dCB8ICAgIDggKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMt
ZXhwZWN0ZWQudHh0ICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDUxICsrKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgICAzNiArKysrKystCiAuLi4vYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCAgICAgICAgICB8ICAxMDUgLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCAg
ICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5o
ICAgICAgICAgICAgICB8ICAgIDIgKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25z
KCspLCAxMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVhY2JhZTQuLmVlZmE5MzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAxMy0xMC0zMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnBy
YWRhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBVEtdIEF2b2lkIGV4cGxpY2l0IHRyYXZlcnNh
bCBvZiB0ZXh0IGNvbnRyb2xzIGFuZCB0aGUgcmVuZGVyIHRyZWUgaW4gQXRrVGV4dCBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIzMTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlZCB0ZXN0IGV4cGVjdGF0aW9ucyB0byBwcm9wZXJseSByZWZsZWN0IHRoZSBuZXcgcmVh
bGl0eSB3aGVuIGl0CisgICAgICAgIGNvbWVzIHRvIGV4cG9zaW5nIHJlcGxhY2VkIG9iamVjdHMg
YW5kIGFueW1vdXMgYmxvY2tzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgdG8KKyAgICAgICAgcHJp
bnQgPFxuPiBleHBsaWNpdGx5IGZvciB0aGUgdHdvIGluc3RhbmNlcyBvZiA8QlI+IHRoYXQgYXJl
IHByZXNlbnQgaW4gdGhlCisgICAgICAgIHRlc3QsIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBhcyBw
YXJ0IG9mIGFuIGFub255bW91cyBibG9jay4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvYWNjZXNz
aWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vZWZsLXdrMi9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQu
dHh0OiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9hY2Nlc3NpYmlsaXR5L2RlbGV0
aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dDogVXBkYXRlZAorICAgICAg
ICBleHBlY3RhdGlvbnMgbm90IHRvIGV4cGVjdCB0aGUgdGV4dCBvZiBhIGJ1dHRvbiB0byBiZSBz
aG93bi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJh
bWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJsb2Nr
cy1leHBlY3RlZC50eHQ6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6IFJlbW92ZWQgcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLmh0
bWwKKyAgICAgICAgZnJvbSB0aGUgbGlzdCBvZiBleHBlY3RlZCBmYWlsdXJlcywgYXMgaXQncyBu
b3cgYmVpbmcgcHJvcGVybHkgZXhwb3NlZC4KKwogMjAxMy0xMC0yOCAgTWFyaW8gU2FuY2hleiBQ
cmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIEV4cG9zZSB0
aXRsZSBhbmQgYWx0ZXJuYXRpdmUgdGV4dCBmb3IgbGlua3MgaW4gaW1hZ2UgbWFwcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdp
dGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9hY2Nl
c3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDMyMzg2NWUuLjll
NThiMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvYWNjZXNzaWJp
bGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwtd2syL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQK
QEAgLTg0LDcgKzg0LDcgQEAgQVhQb3NpdGlvbjogeyAwLjAwMDAwMCwgMC4wMDAwMDAgfQogQVhT
aXplOiB7IDc2OS4wMDAwMDAsIDM2LjAwMDAwMCB9CiBBWFRpdGxlOiAKIEFYRGVzY3JpcHRpb246
IAotQVhWYWx1ZTogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBWFZhbHVl
OiA8XG4+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPFxuPgogQVhGb2N1c2Fi
bGU6IDAKIEFYRm9jdXNlZDogMAogQVhTZWxlY3RhYmxlOiAwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMt
YXhjYWNoZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJp
bGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQKaW5kZXgg
MGZlZTIzNS4uMGM4NDZkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2Fj
Y2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlm
cmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMTcsNyArMTcsNyBAQCBBWFJv
bGU6IEFYU2Nyb2xsQXJlYQogICAgICAgICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4K
ICAgICAgICAgICAgIEFYUm9sZTogQVhTY3JvbGxBcmVhIAogICAgICAgICAgICAgICAgIEFYUm9s
ZTogQVhXZWJBcmVhIAotICAgICAgICAgICAgICAgICAgICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1
ZTogPG9iaj5DbGljayBtZQorICAgICAgICAgICAgICAgICAgICBBWFJvbGU6IEFYR3JvdXAgQVhW
YWx1ZTogPG9iaj4KICAgICAgICAgICAgICAgICAgICAgICAgIEFYUm9sZTogQVhCdXR0b24gCiAg
ICAgICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogQWZ0ZXIKICAgICAgICAgQVhSb2xl
OiBBWFBhcmFncmFwaCBBWFZhbHVlOiBFbmQgb2YgdGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1
bGVzLWV4cGVjdGVkLnR4dAppbmRleCA4NGM1MDRmLi4xOTZhZmEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0eS90YWJs
ZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dApAQCAtODQsNyArODQsNyBAQCBBWFBvc2l0aW9uOiB7
IDguMDAwMDAwLCAxMTYuMDAwMDAwIH0KIEFYU2l6ZTogeyA3NjUuMDAwMDAwLCAzNi4wMDAwMDAg
fQogQVhUaXRsZTogCiBBWERlc2NyaXB0aW9uOiAKLUFYVmFsdWU6IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorQVhWYWx1ZTogPFxuPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLTxcbj4KIEFYRm9jdXNhYmxlOiAwCiBBWEZvY3VzZWQ6IDAKIEFYU2VsZWN0
YWJsZTogMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBl
ODE4ODYwLi5jYWEwY2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTMyMSw4ICsxMzIxLDYgQEAgd2Via2l0Lm9yZy9iLzExNDI1MSBhY2Nlc3NpYmls
aXR5L3N2Zy1ncm91cC1lbGVtZW50LXdpdGgtdGl0bGUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzExNDI1OSBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXNsaWRlci1yZXF1
aXJlZC1hdHRyaWJ1dGVzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTQyNTkgcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hh
bmdlZC5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMTg1NzcgcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLmh0bWwg
WyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzExNDYxMiBlZGl0aW5nL3N0eWxlL2Jsb2NrLXN0
eWxlLTAwNS5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMTUwMjUgZmFzdC9ldmVu
dHMvY29uc3RydWN0b3JzL21vdXNlLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgWyBGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RlbGV0
aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hl
LWV4cGVjdGVkLnR4dAppbmRleCAwZmVlMjM1Li4wYzg0NmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMt
YXhjYWNoZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0CkBA
IC0xNyw3ICsxNyw3IEBAIEFYUm9sZTogQVhTY3JvbGxBcmVhCiAgICAgICAgIEFYUm9sZTogQVhH
cm91cCBBWFZhbHVlOiA8b2JqPgogICAgICAgICAgICAgQVhSb2xlOiBBWFNjcm9sbEFyZWEgCiAg
ICAgICAgICAgICAgICAgQVhSb2xlOiBBWFdlYkFyZWEgCi0gICAgICAgICAgICAgICAgICAgIEFY
Um9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPkNsaWNrIG1lCisgICAgICAgICAgICAgICAgICAg
IEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPgogICAgICAgICAgICAgICAgICAgICAgICAg
QVhSb2xlOiBBWEJ1dHRvbiAKICAgICAgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBB
ZnRlcgogICAgICAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFYVmFsdWU6IEVuZCBvZiB0ZXN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9yZXBsYWNl
ZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMt
YmxvY2tzLWV4cGVjdGVkLnR4dAppbmRleCA4Y2FlNTgwLi4wZWZmMmQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9yZXBsYWNlZC1vYmplY3RzLWlu
LWFub255bW91cy1ibG9ja3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJsb2Nrcy1l
eHBlY3RlZC50eHQKQEAgLTEyLDE2ICsxMiwxNiBAQCBidXR0b24KIEVuZCBvZiB0ZXN0CiBBWFJv
bGU6IEFYV2ViQXJlYSAKICAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFYVmFsdWU6IFBhcmFncmFw
aAotICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiA8b2JqPmJ1dHRvbjxcbj4KKyAgICBBWFJv
bGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4KICAgICAgICAgQVhSb2xlOiBBWEJ1dHRvbiAKICAg
ICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogPG9iaj4KICAgICAgICAgQVhSb2xlOiBBWFNjcm9s
bEFyZWEgCiAgICAgICAgICAgICBBWFJvbGU6IEFYV2ViQXJlYSAKLSAgICBBWFJvbGU6IEFYR3Jv
dXAgQVhWYWx1ZTogPG9iaj50ZXh0IGFyZWE8XG4+CisgICAgQVhSb2xlOiBBWEdyb3VwIEFYVmFs
dWU6IDxvYmo+CiAgICAgICAgIEFYUm9sZTogQVhUZXh0RmllbGQgQVhWYWx1ZTogdGV4dCBhcmVh
Ci0gICAgQVhSb2xlOiBBWERpdiBBWFZhbHVlOiBEaXY8XG4+PG9iaj5idXR0b24KKyAgICBBWFJv
bGU6IEFYRGl2IEFYVmFsdWU6IERpdjxcbj48b2JqPgogICAgICAgICBBWFJvbGU6IEFYQnV0dG9u
IAotICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFsdWU6IEhlYWRpbmc8XG4+PG9iaj5idXR0b248
XG4+PG9iaj4KKyAgICBBWFJvbGU6IEFYSGVhZGluZyBBWFZhbHVlOiBIZWFkaW5nPFxuPjxvYmo+
PFxuPjxvYmo+CiAgICAgICAgIEFYUm9sZTogQVhCdXR0b24gCiAgICAgICAgIEFYUm9sZTogQVhJ
bWFnZSAKICAgICBBWFJvbGU6IEFYRGl2IEFYVmFsdWU6IEVuZCBvZiB0ZXN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3Rh
YmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDEwNjdlZGEuLmExMzkxZmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgt
cnVsZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CkBAIC04NCw3ICs4NCw3IEBAIEFY
UG9zaXRpb246IHsgOC4wMDAwMDAsIDExMS4wMDAwMDAgfQogQVhTaXplOiB7IDc2OS4wMDAwMDAs
IDM0LjAwMDAwMCB9CiBBWFRpdGxlOiAKIEFYRGVzY3JpcHRpb246IAotQVhWYWx1ZTogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBWFZhbHVlOiA8XG4+LS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPFxuPgogQVhGb2N1c2FibGU6IDAKIEFYRm9jdXNlZDog
MAogQVhTZWxlY3RhYmxlOiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI4NWQxZS4uNWZiYzU3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTEwLTMwICBNYXJpbyBTYW5jaGV6IFByYWRhICA8
bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10gQXZvaWQgZXhwbGljaXQg
dHJhdmVyc2FsIG9mIHRleHQgY29udHJvbHMgYW5kIHRoZSByZW5kZXIgdHJlZSBpbiBBdGtUZXh0
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjMxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgZnVuY3Rpb25zIGZyb20gdGhlIEF0a1RleHQgaW1wbGVtZW50YXRpb24g
dGhhdCBtYW51YWxseQorICAgICAgICB3YWxrIHRoZSByZW5kZXIgdHJlZSB0byBjb21wb3NlIHRo
ZSB0ZXh0IGZvciBhIGV4cG9zZWQgb2JqZWN0cyBpbgorICAgICAgICBjZXJ0YWluIGNhc2VzIChl
LmcuIGFub255bW91cyBibG9ja3MsIHRleHQgY29udHJvbHMpLgorCisgICAgICAgIFRoZSByZWFz
b24gZm9yIHRoaXMgY2hhbmdlIGlzIHRoYXQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24KKyAg
ICAgICAgZm9sbG93cyBhbiBlcnJvci1wcm9uZSBhcHByb2FjaCwgc2luY2UgYnkgZG9pbmcgdGhp
bmdzIGxpa2UKKyAgICAgICAgbWFudWFsbHkgd2Fsa2luZyB0aGUgcmVuZGVyIHRyZWUgZnJvbSBo
ZXJlIHdlIGFyZSBub3QgcHJvcGVybHkKKyAgICAgICAgY29uc2lkZXJpbmcgYWxsIHRoZSBwb3Nz
aWJsZSBzY2VuYXJpb3MgdGhhdCBtaWdodCBoYXBwZW4gd2hlbgorICAgICAgICB0cmF2ZXJzaW5n
IHRleHQuIFRoaXMsIGhvd2V2ZXIsIGlzIGEgdGFzayB0aGF0IGlzIGJldHRlciBzdWl0ZWQKKyAg
ICAgICAgZm9yIHRoZSBUZXh0SXRlcmF0b3IsIHdoaWNoIGlzIGFscmVhZHkgd3JpdHRlbiB0byBj
b25zaWRlciBhbGwKKyAgICAgICAgdGhvc2UgY2FzZXMgYW5kIHRvIGVtaXQgdGhlIHByb3BlciBj
aGFyYWN0ZXIgaW4gZXZlcnkgc2luZ2xlCisgICAgICAgIHNpdHVhdGlvbjogdGV4dCBub2Rlcywg
cmVwbGFjZWQgb2JqZWN0cyBhbmQgc28gb24uCisKKyAgICAgICAgU28sIGJ5IHJlbW92aW5nIGFs
bCB0aGF0IHRvbyBzcGVjaWZpYyBjb2RlICh0ZXh0Rm9yT2JqZWN0KCkgYW5kCisgICAgICAgIHRl
eHRGb3JSZW5kZXJlcigpIG1haW5seSkgZnJvbSBXZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4
dC5jcHAKKyAgICAgICAgYW5kIHJlbHlpbmcgaW4gQWNjZXNzaWJpbGl0eU9iamVjdDo6dGV4dFVu
ZGVyRWxlbWVudCgpLCB3aGljaCBpdAorICAgICAgICBlbmRzIHVwIHVzaW5nIHRoZSBUZXh0SXRl
cmF0b3IgZm9yIGNlcnRhaW4gY2FzZXMsIHdlIGhhdmUgYSBtdWNoCisgICAgICAgIGJldHRlciBh
bmQgcm9idXN0IG1ldGhvZCBvZiByZXRyaWV2aW5nIHRoZSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCBh
bgorICAgICAgICBpbnN0YW5jZSBvZiBBdGtPYmplY3QgaW1wbGVtZW50aW5nIHRoZSBBdGtUZXh0
IGludGVyZmFjZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VUZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0VGV4
dCk6IFJlbW92ZWQgY2FsbCB0byB0ZXh0Rm9yT2JqZWN0KCksIG5vdyB0aGF0CisgICAgICAgIHdl
IGhhdmUganVzdCByZW1vdmVkIHRoYXQgZnVuY3Rpb24sIHRvZ2V0aGVyIHdpdGggdGV4dEZvclJl
bmRlcmVyKCkuCisKKyAgICAgICAgTWFrZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0
VW5kZXJFbGVtZW50KCkgYWJsZSB0byBkZWFsIHdpdGgKKyAgICAgICAgYW5vbnltb3VzIGJsb2Nr
cyBkaXJlY3RseSwgYnkgY3JlYXRpbmcgYSByYW5nZSBiYXNlZCBpbiB0aGUgYm91bmRhcmllcwor
ICAgICAgICBkZWZpbmVkIGJ5IHRoZSBmaXJzdCBhbmQgbGFzdCBjaGlsZCByZW5kZXJlcnMgZm9y
IHRoYXQgYmxvY2suIFRoaXMgd2lsbAorICAgICAgICBtYWtlIHBvc3NpYmxlIHRvIHRyZWF0IGFu
IGFub255bW91cyBibG9jayBhcyBhIHdob2xlIGluc3RlYWQgb2YgaGF2aW5nCisgICAgICAgIHRv
IHJlbHkgaW4gdGhlIGNvbmNhdGVuYXRpb24gb2YgZWFjaCBvZiBpdHMgY2hpbGRyZW4sIGFzIGl0
IGRvZXMgbm93LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnRleHRVbmRlckVsZW1lbnQpOiBBZGRlZCBhIG5ldyBjb2RlCisgICAgICAgIHBhdGggdG8gZGVh
bCB3aXRoIGFub255bW91cyBibG9ja3MgZm9yIHRleHQgcmVuZGVyZXJzLCBvciB3aGVuIGluY2x1
ZGluZworICAgICAgICBhbGwgdGhlIGNoaWxkcmVuIGlzIGV4cGxpY2l0bHkgcmVxdWVzdGVkLgor
CisgICAgICAgIE1vZGlmaWVkIFRleHRJdGVyYXRvciBzbyB0ZXh0IGZvciBjaGlsZHJlbiBvZiBy
ZXBsYWNlZCBvYmplY3RzIGFyZQorICAgICAgICBpZ25vcmVkIGlmIHdlIGFyZSBlbW1pdGluZyB0
aGUgc3BlY2lhbCBjaGFyYWN0ZXIgZm9yIHRob3NlIG9iamVjdHMuCisKKyAgICAgICAgKiBlZGl0
aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6Omhh
bmRsZVJlcGxhY2VkRWxlbWVudCk6IE1ha2Ugc3VyZSBubyBjaGlsZHJlbiBhcmUKKyAgICAgICAg
aGFuZGxlZCBhIHJlcGxhY2VkIG9iamVjdCBpZiBtX2VtaXRzT2JqZWN0UmVwbGFjZW1lbnRDaGFy
YWN0ZXJzIGlzIHNldC4KKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5oOiBVcGRhdGVk
IG1fZW1pdHNPYmplY3RSZXBsYWNlbWVudENoYXJhY3RlcnMKKyAgICAgICAgZGVzY3JpcHRpb24g
dG8gcmVmbGVjdCB0aGUgbmV3IGJlaGF2aW9yLgorCiAyMDEzLTEwLTI4ICBNYXJpbyBTYW5jaGV6
IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dUS10gRXhwb3Nl
IHRpdGxlIGFuZCBhbHRlcm5hdGl2ZSB0ZXh0IGZvciBsaW5rcyBpbiBpbWFnZSBtYXBzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAppbmRleCA1YzA0NGEyLi5jZTE3NGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKQEAgLTY1MiwxMyArNjUyLDM5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50CiAgICAgaWYg
KG1fcmVuZGVyZXItPmlzVGV4dCgpIHx8IG1vZGUuY2hpbGRyZW5JbmNsdXNpb24gPT0gQWNjZXNz
aWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlOjpUZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1ZGVB
bGxDaGlsZHJlbikgewogICAgICAgICAvLyBJZiBwb3NzaWJsZSwgdXNlIGEgdGV4dCBpdGVyYXRv
ciB0byBnZXQgdGhlIHRleHQsIHNvIHRoYXQgd2hpdGVzcGFjZQogICAgICAgICAvLyBpcyBoYW5k
bGVkIGNvbnNpc3RlbnRseS4KLSAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCkp
IHsKLSAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZyYW1l
KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIG5vZGVEb2N1bWVudCA9IDA7CisgICAgICAgIFJlZlB0
cjxSYW5nZT4gdGV4dFJhbmdlOworICAgICAgICBpZiAobV9yZW5kZXJlci0+bm9kZSgpKSB7Cisg
ICAgICAgICAgICBpZiAoTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKSkgeworICAgICAgICAgICAg
ICAgIG5vZGVEb2N1bWVudCA9ICZub2RlLT5kb2N1bWVudCgpOworICAgICAgICAgICAgICAgIHRl
eHRSYW5nZSA9IHJhbmdlT2ZDb250ZW50cygqbm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAvLyBGb3IgYW5vbnltb3VzIGJsb2Nrcywgd2Ugd29yayBh
cm91bmQgbm90IGhhdmluZyBhIGRpcmVjdCBub2RlIHRvIGNyZWF0ZSBhIHJhbmdlIGZyb20KKyAg
ICAgICAgICAgIC8vIGRlZmluaW5nIG9uZSBiYXNlZCBpbiB0aGUgdHdvIGV4dGVybmFsIHBvc2l0
aW9ucyBkZWZpbmluZyB0aGUgYm91bmRhcmllcyBvZiB0aGUgc3VidHJlZS4KKyAgICAgICAgICAg
IFJlbmRlck9iamVjdCogZmlyc3RDaGlsZFJlbmRlcmVyID0gbV9yZW5kZXJlci0+Zmlyc3RDaGls
ZFNsb3coKTsKKyAgICAgICAgICAgIFJlbmRlck9iamVjdCogbGFzdENoaWxkUmVuZGVyZXIgPSBt
X3JlbmRlcmVyLT5sYXN0Q2hpbGRTbG93KCk7CisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZFJl
bmRlcmVyICYmIGxhc3RDaGlsZFJlbmRlcmVyKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGZp
cnN0Q2hpbGRSZW5kZXJlci0+bm9kZSgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQobGFzdENo
aWxkUmVuZGVyZXItPm5vZGUoKSk7CisKKyAgICAgICAgICAgICAgICAvLyBXZSBkZWZpbmUgdGhl
IHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGZvciB0aGUgcmFuZ2UgYXMgdGhlIG9uZXMgcmlnaHQg
YmVmb3JlIGFuZCBhZnRlcgorICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBhbmQgdGhlIGxh
c3Qgbm9kZXMgaW4gdGhlIERPTSB0cmVlIHRoYXQgaXMgd3JhcHBlZCBpbnNpZGUgdGhlIGFub255
bW91cyBibG9jay4KKyAgICAgICAgICAgICAgICBOb2RlKiBmaXJzdE5vZGVJbkJsb2NrID0gZmly
c3RDaGlsZFJlbmRlcmVyLT5ub2RlKCk7CisgICAgICAgICAgICAgICAgUG9zaXRpb24gc3RhcnRQ
b3NpdGlvbiA9IHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKGZpcnN0Tm9kZUluQmxvY2spOwor
ICAgICAgICAgICAgICAgIFBvc2l0aW9uIGVuZFBvc2l0aW9uID0gcG9zaXRpb25JblBhcmVudEFm
dGVyTm9kZShsYXN0Q2hpbGRSZW5kZXJlci0+bm9kZSgpKTsKKworICAgICAgICAgICAgICAgIG5v
ZGVEb2N1bWVudCA9ICZmaXJzdE5vZGVJbkJsb2NrLT5kb2N1bWVudCgpOworICAgICAgICAgICAg
ICAgIHRleHRSYW5nZSA9IFJhbmdlOjpjcmVhdGUoKm5vZGVEb2N1bWVudCwgc3RhcnRQb3NpdGlv
biwgZW5kUG9zaXRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KG5vZGVEb2N1bWVudCAmJiB0ZXh0UmFuZ2UpIHsKKyAgICAgICAgICAgIGlmIChGcmFtZSogZnJh
bWUgPSBub2RlRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICAvLyBjYXRjaCBz
dGFsZSBXZWJDb3JlQVhPYmplY3QgKHNlZSA8cmRhcjovL3Byb2JsZW0vMzk2MDE5Nj4pCi0gICAg
ICAgICAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICE9ICZub2RlLT5kb2N1bWVudCgpKQor
ICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAhPSBub2RlRG9jdW1lbnQpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgICAgICAgICAgICAgIHJl
dHVybiBwbGFpblRleHQocmFuZ2VPZkNvbnRlbnRzKCpub2RlKS5nZXQoKSwgdGV4dEl0ZXJhdG9y
QmVoYXZpb3JGb3JUZXh0UmFuZ2UoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBsYWluVGV4
dCh0ZXh0UmFuZ2UuZ2V0KCksIHRleHRJdGVyYXRvckJlaGF2aW9yRm9yVGV4dFJhbmdlKCkpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
VGV4dC5jcHAKaW5kZXggYTc3MmFlMC4uYjE0MzlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VUZXh0LmNwcApAQCAtNjksMTAzICs2OSw2IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBjb3JlKEF0a1RleHQqIHRleHQpCiAgICAgcmV0dXJuIHdlYmtpdEFjY2Vzc2libGVHZXRB
Y2Nlc3NpYmlsaXR5T2JqZWN0KFdFQktJVF9BQ0NFU1NJQkxFKHRleHQpKTsKIH0KIAotc3RhdGlj
IGdjaGFyKiB0ZXh0Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBH
U3RyaW5nKiByZXN1bHRUZXh0ID0gZ19zdHJpbmdfbmV3KDApOwotCi0gICAgaWYgKCFyZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuIGdfc3RyaW5nX2ZyZWUocmVzdWx0VGV4dCwgRkFMU0UpOwotCi0g
ICAgLy8gRm9yIFJlbmRlckJsb2NrcywgcGllY2UgdG9nZXRoZXIgdGhlIHRleHQgZnJvbSB0aGUg
UmVuZGVyVGV4dCBvYmplY3RzIHRoZXkgY29udGFpbi4KLSAgICBmb3IgKFJlbmRlck9iamVjdCog
b2JqZWN0ID0gcmVuZGVyZXItPmZpcnN0Q2hpbGRTbG93KCk7IG9iamVjdDsgb2JqZWN0ID0gb2Jq
ZWN0LT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChvYmplY3QtPmlzQlIoKSkgewotICAg
ICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHJlc3VsdFRleHQsICJcbiIpOwotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBSZW5kZXJUZXh0KiByZW5kZXJUZXh0Owot
ICAgICAgICBpZiAob2JqZWN0LT5pc1RleHQoKSkKLSAgICAgICAgICAgIHJlbmRlclRleHQgPSB0
b1JlbmRlclRleHQob2JqZWN0KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBMaXN0
IGl0ZW0ncyBtYXJrZXJzIHdpbGwgYmUgdHJlYXRlZCBpbiBhbiBzcGVjaWFsIHdheQotICAgICAg
ICAgICAgLy8gbGF0ZXIgb24gdGhpcyBmdW5jdGlvbiwgc28gaWdub3JlIHRoZW0gaGVyZS4KLSAg
ICAgICAgICAgIGlmIChvYmplY3QtPmlzUmVwbGFjZWQoKSAmJiAhb2JqZWN0LT5pc0xpc3RNYXJr
ZXIoKSkKLSAgICAgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmRfdW5pY2hhcihyZXN1bHRUZXh0
LCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rlcik7Ci0KLSAgICAgICAgICAgIC8vIFdlIG5lZWQg
dG8gY2hlY2sgY2hpbGRyZW4sIGlmIGFueSwgdG8gY29uc2lkZXIgd2hlbgotICAgICAgICAgICAg
Ly8gY3VycmVudCBvYmplY3QgaXMgbm90IGEgdGV4dCBvYmplY3QgYnV0IHNvbWUgb2YgaXRzCi0g
ICAgICAgICAgICAvLyBjaGlsZHJlbiBhcmUsIGluIG9yZGVyIG5vdCB0byBtaXNzIHRob3NlIHBv
cnRpb25zIG9mCi0gICAgICAgICAgICAvLyB0ZXh0IGJ5IG5vdCBwcm9wZXJseSBoYW5kbGluZyB0
aG9zZSBzaXR1YXRpb25zCi0gICAgICAgICAgICBpZiAob2JqZWN0LT5maXJzdENoaWxkU2xvdygp
KSB7Ci0gICAgICAgICAgICAgICAgR093blB0cjxjaGFyPiBvYmplY3RUZXh0KHRleHRGb3JSZW5k
ZXJlcihvYmplY3QpKTsKLSAgICAgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmQocmVzdWx0VGV4
dCwgb2JqZWN0VGV4dC5nZXQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIElubGluZVRleHRCb3gqIGJveCA9IHJlbmRlclRleHQg
PyByZW5kZXJUZXh0LT5maXJzdFRleHRCb3goKSA6IDA7Ci0gICAgICAgIHdoaWxlIChib3gpIHsK
LSAgICAgICAgICAgIC8vIFdlYkNvcmUgaW50cm9kdWNlcyBsaW5lIGJyZWFrcyBpbiB0aGUgdGV4
dCB0aGF0IGRvIG5vdCByZWZsZWN0Ci0gICAgICAgICAgICAvLyB0aGUgbGF5b3V0IHlvdSBzZWUg
b24gdGhlIHNjcmVlbiwgcmVwbGFjZSB0aGVtIHdpdGggc3BhY2VzLgotICAgICAgICAgICAgU3Ry
aW5nIHRleHQgPSBTdHJpbmcocmVuZGVyVGV4dC0+Y2hhcmFjdGVycygpLCByZW5kZXJUZXh0LT50
ZXh0TGVuZ3RoKCkpLnJlcGxhY2UoIlxuIiwgIiAiKTsKLSAgICAgICAgICAgIGdfc3RyaW5nX2Fw
cGVuZChyZXN1bHRUZXh0LCB0ZXh0LnN1YnN0cmluZyhib3gtPnN0YXJ0KCksIGJveC0+ZW5kKCkg
LSBib3gtPnN0YXJ0KCkgKyAxKS51dGY4KCkuZGF0YSgpKTsKLQotICAgICAgICAgICAgLy8gTmV3
bGluZSBjaGFycyBpbiB0aGUgc291cmNlIHJlc3VsdCBpbiBzZXBhcmF0ZSB0ZXh0IGJveGVzLCBz
byBjaGVjawotICAgICAgICAgICAgLy8gYmVmb3JlIGFkZGluZyBhIG5ld2xpbmUgaW4gdGhlIGxh
eW91dC4gU2VlIGJ1ZyAyNTQxNSBjb21tZW50ICM3OC4KLSAgICAgICAgICAgIC8vIElmIHRoZSBu
ZXh0IHNpYmxpbmcgaXMgYSBCUiwgd2UnbGwgYWRkIHRoZSBuZXdsaW5lIHdoZW4gd2UgZXhhbWlu
ZSB0aGF0IGNoaWxkLgotICAgICAgICAgICAgaWYgKCFib3gtPm5leHRPbkxpbmVFeGlzdHMoKSAm
JiAhKG9iamVjdC0+bmV4dFNpYmxpbmcoKSAmJiBvYmplY3QtPm5leHRTaWJsaW5nKCktPmlzQlIo
KSkpIHsKLSAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSB3YXMgYSAnXG4nIGluIHRoZSBsYXN0
IHBvc2l0aW9uIG9mIHRoZQotICAgICAgICAgICAgICAgIC8vIGN1cnJlbnQgdGV4dCBib3gsIGl0
IHdvdWxkIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gYQotICAgICAgICAgICAgICAgIC8vIHNwYWNl
IGluIFN0cmluZzo6cmVwbGFjZSgpLCBzbyByZW1vdmUgaXQgZmlyc3QuCi0gICAgICAgICAgICAg
ICAgaWYgKHJlbmRlclRleHQtPmNoYXJhY3RlcnMoKVtib3gtPmVuZCgpXSA9PSAnXG4nKQotICAg
ICAgICAgICAgICAgICAgICBnX3N0cmluZ19lcmFzZShyZXN1bHRUZXh0LCByZXN1bHRUZXh0LT5s
ZW4gLSAxLCAtMSk7Ci0KLSAgICAgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmQocmVzdWx0VGV4
dCwgIlxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBib3ggPSBib3gtPm5leHRUZXh0
Qm94KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBJbnNlcnQgdGhlIHRleHQgb2YgdGhl
IG1hcmtlciBmb3IgbGlzdCBpdGVtIGluIHRoZSByaWdodCBwbGFjZSwgaWYgcHJlc2VudAotICAg
IGlmIChyZW5kZXJlci0+aXNMaXN0SXRlbSgpKSB7Ci0gICAgICAgIFN0cmluZyBtYXJrZXJUZXh0
ID0gdG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1hcmtlclRleHRXaXRoU3VmZml4KCk7Ci0g
ICAgICAgIGlmIChyZW5kZXJlci0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSKQotICAgICAg
ICAgICAgZ19zdHJpbmdfcHJlcGVuZChyZXN1bHRUZXh0LCBtYXJrZXJUZXh0LnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBnX3N0cmluZ19hcHBlbmQocmVzdWx0VGV4
dCwgbWFya2VyVGV4dC51dGY4KCkuZGF0YSgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZ19zdHJp
bmdfZnJlZShyZXN1bHRUZXh0LCBGQUxTRSk7Ci19Ci0KLXN0YXRpYyBnY2hhciogdGV4dEZvck9i
amVjdChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0KQotewotICAgIEdTdHJp
bmcqIHN0ciA9IGdfc3RyaW5nX25ldygwKTsKLQotICAgIC8vIEZvciB0ZXh0IGNvbnRyb2xzLCB3
ZSBjYW4gZ2V0IHRoZSB0ZXh0IGxpbmUgYnkgbGluZS4KLSAgICBpZiAoY29yZU9iamVjdC0+aXNU
ZXh0Q29udHJvbCgpKSB7Ci0gICAgICAgIHVuc2lnbmVkIHRleHRMZW5ndGggPSBjb3JlT2JqZWN0
LT50ZXh0TGVuZ3RoKCk7Ci0gICAgICAgIGludCBsaW5lTnVtYmVyID0gMDsKLSAgICAgICAgUGxh
aW5UZXh0UmFuZ2UgcmFuZ2UgPSBjb3JlT2JqZWN0LT5kb0FYUmFuZ2VGb3JMaW5lKGxpbmVOdW1i
ZXIpOwotICAgICAgICB3aGlsZSAocmFuZ2UubGVuZ3RoKSB7Ci0gICAgICAgICAgICBTdHJpbmcg
bGluZVRleHQgPSBjb3JlT2JqZWN0LT5kb0FYU3RyaW5nRm9yUmFuZ2UocmFuZ2UpOwotICAgICAg
ICAgICAgZ19zdHJpbmdfYXBwZW5kKHN0ciwgbGluZVRleHQudXRmOCgpLmRhdGEoKSk7Ci0KLSAg
ICAgICAgICAgIC8vIFdoZW4gYSBsaW5lIG9mIHRleHQgd3JhcHMgaW4gYSB0ZXh0IGFyZWEsIHRo
ZSBmaW5hbCBzcGFjZQotICAgICAgICAgICAgLy8gYWZ0ZXIgZWFjaCBub24tZmluYWwgbGluZSBt
dXN0IGJlIHJlcGxhY2VkIHdpdGggYSBsaW5lIGJyZWFrLgotICAgICAgICAgICAgaWYgKHJhbmdl
LnN0YXJ0ICsgcmFuZ2UubGVuZ3RoIDwgdGV4dExlbmd0aCkKLSAgICAgICAgICAgICAgICBnX3N0
cmluZ19vdmVyd3JpdGVfbGVuKHN0ciwgc3RyLT5sZW4gLSAxLCAiXG4iLCAxKTsKLQotICAgICAg
ICAgICAgcmFuZ2UgPSBjb3JlT2JqZWN0LT5kb0FYUmFuZ2VGb3JMaW5lKCsrbGluZU51bWJlcik7
Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGNvcmVPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdCgpKSB7Ci0gICAgICAgIEdPd25QdHI8Z2NoYXI+IHJlbmRlcmVyVGV4dCh0ZXh0
Rm9yUmVuZGVyZXIoY29yZU9iamVjdC0+cmVuZGVyZXIoKSkpOwotICAgICAgICBnX3N0cmluZ19h
cHBlbmQoc3RyLCByZW5kZXJlclRleHQuZ2V0KCkpOwotICAgIH0KLQotICAgIHJldHVybiBnX3N0
cmluZ19mcmVlKHN0ciwgRkFMU0UpOwotfQotCiBzdGF0aWMgaW50IGJhc2VsaW5lUG9zaXRpb25G
b3JSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QpCiB7CiAgICAgLy8gRklY
TUU6IFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYmFzZWxpbmVQb3NpdGlvbiBvcmlnaW5hdGVzIGZy
b20gUmVuZGVyT2JqZWN0LmNwcCBhbmQgd2FzCkBAIC01ODgsMTQgKzQ5MSw2IEBAIHN0YXRpYyBn
Y2hhciogd2Via2l0QWNjZXNzaWJsZVRleHRHZXRUZXh0KEF0a1RleHQqIHRleHQsIGdpbnQgc3Rh
cnRPZmZzZXQsIGdpbnQKICAgICAgICAgICAgIHJldCA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVs
ZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlKEFjY2Vzc2liaWxpdHlUZXh0
VW5kZXJFbGVtZW50TW9kZTo6VGV4dFVuZGVyRWxlbWVudE1vZGVJbmNsdWRlQWxsQ2hpbGRyZW4p
KTsKICAgICB9CiAKLSAgICBpZiAoIXJldC5sZW5ndGgoKSkgewotICAgICAgICAvLyBUaGlzIGNh
biBoYXBwZW4gYXQgbGVhc3Qgd2l0aCBhbm9ueW1vdXMgUmVuZGVyQmxvY2tzIChlLmcuIGJvZHkg
dGV4dCBhbW9uZ3N0IHBhcmFncmFwaHMpCi0gICAgICAgIC8vIEluIHN1Y2ggaW5zdGFuY2VzLCB0
aGVyZSBtYXkgYWxzbyBiZSBlbWJlZGRlZCBvYmplY3RzLiBUaGUgb2JqZWN0IHJlcGxhY2VtZW50
IGNoYXJhY3RlcgotICAgICAgICAvLyBpcyBzb21ldGhpbmcgQVRzIHdhbnQgaW5jbHVkZWQgYW5k
IHdlIGhhdmUgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCBpdCBpcyBtdWx0aWJ5dGUuCi0g
ICAgICAgIEdPd25QdHI8Y2hhcj4gb2JqZWN0VGV4dCh0ZXh0Rm9yT2JqZWN0KGNvcmVPYmplY3Qp
KTsKLSAgICAgICAgcmV0ID0gU3RyaW5nOjpmcm9tVVRGOChvYmplY3RUZXh0LmdldCgpKTsKLSAg
ICB9Ci0KICAgICAvLyBQcmVmaXggYSBpdGVtIG51bWJlci9idWxsZXQgaWYgbmVlZGVkCiAgICAg
aW50IGFjdHVhbEVuZE9mZnNldCA9IGVuZE9mZnNldCA9PSAtMSA/IHJldC5sZW5ndGgoKSA6IGVu
ZE9mZnNldDsKICAgICBpZiAoY29yZU9iamVjdC0+cm9sZVZhbHVlKCkgPT0gTGlzdEl0ZW1Sb2xl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggZDRkODllZC4u
NThiNTVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNzIz
LDYgKzcyMyw5IEBAIGJvb2wgVGV4dEl0ZXJhdG9yOjpoYW5kbGVSZXBsYWNlZEVsZW1lbnQoKQog
CiAgICAgaWYgKG1fZW1pdHNPYmplY3RSZXBsYWNlbWVudENoYXJhY3RlcnMgJiYgcmVuZGVyZXIg
JiYgcmVuZGVyZXItPmlzUmVwbGFjZWQoKSkgewogICAgICAgICBlbWl0Q2hhcmFjdGVyKG9iamVj
dFJlcGxhY2VtZW50Q2hhcmFjdGVyLCBtX25vZGUtPnBhcmVudE5vZGUoKSwgbV9ub2RlLCAwLCAx
KTsKKyAgICAgICAgLy8gRG9uJ3QgcHJvY2VzcyBzdWJ0cmVlcyBmb3IgZW1iZWRkZWQgb2JqZWN0
cy4gSWYgdGhlIHRleHQgdGhlcmUgaXMgcmVxdWlyZWQsCisgICAgICAgIC8vIGl0IG11c3QgYmUg
ZXhwbGljaXRseSBhc2tlZCBieSBzcGVjaWZ5aW5nIGEgcmFuZ2UgZmFsbGluZyBpbnNpZGUgaXRz
IGJvdW5kYXJpZXMuCisgICAgICAgIG1faGFuZGxlZENoaWxkcmVuID0gdHJ1ZTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaApp
bmRleCBiOWU4MzEwLi4xMmI0NTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9y
LmgKQEAgLTE4Nyw3ICsxODcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYW5kbGVkRmlyc3RM
ZXR0ZXI7CiAgICAgLy8gVXNlZCB3aGVuIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBzdHlsZSBzaG91
bGQgbm90IGFmZmVjdCB0ZXh0IGdhdGhlcmluZy4KICAgICBib29sIG1faWdub3Jlc1N0eWxlVmlz
aWJpbGl0eTsKLSAgICAvLyBVc2VkIHdoZW4gZW1pdHRpbmcgdGhlIHNwZWNpYWwgMHhGRkZDIGNo
YXJhY3RlciBpcyByZXF1aXJlZC4KKyAgICAvLyBVc2VkIHdoZW4gZW1pdHRpbmcgdGhlIHNwZWNp
YWwgMHhGRkZDIGNoYXJhY3RlciBpcyByZXF1aXJlZC4gQ2hpbGRyZW4gZm9yIHJlcGxhY2VkIG9i
amVjdHMgd2lsbCBiZSBpZ25vcmVkLgogICAgIGJvb2wgbV9lbWl0c09iamVjdFJlcGxhY2VtZW50
Q2hhcmFjdGVyczsKICAgICAvLyBVc2VkIHdoZW4gdGhlIGl0ZXJhdGlvbiBzaG91bGQgc3RvcCBp
ZiBmb3JtIGNvbnRyb2xzIGFyZSByZWFjaGVkLgogICAgIGJvb2wgbV9zdG9wc09uRm9ybUNvbnRy
b2xzOwotLSAKMS43LjEwLjQKCg==
</data>
<flag name="review"
          id="238240"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>