<?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>37275</bug_id>
          
          <creation_ts>2010-04-08 08:03:20 -0700</creation_ts>
          <short_desc>Accessibility support for progress element</short_desc>
          <delta_ts>2010-04-12 19:44:11 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>210194</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-08 08:03:20 -0700</bug_when>
    <thetext>The new progress element should be hooked up to the accessibility framework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210227</commentid>
    <comment_count>1</comment_count>
      <attachid>52872</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-08 08:48:47 -0700</bug_when>
    <thetext>Created attachment 52872
Patch

This patch implements AccessibilityProgressindicator. It was tested only on Mac OS X with Safari.
The implementation and test are heavily based on the way AccessibilitySlider was implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210323</commentid>
    <comment_count>2</comment_count>
      <attachid>52872</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-08 12:25:34 -0700</bug_when>
    <thetext>Comment on attachment 52872
Patch

&gt; +bool AccessibilityProgressIndicator::accessibilityIsIgnored() const
&gt; +{
&gt; +    AccessibilityObjectInclusion decision = accessibilityIsIgnoredBase();
&gt; +    if (decision == IncludeObject)
&gt; +        return false;
&gt; +    if (decision == IgnoreObject)
&gt; +        return true;
&gt; +    
&gt; +    return false;
&gt; +}

How about writing it like this instead?

    return accessibilityIsIgnoredBase() == IgnoreObject;

&gt; +    // Indneterminate progress bar should return 0.

Typo: &quot;Indneterminate&quot;

&gt; +HTMLProgressElement* AccessibilityProgressIndicator::element() const
&gt; +{
&gt; +    return static_cast&lt;HTMLProgressElement*&gt;(m_renderer-&gt;node());
&gt; +}

I don&apos;t like having a risky typecast here so far away from the code that guarantees that the type is an HTMLProgressElement. Ideally the renderer itself would have a function that returns an HTMLProgressElement* or we would put both an assertion and a runtime check here.

&gt; +    virtual ~AccessibilityProgressIndicator() { }

Should just drop this. It adds nothing.

&gt; +    virtual AccessibilityRole roleValue() const { return ProgressIndicatorRole; }
&gt; +
&gt; +    virtual bool isProgressIndicator() const { return true; }
&gt; +
&gt; +    virtual float valueForRange() const;
&gt; +    virtual float maxValueForRange() const;
&gt; +    virtual float minValueForRange() const;

These member functions should all be private.

&gt; +protected:
&gt; +    AccessibilityProgressIndicator(RenderObject*);

This too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210351</commentid>
    <comment_count>3</comment_count>
      <attachid>52890</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-08 13:34:34 -0700</bug_when>
    <thetext>Created attachment 52890
Patch to addres review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210759</commentid>
    <comment_count>4</comment_count>
      <attachid>52890</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-09 09:22:22 -0700</bug_when>
    <thetext>Comment on attachment 52890
Patch to addres review comments.

&gt; +class AccessibilityProgressIndicator : public AccessibilityRenderObject {
&gt; +    
&gt; +public:
&gt; +    static PassRefPtr&lt;AccessibilityProgressIndicator&gt; create(RenderObject*);
&gt; +
&gt; +private:
&gt; +    virtual AccessibilityRole roleValue() const { return ProgressIndicatorRole; }
&gt; +
&gt; +    virtual bool isProgressIndicator() const { return true; }
&gt; +
&gt; +    virtual float valueForRange() const;
&gt; +    virtual float maxValueForRange() const;
&gt; +    virtual float minValueForRange() const;
&gt; +
&gt; +    AccessibilityProgressIndicator(RenderObject*);
&gt; +
&gt; +private:
&gt; +    HTMLProgressElement* element() const;
&gt; +    virtual bool accessibilityIsIgnored() const;
&gt; +};

Extra blank line before public here. The argument type should be RenderProgress* rather than RenderObject* to make it clear it&apos;s illegal to call this with another kind of RenderObject. No need to say &quot;private&quot; twice. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211811</commentid>
    <comment_count>5</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-12 19:15:25 -0700</bug_when>
    <thetext>Committed r57494: &lt;http://trac.webkit.org/changeset/57494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211814</commentid>
    <comment_count>6</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-12 19:44:11 -0700</bug_when>
    <thetext>I missed the part of the last comment about RenderObject*. Will submit a separate patch for it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52872</attachid>
            <date>2010-04-08 08:48:47 -0700</date>
            <delta_ts>2010-04-08 13:34:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>37275.patch</filename>
            <type>text/plain</type>
            <size>19844</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzI3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDQtMDggIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFjY2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgcHJvZ3Jlc3MgZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyNzUKKworICAgICAgICBJbXBs
ZW1lbnQgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yIHRvIGhvb2sgdXAgcHJvZ3Jlc3Mg
ZWxlbWVudCB0byBhY2Nlc3NpYmlsaXR5IGZyYW1ld29yay4KKworICAgICAgICBUZXN0OiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci5odG1sCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpn
ZXRPckNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jl
c3NJbmRpY2F0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQ
cm9ncmVzc0luZGljYXRvcjo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3I6OnZhbHVlRm9yUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yOjptYXhWYWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6bWluVmFsdWVGb3JSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmVsZW1lbnQpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9y
Ojp+QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6cm9sZVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6aXNQcm9ncmVzc0luZGljYXRvcik6
CisKIDIwMTAtMDQtMDEgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNTcy
NjkpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMzQsNiAr
MzM0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVz
c0luZGljYXRvci5jcHAgXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3IuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bGJhci5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDU3MjY5KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHdvcmtpbmcgY29weSkKQEAgLTQyMyw2ICs0MjMsOCBAQAogICAgICAgICAgICAgJ2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgnLAogICAgICAgICAgICAgJ2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAnLAorICAgICAgICAgICAgJ2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgnLAogICAgICAgICAg
ICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAnLAogICAgICAg
ICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oJywKICAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuY3BwJywKSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwko
cmV2aXNpb24gNTcyNjkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjIsNiArMjYyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdC5jcHAgXCAgICAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
Qm94LmNwcCBcICAgIAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRp
b24uY3BwIFwgICAgCisgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRp
Y2F0b3IuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcCBcICAgIAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5j
cHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAgXCAgICAKQEAg
LTEwMTYsNiArMTAxNyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3QuaCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250
cm9scy5oIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBcCisgICAg
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCBcCiAgICAgYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggXAogICAgIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTbGlkZXIuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHJldmlzaW9uIDU3MjY5KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjAyNDEsNiArMjAyNDEsNjIgQEAKIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nl
c3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4z
MiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wN
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQor
CQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlQcm9ncmVzc0lu
ZGljYXRvci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCINCiAJ
CQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNTcyNjkpCisrKyBXZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjUwNSw2ICsy
NTA1LDggQEAKIAkJQTEzNkEwMEQxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTM2QTAwQjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUuaCAqLzsgfTsKIAkJQTE3QzgxMjIwRjJBNUNGNzAwNURBQUVCIC8q
IEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0
b3J5LmNwcCAqLzsgfTsKIAkJQTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50
RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovOyB9Owor
CQlBNDA5Qzk4NDExNkQwREREMDA3MTk3QkQgLyogQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNh
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0
MDlDOTgyMTE2RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3Iu
Y3BwICovOyB9OworCQlBNDA5Qzk4NTExNkQwREREMDA3MTk3QkQgLyogQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNDA5Qzk4MzExNkQwREREMDA3MTk3QkQgLyogQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yLmggKi87IH07CiAJCUE0MjI2RTVBMTE2M0Q2NjcwMDhCODM5NyAvKiBKU0hUTUxQ
cm9ncmVzc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTQyMjZFNTkxMTYzRDY2NzAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVu
dC5jcHAgKi87IH07CiAJCUE0MjI2RTVDMTE2M0Q2OTUwMDhCODM5NyAvKiBKU0hUTUxQcm9ncmVz
c0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE0MjI2RTVCMTE2M0Q2OTUwMDhCODM5NyAvKiBKU0hUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLzsg
fTsKIAkJQTQyMjZFOTUxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0MjI2RTky
MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi87IH07CkBAIC03
OTM5LDYgKzc5NDEsOCBAQAogCQlBMTM2QTAwQjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50
RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRWxl
bWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTdDODEyMTBG
MkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBNDA5Qzk4MjExNkQwREREMDA3MTk3QkQgLyogQWNjZXNzaWJpbGl0eVByb2dy
ZXNzSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFj
Y2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE0MDlDOTgzMTE2RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE0MjI2
RTU5MTE2M0Q2NjcwMDhCODM5NyAvKiBKU0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTQyMjZFNUIxMTYzRDY5NTAwOEI4Mzk3IC8q
IEpTSFRNTFByb2dyZXNzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0hUTUxQcm9ncmVzc0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTQyMjZFOTIxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTFByb2dyZXNzRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4NzYsNiArMTA4ODAsOCBAQAogCQkJCTc2
Q0REMkVGMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oICov
LAogCQkJCTI5QTgxMjFFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCAqLywKIAkJCQkyOUE4MTIxODBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eU9iamVj
dC5oICovLAorCQkJCUE0MDlDOTgyMTE2RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3IuY3BwICovLAorCQkJCUE0MDlDOTgzMTE2RDBEREQwMDcxOTdCRCAvKiBB
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCAqLywKIAkJCQkyOUE4MTIwODBGQkI5QzFE
MDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi8sCiAJCQkJMjlBODEy
MUIwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCAqLywKIAkJ
CQk5M0M0RjZFODExMDhGOUE1MDA5OUQwREIgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAg
Ki8sCkBAIC0xODgyMyw2ICsxODgyOSw3IEBACiAJCQkJOTdDMDc4NTAxMTY1RDVCRTAwM0EzMkVG
IC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI1NDJGNERCMTE2NkMyNUEwMEU4
OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVENEFB
N0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTQwOUM5ODUxMTZEMERERDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk1MjUzRDgxMTZDNEM2ODAwQ0FCRjAwIC8qIEZp
bGVTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5NTI1M0Q5MTE2QzRDNjgwMENBQkYwMCAv
KiBGaWxlU3RyZWFtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CkBAIC0yMTA0NSw2ICsy
MTA1Miw3IEBACiAJCQkJODk1MjUzNTIxMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1RDRBQTc5MTE2QkFGQjYwMDY5
Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTQwOUM5ODQx
MTZEMERERDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4OTUyNTNENzExNkM0QzY4MDBDQUJGMDAgLyogRmlsZVN0cmVhbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAJ
KHJldmlzaW9uIDU3MjY5KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgi
CiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaCIKKyNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oIgogI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlTbGlkZXIuaCIKQEAgLTIwOSw2ICsyMTAsMTIgQEAgQWNjZXNzaWJp
bGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0TwogICAgICAgICAgICAgbmV3T2JqID0gQWNj
ZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y3JlYXRlKHJlbmRlcmVyKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICAgICAgLy8gcHJvZ3Jlc3MgYmFyCisgICAgICAgIGVs
c2UgaWYgKHJlbmRlcmVyLT5pc1Byb2dyZXNzKCkpCisgICAgICAgICAgICBuZXdPYmogPSBBY2Nl
c3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0ZShyZW5kZXJlcik7CisjZW5kaWYKKwog
ICAgICAgICAvLyBpbnB1dCB0eXBlPXJhbmdlCiAgICAgICAgIGVsc2UgaWYgKHJlbmRlcmVyLT5p
c1NsaWRlcigpKQogICAgICAgICAgICAgbmV3T2JqID0gQWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3Jl
YXRlKHJlbmRlcmVyKTsKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKworI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oIgorCisjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9u
LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3I6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcihSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQorICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikKK3sKK30K
KworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxp
dHlQcm9ncmVzc0luZGljYXRvcjo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IocmVu
ZGVyZXIpKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNs
dXNpb24gZGVjaXNpb24gPSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQmFzZSgpOworICAgIGlmIChk
ZWNpc2lvbiA9PSBJbmNsdWRlT2JqZWN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KGRlY2lzaW9uID09IElnbm9yZU9iamVjdCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisg
ICAgcmV0dXJuIGZhbHNlOworfQorICAgIAorZmxvYXQgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5k
aWNhdG9yOjp2YWx1ZUZvclJhbmdlKCkgY29uc3QKK3sKKyAgICBpZiAoZWxlbWVudCgpLT5wb3Np
dGlvbigpID49IDApCisgICAgICAgIHJldHVybiBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGVsZW1l
bnQoKS0+dmFsdWUoKSk7CisgICAgLy8gSW5kbmV0ZXJtaW5hdGUgcHJvZ3Jlc3MgYmFyIHNob3Vs
ZCByZXR1cm4gMC4KKyAgICByZXR1cm4gMC4wZjsKK30KKworZmxvYXQgQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yOjptYXhWYWx1ZUZvclJhbmdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bmFycm93UHJlY2lzaW9uVG9GbG9hdChlbGVtZW50KCktPm1heCgpKTsKK30KKworZmxvYXQgQWNj
ZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjptaW5WYWx1ZUZvclJhbmdlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gMC4wZjsKK30KKworSFRNTFByb2dyZXNzRWxlbWVudCogQWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yOjplbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8SFRNTFByb2dyZXNzRWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSk7Cit9CisKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFBST0dSRVNTX1RBRykK
SW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3JfaAorI2RlZmluZSBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3JfaAorCisj
aWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MUHJvZ3Jlc3NFbGVt
ZW50OworCitjbGFzcyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IgOiBwdWJsaWMgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CisgICAgCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBjcmVhdGUoUmVuZGVyT2JqZWN0
Kik7CisgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKCkgeyB9CisK
KyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IFByb2dyZXNzSW5kaWNhdG9yUm9sZTsgfQorCisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJ
bmRpY2F0b3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIGZsb2F0IHZh
bHVlRm9yUmFuZ2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGZsb2F0IG1heFZhbHVlRm9yUmFuZ2Uo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGZsb2F0IG1pblZhbHVlRm9yUmFuZ2UoKSBjb25zdDsKKwor
cHJvdGVjdGVkOgorICAgIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcihSZW5kZXJPYmpl
Y3QqKTsKKworcHJpdmF0ZToKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBlbGVtZW50KCkgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKK307
CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFBST0dSRVNT
X1RBRykKKworI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcl9oCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA1NzI3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA0LTA4ICB5YWVsIGFoYXJvbiAgPHlhZWwuYWhh
cm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBY2Nlc3NpYmlsaXR5IHN1cHBvcnQgZm9yIHByb2dyZXNzIGVsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3Mjc1CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Byb2dyZXNzYmFy
Lmh0bWw6IEFkZGVkLgorCiAyMDEwLTA0LTA4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggYSB0ZXN0IGZvciB0aGUgYmVoYXZpb3Ig
Y2hhbmdlIGJ5IHI1NzI3NC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3Byb2dyZXNzYmFyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9wcm9n
cmVzc2Jhci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKK1ggWCAg
IAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBwcm9ncmVzcyBlbGVtZW50IGNhbiBiZSBhY2Nl
c3NlZCBieSBBY2Nlc3NpYmlsaXR5IEZXLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBvYmouaW50VmFsdWUgaXMgNworUEFTUyBvYmouaW50VmFsdWUgaXMgMAorUEFTUyBv
YmouaW50VmFsdWUgaXMgNworUEFTUyBvYmoucm9sZSBpcyAnQVhSb2xlOiBBWFByb2dyZXNzSW5k
aWNhdG9yJworUEFTUyBvYmouaW50VmFsdWUgaXMgMAorUEFTUyBvYmoucm9sZSBpcyAnQVhSb2xl
OiBBWFByb2dyZXNzSW5kaWNhdG9yJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3Byb2dyZXNzYmFyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvcHJvZ3Jlc3NiYXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Byb2dyZXNzYmFyLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxzcGFuIHRhYmluZGV4PSIwIiByb2xl
PSJwcm9ncmVzc2JhciIgaWQ9InByb2dyZXNzYmFyMSIgYXJpYS12YWx1ZW5vdz03IGFyaWEtdmFs
dWVtaW49MCBhcmlhLXZhbHVlbWF4PTEwPlg8L3NwYW4+Cis8c3BhbiB0YWJpbmRleD0iMCIgcm9s
ZT0icHJvZ3Jlc3NiYXIiIGlkPSJwcm9ncmVzc2JhcjIiIGFyaWEtdmFsdWVtYXg9MTA+WDwvc3Bh
bj4KKworPHByb2dyZXNzIGlkPSJwcm9ncmVzc2JhcjMiIHZhbHVlPTcgbWF4PTEwPjwvcHJvZ3Jl
c3M+Cis8cHJvZ3Jlc3MgaWQ9InByb2dyZXNzYmFyNCI+PC9wcm9ncmVzcz4KKworPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKwor
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHByb2dyZXNzIGVsZW1l
bnQgY2FuIGJlIGFjY2Vzc2VkIGJ5IEFjY2Vzc2liaWxpdHkgRlcuIik7CisKKyAgICBpZiAod2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAgICAgICAvLyBBUklBIGRldGVy
bWluYXRlIHByb2dyZXNzYmFyCisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBy
b2dyZXNzYmFyMSIpLmZvY3VzKCk7CisgICAgICAgICAgdmFyIG9iaiA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworCisgICAgICAgICAgc2hvdWxkQmUoIm9iai5pbnRW
YWx1ZSIsICI3Iik7CisKKyAgICAgICAgICAvLyBBUklBIGluZGV0ZXJtaW5hdGUgcHJvZ3Jlc3Ni
YXIgCisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb2dyZXNzYmFyMiIpLmZv
Y3VzKCk7CisgICAgICAgICAgdmFyIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3Vz
ZWRFbGVtZW50OworCisgICAgICAgICAgc2hvdWxkQmUoIm9iai5pbnRWYWx1ZSIsICIwIik7CisK
KyAgICAgICAgICAvLyBkZXRlcm1pbmF0ZSBwcm9ncmVzcyBlbGVtZW50CisgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb2dyZXNzYmFyMyIpLmZvY3VzKCk7CisgICAgICAgICAg
dmFyIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworCisgICAg
ICAgICAgc2hvdWxkQmUoIm9iai5pbnRWYWx1ZSIsICI3Iik7CisgICAgICAgICAgc2hvdWxkQmUo
Im9iai5yb2xlIiwgIidBWFJvbGU6IEFYUHJvZ3Jlc3NJbmRpY2F0b3InIik7CisKKyAgICAgICAg
ICAvLyBpbmRldGVybWluYXRlIHByb2dyZXNzIGVsZW1lbnQKKyAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicHJvZ3Jlc3NiYXI0IikuZm9jdXMoKTsKKyAgICAgICAgICB2YXIgb2Jq
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisKKyAgICAgICAgICBz
aG91bGRCZSgib2JqLmludFZhbHVlIiwgIjAiKTsKKyAgICAgICAgICBzaG91bGRCZSgib2JqLnJv
bGUiLCAiJ0FYUm9sZTogQVhQcm9ncmVzc0luZGljYXRvciciKTsKKyAgICB9CisKKyAgICBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>
<flag name="review"
          id="36469"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52890</attachid>
            <date>2010-04-08 13:34:34 -0700</date>
            <delta_ts>2010-04-09 09:22:22 -0700</delta_ts>
            <desc>Patch to addres review comments.</desc>
            <filename>37275.patch</filename>
            <type>text/plain</type>
            <size>21052</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzI4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDQtMDggIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFjY2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgcHJvZ3Jlc3MgZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyNzUKKworICAgICAgICBJbXBs
ZW1lbnQgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yIHRvIGhvb2sgdXAgcHJvZ3Jlc3Mg
ZWxlbWVudCB0byBhY2Nlc3NpYmlsaXR5IGZyYW1ld29yay4KKworICAgICAgICBUZXN0OiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci5odG1sCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpn
ZXRPckNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jl
c3NJbmRpY2F0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQ
cm9ncmVzc0luZGljYXRvcjo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3I6OnZhbHVlRm9yUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yOjptYXhWYWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6bWluVmFsdWVGb3JSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmVsZW1lbnQpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9y
Ojpyb2xlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5k
aWNhdG9yOjppc1Byb2dyZXNzSW5kaWNhdG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UHJvZ3Jlc3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnVwZGF0ZUZy
b21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpwcm9ncmVzc0Vs
ZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oOgorCiAyMDEwLTA0
LTA4ICBCZW5qYW1pbiBPdHRlICA8b3R0ZUBnbm9tZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgR3VzdGF2byBOb3JvbmhhLgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA1NzI2OSkKKysrIFdlYkNv
cmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMzNCw2ICszMzQsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24uaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIFwK
KwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNw
cCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRv
ci5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmgg
XAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcCBcCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
Z3lwaQkocmV2aXNpb24gNTcyNjkpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBj
b3B5KQpAQCAtNDIzLDYgKzQyMyw4IEBACiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgnLAogICAgICAgICAgICAgJ2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJD
b3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA1NzI2
OSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTI2Miw2ICsyNjIs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNw
cCBcICAgIAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwIFwgICAg
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAgXCAgICAK
KyAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAgXCAg
ICAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIFwgICAg
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcCBcCiAgICAgYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcCBcICAgIApAQCAtMTAxNiw2ICsxMDE3
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5o
IFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmggXAogICAg
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIFwKKyAgICBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oIFwKICAgICBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2Nyb2xsYmFyLmggXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5o
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNTcy
NjkpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yMDI0MSw2ICsyMDI0MSw2MiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvci5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nl
c3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIg0KIAkJCQk+DQogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiA1NzI2OSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNTA1LDYgKzI1MDUsOCBAQAogCQlB
MTM2QTAwRDExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhy
b3R0bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MzZBMDBCMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJv
dHRsZS5oICovOyB9OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRG
YWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovOyB9
OwogCQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdDODEyMTBGMkE1
Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CisJCUE0MDlDOTg0MTE2
RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQwOUM5ODIxMTZEMERE
RDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAgKi87IH07CisJ
CUE0MDlDOTg1MTE2RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0MDlD
OTgzMTE2RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCAq
LzsgfTsKIAkJQTQyMjZFNUExMTYzRDY2NzAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIy
NkU1OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLzsgfTsK
IAkJQTQyMjZFNUMxMTYzRDY5NTAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFNUIxMTYz
RDY5NTAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oICovOyB9OwogCQlBNDIyNkU5
NTExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFOTIxMTYzRDczQTAwOEI4
Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLzsgfTsKQEAgLTc5MzksNiArNzk0MSw4
IEBACiAJCUExMzZBMDBCMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFF
QiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSFRNTEVsZW1lbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE0
MDlDOTgyMTE2RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTQwOUM5
ODMxMTZEMERERDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRp
Y2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTQyMjZFNTkxMTYzRDY2NzAw
OEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNDIyNkU1QjExNjNENjk1MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jl
c3NFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTFByb2dy
ZXNzRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNDIyNkU5MjExNjNE
NzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDg3Niw2ICsxMDg4MCw4IEBACiAJCQkJNzZDREQyRUYxMTAzREE2
NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggKi8sCiAJCQkJMjlBODEy
MUUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwICovLAogCQkJCTI5
QTgxMjE4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi8sCisJCQkJ
QTQwOUM5ODIxMTZEMERERDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRv
ci5jcHAgKi8sCisJCQkJQTQwOUM5ODMxMTZEMERERDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQ
cm9ncmVzc0luZGljYXRvci5oICovLAogCQkJCTI5QTgxMjA4MEZCQjlDMUQwMDUxMDI5MyAvKiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAqLywKIAkJCQkyOUE4MTIxQjBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oICovLAogCQkJCTkzQzRGNkU4MTEw
OEY5QTUwMDk5RDBEQiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcCAqLywKQEAgLTE4ODIz
LDYgKzE4ODI5LDcgQEAKIAkJCQk5N0MwNzg1MDExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJl
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJH
ZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUQ0QUE3QTExNkJBRkI2MDA2
OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNDA5Qzk4NTEx
NkQwREREMDA3MTk3QkQgLyogQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4OTUyNTNEODExNkM0QzY4MDBDQUJGMDAgLyogRmlsZVN0cmVhbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODk1MjUzRDkxMTZDNEM2ODAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1D
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKQEAgLTIxMDQ1LDYgKzIxMDUyLDcgQEAKIAkJ
CQk4OTUyNTM1MjExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzVENEFBNzkxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBo
TWV0cmljc01hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNDA5Qzk4NDExNkQwREREMDA3MTk3
QkQgLyogQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTg5NTI1M0Q3MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpJ
bmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gNTcy
NjkpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
aCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCIKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvci5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIK
ICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eVNsaWRlci5oIgpAQCAtMjA5LDYgKzIxMCwxMiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
WE9iamVjdENhY2hlOjpnZXRPCiAgICAgICAgICAgICBuZXdPYmogPSBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sOjpjcmVhdGUocmVuZGVyZXIpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUFJPR1JF
U1NfVEFHKQorICAgICAgICAvLyBwcm9ncmVzcyBiYXIKKyAgICAgICAgZWxzZSBpZiAocmVuZGVy
ZXItPmlzUHJvZ3Jlc3MoKSkKKyAgICAgICAgICAgIG5ld09iaiA9IEFjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvcjo6Y3JlYXRlKHJlbmRlcmVyKTsKKyNlbmRpZgorCiAgICAgICAgIC8vIGlu
cHV0IHR5cGU9cmFuZ2UKICAgICAgICAgZWxzZSBpZiAocmVuZGVyZXItPmlzU2xpZGVyKCkpCiAg
ICAgICAgICAgICBuZXdPYmogPSBBY2Nlc3NpYmlsaXR5U2xpZGVyOjpjcmVhdGUocmVuZGVyZXIp
OwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlQcm9ncmVzc0luZGljYXRvci5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVByb2dy
ZXNzSW5kaWNhdG9yLmgiCisKKyNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKKyNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworICAgIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworQWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3Io
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qo
cmVuZGVyZXIpCit7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNh
dG9yPiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0ZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVByb2dy
ZXNzSW5kaWNhdG9yKHJlbmRlcmVyKSk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
YWNjZXNzaWJpbGl0eUlzSWdub3JlZEJhc2UoKSA9PSBJZ25vcmVPYmplY3Q7Cit9CisgICAgCitm
bG9hdCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OnZhbHVlRm9yUmFuZ2UoKSBjb25z
dAoreworICAgIGlmIChlbGVtZW50KCktPnBvc2l0aW9uKCkgPj0gMCkKKyAgICAgICAgcmV0dXJu
IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZWxlbWVudCgpLT52YWx1ZSgpKTsKKyAgICAvLyBJbmRl
dGVybWluYXRlIHByb2dyZXNzIGJhciBzaG91bGQgcmV0dXJuIDAuCisgICAgcmV0dXJuIDAuMGY7
Cit9CisKK2Zsb2F0IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6bWF4VmFsdWVGb3JS
YW5nZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZWxlbWVu
dCgpLT5tYXgoKSk7Cit9CisKK2Zsb2F0IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6
bWluVmFsdWVGb3JSYW5nZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDAuMGY7Cit9CisKK0hUTUxQ
cm9ncmVzc0VsZW1lbnQqIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6ZWxlbWVudCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRvUmVuZGVyUHJvZ3Jlc3MobV9yZW5kZXJlciktPnByb2dy
ZXNzRWxlbWVudCgpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShQUk9HUkVTU19UQUcpCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYg
QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yX2gKKyNkZWZpbmUgQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yX2gKKworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisKKyNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSFRNTFByb2dyZXNzRWxlbWVudDsKKworY2xhc3MgQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworICAgIAorcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRv
cj4gY3JlYXRlKFJlbmRlck9iamVjdCopOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gUHJvZ3Jlc3NJbmRpY2F0b3JS
b2xlOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0
OworICAgIHZpcnR1YWwgZmxvYXQgbWF4VmFsdWVGb3JSYW5nZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgZmxvYXQgbWluVmFsdWVGb3JSYW5nZSgpIGNvbnN0OworCisgICAgQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yKFJlbmRlck9iamVjdCopOworCitwcml2YXRlOgorICAgIEhUTUxQcm9n
cmVzc0VsZW1lbnQqIGVsZW1lbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0OworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoUFJPR1JFU1NfVEFHKQorCisjZW5kaWYgLy8gQWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yX2gKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dy
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5j
cHAJKHJldmlzaW9uIDU3MjY5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVuZGVyUHJvZ3Jlc3M6
OmxheW91dCgpCiAKIHZvaWQgUmVuZGVyUHJvZ3Jlc3M6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsK
LSAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFByb2dy
ZXNzRWxlbWVudCo+KG5vZGUoKSk7CisgICAgSFRNTFByb2dyZXNzRWxlbWVudCogZWxlbWVudCA9
IHByb2dyZXNzRWxlbWVudCgpOwogICAgIGlmIChtX3Bvc2l0aW9uID09IGVsZW1lbnQtPnBvc2l0
aW9uKCkpCiAgICAgICAgIHJldHVybjsKICAgICBtX3Bvc2l0aW9uID0gZWxlbWVudC0+cG9zaXRp
b24oKTsKQEAgLTExMSw1ICsxMTEsMTAgQEAgdm9pZCBSZW5kZXJQcm9ncmVzczo6dXBkYXRlQW5p
bWF0aW9uU3RhdAogICAgICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3AoKTsKIH0KIAorSFRNTFBy
b2dyZXNzRWxlbWVudCogUmVuZGVyUHJvZ3Jlc3M6OnByb2dyZXNzRWxlbWVudCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQcm9ncmVzc0VsZW1lbnQqPihub2RlKCkpOwor
fSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclByb2dyZXNzLmgJKHJldmlzaW9uIDU3MjY5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQCBwdWJsaWM6
CiAgICAgUmVuZGVyUHJvZ3Jlc3MoSFRNTFByb2dyZXNzRWxlbWVudCopOwogICAgIGRvdWJsZSBw
b3NpdGlvbigpIHsgcmV0dXJuIG1fcG9zaXRpb247IH0KICAgICBkb3VibGUgYW5pbWF0aW9uUHJv
Z3Jlc3MoKTsKKyAgICAKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBwcm9ncmVzc0VsZW1lbnQo
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCB7IHJldHVybiAiUmVuZGVyUHJvZ3Jlc3MiOyB9CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1
NzI4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEwLTA0LTA4ICB5YWVsIGFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY2Nlc3Np
YmlsaXR5IHN1cHBvcnQgZm9yIHByb2dyZXNzIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3Mjc1CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Byb2dyZXNzYmFyLmh0bWw6IEFkZGVkLgor
CiAyMDEwLTA0LTA4ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBO
byByZXZpZXcsIHJvbGxpbmcgb3V0IDU2NzE3LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvcHJvZ3Jlc3NiYXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Byb2dyZXNzYmFyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3Byb2dyZXNzYmFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NiBAQAorWCBYICAgCitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHByb2dyZXNzIGVsZW1lbnQg
Y2FuIGJlIGFjY2Vzc2VkIGJ5IEFjY2Vzc2liaWxpdHkgRlcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG9iai5pbnRWYWx1ZSBpcyA3CitQQVNTIG9iai5pbnRWYWx1ZSBp
cyAwCitQQVNTIG9iai5pbnRWYWx1ZSBpcyA3CitQQVNTIG9iai5yb2xlIGlzICdBWFJvbGU6IEFY
UHJvZ3Jlc3NJbmRpY2F0b3InCitQQVNTIG9iai5pbnRWYWx1ZSBpcyAwCitQQVNTIG9iai5yb2xl
IGlzICdBWFJvbGU6IEFYUHJvZ3Jlc3NJbmRpY2F0b3InCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvcHJvZ3Jlc3NiYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvcHJvZ3Jlc3Ni
YXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHNwYW4gdGFiaW5k
ZXg9IjAiIHJvbGU9InByb2dyZXNzYmFyIiBpZD0icHJvZ3Jlc3NiYXIxIiBhcmlhLXZhbHVlbm93
PTcgYXJpYS12YWx1ZW1pbj0wIGFyaWEtdmFsdWVtYXg9MTA+WDwvc3Bhbj4KKzxzcGFuIHRhYmlu
ZGV4PSIwIiByb2xlPSJwcm9ncmVzc2JhciIgaWQ9InByb2dyZXNzYmFyMiIgYXJpYS12YWx1ZW1h
eD0xMD5YPC9zcGFuPgorCis8cHJvZ3Jlc3MgaWQ9InByb2dyZXNzYmFyMyIgdmFsdWU9NyBtYXg9
MTA+PC9wcm9ncmVzcz4KKzxwcm9ncmVzcyBpZD0icHJvZ3Jlc3NiYXI0Ij48L3Byb2dyZXNzPgor
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgcHJv
Z3Jlc3MgZWxlbWVudCBjYW4gYmUgYWNjZXNzZWQgYnkgQWNjZXNzaWJpbGl0eSBGVy4iKTsKKwor
ICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKworICAgICAgICAgIC8v
IEFSSUEgZGV0ZXJtaW5hdGUgcHJvZ3Jlc3NiYXIKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicHJvZ3Jlc3NiYXIxIikuZm9jdXMoKTsKKyAgICAgICAgICB2YXIgb2JqID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisKKyAgICAgICAgICBzaG91bGRC
ZSgib2JqLmludFZhbHVlIiwgIjciKTsKKworICAgICAgICAgIC8vIEFSSUEgaW5kZXRlcm1pbmF0
ZSBwcm9ncmVzc2JhciAKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvZ3Jl
c3NiYXIyIikuZm9jdXMoKTsKKyAgICAgICAgICB2YXIgb2JqID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisKKyAgICAgICAgICBzaG91bGRCZSgib2JqLmludFZhbHVl
IiwgIjAiKTsKKworICAgICAgICAgIC8vIGRldGVybWluYXRlIHByb2dyZXNzIGVsZW1lbnQKKyAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvZ3Jlc3NiYXIzIikuZm9jdXMoKTsK
KyAgICAgICAgICB2YXIgb2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1l
bnQ7CisKKyAgICAgICAgICBzaG91bGRCZSgib2JqLmludFZhbHVlIiwgIjciKTsKKyAgICAgICAg
ICBzaG91bGRCZSgib2JqLnJvbGUiLCAiJ0FYUm9sZTogQVhQcm9ncmVzc0luZGljYXRvciciKTsK
KworICAgICAgICAgIC8vIGluZGV0ZXJtaW5hdGUgcHJvZ3Jlc3MgZWxlbWVudAorICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9ncmVzc2JhcjQiKS5mb2N1cygpOworICAgICAg
ICAgIHZhciBvYmogPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKwor
ICAgICAgICAgIHNob3VsZEJlKCJvYmouaW50VmFsdWUiLCAiMCIpOworICAgICAgICAgIHNob3Vs
ZEJlKCJvYmoucm9sZSIsICInQVhSb2xlOiBBWFByb2dyZXNzSW5kaWNhdG9yJyIpOworICAgIH0K
KworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="36494"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>