<?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>144639</bug_id>
          
          <creation_ts>2015-05-05 14:04:56 -0700</creation_ts>
          <short_desc>AX: [ATK] We need to be smarter about flattening and the accessible text implementation</short_desc>
          <delta_ts>2016-04-28 06:12:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</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="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Joanmarie Diggs">jdiggs</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091875</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2015-05-05 14:04:56 -0700</bug_when>
    <thetext>Given:

  &lt;div&gt;
    &lt;span&gt;Span!&lt;/span&gt;
    &lt;h1&gt;Foo&lt;/h1&gt;
    &lt;h2&gt;Bar&lt;/h2&gt;
    &lt;p&gt;Hello world&lt;/p&gt;
  &lt;/div&gt;

There is an object of ATK_ROLE_SECTION which implements the accessible text interface and contains the text of all of its children:

  &apos;Span!\nFoo\n\nBar\n\nHello world&apos;

Getting rid of the span results in the ATK_ROLE_SECTION going away.

While the above test case is not a big deal, given a page with a ton of content in a div with a single span, we&apos;re doing a lot of work getting all the text. That&apos;s bad for performance. Furthermore, for a variety of reasons, Orca is going to have to implement its own caret navigation for WebKitGtk. Having duplicated text (the headings and paragraphs are still there in the tree, correctly implementing AtkText) is really screwing things up. So we need to be smarter about our flattening.

I have some ideas which I&apos;ll pursue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091876</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-05 14:05:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/20824771&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092002</commentid>
    <comment_count>2</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2015-05-05 19:18:15 -0700</bug_when>
    <thetext>The idea, which I&apos;m pursuing, will be to defer to WebCore Accessibility regarding inclusion of anonymous blocks. What we&apos;re doing in ATK at the moment is a heuristic hack. But before we can defer to WebCore, we need to sort out things like bug 144653. (And there will likely be many more such issues.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187640</commentid>
    <comment_count>3</comment_count>
      <attachid>277439</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-04-26 20:42:58 -0700</bug_when>
    <thetext>Created attachment 277439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187642</commentid>
    <comment_count>4</comment_count>
      <attachid>277439</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-04-26 21:19:10 -0700</bug_when>
    <thetext>Comment on attachment 277439
Patch

Chris: When you have a spare moment, please review. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187679</commentid>
    <comment_count>5</comment_count>
      <attachid>277439</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-04-27 00:21:58 -0700</bug_when>
    <thetext>Comment on attachment 277439
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:-2651
&gt; -    if (node &amp;&amp; (node-&gt;hasTagName(tdTag) || node-&gt;hasTagName(thTag)))

might be worth putting this in a helper method

&gt; Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp:91
&gt; +        return renderObject-&gt;firstChildSlow() ? IncludeObject : DefaultBehavior;

will this handle inlines? would doing children().size() ? be a better check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188033</commentid>
    <comment_count>6</comment_count>
      <attachid>277554</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-04-27 17:28:09 -0700</bug_when>
    <thetext>Created attachment 277554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188042</commentid>
    <comment_count>7</comment_count>
      <attachid>277439</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-04-27 17:51:14 -0700</bug_when>
    <thetext>Comment on attachment 277439
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2652
&gt; +        || (m_renderer-&gt;isAnonymous() &amp;&amp; m_renderer-&gt;isTablePart()))

The helper method makes sense, but after making some additional test cases, I discovered that we don&apos;t want the anonymous check (fully-formed CSS tables which include &quot;display:table-cell&quot; have a non-anonymous renderer). &quot;is&lt;RenderTableCell&gt;(m_renderer)&quot; seems to be what we need. So I wound up not making the helper method in the new patch.

&gt;&gt; Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp:91
&gt;&gt; +        return renderObject-&gt;firstChildSlow() ? IncludeObject : DefaultBehavior;
&gt; 
&gt; will this handle inlines? would doing children().size() ? be a better check

Since we&apos;re looking at the RenderObject children, it should. And if you mean calling AccessibilityObject::children().size(), is it safe to get the children of the AccessibilityObject in the method being used to determine if that AccessibilityObject should be included or ignored? Also, I don&apos;t think we want to base our decision on what AccessibilityObject children are present. (Though perhaps I am missing something.)

All of that said, your question led me to make additional test cases in order to see where WebCore Accessibility failed to include a paragraph element I&apos;d expect included. And the only place I&apos;ve found a difference is when that paragraph element&apos;s renderer has a RenderBlock child. So the new check looks explicitly for that condition and leaves the rest to WebCore Accessibility. And the new patch has more paragraph tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188220</commentid>
    <comment_count>8</comment_count>
      <attachid>277554</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-28 06:12:16 -0700</bug_when>
    <thetext>Comment on attachment 277554
Patch

Clearing flags on attachment: 277554

Committed r200188: &lt;http://trac.webkit.org/changeset/200188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188221</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-28 06:12:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277439</attachid>
            <date>2016-04-26 20:42:58 -0700</date>
            <delta_ts>2016-04-27 17:28:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144639-20160426234327.patch</filename>
            <type>text/plain</type>
            <size>21189</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRjZjI4ZjlkOWMwOWNl
Y2Q3NDk3MWEwMjU3NmQ4NmM5MTFjMTRhZS4uYTdkYzczY2ZjMGMwZjYyMDg4M2QyZDc0ZjU3ODJj
ODA5NjZjOGZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA0LTI2ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBBWDogW0FUS10gV2Ug
bmVlZCB0byBiZSBzbWFydGVyIGFib3V0IGZsYXR0ZW5pbmcgYW5kIHRoZSBhY2Nlc3NpYmxlIHRl
eHQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NDYzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERlZmVyIHRvIFdlYkNvcmUgQWNjZXNzaWJpbGl0eSBtb3JlIHJlZ2FyZGluZyB3
aGVuIHRvIGluY2x1ZGUgYW5vbnltb3VzIGJsb2NrcyBpbiB0aGUKKyAgICAgICAgYWNjZXNzaWJp
bGl0eSB0cmVlLiBFeHBsaWNpdGx5IGZsYXR0ZW4gbWVudSBpdGVtcywgaGVhZGluZ3MsIGxpc3Qg
aXRlbXMsIGFuZCBwYXJhZ3JhcGhzCisgICAgICAgIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBl
eHBlY3RlZCBwbGF0Zm9ybSBiZWhhdmlvciBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIEFs
c28KKyAgICAgICAgbWFwIGFub255bW91cyB0YWJsZSBwYXJ0cyB0byBEaXZSb2xlIHJhdGhlciB0
aGFuIEdyb3VwUm9sZSBmb3IgR1RLIGFuZCBFRkwgYmVjYXVzZSBBVEsKKyAgICAgICAgaGFzIHNl
cGFyYXRlIHJvbGVzIGZvciBnZW5lcmljIHRleHQgYmxvY2sgZWxlbWVudHMgYW5kIG90aGVyIGdl
bmVyaWMgY29udGFpbmVycy4KKworICAgICAgICBUZXN0czogYWNjZXNzaWJpbGl0eS9ndGsvbmVz
dGVkLWJsb2NrLWVsZW1lbnQtY2hpbGRyZW4uaHRtbAorICAgICAgICAgICAgICAgYWNjZXNzaWJp
bGl0eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy10cmVlLmh0bWwKKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5
Um9sZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmls
aXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisKIDIwMTYtMDQtMjYgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBEcm9wIFtVc2VQb2ludGVy
c0V2ZW5Gb3JOb25OdWxsYWJsZU9iamVjdEFyZ3VtZW50c10gZnJvbSBTcGVlY2hTeW50aGVzaXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDgyYzg3ZmI2NTRhZGM4MWU2Zjk3YjVjZjY3YTc2ZTFl
NmNiZGUxMGUuLjYzMzg4NTk5YmE3MWM4YzAwMjQzNTNmZTRmNTc5YjYxN2VkMDQxNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcApAQCAtMjY0OCw3ICsyNjQ4LDggQEAgQWNjZXNzaWJpbGl0eVJvbGUg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQog
ICAgIC8vIHRoZSBjZWxsIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBhIGNlbGwgKGUuZy4gYmVj
YXVzZSBpdCBpcyBhIGxheW91dCB0YWJsZS4KICAgICAvLyBJbiBBVEssIHRoZXJlIGlzIGEgZGlz
dGluY3Rpb24gYmV0d2VlbiBnZW5lcmljIHRleHQgYmxvY2sgZWxlbWVudHMgYW5kIG90aGVyCiAg
ICAgLy8gZ2VuZXJpYyBjb250YWluZXJzOyBBWCBBUEkgZG9lcyBub3QgbWFrZSB0aGlzIGRpc3Rp
bmN0aW9uLgotICAgIGlmIChub2RlICYmIChub2RlLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2Rl
LT5oYXNUYWdOYW1lKHRoVGFnKSkpCisgICAgaWYgKChub2RlICYmIChub2RlLT5oYXNUYWdOYW1l
KHRkVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHRoVGFnKSkpCisgICAgICAgIHx8IChtX3JlbmRl
cmVyLT5pc0Fub255bW91cygpICYmIG1fcmVuZGVyZXItPmlzVGFibGVQYXJ0KCkpKQogI2lmIFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQogICAgICAgICByZXR1cm4gRGl2Um9sZTsKICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCmluZGV4IDkzZDZmNzZlMmJmNzdjYTk5YzUzOGE1M2Qx
ZWYxNTU2MTA0MTlkMTkuLjA3ZDBjMDE1ZWJlZDZiNjU1Y2E3NDY2OTkwM2YyMzkyOGU4ZjRlNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxp
dHlPYmplY3RBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJI
VE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRlckl0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9s
SW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CkBAIC04NSwxNiArODYs
NTIgQEAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc08KICAgICBpZiAoIXJlbmRlck9iamVjdCkKICAg
ICAgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlvcjsKIAotICAgIC8vIFRoZSB0ZXh0IGRpc3BsYXll
ZCBieSBhbiBBUklBIG1lbnUgaXRlbSBpcyBleHBvc2VkIHRocm91Z2ggdGhlIGFjY2Vzc2libGUg
bmFtZS4KLSAgICBpZiAocmVuZGVyT2JqZWN0LT5pc0Fub255bW91c0Jsb2NrKCkgJiYgcGFyZW50
LT5pc01lbnVJdGVtKCkpCi0gICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7CisgICAgLy8gV2Ug
YWx3YXlzIHdhbnQgdG8gaW5jbHVkZSBwYXJhZ3JhcGhzIHRoYXQgaGF2ZSBjaGlsZHJlbi4KKyAg
ICBpZiAocm9sZSA9PSBQYXJhZ3JhcGhSb2xlKQorICAgICAgICByZXR1cm4gcmVuZGVyT2JqZWN0
LT5maXJzdENoaWxkU2xvdygpID8gSW5jbHVkZU9iamVjdCA6IERlZmF1bHRCZWhhdmlvcjsKKwor
ICAgIC8vIEZvciBDU1MgdGFibGVzLCB0aGVyZSBpcyBhIHJlbmRlciB0cmVlIHdpdGggYSBzZXJp
ZXMgb2YgYW5vbnltb3VzIHRhYmxlIHBhcnRzLgorICAgIC8vIFdlIGFsd2F5cyB3YW50IHRvIGlu
Y2x1ZGUgdGhlIGNvbnRhaW5lciBob2xkaW5nIHRoZSBSZW5kZXJUZXh0LgorICAgIGlmIChyZW5k
ZXJPYmplY3QtPmlzQW5vbnltb3VzKCkgJiYgcmVuZGVyT2JqZWN0LT5pc1RhYmxlUGFydCgpKSB7
CisgICAgICAgIGF1dG8gY2hpbGQgPSBjaGlsZHJlbk9mVHlwZTxSZW5kZXJUZXh0Pihkb3duY2Fz
dDxSZW5kZXJFbGVtZW50PigqcmVuZGVyT2JqZWN0KSkuZmlyc3QoKTsKKyAgICAgICAgcmV0dXJu
IGNoaWxkID8gSW5jbHVkZU9iamVjdCA6IERlZmF1bHRCZWhhdmlvcjsKKyAgICB9CisKKyAgICBp
ZiAocmVuZGVyT2JqZWN0LT5pc0Fub255bW91c0Jsb2NrKCkpIHsKKyAgICAgICAgLy8gVGhlIHRl
eHQgZGlzcGxheWVkIGJ5IGFuIEFSSUEgbWVudSBpdGVtIGlzIGV4cG9zZWQgdGhyb3VnaCB0aGUg
YWNjZXNzaWJsZSBuYW1lLgorICAgICAgICBpZiAocGFyZW50LT5pc01lbnVJdGVtKCkpCisgICAg
ICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0OworCisgICAgICAgIC8vIFRoZSB0ZXh0IGRpc3Bs
YXllZCBpbiBoZWFkaW5ncyBpcyB0eXBpY2FsbHkgZXhwb3NlZCBpbiB0aGUgaGVhZGluZyBpdHNl
bGYuCisgICAgICAgIGlmIChwYXJlbnQtPmlzSGVhZGluZygpKQorICAgICAgICAgICAgcmV0dXJu
IElnbm9yZU9iamVjdDsKKworICAgICAgICAvLyBUaGUgdGV4dCBkaXNwbGF5ZWQgaW4gbGlzdCBp
dGVtcyBpcyB0eXBpY2FsbHkgZXhwb3NlZCBpbiB0aGUgbGlzdCBpdGVtIGl0c2VsZi4KKyAgICAg
ICAgaWYgKHBhcmVudC0+aXNMaXN0SXRlbSgpKQorICAgICAgICAgICAgcmV0dXJuIElnbm9yZU9i
amVjdDsKKworICAgICAgICAvLyBUaGUgdGV4dCBkaXNwbGF5ZWQgaW4gbGlua3MgaXMgdHlwaWNh
bGx5IGV4cG9zZWQgaW4gdGhlIGxpbmsgaXRzZWxmLgorICAgICAgICBpZiAocGFyZW50LT5pc0xp
bmsoKSkKKyAgICAgICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7CisKKyAgICAgICAgLy8gRklY
TUU6IFRoaXMgbmV4dCBvbmUgbmVlZHMgc29tZSBmdXJ0aGVyIGNvbnNpZGVyYXRpb24uIEJ1dCBw
YXJhZ3JhcGhzIGFyZSBub3QKKyAgICAgICAgLy8gdHlwaWNhbGx5IGh1Z2UgKGxpa2UgZGl2cyku
IEFuZCBpZ25vcmluZyBhbm9ueW1vdXMgYmxvY2sgY2hpbGRyZW4gb2YgcGFyYWdyYXBocworICAg
ICAgICAvLyB3aWxsIHByZXNlcnZlIGV4aXN0aW5nIGJlaGF2aW9yLgorICAgICAgICBpZiAocGFy
ZW50LT5yb2xlVmFsdWUoKSA9PSBQYXJhZ3JhcGhSb2xlKQorICAgICAgICAgICAgcmV0dXJuIEln
bm9yZU9iamVjdDsKKworICAgICAgICByZXR1cm4gRGVmYXVsdEJlaGF2aW9yOworICAgIH0KKwor
ICAgIE5vZGUqIG5vZGUgPSByZW5kZXJPYmplY3QtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisg
ICAgICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7CiAKICAgICAvLyBXZSBkb24ndCB3YW50IDxz
cGFuPiBlbGVtZW50cyB0byBzaG93IHVwIGluIHRoZSBhY2Nlc3NpYmlsaXR5IGhpZXJhcmNoeSB1
bmxlc3MKICAgICAvLyB3ZSBoYXZlIGdvb2QgcmVhc29ucyBmb3IgdGhhdCAoZS5nLiBmb2N1c2Fi
bGUgb3IgdmlzaWJsZSBiZWNhdXNlIG9mIGNvbnRhaW5pbmcKICAgICAvLyBhIG1lYW5pbmdmdWwg
YWNjZXNzaWJsZSBuYW1lLCBtYXliZSBzZXQgdGhyb3VnaCBBUklBKSwgc28gd2UgY2FuIHVzZQog
ICAgIC8vIGF0a19jb21wb25lbnRfZ3JhYl9mb2N1cygpIHRvIHNldCB0aGUgZm9jdXMgdG8gaXQu
Ci0gICAgTm9kZSogbm9kZSA9IHJlbmRlck9iamVjdC0+bm9kZSgpOwotICAgIGlmIChub2RlICYm
IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzcGFuVGFnKSAmJiAhY2FuU2V0Rm9jdXNBdHRy
aWJ1dGUoKSAmJiAhaGFzQXR0cmlidXRlc1JlcXVpcmVkRm9ySW5jbHVzaW9uKCkpCisgICAgaWYg
KG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzcGFuVGFnKSAmJiAhY2FuU2V0Rm9jdXNBdHRy
aWJ1dGUoKSAmJiAhaGFzQXR0cmlidXRlc1JlcXVpcmVkRm9ySW5jbHVzaW9uKCkpCiAgICAgICAg
IHJldHVybiBJZ25vcmVPYmplY3Q7CiAKICAgICAvLyBJZiB3ZSBpbmNsdWRlIFRleHRDb250cm9s
SW5uZXJUZXh0RWxlbWVudCBjaGlsZHJlbiwgY2hhbmdlcyB0byB0aG9zZSBjaGlsZHJlbgpAQCAt
MTA0LDQxICsxNDEsNiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzTwogICAgIGlmIChpczxUZXh0
Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+KG5vZGUpKQogICAgICAgICByZXR1cm4gSWdub3JlT2Jq
ZWN0OwogCi0gICAgLy8gR2l2ZW4gYSBwYXJhZ3JhcGggb3IgZGl2IGNvbnRhaW5pbmcgYSBub24t
bmVzdGVkIGFub255bW91cyBibG9jaywgV2ViQ29yZQotICAgIC8vIGlnbm9yZXMgdGhlIHBhcmFn
cmFwaCBvciBkaXYgYW5kIGluY2x1ZGVzIHRoZSBibG9jay4gV2Ugd2FudCB0aGUgb3Bwb3NpdGU6
Ci0gICAgLy8gQVRzIGFyZSBleHBlY3RpbmcgYWNjZXNzaWJsZSBvYmplY3RzIGFzc29jaWF0ZWQg
d2l0aCB0ZXh0dWFsIGVsZW1lbnRzLiBUaGV5Ci0gICAgLy8gdXN1YWxseSBoYXZlIG5vIG5lZWQg
Zm9yIHRoZSBhbm9ueW1vdXMgYmxvY2suIEFuZCB3aGVuIHRoZSB3cm9uZyBvYmplY3RzCi0gICAg
Ly8gZ2V0IGluY2x1ZGVkIG9yIGlnbm9yZWQsIG5lZWRlZCBhY2Nlc3NpYmlsaXR5IHNpZ25hbHMg
ZG8gbm90IGdldCBlbWl0dGVkLgotICAgIGlmIChyb2xlID09IFBhcmFncmFwaFJvbGUgfHwgcm9s
ZSA9PSBEaXZSb2xlKSB7Ci0gICAgICAgIC8vIERvbid0IGNhbGwgdGV4dFVuZGVyRWxlbWVudCgp
IGhlcmUsIGJlY2F1c2UgaXQncyBzbG93IGFuZCBpdCBjYW4KLSAgICAgICAgLy8gY3Jhc2ggd2hl
biBjYWxsZWQgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIHN1YnRyZWUgYmVpbmcgZGVs
ZXRlZC4KLSAgICAgICAgaWYgKCFyZW5kZXJPYmplY3QtPmZpcnN0Q2hpbGRTbG93KCkpCi0gICAg
ICAgICAgICByZXR1cm4gRGVmYXVsdEJlaGF2aW9yOwotCi0gICAgICAgIGlmICghcGFyZW50LT5y
ZW5kZXJlcigpIHx8IHBhcmVudC0+cmVuZGVyZXIoKS0+aXNBbm9ueW1vdXNCbG9jaygpKQotICAg
ICAgICAgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlvcjsKLQotICAgICAgICBmb3IgKFJlbmRlck9i
amVjdCogciA9IHJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZFNsb3coKTsgcjsgciA9IHItPm5leHRT
aWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGlmIChyLT5pc0Fub255bW91c0Jsb2NrKCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEluY2x1ZGVPYmplY3Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICAvLyBCbG9jayBzcGFucyByZXN1bHQgaW4gb2JqZWN0cyBvZiBBVEtfUk9MRV9QQU5FTCB3aGlj
aCBhcmUgYWxtb3N0IGFsd2F5cyB1bndhbnRlZC4KLSAgICAvLyBIb3dldmVyLCBpZiB3ZSBpZ25v
cmUgYmxvY2sgc3BhbnMgd2hvc2UgcGFyZW50IGlzIHRoZSBib2R5LCB0aGUgY2hpbGQgY29udHJv
bHMKLSAgICAvLyB3aWxsIGJlY29tZSBpbW1lZGlhdGUgY2hpbGRyZW4gb2YgdGhlIEFUS19ST0xF
X0RPQ1VNRU5UX0ZSQU1FIGFuZCBhbnkgdGV4dCB3aWxsCi0gICAgLy8gYmVjb21lIHRleHQgd2l0
aGluIHRoZSBkb2N1bWVudCBmcmFtZSBpdHNlbGYuIFRoaXMgdWx0aW1hdGVseSBtYXkgYmUgd2hh
dCB3ZSB3YW50Ci0gICAgLy8gYW5kIHdvdWxkIGxhcmdlbHkgYmUgY29uc2lzdGVudCB3aXRoIHdo
YXQgd2Ugc2VlIGZyb20gR2Vja28uIEhvd2V2ZXIsIGlnbm9yaW5nCi0gICAgLy8gc3BhbnMgd2hv
c2UgcGFyZW50IGlzIHRoZSBib2R5IGNoYW5nZXMgdGhlIGN1cnJlbnQgYmVoYXZpb3Igd2Ugc2Vl
IGZyb20gV2ViQ29yZS4KLSAgICAvLyBVbnRpbCB3ZSBoYXZlIHN1ZmZpY2llbnQgdGltZSB0byBw
cm9wZXJseSBhbmFseXplIHRoZXNlIGNhc2VzLCB3ZSB3aWxsIGRlZmVyIHRvCi0gICAgLy8gV2Vi
Q29yZS4gV2Ugb25seSBjaGVjayB0aGF0IHRoZSBwYXJlbnQgaXMgbm90IGFyaWEgYmVjYXVzZSB3
ZSBkbyBub3QgZXhwZWN0Ci0gICAgLy8gYW5vbnltb3VzIGJsb2NrcyB3aGljaCBhcmUgYXJpYS1y
ZWxhdGVkIHRvIHRoZW1zZWx2ZXMgaGF2ZSBhbiBhcmlhIHJvbGUsIG5vcgotICAgIC8vIGhhdmUg
d2UgZW5jb3VudGVyZWQgaW5zdGFuY2VzIHdoZXJlIHRoZSBwYXJlbnQgb2YgYW4gYW5vbnltb3Vz
IGJsb2NrIGFsc28gbGFja2VkCi0gICAgLy8gYW4gYXJpYSByb2xlIGJ1dCB0aGUgZ3JhbmRwYXJl
bnQgaGFkIG9uZS4KLSAgICBpZiAocmVuZGVyT2JqZWN0ICYmIHJlbmRlck9iamVjdC0+aXNBbm9u
eW1vdXNCbG9jaygpICYmICFwYXJlbnQtPnJlbmRlcmVyKCktPmlzQm9keSgpCi0gICAgICAgICYm
IHBhcmVudC0+YXJpYVJvbGVBdHRyaWJ1dGUoKSA9PSBVbmtub3duUm9sZSkKLSAgICAgICAgcmV0
dXJuIElnbm9yZU9iamVjdDsKLQogICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBlYjk2ZjhmYWE2MjE1MjE2Njc0MmQ1MmNkOWU1NzM0MDE2Mjk3MzIyLi5mMmQ0MDE4ZDlh
ODlmZjNlNGQ4N2Y5MjA4YzdiNWU5OWNjNjBhNWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MTYtMDQtMjYgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IEFYOiBbQVRLXSBXZSBuZWVkIHRvIGJlIHNtYXJ0ZXIgYWJvdXQgZmxhdHRlbmluZyBhbmQgdGhl
IGFjY2Vzc2libGUgdGV4dCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHdvIG5ldyB0ZXN0cyBhbmQgdXBkYXRlZCB0
aHJlZSBleGlzdGluZyB0ZXN0cyB0byByZWZsZWN0IHRoZSBuZXcgYmVoYXZpb3IKKyAgICAgICAg
cmVnYXJkaW5nIGluY2x1c2lvbiBvZiBlbGVtZW50cyBpbiB0aGUgYWNjZXNzaWJpbGl0eSB0cmVl
IGFuZCB0aGUgdGV4dCB2YWx1ZSBvZgorICAgICAgICBpbmNsdWRlZCBlbGVtZW50cy4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL25lc3RlZC1ibG9jay1lbGVtZW50LWNoaWxkcmVuLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvbmVzdGVkLWJs
b2NrLWVsZW1lbnQtY2hpbGRyZW4uaHRtbDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZm9y
IG5ldyBiZWhhdmlvci4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9zcGFucy1wYXJhZ3Jh
cGhzLWFuZC1kaXZzLXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLXRyZWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy5odG1s
OiBVcGRhdGVkIGZvciBuZXcgYmVoYXZpb3IuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvZ2VuZXJhdGVkLWNvbnRlbnQtd2l0aC1kaXNwbGF5LXRhYmxlLWNyYXNoLWV4cGVj
dGVkLnR4dDogVXBkYXRlZCBmb3IgbmV3IGJlaGF2aW9yLgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2d0ay9yZXBsYWNlZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3Mt
ZXhwZWN0ZWQudHh0OiBVcGRhdGVkIGZvciBuZXcgYmVoYXZpb3IuCisKIDIwMTYtMDQtMjYgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMDAwODMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2d0ay9uZXN0ZWQtYmxvY2stZWxlbWVudC1jaGlsZHJlbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9uZXN0ZWQtYmxvY2stZWxlbWVudC1jaGlsZHJl
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM4NmI5MmZkNmM0MTQyOTQxZmRhZmUyYmIyOGU0
NmQ5ZTY3MWZjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
Z3RrL25lc3RlZC1ibG9jay1lbGVtZW50LWNoaWxkcmVuLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYwIEBACitJbmxpbmUgc3BhbgorRm9vCisKK0JhcgorCitIZWxsbyB3b3JsZAorCitCbG9jayBz
cGFuCitGb28KKworQmFyCisKK0hlbGxvIHdvcmxkCisKK0lubGluZSB0ZXh0CitGb28KKworRm9v
CisKK0JhcgorCitIZWxsbyB3b3JsZAorCitGb28KKworQmFyCisKK0hlbGxvIHdvcmxkCisKK0Vu
ZCBvZiB0ZXN0CitBWFJvbGU6IEFYV2ViQXJlYSAKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZh
bHVlOiBJbmxpbmUgc3BhbgorICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFsdWU6IEZvbworICAg
ICAgICBBWFJvbGU6IEFYTGluayBBWFZhbHVlOiBGb28KKyAgICBBWFJvbGU6IEFYSGVhZGluZyBB
WFZhbHVlOiBCYXIKKyAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFYVmFsdWU6IEhlbGxvIHdvcmxk
CisgICAgQVhSb2xlOiBBWEhlYWRpbmcgQVhWYWx1ZTogRm9vCisgICAgICAgIEFYUm9sZTogQVhM
aW5rIEFYVmFsdWU6IEZvbworICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFsdWU6IEJhcgorICAg
IEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogSGVsbG8gd29ybGQKKyAgICBBWFJvbGU6IEFY
U2VjdGlvbiBBWFZhbHVlOiBJbmxpbmUgdGV4dAorICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFs
dWU6IEZvbworICAgICAgICBBWFJvbGU6IEFYTGluayBBWFZhbHVlOiBGb28KKyAgICBBWFJvbGU6
IEFYSGVhZGluZyBBWFZhbHVlOiBGb28KKyAgICBBWFJvbGU6IEFYSGVhZGluZyBBWFZhbHVlOiBC
YXIKKyAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFYVmFsdWU6IEhlbGxvIHdvcmxkCisgICAgQVhS
b2xlOiBBWEhlYWRpbmcgQVhWYWx1ZTogRm9vCisgICAgICAgIEFYUm9sZTogQVhMaW5rIEFYVmFs
dWU6IEZvbworICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFsdWU6IEJhcgorICAgIEFYUm9sZTog
QVhQYXJhZ3JhcGggQVhWYWx1ZTogSGVsbG8gd29ybGQKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBB
WFZhbHVlOiBFbmQgb2YgdGVzdAorVGhpcyB2ZXJpZmllcyB0aGUgYWNjZXNzaWJpbGl0eSB0cmVl
IHdoZW4gdGhlcmUgYXJlIG5lc3RlZCBibG9jayBlbGVtZW50IGNoaWxkcmVuLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
Z3RrL25lc3RlZC1ibG9jay1lbGVtZW50LWNoaWxkcmVuLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2d0ay9uZXN0ZWQtYmxvY2stZWxlbWVudC1jaGlsZHJlbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFhNTQwYjYzYjIyMTExYTUwNzY2M2ZkZjU3MDE1YjgwNGE4OGJlNjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9uZXN0ZWQtYmxvY2stZWxlbWVu
dC1jaGlsZHJlbi5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
W2NsYXNzKj0iZm9vIl06YWZ0ZXIgeyBjb250ZW50OiAiISI7IH0KK1tjbGFzcyo9ImJhciJdOmFm
dGVyIHsgY29udGVudDogIiEiOyBkaXNwbGF5OiB0YWJsZTsgfQorW2NsYXNzKj0iYmF6Il06YWZ0
ZXIgeyBkaXNwbGF5OiB0YWJsZTsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKyAgPGRpdj4KKyAgICA8c3Bhbj5JbmxpbmUgc3Bhbjwvc3Bhbj4KKyAgICA8aDE+PGEgaHJl
Zj0iZm9vIj5Gb288L2E+PC9oMT4KKyAgICA8aDI+QmFyPC9oMj4KKyAgICA8cD5IZWxsbyB3b3Js
ZDwvcD4KKyAgPC9kaXY+CisKKyAgPGRpdj4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTpibG9j
azsiPkJsb2NrIHNwYW48L3NwYW4+CisgICAgPGgxPjxhIGhyZWY9ImZvbyI+Rm9vPC9hPjwvaDE+
CisgICAgPGgyPkJhcjwvaDI+CisgICAgPHA+SGVsbG8gd29ybGQ8L3A+CisgIDwvZGl2PgorCisg
IDxkaXY+CisgICAgSW5saW5lIHRleHQKKyAgICA8aDE+PGEgaHJlZj0iZm9vIj5Gb288L2E+PC9o
MT4KKyAgICA8aDE+Rm9vPC9oMT4KKyAgICA8aDI+QmFyPC9oMj4KKyAgICA8cD5IZWxsbyB3b3Js
ZDwvcD4KKyAgPC9kaXY+CisKKyAgPGRpdj4KKyAgICA8aDE+PGEgaHJlZj0iZm9vIj5Gb288L2E+
PC9oMT4KKyAgICA8aDI+QmFyPC9oMj4KKyAgICA8cD5IZWxsbyB3b3JsZDwvcD4KKyAgPC9kaXY+
CisKKzwvZGl2PgorPGRpdiBpZD0ic3RvcEVsZW1lbnQiPkVuZCBvZiB0ZXN0PC9kaXY+Cis8cHJl
IGlkPSJ0cmVlIj48L3ByZT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUaGlzIHZlcmlmaWVzIHRo
ZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiB0aGVyZSBhcmUgbmVzdGVkIGJsb2NrIGVsZW1lbnQg
Y2hpbGRyZW4uIik7CisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewor
ICAgICAgICBkb2N1bWVudC5ib2R5LmZvY3VzKCk7CisgICAgICAgIHZhciBzdG9wRWxlbWVudCA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgic3RvcEVsZW1l
bnQiKTsKKyAgICAgICAgZHVtcEFjY2Vzc2liaWxpdHlUcmVlKGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmZvY3VzZWRFbGVtZW50LCBzdG9wRWxlbWVudCwgMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0
ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGZiOTk0Nzc0NWQ3Y2U2ZjYwOWU0ZTlmNWRlYTRhZmUwN2NjNjZjM2MuLmEzYjUwNWZhODMw
YjNjMzA3NGVlNzQzMzE3MmI3ZGM0MjQxZDMxMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRp
dnMtZXhwZWN0ZWQudHh0CkBAIC0zNCwxMCArMzQsOCBAQCBQQVNTIGxpbmsucm9sZSBpcyAnQVhS
b2xlOiBBWExpbmsnCiBQQVNTIGxpbmsuY2hpbGRyZW5Db3VudCBpcyAwCiBQQVNTIGVsZW1lbnQu
cm9sZSBpcyAnQVhSb2xlOiBBWFBhcmFncmFwaCcKIFBBU1MgZWxlbWVudC5jaGlsZHJlbkNvdW50
IGlzIDAKLVBBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IEFYU2VjdGlvbicKLVBBU1MgZWxl
bWVudC5jaGlsZHJlbkNvdW50IGlzIDEKLVBBU1MgbGluay5yb2xlIGlzICdBWFJvbGU6IEFYTGlu
aycKLVBBU1MgbGluay5jaGlsZHJlbkNvdW50IGlzIDAKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdB
WFJvbGU6IEFYTGluaycKK1BBU1MgZWxlbWVudC5jaGlsZHJlbkNvdW50IGlzIDAKIFBBU1MgZWxl
bWVudC5yb2xlIGlzICdBWFJvbGU6IEFYU2VjdGlvbicKIFBBU1MgZWxlbWVudC5jaGlsZHJlbkNv
dW50IGlzIDAKIFBBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IEFYU2VjdGlvbicKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5k
LWRpdnMtdHJlZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9z
cGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLXRyZWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAw
NTMyNTI3ZjQ0NDkzMWQ3NzZhNWZmNDNiOTY4ZDM2ZmJiMzYxMjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZz
LXRyZWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDIgQEAKK0Jsb2NrIHNwYW4gaW4gYSBsaW5r
IGluIGEgcGFyYWdyYXBoCitJbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGgKKwor
QmxvY2sgc3BhbiBpbiBhIHBhcmFncmFwaAorSW5saW5lIHNwYW4gaW4gYSBwYXJhZ3JhcGgKKwor
SW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgcGFyYWdyYXBoCitCbG9jayBzcGFuIGluIGEgbGlu
ayBpbiBhIHBhcmFncmFwaAorCitJbmxpbmUgc3BhbiBpbiBhIHBhcmFncmFwaAorQmxvY2sgc3Bh
biBpbiBhIHBhcmFncmFwaAorQmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBkaXYKK0lubGluZSBz
cGFuIGluIGEgbGluayBpbiBhIGRpdgorQmxvY2sgc3BhbiBpbiBhIGRpdgorSW5saW5lIHNwYW4g
aW4gYSBkaXYKK0lubGluZSBzcGFuIGluIGEgbGluayBpbiBhIGRpdgorQmxvY2sgc3BhbiBpbiBh
IGxpbmsgaW4gYSBkaXYKK0lubGluZSBzcGFuIGluIGEgZGl2CitCbG9jayBzcGFuIGluIGEgZGl2
CitFbmQgb2YgdGVzdAorQVhSb2xlOiBBWFdlYkFyZWEgCisgICAgQVhSb2xlOiBBWFBhcmFncmFw
aCBBWFZhbHVlOiBCbG9jayBzcGFuIGluIGEgbGluayBpbiBhIHBhcmFncmFwaDxcbj5JbmxpbmUg
c3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGgKKyAgICAgICAgQVhSb2xlOiBBWExpbmsgQVhW
YWx1ZTogQmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8XG4+SW5saW5lIHNwYW4g
aW4gYSBsaW5rIGluIGEgcGFyYWdyYXBoCisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVl
OiBCbG9jayBzcGFuIGluIGEgcGFyYWdyYXBoPFxuPklubGluZSBzcGFuIGluIGEgcGFyYWdyYXBo
CisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBJbmxpbmUgc3BhbiBpbiBhIGxpbmsg
aW4gYSBwYXJhZ3JhcGg8XG4+QmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8XG4+
CisgICAgICAgIEFYUm9sZTogQVhMaW5rIEFYVmFsdWU6IElubGluZSBzcGFuIGluIGEgbGluayBp
biBhIHBhcmFncmFwaDxcbj5CbG9jayBzcGFuIGluIGEgbGluayBpbiBhIHBhcmFncmFwaDxcbj4K
KyAgICBBWFJvbGU6IEFYUGFyYWdyYXBoIEFYVmFsdWU6IElubGluZSBzcGFuIGluIGEgcGFyYWdy
YXBoPFxuPkJsb2NrIHNwYW4gaW4gYSBwYXJhZ3JhcGg8XG4+CisgICAgQVhSb2xlOiBBWExpbmsg
QVhWYWx1ZTogQmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBkaXY8XG4+SW5saW5lIHNwYW4gaW4g
YSBsaW5rIGluIGEgZGl2CisgICAgQVhSb2xlOiBBWFNlY3Rpb24gQVhWYWx1ZTogSW5saW5lIHNw
YW4gaW4gYSBkaXYKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiBJbmxpbmUgc3BhbiBp
biBhIGxpbmsgaW4gYSBkaXY8XG4+QmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBkaXY8XG4+Cisg
ICAgICAgIEFYUm9sZTogQVhMaW5rIEFYVmFsdWU6IElubGluZSBzcGFuIGluIGEgbGluayBpbiBh
IGRpdjxcbj5CbG9jayBzcGFuIGluIGEgbGluayBpbiBhIGRpdjxcbj4KKyAgICBBWFJvbGU6IEFY
U2VjdGlvbiBBWFZhbHVlOiBJbmxpbmUgc3BhbiBpbiBhIGRpdgorICAgIEFYUm9sZTogQVhTZWN0
aW9uIEFYVmFsdWU6IEVuZCBvZiB0ZXN0CitUaGlzIHZlcmlmaWVzIHRoZSBhY2Nlc3NpYmlsaXR5
IHRyZWUgb2Ygc3BhbnMsIHBhcmFncmFwaHMsIGFuZCBkaXZzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5z
LXBhcmFncmFwaHMtYW5kLWRpdnMtdHJlZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M1
MWZkODkxY2E2YTBhMjE5ZjEwMzM5NzNhMjE1MTlmNTE4NGE2ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMt
dHJlZS5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
aWQ9ImJvZHkiPgorICA8cD4KKyAgICA8YSBocmVmPSdmb28nPgorICAgICAgIDxzcGFuIHN0eWxl
PSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8L3Nw
YW4+CisgICAgICAgPHNwYW4+SW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgcGFyYWdyYXBoPC9z
cGFuPgorICAgIDwvYT4KKyAgPC9wPgorICA8cD4KKyAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTpi
bG9jazsnPkJsb2NrIHNwYW4gaW4gYSBwYXJhZ3JhcGg8L3NwYW4+CisgICAgPHNwYW4+SW5saW5l
IHNwYW4gaW4gYSBwYXJhZ3JhcGg8L3NwYW4+CisgIDwvcD4KKyAgPHA+CisgICAgPGEgaHJlZj0n
Zm9vJz4KKyAgICAgICA8c3Bhbj5JbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8
L3NwYW4+CisgICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6YmxvY2s7Jz5CbG9jayBzcGFuIGlu
IGEgbGluayBpbiBhIHBhcmFncmFwaDwvc3Bhbj4KKyAgICA8L2E+CisgIDwvcD4KKyAgPHA+Cisg
ICAgPHNwYW4+SW5saW5lIHNwYW4gaW4gYSBwYXJhZ3JhcGg8L3NwYW4+CisgICAgPHNwYW4gc3R5
bGU9J2Rpc3BsYXk6YmxvY2s7Jz5CbG9jayBzcGFuIGluIGEgcGFyYWdyYXBoPC9zcGFuPgorICA8
L3A+CisgIDxkaXY+CisgICAgPGEgaHJlZj0nZm9vJz4KKyAgICAgICA8c3BhbiBzdHlsZT0nZGlz
cGxheTpibG9jazsnPkJsb2NrIHNwYW4gaW4gYSBsaW5rIGluIGEgZGl2PC9zcGFuPgorICAgICAg
IDxzcGFuPklubGluZSBzcGFuIGluIGEgbGluayBpbiBhIGRpdjwvc3Bhbj4KKyAgICA8L2E+Cisg
IDwvZGl2PgorICA8ZGl2PgorICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sg
c3BhbiBpbiBhIGRpdjwvc3Bhbj4KKyAgICA8c3Bhbj5JbmxpbmUgc3BhbiBpbiBhIGRpdjwvc3Bh
bj4KKyAgPC9kaXY+CisgIDxkaXY+CisgICAgPGEgaHJlZj0nZm9vJz4KKyAgICAgICA8c3Bhbj5J
bmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBkaXY8L3NwYW4+CisgICAgICAgPHNwYW4gc3R5bGU9
J2Rpc3BsYXk6YmxvY2s7Jz5CbG9jayBzcGFuIGluIGEgbGluayBpbiBhIGRpdjwvc3Bhbj4KKyAg
ICA8L2E+CisgIDwvZGl2PgorICA8ZGl2PgorICAgIDxzcGFuPklubGluZSBzcGFuIGluIGEgZGl2
PC9zcGFuPgorICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBh
IGRpdjwvc3Bhbj4KKyAgPC9kaXY+CisKKzxkaXYgaWQ9InN0b3BFbGVtZW50Ij5FbmQgb2YgdGVz
dDwvZGl2PgorPHByZSBpZD0idHJlZSI+PC9wcmU+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhp
cyB2ZXJpZmllcyB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIG9mIHNwYW5zLCBwYXJhZ3JhcGhzLCBh
bmQgZGl2cy4iKTsKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTsKKyAgICAgICAgdmFyIHN0b3BFbGVtZW50ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJzdG9wRWxlbWVu
dCIpOworICAgICAgICBkdW1wQWNjZXNzaWJpbGl0eVRyZWUoYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZm9jdXNlZEVsZW1lbnQsIHN0b3BFbGVtZW50LCAwKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3Rr
L3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMuaHRtbAppbmRleCBkYzA0ZGQ3YjRkMjc4
MjI3YTJmMzEzZTliZGIyNjgyZjUxMjQxNzVjLi42Y2MyMzU4YzU4NjZhOTk0OWUxYTBhZTc1NTAx
N2IyZjE1MjI4NTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9z
cGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy5odG1sCkBAIC04MywxMiArODMsOCBA
QCBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CiAgICAgc2hvdWxkQmUoImVs
ZW1lbnQuY2hpbGRyZW5Db3VudCIsICIwIik7CiAKICAgICBlbGVtZW50ID0gd2ViQXJlYS5jaGls
ZEF0SW5kZXgoNCk7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiBBWFNl
Y3Rpb24nIik7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnQuY2hpbGRyZW5Db3VudCIsICIxIik7Ci0K
LSAgICBsaW5rID0gZWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7Ci0gICAgc2hvdWxkQmUoImxpbmsu
cm9sZSIsICInQVhSb2xlOiBBWExpbmsnIik7Ci0gICAgc2hvdWxkQmUoImxpbmsuY2hpbGRyZW5D
b3VudCIsICIwIik7CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiBBWExp
bmsnIik7CisgICAgc2hvdWxkQmUoImVsZW1lbnQuY2hpbGRyZW5Db3VudCIsICIwIik7CiAKICAg
ICBlbGVtZW50ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoNSk7CiAgICAgc2hvdWxkQmUoImVsZW1l
bnQucm9sZSIsICInQVhSb2xlOiBBWFNlY3Rpb24nIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9nZW5lcmF0ZWQtY29udGVudC13aXRoLWRpc3Bs
YXktdGFibGUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvZ2VuZXJhdGVkLWNvbnRlbnQtd2l0aC1kaXNwbGF5LXRhYmxlLWNyYXNoLWV4
cGVjdGVkLnR4dAppbmRleCBlZjkzN2Q3ZDliMDNjYjAyZWIxODMyNjcwYjZjOGU4NTc4NDVlNTAw
Li44Mjk4NWNjNjI3MWQ1MDEwMzE0MTU5NTVlZjJjNTYzYzA0ZWFmMGFiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9nZW5lcmF0ZWQtY29udGVudC13
aXRoLWRpc3BsYXktdGFibGUtY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2dlbmVyYXRlZC1jb250ZW50LXdpdGgtZGlzcGxheS10
YWJsZS1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw4IEBAIGJhegogRW5kIG9mIHRlc3QK
IEFYUm9sZTogQVhXZWJBcmVhIAogICAgIEFYUm9sZTogQVhTZWN0aW9uIEFYVmFsdWU6IGZvbyAh
Ci0gICAgQVhSb2xlOiBBWFNlY3Rpb24gQVhWYWx1ZTogYmFyICEKKyAgICBBWFJvbGU6IEFYU2Vj
dGlvbiBBWFZhbHVlOiBiYXIKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiAhCiAgICAg
QVhSb2xlOiBBWFNlY3Rpb24gQVhWYWx1ZTogYmF6CiAgICAgQVhSb2xlOiBBWFNlY3Rpb24gQVhW
YWx1ZTogRW5kIG9mIHRlc3QKIFRoaXMgdmVyaWZpZXMgdGhhdCBnZXR0aW5nIGNvbnRlbnQgb2Yg
YW4gZWxlbWVudCB3aXRoIGdlbmVyYXRlZCBjb250ZW50IGluIENTUyB0YWJsZSBkb2Vzbid0IGNh
dXNlIGEgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNz
aWJpbGl0eS9ndGsvcmVwbGFjZWQtb2JqZWN0cy1pbi1hbm9ueW1vdXMtYmxvY2tzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2d0ay9yZXBsYWNl
ZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MtZXhwZWN0ZWQudHh0CmluZGV4IDg4YjJlNWE1
ZDkxNmJjY2MwNDJkNDU0YTRhODkxZTI5MGZlNTUzOTYuLmE4YmU5ZTc1MmZkNjIwNDUzYWExMDNh
NjcxMmNiZTRkYmU2MTNhZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2d0ay9yZXBsYWNlZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2d0
ay9yZXBsYWNlZC1vYmplY3RzLWluLWFub255bW91cy1ibG9ja3MtZXhwZWN0ZWQudHh0CkBAIC0y
MCw3ICsyMCw4IEBAIEFYUm9sZTogQVhXZWJBcmVhCiAgICAgICAgICAgICAgICAgQVhSb2xlOiBB
WFdlYkFyZWEgCiAgICAgQVhSb2xlOiBBWFNlY3Rpb24gQVhWYWx1ZTogPG9iaj4KICAgICAgICAg
QVhSb2xlOiBBWFRleHRGaWVsZCBBWFZhbHVlOiB0ZXh0IGFyZWEKLSAgICBBWFJvbGU6IEFYU2Vj
dGlvbiBBWFZhbHVlOiBEaXY8XG4+PG9iaj4KKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVl
OiBEaXYKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiA8b2JqPgogICAgICAgICBBWFJv
bGU6IEFYQnV0dG9uIAogICAgIEFYUm9sZTogQVhIZWFkaW5nIEFYVmFsdWU6IEhlYWRpbmc8XG4+
PG9iaj48XG4+PG9iaj4KICAgICAgICAgQVhSb2xlOiBBWEJ1dHRvbiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277554</attachid>
            <date>2016-04-27 17:28:09 -0700</date>
            <delta_ts>2016-04-28 06:12:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144639-20160427202839.patch</filename>
            <type>text/plain</type>
            <size>22796</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUyMWU5ODUwMzdmN2Ji
ZjhlNDY2MDA1ZDRjMTA1MTQxNWUxMTNmMy4uYjFhMTg0NTAwYWE3ZDQyZDY5Nzk4ZDg3MTFlZTM4
YjhmMGU4NmYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA0LTI3ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBBWDogW0FUS10gV2Ug
bmVlZCB0byBiZSBzbWFydGVyIGFib3V0IGZsYXR0ZW5pbmcgYW5kIHRoZSBhY2Nlc3NpYmxlIHRl
eHQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NDYzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERlZmVyIHRvIFdlYkNvcmUgQWNjZXNzaWJpbGl0eSBtb3JlIHJlZ2FyZGluZyB3
aGVuIHRvIGluY2x1ZGUgYW5vbnltb3VzIGJsb2NrcyBpbiB0aGUKKyAgICAgICAgYWNjZXNzaWJp
bGl0eSB0cmVlLiBFeHBsaWNpdGx5IGZsYXR0ZW4gbWVudSBpdGVtcywgaGVhZGluZ3MsIGxpc3Qg
aXRlbXMsIGFuZCBwYXJhZ3JhcGhzCisgICAgICAgIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBl
eHBlY3RlZCBwbGF0Zm9ybSBiZWhhdmlvciBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIEFs
c28KKyAgICAgICAgbWFwIGFub255bW91cyB0YWJsZSBwYXJ0cyB0byBEaXZSb2xlIHJhdGhlciB0
aGFuIEdyb3VwUm9sZSBmb3IgR1RLIGFuZCBFRkwgYmVjYXVzZSBBVEsKKyAgICAgICAgaGFzIHNl
cGFyYXRlIHJvbGVzIGZvciBnZW5lcmljIHRleHQgYmxvY2sgZWxlbWVudHMgYW5kIG90aGVyIGdl
bmVyaWMgY29udGFpbmVycy4KKworICAgICAgICBUZXN0czogYWNjZXNzaWJpbGl0eS9ndGsvbmVz
dGVkLWJsb2NrLWVsZW1lbnQtY2hpbGRyZW4uaHRtbAorICAgICAgICAgICAgICAgYWNjZXNzaWJp
bGl0eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy10cmVlLmh0bWwKKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5
Um9sZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmls
aXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisKIDIwMTYtMDQtMjcgIEh1bnNlb3AgSmVvbmcg
IDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW0dUS10gVm9sdW1lIHNs
aWRlciBvbmx5IGNoYW5nZXMgdm9sdW1lIHdoZW4gdGh1bWIgaXMgcmVsZWFzZWQsIG5vdCB3aGls
ZSBkcmFnZ2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggODJjODdmYjY1NGFkYzgxZTZmOTdi
NWNmNjdhNzZlMWU2Y2JkZTEwZS4uMzZkYTgzOTc5NThmYWZiMzM5MzgxZWYxYjQ4NGUxYWNlZWI5
OTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC04Niw2ICs4Niw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyTWVudUxpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAi
UmVuZGVyU1ZHU2hhcGUuaCIKKyNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRl
ICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRl
ICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKQEAgLTI2NDgsNyArMjY0OSw3IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKCkKICAgICAvLyB0aGUgY2VsbCBzaG91bGQgbm90IGJlIHRyZWF0ZWQgYXMg
YSBjZWxsIChlLmcuIGJlY2F1c2UgaXQgaXMgYSBsYXlvdXQgdGFibGUuCiAgICAgLy8gSW4gQVRL
LCB0aGVyZSBpcyBhIGRpc3RpbmN0aW9uIGJldHdlZW4gZ2VuZXJpYyB0ZXh0IGJsb2NrIGVsZW1l
bnRzIGFuZCBvdGhlcgogICAgIC8vIGdlbmVyaWMgY29udGFpbmVyczsgQVggQVBJIGRvZXMgbm90
IG1ha2UgdGhpcyBkaXN0aW5jdGlvbi4KLSAgICBpZiAobm9kZSAmJiAobm9kZS0+aGFzVGFnTmFt
ZSh0ZFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0aFRhZykpKQorICAgIGlmIChpczxSZW5kZXJU
YWJsZUNlbGw+KG1fcmVuZGVyZXIpKQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZM
KQogICAgICAgICByZXR1cm4gRGl2Um9sZTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCmlu
ZGV4IDkzZDZmNzZlMmJmNzdjYTk5YzUzOGE1M2QxZWYxNTU2MTA0MTlkMTkuLjg0NjY4ZTJlMjAw
MTMxYTE2ZmQxNzRkMzczNzlkMDEyMjgzY2Y3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBA
IC0yMSw4ICsyMSwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlPYmplY3QuaCIKIAotI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFNwYW5FbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVy
QmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKKyNpbmNsdWRlICJSZW5kZXJJdGVy
YXRvci5oIgorI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRl
eHQuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKICNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgpAQCAtODUsMTYgKzg4LDU3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNs
dXNpb24gQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNP
CiAgICAgaWYgKCFyZW5kZXJPYmplY3QpCiAgICAgICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7
CiAKLSAgICAvLyBUaGUgdGV4dCBkaXNwbGF5ZWQgYnkgYW4gQVJJQSBtZW51IGl0ZW0gaXMgZXhw
b3NlZCB0aHJvdWdoIHRoZSBhY2Nlc3NpYmxlIG5hbWUuCi0gICAgaWYgKHJlbmRlck9iamVjdC0+
aXNBbm9ueW1vdXNCbG9jaygpICYmIHBhcmVudC0+aXNNZW51SXRlbSgpKQotICAgICAgICByZXR1
cm4gSWdub3JlT2JqZWN0OworICAgIC8vIFdlIGFsd2F5cyB3YW50IHRvIGluY2x1ZGUgcGFyYWdy
YXBocyB0aGF0IGhhdmUgcmVuZGVyZWQgY29udGVudC4KKyAgICAvLyBXZWJDb3JlIEFjY2Vzc2li
aWxpdHkgZG9lcyBzbyB1bmxlc3MgdGhlcmUgaXMgYSBSZW5kZXJCbG9jayBjaGlsZC4KKyAgICBp
ZiAocm9sZSA9PSBQYXJhZ3JhcGhSb2xlKSB7CisgICAgICAgIGF1dG8gY2hpbGQgPSBjaGlsZHJl
bk9mVHlwZTxSZW5kZXJCbG9jaz4oZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnJlbmRlck9iamVj
dCkpLmZpcnN0KCk7CisgICAgICAgIHJldHVybiBjaGlsZCA/IEluY2x1ZGVPYmplY3QgOiBEZWZh
dWx0QmVoYXZpb3I7CisgICAgfQorCisgICAgLy8gV2UgYWx3YXlzIHdhbnQgdG8gaW5jbHVkZSB0
YWJsZSBjZWxscyAobGF5b3V0IGFuZCBDU1MpIHRoYXQgaGF2ZSByZW5kZXJlZCB0ZXh0IGNvbnRl
bnQuCisgICAgaWYgKGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyT2JqZWN0KSkgeworICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyT2JqZWN0Pihk
b3duY2FzdDxSZW5kZXJFbGVtZW50PigqcmVuZGVyT2JqZWN0KSkpIHsKKyAgICAgICAgICAgIGlm
IChpczxSZW5kZXJJbmxpbmU+KGNoaWxkKSB8fCBpczxSZW5kZXJUZXh0PihjaGlsZCkgfHwgaXM8
SFRNTFNwYW5FbGVtZW50PihjaGlsZC5ub2RlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBJ
bmNsdWRlT2JqZWN0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7
CisgICAgfQorCisgICAgaWYgKHJlbmRlck9iamVjdC0+aXNBbm9ueW1vdXNCbG9jaygpKSB7Cisg
ICAgICAgIC8vIFRoZSB0ZXh0IGRpc3BsYXllZCBieSBhbiBBUklBIG1lbnUgaXRlbSBpcyBleHBv
c2VkIHRocm91Z2ggdGhlIGFjY2Vzc2libGUgbmFtZS4KKyAgICAgICAgaWYgKHBhcmVudC0+aXNN
ZW51SXRlbSgpKQorICAgICAgICAgICAgcmV0dXJuIElnbm9yZU9iamVjdDsKKworICAgICAgICAv
LyBUaGUgdGV4dCBkaXNwbGF5ZWQgaW4gaGVhZGluZ3MgaXMgdHlwaWNhbGx5IGV4cG9zZWQgaW4g
dGhlIGhlYWRpbmcgaXRzZWxmLgorICAgICAgICBpZiAocGFyZW50LT5pc0hlYWRpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7CisKKyAgICAgICAgLy8gVGhlIHRleHQgZGlz
cGxheWVkIGluIGxpc3QgaXRlbXMgaXMgdHlwaWNhbGx5IGV4cG9zZWQgaW4gdGhlIGxpc3QgaXRl
bSBpdHNlbGYuCisgICAgICAgIGlmIChwYXJlbnQtPmlzTGlzdEl0ZW0oKSkKKyAgICAgICAgICAg
IHJldHVybiBJZ25vcmVPYmplY3Q7CisKKyAgICAgICAgLy8gVGhlIHRleHQgZGlzcGxheWVkIGlu
IGxpbmtzIGlzIHR5cGljYWxseSBleHBvc2VkIGluIHRoZSBsaW5rIGl0c2VsZi4KKyAgICAgICAg
aWYgKHBhcmVudC0+aXNMaW5rKCkpCisgICAgICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0Owor
CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG5leHQgb25lIG5lZWRzIHNvbWUgZnVydGhlciBjb25z
aWRlcmF0aW9uLiBCdXQgcGFyYWdyYXBocyBhcmUgbm90CisgICAgICAgIC8vIHR5cGljYWxseSBo
dWdlIChsaWtlIGRpdnMpLiBBbmQgaWdub3JpbmcgYW5vbnltb3VzIGJsb2NrIGNoaWxkcmVuIG9m
IHBhcmFncmFwaHMKKyAgICAgICAgLy8gd2lsbCBwcmVzZXJ2ZSBleGlzdGluZyBiZWhhdmlvci4K
KyAgICAgICAgaWYgKHBhcmVudC0+cm9sZVZhbHVlKCkgPT0gUGFyYWdyYXBoUm9sZSkKKyAgICAg
ICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7CisKKyAgICAgICAgcmV0dXJuIERlZmF1bHRCZWhh
dmlvcjsKKyAgICB9CisKKyAgICBOb2RlKiBub2RlID0gcmVuZGVyT2JqZWN0LT5ub2RlKCk7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gRGVmYXVsdEJlaGF2aW9yOwogCiAgICAgLy8g
V2UgZG9uJ3Qgd2FudCA8c3Bhbj4gZWxlbWVudHMgdG8gc2hvdyB1cCBpbiB0aGUgYWNjZXNzaWJp
bGl0eSBoaWVyYXJjaHkgdW5sZXNzCiAgICAgLy8gd2UgaGF2ZSBnb29kIHJlYXNvbnMgZm9yIHRo
YXQgKGUuZy4gZm9jdXNhYmxlIG9yIHZpc2libGUgYmVjYXVzZSBvZiBjb250YWluaW5nCiAgICAg
Ly8gYSBtZWFuaW5nZnVsIGFjY2Vzc2libGUgbmFtZSwgbWF5YmUgc2V0IHRocm91Z2ggQVJJQSks
IHNvIHdlIGNhbiB1c2UKICAgICAvLyBhdGtfY29tcG9uZW50X2dyYWJfZm9jdXMoKSB0byBzZXQg
dGhlIGZvY3VzIHRvIGl0LgotICAgIE5vZGUqIG5vZGUgPSByZW5kZXJPYmplY3QtPm5vZGUoKTsK
LSAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c3BhblRhZykgJiYg
IWNhblNldEZvY3VzQXR0cmlidXRlKCkgJiYgIWhhc0F0dHJpYnV0ZXNSZXF1aXJlZEZvckluY2x1
c2lvbigpKQorICAgIGlmIChpczxIVE1MU3BhbkVsZW1lbnQ+KG5vZGUpICYmICFjYW5TZXRGb2N1
c0F0dHJpYnV0ZSgpICYmICFoYXNBdHRyaWJ1dGVzUmVxdWlyZWRGb3JJbmNsdXNpb24oKSkKICAg
ICAgICAgcmV0dXJuIElnbm9yZU9iamVjdDsKIAogICAgIC8vIElmIHdlIGluY2x1ZGUgVGV4dENv
bnRyb2xJbm5lclRleHRFbGVtZW50IGNoaWxkcmVuLCBjaGFuZ2VzIHRvIHRob3NlIGNoaWxkcmVu
CkBAIC0xMDQsNDEgKzE0OCw2IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNz
aWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPCiAgICAgaWYgKGlz
PFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiBJZ25v
cmVPYmplY3Q7CiAKLSAgICAvLyBHaXZlbiBhIHBhcmFncmFwaCBvciBkaXYgY29udGFpbmluZyBh
IG5vbi1uZXN0ZWQgYW5vbnltb3VzIGJsb2NrLCBXZWJDb3JlCi0gICAgLy8gaWdub3JlcyB0aGUg
cGFyYWdyYXBoIG9yIGRpdiBhbmQgaW5jbHVkZXMgdGhlIGJsb2NrLiBXZSB3YW50IHRoZSBvcHBv
c2l0ZToKLSAgICAvLyBBVHMgYXJlIGV4cGVjdGluZyBhY2Nlc3NpYmxlIG9iamVjdHMgYXNzb2Np
YXRlZCB3aXRoIHRleHR1YWwgZWxlbWVudHMuIFRoZXkKLSAgICAvLyB1c3VhbGx5IGhhdmUgbm8g
bmVlZCBmb3IgdGhlIGFub255bW91cyBibG9jay4gQW5kIHdoZW4gdGhlIHdyb25nIG9iamVjdHMK
LSAgICAvLyBnZXQgaW5jbHVkZWQgb3IgaWdub3JlZCwgbmVlZGVkIGFjY2Vzc2liaWxpdHkgc2ln
bmFscyBkbyBub3QgZ2V0IGVtaXR0ZWQuCi0gICAgaWYgKHJvbGUgPT0gUGFyYWdyYXBoUm9sZSB8
fCByb2xlID09IERpdlJvbGUpIHsKLSAgICAgICAgLy8gRG9uJ3QgY2FsbCB0ZXh0VW5kZXJFbGVt
ZW50KCkgaGVyZSwgYmVjYXVzZSBpdCdzIHNsb3cgYW5kIGl0IGNhbgotICAgICAgICAvLyBjcmFz
aCB3aGVuIGNhbGxlZCB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgc3VidHJlZSBiZWlu
ZyBkZWxldGVkLgotICAgICAgICBpZiAoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZFNsb3coKSkK
LSAgICAgICAgICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Ci0KLSAgICAgICAgaWYgKCFwYXJl
bnQtPnJlbmRlcmVyKCkgfHwgcGFyZW50LT5yZW5kZXJlcigpLT5pc0Fub255bW91c0Jsb2NrKCkp
Ci0gICAgICAgICAgICByZXR1cm4gRGVmYXVsdEJlaGF2aW9yOwotCi0gICAgICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiByID0gcmVuZGVyT2JqZWN0LT5maXJzdENoaWxkU2xvdygpOyByOyByID0gci0+
bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgaWYgKHItPmlzQW5vbnltb3VzQmxvY2soKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gSW5jbHVkZU9iamVjdDsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIC8vIEJsb2NrIHNwYW5zIHJlc3VsdCBpbiBvYmplY3RzIG9mIEFUS19ST0xFX1BBTkVM
IHdoaWNoIGFyZSBhbG1vc3QgYWx3YXlzIHVud2FudGVkLgotICAgIC8vIEhvd2V2ZXIsIGlmIHdl
IGlnbm9yZSBibG9jayBzcGFucyB3aG9zZSBwYXJlbnQgaXMgdGhlIGJvZHksIHRoZSBjaGlsZCBj
b250cm9scwotICAgIC8vIHdpbGwgYmVjb21lIGltbWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUgQVRL
X1JPTEVfRE9DVU1FTlRfRlJBTUUgYW5kIGFueSB0ZXh0IHdpbGwKLSAgICAvLyBiZWNvbWUgdGV4
dCB3aXRoaW4gdGhlIGRvY3VtZW50IGZyYW1lIGl0c2VsZi4gVGhpcyB1bHRpbWF0ZWx5IG1heSBi
ZSB3aGF0IHdlIHdhbnQKLSAgICAvLyBhbmQgd291bGQgbGFyZ2VseSBiZSBjb25zaXN0ZW50IHdp
dGggd2hhdCB3ZSBzZWUgZnJvbSBHZWNrby4gSG93ZXZlciwgaWdub3JpbmcKLSAgICAvLyBzcGFu
cyB3aG9zZSBwYXJlbnQgaXMgdGhlIGJvZHkgY2hhbmdlcyB0aGUgY3VycmVudCBiZWhhdmlvciB3
ZSBzZWUgZnJvbSBXZWJDb3JlLgotICAgIC8vIFVudGlsIHdlIGhhdmUgc3VmZmljaWVudCB0aW1l
IHRvIHByb3Blcmx5IGFuYWx5emUgdGhlc2UgY2FzZXMsIHdlIHdpbGwgZGVmZXIgdG8KLSAgICAv
LyBXZWJDb3JlLiBXZSBvbmx5IGNoZWNrIHRoYXQgdGhlIHBhcmVudCBpcyBub3QgYXJpYSBiZWNh
dXNlIHdlIGRvIG5vdCBleHBlY3QKLSAgICAvLyBhbm9ueW1vdXMgYmxvY2tzIHdoaWNoIGFyZSBh
cmlhLXJlbGF0ZWQgdG8gdGhlbXNlbHZlcyBoYXZlIGFuIGFyaWEgcm9sZSwgbm9yCi0gICAgLy8g
aGF2ZSB3ZSBlbmNvdW50ZXJlZCBpbnN0YW5jZXMgd2hlcmUgdGhlIHBhcmVudCBvZiBhbiBhbm9u
eW1vdXMgYmxvY2sgYWxzbyBsYWNrZWQKLSAgICAvLyBhbiBhcmlhIHJvbGUgYnV0IHRoZSBncmFu
ZHBhcmVudCBoYWQgb25lLgotICAgIGlmIChyZW5kZXJPYmplY3QgJiYgcmVuZGVyT2JqZWN0LT5p
c0Fub255bW91c0Jsb2NrKCkgJiYgIXBhcmVudC0+cmVuZGVyZXIoKS0+aXNCb2R5KCkKLSAgICAg
ICAgJiYgcGFyZW50LT5hcmlhUm9sZUF0dHJpYnV0ZSgpID09IFVua25vd25Sb2xlKQotICAgICAg
ICByZXR1cm4gSWdub3JlT2JqZWN0OwotCiAgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlvcjsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDI2ODgxN2ZlMDY1NmNiY2Q3ZWU4NTZjN2JlYzc4MzljZDAxZjhiYzAuLmQ4OTY4
Njc1ODcwMzQ3NmFmYjYxYmEwM2Y0OGZmNDhmYmNiN2NlN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxNi0wNC0yNyAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQVg6IFtBVEtdIFdlIG5lZWQgdG8gYmUgc21hcnRlciBhYm91dCBmbGF0dGVuaW5nIGFu
ZCB0aGUgYWNjZXNzaWJsZSB0ZXh0IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2MzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0d28gbmV3IHRlc3RzIGFuZCB1cGRh
dGVkIHRocmVlIGV4aXN0aW5nIHRlc3RzIHRvIHJlZmxlY3QgdGhlIG5ldyBiZWhhdmlvcgorICAg
ICAgICByZWdhcmRpbmcgaW5jbHVzaW9uIG9mIGVsZW1lbnRzIGluIHRoZSBhY2Nlc3NpYmlsaXR5
IHRyZWUgYW5kIHRoZSB0ZXh0IHZhbHVlIG9mCisgICAgICAgIGluY2x1ZGVkIGVsZW1lbnRzLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvbmVzdGVkLWJsb2NrLWVsZW1lbnQtY2hpbGRy
ZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9uZXN0
ZWQtYmxvY2stZWxlbWVudC1jaGlsZHJlbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLWV4cGVjdGVkLnR4dDogVXBkYXRl
ZCBmb3IgbmV3IGJlaGF2aW9yLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBh
cmFncmFwaHMtYW5kLWRpdnMtdHJlZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMtdHJlZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZz
Lmh0bWw6IFVwZGF0ZWQgZm9yIG5ldyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9nZW5lcmF0ZWQtY29udGVudC13aXRoLWRpc3BsYXktdGFibGUtY3Jhc2gt
ZXhwZWN0ZWQudHh0OiBVcGRhdGVkIGZvciBuZXcgYmVoYXZpb3IuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL2FjY2Vzc2liaWxpdHkvZ3RrL3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJs
b2Nrcy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZm9yIG5ldyBiZWhhdmlvci4KKwogMjAxNi0wNC0y
NyAgSHVuc2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VG
TF1bR1RLXSBWb2x1bWUgc2xpZGVyIG9ubHkgY2hhbmdlcyB2b2x1bWUgd2hlbiB0aHVtYiBpcyBy
ZWxlYXNlZCwgbm90IHdoaWxlIGRyYWdnaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2d0ay9uZXN0ZWQtYmxvY2stZWxlbWVudC1jaGlsZHJlbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9uZXN0ZWQtYmxvY2stZWxlbWVudC1jaGls
ZHJlbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdhMTRkMmUxNjVlZmNhZTI4YjUxZWM4NDA4
MTA2NDdkZTZlZWI5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZ3RrL25lc3RlZC1ibG9jay1lbGVtZW50LWNoaWxkcmVuLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQ3IEBACitBWFJvbGU6IEFYV2ViQXJlYSAKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZh
bHVlOiBUZXN0IDEKKyAgICBBWFJvbGU6IEFYSGVhZGluZyBBWFZhbHVlOiBUZXN0IDEKKyAgICAg
ICAgQVhSb2xlOiBBWExpbmsgQVhWYWx1ZTogVGVzdCAxCisgICAgQVhSb2xlOiBBWEhlYWRpbmcg
QVhWYWx1ZTogVGVzdCAxCisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBUZXN0IDEK
KyAgICBBWFJvbGU6IEFYSGVhZGluZyBBWFZhbHVlOiBUZXN0IDIKKyAgICAgICAgQVhSb2xlOiBB
WExpbmsgQVhWYWx1ZTogVGVzdCAyCisgICAgQVhSb2xlOiBBWEhlYWRpbmcgQVhWYWx1ZTogVGVz
dCAyCisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBUZXN0IDIKKyAgICBBWFJvbGU6
IEFYU2VjdGlvbiBBWFZhbHVlOiBUZXN0IDMKKyAgICBBWFJvbGU6IEFYSGVhZGluZyBBWFZhbHVl
OiBUZXN0IDMKKyAgICAgICAgQVhSb2xlOiBBWExpbmsgQVhWYWx1ZTogVGVzdCAzCisgICAgQVhS
b2xlOiBBWEhlYWRpbmcgQVhWYWx1ZTogVGVzdCAzCisgICAgQVhSb2xlOiBBWEhlYWRpbmcgQVhW
YWx1ZTogVGVzdCAzCisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBUZXN0IDMKKyAg
ICBBWFJvbGU6IEFYSGVhZGluZyBBWFZhbHVlOiBUZXN0IDQKKyAgICAgICAgQVhSb2xlOiBBWExp
bmsgQVhWYWx1ZTogVGVzdCA0CisgICAgQVhSb2xlOiBBWEhlYWRpbmcgQVhWYWx1ZTogVGVzdCA0
CisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBUZXN0IDQKKyAgICBBWFJvbGU6IEFY
U2VjdGlvbiBBWFZhbHVlOiBUZXN0IDUKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiBU
ZXN0IDUKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiBUZXN0IDU8XG4+CisgICAgQVhS
b2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiBUZXN0IDYKKyAgICBBWFJvbGU6IEFYUGFyYWdyYXBo
IEFYVmFsdWU6IFRlc3QgNworICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogVGVzdCA4
PFxuPgorICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogVGVzdCA5IFRlc3QgOQorICAg
IEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogVGVzdCAxMDxcbj5UZXN0IDEwPFxuPgorICAg
IEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogVGVzdCAxMSBUZXN0IDExPFxuPlRlc3QgMTE8
XG4+CisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiA8b2JqPgorICAgICAgICBBWFJv
bGU6IEFYQnV0dG9uIAorICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogVGVzdCAxMyAg
PG9iaj4KKyAgICAgICAgQVhSb2xlOiBBWEJ1dHRvbiAKKyAgICBBWFJvbGU6IEFYUGFyYWdyYXBo
IEFYVmFsdWU6IFRlc3QgMTQgIDxvYmo+CisgICAgICAgIEFYUm9sZTogQVhCdXR0b24gCisgICAg
QVhSb2xlOiBBWFBhcmFncmFwaCBBWFZhbHVlOiA8b2JqPjxcbj5UZXN0IDE1PFxuPgorICAgICAg
ICBBWFJvbGU6IEFYQnV0dG9uIAorICAgIEFYUm9sZTogQVhTZWN0aW9uIEFYVmFsdWU6IEVuZCBv
ZiB0ZXN0CitUaGlzIHZlcmlmaWVzIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiB0aGVyZSBh
cmUgbmVzdGVkIGJsb2NrIGVsZW1lbnQgY2hpbGRyZW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvbmVzdGVkLWJs
b2NrLWVsZW1lbnQtY2hpbGRyZW4uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3Rr
L25lc3RlZC1ibG9jay1lbGVtZW50LWNoaWxkcmVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU3YmI1NDMx
MjkxN2UyODA1N2Q5NjNjMGIyNDllMDU2YmMzMGYzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL25lc3RlZC1ibG9jay1lbGVtZW50LWNoaWxkcmVuLmh0
bWwKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5jZWxsIHsgZGlzcGxheTp0YWJs
ZS1jZWxsOyB3aWR0aDoxMDBweDsgYm9yZGVyOnNvbGlkIHJlZDsgfQorPC9zdHlsZT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+Cis8ZGl2IGlkPSJjb250ZW50Ij4KKyAgPGRpdj4K
KyAgICA8c3Bhbj5UZXN0IDE8L3NwYW4+CisgICAgPGgxPjxhIGhyZWY9ImZvbyI+VGVzdCAxPC9h
PjwvaDE+CisgICAgPGgyPlRlc3QgMTwvaDI+CisgICAgPHA+VGVzdCAxPC9wPgorICA8L2Rpdj4K
KyAgPGRpdj4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTpibG9jazsiPlRlc3QgMjwvc3Bhbj4K
KyAgICA8aDE+PGEgaHJlZj0iZm9vIj5UZXN0IDI8L2E+PC9oMT4KKyAgICA8aDI+VGVzdCAyPC9o
Mj4KKyAgICA8cD5UZXN0IDI8L3A+CisgIDwvZGl2PgorICA8ZGl2PgorICAgIFRlc3QgMworICAg
IDxoMT48YSBocmVmPSJmb28iPlRlc3QgMzwvYT48L2gxPgorICAgIDxoMT5UZXN0IDM8L2gxPgor
ICAgIDxoMj5UZXN0IDM8L2gyPgorICAgIDxwPlRlc3QgMzwvcD4KKyAgPC9kaXY+CisgIDxkaXY+
CisgICAgPGgxPjxhIGhyZWY9ImZvbyI+VGVzdCA0PC9hPjwvaDE+CisgICAgPGgyPlRlc3QgNDwv
aDI+CisgICAgPHA+VGVzdCA0PC9wPgorICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZGlzcGxheTp0
YWJsZTsiPgorICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6dGFibGUtcm93OyI+CisgICAgICA8ZGl2
IGNsYXNzPSJjZWxsIj5UZXN0IDU8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImNlbGwiPjxzcGFu
PlRlc3QgNTwvc3Bhbj48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImNlbGwiPjxzcGFuIHN0eWxl
PSJkaXNwbGF5OmJsb2NrIj5UZXN0IDU8L3NwYW4+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2
PgorICA8cD5UZXN0IDY8L3A+CisgIDxwPgorICAgIDxzcGFuPlRlc3QgNzwvc3Bhbj4KKyAgPC9w
PgorICA8cD4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTpibG9jazsiPlRlc3QgODwvc3Bhbj4K
KyAgPC9wPgorICA8cD4KKyAgICBUZXN0IDkKKyAgICA8c3Bhbj5UZXN0IDk8L3NwYW4+CisgIDwv
cD4KKyAgPHA+CisgICAgVGVzdCAxMAorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+
VGVzdCAxMDwvc3Bhbj4KKyAgPC9wPgorICA8cD4KKyAgICBUZXN0IDExCisgICAgPHNwYW4+VGVz
dCAxMTwvc3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTpibG9jazsiPlRlc3QgMTE8L3Nw
YW4+CisgIDwvcD4KKyAgPHA+CisgICAgPGJ1dHRvbj5UZXN0IDEyPC9idXR0b24+CisgIDwvcD4K
KyAgPHA+CisgICAgVGVzdCAxMworICAgIDxidXR0b24+VGVzdCAxMzwvYnV0dG9uPgorICA8L3A+
CisgIDxwPgorICAgIDxzcGFuPlRlc3QgMTQ8L3NwYW4+CisgICAgPGJ1dHRvbj5UZXN0IDE0PC9i
dXR0b24+CisgIDwvcD4KKyAgPHA+CisgICAgPGJ1dHRvbj5UZXN0IDE1PC9idXR0b24+CisgICAg
PHNwYW4gc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij5UZXN0IDE1PC9zcGFuPgorICA8L3A+CisgIDxk
aXYgaWQ9InN0b3BFbGVtZW50Ij5FbmQgb2YgdGVzdDwvZGl2PgorPC9kaXY+Cis8cHJlIGlkPSJ0
cmVlIj48L3ByZT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUaGlzIHZlcmlmaWVzIHRoZSBhY2Nl
c3NpYmlsaXR5IHRyZWUgd2hlbiB0aGVyZSBhcmUgbmVzdGVkIGJsb2NrIGVsZW1lbnQgY2hpbGRy
ZW4uIik7CisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICBkb2N1bWVudC5ib2R5LmZvY3VzKCk7CisgICAgICAgIHZhciBzdG9wRWxlbWVudCA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgic3RvcEVsZW1lbnQiKTsK
KyAgICAgICAgZHVtcEFjY2Vzc2liaWxpdHlUcmVlKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50LCBzdG9wRWxlbWVudCwgMCk7CisgICAgfQorICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMtZXhwZWN0ZWQu
dHh0CmluZGV4IGZiOTk0Nzc0NWQ3Y2U2ZjYwOWU0ZTlmNWRlYTRhZmUwN2NjNjZjM2MuLmEzYjUw
NWZhODMwYjNjMzA3NGVlNzQzMzE3MmI3ZGM0MjQxZDMxMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMt
YW5kLWRpdnMtZXhwZWN0ZWQudHh0CkBAIC0zNCwxMCArMzQsOCBAQCBQQVNTIGxpbmsucm9sZSBp
cyAnQVhSb2xlOiBBWExpbmsnCiBQQVNTIGxpbmsuY2hpbGRyZW5Db3VudCBpcyAwCiBQQVNTIGVs
ZW1lbnQucm9sZSBpcyAnQVhSb2xlOiBBWFBhcmFncmFwaCcKIFBBU1MgZWxlbWVudC5jaGlsZHJl
bkNvdW50IGlzIDAKLVBBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IEFYU2VjdGlvbicKLVBB
U1MgZWxlbWVudC5jaGlsZHJlbkNvdW50IGlzIDEKLVBBU1MgbGluay5yb2xlIGlzICdBWFJvbGU6
IEFYTGluaycKLVBBU1MgbGluay5jaGlsZHJlbkNvdW50IGlzIDAKK1BBU1MgZWxlbWVudC5yb2xl
IGlzICdBWFJvbGU6IEFYTGluaycKK1BBU1MgZWxlbWVudC5jaGlsZHJlbkNvdW50IGlzIDAKIFBB
U1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IEFYU2VjdGlvbicKIFBBU1MgZWxlbWVudC5jaGls
ZHJlbkNvdW50IGlzIDAKIFBBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IEFYU2VjdGlvbicK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFw
aHMtYW5kLWRpdnMtdHJlZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLXRyZWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY4MzI1ZjhjYzBkNGY5NzEzYmRhNDBiYWU2YWIyN2U2YjYzOWZkN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFu
ZC1kaXZzLXRyZWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK0FYUm9sZTogQVhXZWJB
cmVhIAorICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogQmxvY2sgc3BhbiBpbiBhIGxp
bmsgaW4gYSBwYXJhZ3JhcGg8XG4+SW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgcGFyYWdyYXBo
CisgICAgICAgIEFYUm9sZTogQVhMaW5rIEFYVmFsdWU6IEJsb2NrIHNwYW4gaW4gYSBsaW5rIGlu
IGEgcGFyYWdyYXBoPFxuPklubGluZSBzcGFuIGluIGEgbGluayBpbiBhIHBhcmFncmFwaAorICAg
IEFYUm9sZTogQVhQYXJhZ3JhcGggQVhWYWx1ZTogQmxvY2sgc3BhbiBpbiBhIHBhcmFncmFwaDxc
bj5JbmxpbmUgc3BhbiBpbiBhIHBhcmFncmFwaAorICAgIEFYUm9sZTogQVhQYXJhZ3JhcGggQVhW
YWx1ZTogSW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgcGFyYWdyYXBoPFxuPkJsb2NrIHNwYW4g
aW4gYSBsaW5rIGluIGEgcGFyYWdyYXBoPFxuPgorICAgICAgICBBWFJvbGU6IEFYTGluayBBWFZh
bHVlOiBJbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8XG4+QmxvY2sgc3BhbiBp
biBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8XG4+CisgICAgQVhSb2xlOiBBWFBhcmFncmFwaCBBWFZh
bHVlOiBJbmxpbmUgc3BhbiBpbiBhIHBhcmFncmFwaDxcbj5CbG9jayBzcGFuIGluIGEgcGFyYWdy
YXBoPFxuPgorICAgIEFYUm9sZTogQVhMaW5rIEFYVmFsdWU6IEJsb2NrIHNwYW4gaW4gYSBsaW5r
IGluIGEgZGl2PFxuPklubGluZSBzcGFuIGluIGEgbGluayBpbiBhIGRpdgorICAgIEFYUm9sZTog
QVhTZWN0aW9uIEFYVmFsdWU6IElubGluZSBzcGFuIGluIGEgZGl2CisgICAgQVhSb2xlOiBBWFNl
Y3Rpb24gQVhWYWx1ZTogSW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgZGl2PFxuPkJsb2NrIHNw
YW4gaW4gYSBsaW5rIGluIGEgZGl2PFxuPgorICAgICAgICBBWFJvbGU6IEFYTGluayBBWFZhbHVl
OiBJbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBkaXY8XG4+QmxvY2sgc3BhbiBpbiBhIGxpbmsg
aW4gYSBkaXY8XG4+CisgICAgQVhSb2xlOiBBWFNlY3Rpb24gQVhWYWx1ZTogSW5saW5lIHNwYW4g
aW4gYSBkaXYKKyAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiBFbmQgb2YgdGVzdAorVGhp
cyB2ZXJpZmllcyB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIG9mIHNwYW5zLCBwYXJhZ3JhcGhzLCBh
bmQgZGl2cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLXRyZWUuaHRt
bCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRp
dnMtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1N2ViZmMwOTgwYzYxNGJlNjI1YTk3ZDUwYTY4ZGM3
MmVlMDkwYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0
ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLXRyZWUuaHRtbApAQCAtMCwwICsxLDY2IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKzxkaXYgaWQ9ImNvbnRlbnQi
PgorICA8cD4KKyAgICA8YSBocmVmPSdmb28nPgorICAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5
OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8L3NwYW4+CisgICAg
ICAgPHNwYW4+SW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgcGFyYWdyYXBoPC9zcGFuPgorICAg
IDwvYT4KKyAgPC9wPgorICA8cD4KKyAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jazsnPkJs
b2NrIHNwYW4gaW4gYSBwYXJhZ3JhcGg8L3NwYW4+CisgICAgPHNwYW4+SW5saW5lIHNwYW4gaW4g
YSBwYXJhZ3JhcGg8L3NwYW4+CisgIDwvcD4KKyAgPHA+CisgICAgPGEgaHJlZj0nZm9vJz4KKyAg
ICAgICA8c3Bhbj5JbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBwYXJhZ3JhcGg8L3NwYW4+Cisg
ICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6YmxvY2s7Jz5CbG9jayBzcGFuIGluIGEgbGluayBp
biBhIHBhcmFncmFwaDwvc3Bhbj4KKyAgICA8L2E+CisgIDwvcD4KKyAgPHA+CisgICAgPHNwYW4+
SW5saW5lIHNwYW4gaW4gYSBwYXJhZ3JhcGg8L3NwYW4+CisgICAgPHNwYW4gc3R5bGU9J2Rpc3Bs
YXk6YmxvY2s7Jz5CbG9jayBzcGFuIGluIGEgcGFyYWdyYXBoPC9zcGFuPgorICA8L3A+CisgIDxk
aXY+CisgICAgPGEgaHJlZj0nZm9vJz4KKyAgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTpibG9j
azsnPkJsb2NrIHNwYW4gaW4gYSBsaW5rIGluIGEgZGl2PC9zcGFuPgorICAgICAgIDxzcGFuPklu
bGluZSBzcGFuIGluIGEgbGluayBpbiBhIGRpdjwvc3Bhbj4KKyAgICA8L2E+CisgIDwvZGl2Pgor
ICA8ZGl2PgorICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBh
IGRpdjwvc3Bhbj4KKyAgICA8c3Bhbj5JbmxpbmUgc3BhbiBpbiBhIGRpdjwvc3Bhbj4KKyAgPC9k
aXY+CisgIDxkaXY+CisgICAgPGEgaHJlZj0nZm9vJz4KKyAgICAgICA8c3Bhbj5JbmxpbmUgc3Bh
biBpbiBhIGxpbmsgaW4gYSBkaXY8L3NwYW4+CisgICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6
YmxvY2s7Jz5CbG9jayBzcGFuIGluIGEgbGluayBpbiBhIGRpdjwvc3Bhbj4KKyAgICA8L2E+Cisg
IDwvZGl2PgorICA8ZGl2PgorICAgIDxzcGFuPklubGluZSBzcGFuIGluIGEgZGl2PC9zcGFuPgor
ICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBhIGRpdjwvc3Bh
bj4KKyAgPC9kaXY+CisKKzxkaXYgaWQ9InN0b3BFbGVtZW50Ij5FbmQgb2YgdGVzdDwvZGl2Pgor
PC9kaXY+Cis8cHJlIGlkPSJ0cmVlIj48L3ByZT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHZlcmlmaWVzIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgb2Ygc3BhbnMsIHBhcmFncmFwaHMsIGFu
ZCBkaXZzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5mb2N1cygpOworICAgICAgICB2YXIgc3RvcEVsZW1lbnQgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInN0b3BFbGVtZW50
Iik7CisgICAgICAgIGR1bXBBY2Nlc3NpYmlsaXR5VHJlZShhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5mb2N1c2VkRWxlbWVudCwgc3RvcEVsZW1lbnQsIDApOworICAgIH0KKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy5odG1sIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9ndGsvc3BhbnMtcGFyYWdyYXBocy1hbmQtZGl2cy5odG1sCmluZGV4IGRj
MDRkZDdiNGQyNzgyMjdhMmYzMTNlOWJkYjI2ODJmNTEyNDE3NWMuLjZjYzIzNThjNTg2NmE5OTQ5
ZTFhMGFlNzU1MDE3YjJmMTUyMjg1MDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvZ3RrL3NwYW5zLXBhcmFncmFwaHMtYW5kLWRpdnMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2d0ay9zcGFucy1wYXJhZ3JhcGhzLWFuZC1kaXZzLmh0bWwKQEAgLTgz
LDEyICs4Myw4IEBAIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKICAgICBz
aG91bGRCZSgiZWxlbWVudC5jaGlsZHJlbkNvdW50IiwgIjAiKTsKIAogICAgIGVsZW1lbnQgPSB3
ZWJBcmVhLmNoaWxkQXRJbmRleCg0KTsKLSAgICBzaG91bGRCZSgiZWxlbWVudC5yb2xlIiwgIidB
WFJvbGU6IEFYU2VjdGlvbiciKTsKLSAgICBzaG91bGRCZSgiZWxlbWVudC5jaGlsZHJlbkNvdW50
IiwgIjEiKTsKLQotICAgIGxpbmsgPSBlbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKLSAgICBzaG91
bGRCZSgibGluay5yb2xlIiwgIidBWFJvbGU6IEFYTGluayciKTsKLSAgICBzaG91bGRCZSgibGlu
ay5jaGlsZHJlbkNvdW50IiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZWxlbWVudC5yb2xlIiwgIidB
WFJvbGU6IEFYTGluayciKTsKKyAgICBzaG91bGRCZSgiZWxlbWVudC5jaGlsZHJlbkNvdW50Iiwg
IjAiKTsKIAogICAgIGVsZW1lbnQgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCg1KTsKICAgICBzaG91
bGRCZSgiZWxlbWVudC5yb2xlIiwgIidBWFJvbGU6IEFYU2VjdGlvbiciKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2dlbmVyYXRlZC1jb250ZW50
LXdpdGgtZGlzcGxheS10YWJsZS1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9nZW5lcmF0ZWQtY29udGVudC13aXRoLWRpc3BsYXktdGFi
bGUtY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IGVmOTM3ZDdkOWIwM2NiMDJlYjE4MzI2NzBiNmM4
ZTg1Nzg0NWU1MDAuLjgyOTg1Y2M2MjcxZDUwMTAzMTQxNTk1NWVmMmM1NjNjMDRlYWYwYWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2dlbmVyYXRl
ZC1jb250ZW50LXdpdGgtZGlzcGxheS10YWJsZS1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvZ2VuZXJhdGVkLWNvbnRlbnQtd2l0
aC1kaXNwbGF5LXRhYmxlLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDggQEAgYmF6CiBF
bmQgb2YgdGVzdAogQVhSb2xlOiBBWFdlYkFyZWEgCiAgICAgQVhSb2xlOiBBWFNlY3Rpb24gQVhW
YWx1ZTogZm9vICEKLSAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiBiYXIgIQorICAgIEFY
Um9sZTogQVhTZWN0aW9uIEFYVmFsdWU6IGJhcgorICAgIEFYUm9sZTogQVhTZWN0aW9uIEFYVmFs
dWU6ICEKICAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiBiYXoKICAgICBBWFJvbGU6IEFY
U2VjdGlvbiBBWFZhbHVlOiBFbmQgb2YgdGVzdAogVGhpcyB2ZXJpZmllcyB0aGF0IGdldHRpbmcg
Y29udGVudCBvZiBhbiBlbGVtZW50IHdpdGggZ2VuZXJhdGVkIGNvbnRlbnQgaW4gQ1NTIHRhYmxl
IGRvZXNuJ3QgY2F1c2UgYSBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2d0ay9yZXBsYWNlZC1vYmplY3RzLWluLWFub255bW91cy1ibG9j
a3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
Z3RrL3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJsb2Nrcy1leHBlY3RlZC50eHQKaW5k
ZXggODhiMmU1YTVkOTE2YmNjYzA0MmQ0NTRhNGE4OTFlMjkwZmU1NTM5Ni4uYThiZTllNzUyZmQ2
MjA0NTNhYTEwM2E2NzEyY2JlNGRiZTYxM2FlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvZ3RrL3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3Vz
LWJsb2Nrcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvZ3RrL3JlcGxhY2VkLW9iamVjdHMtaW4tYW5vbnltb3VzLWJsb2Nrcy1leHBlY3Rl
ZC50eHQKQEAgLTIwLDcgKzIwLDggQEAgQVhSb2xlOiBBWFdlYkFyZWEKICAgICAgICAgICAgICAg
ICBBWFJvbGU6IEFYV2ViQXJlYSAKICAgICBBWFJvbGU6IEFYU2VjdGlvbiBBWFZhbHVlOiA8b2Jq
PgogICAgICAgICBBWFJvbGU6IEFYVGV4dEZpZWxkIEFYVmFsdWU6IHRleHQgYXJlYQotICAgIEFY
Um9sZTogQVhTZWN0aW9uIEFYVmFsdWU6IERpdjxcbj48b2JqPgorICAgIEFYUm9sZTogQVhTZWN0
aW9uIEFYVmFsdWU6IERpdgorICAgIEFYUm9sZTogQVhTZWN0aW9uIEFYVmFsdWU6IDxvYmo+CiAg
ICAgICAgIEFYUm9sZTogQVhCdXR0b24gCiAgICAgQVhSb2xlOiBBWEhlYWRpbmcgQVhWYWx1ZTog
SGVhZGluZzxcbj48b2JqPjxcbj48b2JqPgogICAgICAgICBBWFJvbGU6IEFYQnV0dG9uIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>