<?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>36512</bug_id>
          
          <creation_ts>2010-03-23 15:53:13 -0700</creation_ts>
          <short_desc>Expose constructor functions for instanceof checks of WebGL objects</short_desc>
          <delta_ts>2010-12-09 17:59:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>gman</cc>
    
    <cc>oliver</cc>
    
    <cc>vangelis</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>203269</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-03-23 15:53:13 -0700</bug_when>
    <thetext>Currently the constructor functions for types like WebGLBuffer and WebGLRenderBuffer are not exposed on the DOMWindow object. This presents problems when trying to determine the type of these objects. The JavaScript instanceof operator would support type checks against these objects, if the constructor functions were exposed on the DOMWindow under the appropriate type names.

I haven&apos;t checked the Web IDL specification to understand whether support for these type checks is supposed to be implicit, in which case this would simply be a bug in WebKit&apos;s JavaScript bindings for WebGL. If not then this issue may need to be discussed with the WebGL working group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319750</commentid>
    <comment_count>1</comment_count>
      <attachid>76128</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-09 15:46:30 -0800</bug_when>
    <thetext>Created attachment 76128
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319780</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-12-09 16:27:42 -0800</bug_when>
    <thetext>This worried me at first, because it seems to indicate that this change will allow you to construct and object with &quot;new WebGLBuffer()&quot;, which would be anything from useless to very bad. But Ollie helped me understand that the word &quot;constructor&quot; in this context is a complete misnomer and these new objects will properly throw exceptions if something that is attempted.

Still might be useful to create a test that attempts to create them and see that it properly fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319783</commentid>
    <comment_count>3</comment_count>
      <attachid>76128</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-09 16:34:23 -0800</bug_when>
    <thetext>Comment on attachment 76128
patch

As Chris points out the test really does need to ensure that attempts to call these constructors throw exceptions. r- for this reason. Looks good otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319784</commentid>
    <comment_count>4</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-09 16:36:06 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; This worried me at first, because it seems to indicate that this change will allow you to construct and object with &quot;new WebGLBuffer()&quot;, which would be anything from useless to very bad. But Ollie helped me understand that the word &quot;constructor&quot; in this context is a complete misnomer and these new objects will properly throw exceptions if something that is attempted.
&gt; 
&gt; Still might be useful to create a test that attempts to create them and see that it properly fails.

CanBeConstructed needs to be in the idl interface and probably some extra hook-up if you wanna do new T().

I&apos;ll add the test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319785</commentid>
    <comment_count>5</comment_count>
      <attachid>76128</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-12-09 16:36:16 -0800</bug_when>
    <thetext>Comment on attachment 76128
patch

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

&gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:122
&gt; +    static bool webGLUniformLocationEnabled() { return isWebGLEnabled; }

Why are you not handling WebGLObject and WebGLContextAttributes here (and throughout the rest of the patch)? Also should obsolete objects like WebGLFloatArray be removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319786</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-12-09 16:37:38 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; This worried me at first, because it seems to indicate that this change will allow you to construct and object with &quot;new WebGLBuffer()&quot;, which would be anything from useless to very bad. But Ollie helped me understand that the word &quot;constructor&quot; in this context is a complete misnomer and these new objects will properly throw exceptions if something that is attempted.
&gt; &gt; 
&gt; &gt; Still might be useful to create a test that attempts to create them and see that it properly fails.
&gt; 
&gt; CanBeConstructed needs to be in the idl interface and probably some extra hook-up if you wanna do new T().

Just to be clear, we definitely don&apos;t want to be able to do new T() on any of these objects. The tests are just to make sure that is the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319799</commentid>
    <comment_count>7</comment_count>
      <attachid>76138</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-09 17:08:15 -0800</bug_when>
    <thetext>Created attachment 76138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319810</commentid>
    <comment_count>8</comment_count>
      <attachid>76138</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-09 17:15:24 -0800</bug_when>
    <thetext>Comment on attachment 76138
Patch

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

Looks good. One minor grammatical correction, fix on landing.

&gt; LayoutTests/fast/canvas/webgl/instanceof-test.html:67
&gt; +        testPassed(&apos;new &apos; + objectName + &apos; throw an error&apos;);

throw -&gt; threw</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319834</commentid>
    <comment_count>9</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-09 17:55:22 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 76128 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76128&amp;action=review
&gt; 
&gt; &gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:122
&gt; &gt; +    static bool webGLUniformLocationEnabled() { return isWebGLEnabled; }
&gt; 
&gt; Why are you not handling WebGLObject and WebGLContextAttributes here (and throughout the rest of the patch)? Also should obsolete objects like WebGLFloatArray be removed?

WebGLObject is not exposed.  As for WebGLContextAttributes and WebGLContextEvent, I am not sure if it&apos;s worth exposing the constructors.  If yes, we can add them in a follow-up patch, so is the clean-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319837</commentid>
    <comment_count>10</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-09 17:59:12 -0800</bug_when>
    <thetext>Committed r73669: &lt;http://trac.webkit.org/changeset/73669&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76128</attachid>
            <date>2010-12-09 15:46:30 -0800</date>
            <delta_ts>2010-12-09 17:08:12 -0800</delta_ts>
            <desc>patch</desc>
            <filename>instanceof.patch</filename>
            <type>text/plain</type>
            <size>16921</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzY1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMTItMDkgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2Ug
Y29uc3RydWN0b3IgZnVuY3Rpb25zIGZvciBpbnN0YW5jZW9mIGNoZWNrcyBvZiBXZWJHTCBvYmpl
Y3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjUx
MgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC5odG1s
CisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYkdMQWN0aXZlSW5m
b0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2Vi
R0xCdWZmZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OndlYkdMRnJhbWVidWZmZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OndlYkdMUHJvZ3JhbUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViR0xSZW5kZXJidWZmZXJFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYkdMU2hhZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJHTFRleHR1cmVF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYkdM
VW5pZm9ybUxvY2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xBY3Rp
dmVJbmZvLmlkbDogUmVtb3ZlIE9taXRDb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuaWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
aWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGw6
IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbDogRGl0dG8uCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbDogRGl0dG8uCisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsOiBEaXR0by4KKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5pZGw6IEV4cG9zZSBjb25zdHJ1Y3RvcnMgZm9yIFdlYkdMIG9iamVjdHMg
aW4gRE9NV2luZG93LgorCiAyMDEwLTEyLTA5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAkocmV2aXNpb24g
NzM1NzgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDE0IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCB3ZWJHTEludEFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9
CiAgICAgc3RhdGljIGJvb2wgd2ViR0xVbnNpZ25lZEludEFycmF5RW5hYmxlZCgpIHsgcmV0dXJu
IGlzV2ViR0xFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgd2ViR0xGbG9hdEFycmF5RW5hYmxl
ZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2ViR0xBY3Rp
dmVJbmZvRW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CisgICAgc3RhdGljIGJv
b2wgd2ViR0xCdWZmZXJFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KKyAgICBz
dGF0aWMgYm9vbCB3ZWJHTEZyYW1lYnVmZmVyRW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFi
bGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2ViR0xQcm9ncmFtRW5hYmxlZCgpIHsgcmV0dXJuIGlz
V2ViR0xFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2ViR0xSZW5kZXJidWZmZXJFbmFibGVk
KCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCB3ZWJHTFNoYWRl
ckVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIHdl
YkdMVGV4dHVyZUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQorICAgIHN0YXRp
YyBib29sIHdlYkdMVW5pZm9ybUxvY2F0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFi
bGVkOyB9CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHNldFB1c2hTdGF0ZUVuYWJsZWQoYm9v
bCBpc0VuYWJsZWQpIHsgaXNQdXNoU3RhdGVFbmFibGVkID0gaXNFbmFibGVkOyB9CkluZGV4OiBX
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCShyZXZpc2lvbiA3MzU3OCkKKysr
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOCArMjYsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAg
ICAgQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICAg
ICAgQ29uZGl0aW9uYWw9M0RfQ0FOVkFTCiAgICAgXSBXZWJHTEFjdGl2ZUluZm8gewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgaW50IHNpemU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBpbnQgdHlwZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
CShyZXZpc2lvbiA3MzU3OCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw2IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewot
ICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLCBPbWl0Q29uc3RydWN0b3JdIFdl
YkdMQnVmZmVyIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBU10gV2ViR0xC
dWZmZXIgewogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVi
dWZmZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5pZGwJKHJldmlzaW9uIDczNTc4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZy
YW1lYnVmZmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNiBAQAogICovCiAKIG1v
ZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBUywgT21pdENv
bnN0cnVjdG9yXSBXZWJHTEZyYW1lYnVmZmVyIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFs
PTNEX0NBTlZBU10gV2ViR0xGcmFtZWJ1ZmZlciB7CiAgICAgfTsKIH0KSW5kZXg6IFdlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwJKHJldmlzaW9uIDczNTc4KQorKysgV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw2IEBA
CiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9M0RfQ0FO
VkFTLCBPbWl0Q29uc3RydWN0b3JdIFdlYkdMUHJvZ3JhbSB7CisgICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD0zRF9DQU5WQVNdIFdlYkdMUHJvZ3JhbSB7CiAgICAgfTsKIH0KSW5kZXg6IFdlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCShyZXZpc2lvbiA3MzU3OCkKKysr
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCw2ICsyNCw2IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
Q29uZGl0aW9uYWw9M0RfQ0FOVkFTLCBPbWl0Q29uc3RydWN0b3JdIFdlYkdMUmVuZGVyYnVmZmVy
IHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBU10gV2ViR0xSZW5kZXJidWZm
ZXIgewogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAkocmV2
aXNpb24gNzM1NzgpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNiBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBp
bnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBUywgT21pdENvbnN0cnVjdG9yXSBXZWJHTFNo
YWRlciB7CisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD0zRF9DQU5WQVNdIFdlYkdMU2hhZGVy
IHsKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbAkocmV2
aXNpb24gNzM1NzgpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDYgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAg
aW50ZXJmYWNlIFtDb25kaXRpb25hbD0zRF9DQU5WQVMsIE9taXRDb25zdHJ1Y3Rvcl0gV2ViR0xU
ZXh0dXJlIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBU10gV2ViR0xUZXh0
dXJlIHsKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1M
b2NhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZv
cm1Mb2NhdGlvbi5pZGwJKHJldmlzaW9uIDczNTc4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDYgQEAK
ICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD0zRF9DQU5W
QVMsIE9taXRDb25zdHJ1Y3Rvcl0gV2ViR0xVbmlmb3JtTG9jYXRpb24geworICAgIGludGVyZmFj
ZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTXSBXZWJHTFVuaWZvcm1Mb2NhdGlvbiB7CiAgICAgfTsK
IH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiA3MzU3OCkKKysrIFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00ODUsNyArNDg1LDE1IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgQ2FudmFzR3JhZGllbnRDb25zdHJ1Y3RvciBDYW52
YXNHcmFkaWVudDsKICAgICAgICAgYXR0cmlidXRlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENv
bnN0cnVjdG9yIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKICAgICAgICAgYXR0cmlidXRlIElt
YWdlRGF0YUNvbnN0cnVjdG9yIEltYWdlRGF0YTsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRp
b25hbD0zRF9DQU5WQVMsRW5hYmxlZEF0UnVudGltZV0gV2ViR0xBY3RpdmVJbmZvQ29uc3RydWN0
b3IgV2ViR0xBY3RpdmVJbmZvOworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPTNEX0NB
TlZBUyxFbmFibGVkQXRSdW50aW1lXSBXZWJHTEJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdMQnVmZmVy
OworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPTNEX0NBTlZBUyxFbmFibGVkQXRSdW50
aW1lXSBXZWJHTEZyYW1lYnVmZmVyQ29uc3RydWN0b3IgV2ViR0xGcmFtZWJ1ZmZlcjsKKyAgICAg
ICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD0zRF9DQU5WQVMsRW5hYmxlZEF0UnVudGltZV0gV2Vi
R0xQcm9ncmFtQ29uc3RydWN0b3IgV2ViR0xQcm9ncmFtOworICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPTNEX0NBTlZBUyxFbmFibGVkQXRSdW50aW1lXSBXZWJHTFJlbmRlcmJ1ZmZlckNv
bnN0cnVjdG9yIFdlYkdMUmVuZGVyYnVmZmVyOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPTNEX0NBTlZBUyxFbmFibGVkQXRSdW50aW1lXSBXZWJHTFJlbmRlcmluZ0NvbnRleHRDb25z
dHJ1Y3RvciBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0
aW9uYWw9M0RfQ0FOVkFTLEVuYWJsZWRBdFJ1bnRpbWVdIFdlYkdMU2hhZGVyQ29uc3RydWN0b3Ig
V2ViR0xTaGFkZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLEVu
YWJsZWRBdFJ1bnRpbWVdIFdlYkdMVGV4dHVyZUNvbnN0cnVjdG9yIFdlYkdMVGV4dHVyZTsKKyAg
ICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD0zRF9DQU5WQVMsRW5hYmxlZEF0UnVudGltZV0g
V2ViR0xVbmlmb3JtTG9jYXRpb25Db25zdHJ1Y3RvciBXZWJHTFVuaWZvcm1Mb2NhdGlvbjsKICAg
ICAgICAgYXR0cmlidXRlIFRleHRNZXRyaWNzQ29uc3RydWN0b3IgVGV4dE1ldHJpY3M7CiAKICAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZ01hcENvbnN0cnVjdG9yIERPTVN0cmluZ01hcDsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDczNjU1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTItMDkgIFpoZW55YW8gTW8gIDx6bW9AZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFeHBvc2UgY29uc3RydWN0b3IgZnVuY3Rpb25zIGZvciBpbnN0YW5jZW9mIGNoZWNrcyBvZiBX
ZWJHTCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjUxMgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFuY2VvZi10ZXN0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFu
Y2VvZi10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzOiBSZWdpc3RlciBuZXdseSBhZGRl
ZCBXZWJHTCBvYmplY3RzLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90
eXBlLWluaGVyaXRhbmNlLTIuanM6IERpdHRvLgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0Zv
cldpbmRvdyk6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS5qczogRGl0dG8uCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFs
LWNvbnN0cnVjdG9ycy5qczogRGl0dG8uCisKIDIwMTAtMTItMDkgIFBldGVyIEthc3RpbmcgIDxw
a2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBl
eHBlY3RhdGlvbnMgdXBkYXRlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
aW5zdGFuY2VvZi10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFuY2VvZi10ZXN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorIFRlc3RzIHRoYXQgaW5zdGFu
Y2VvZiB3b3JrcyBvbiBXZWJHTCBvYmplY3RzLgorCitQQVNTIGdsIGluc3RhbmNlb2YgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IGlzIHRydWUKK1BBU1MgZ2wuY3JlYXRlQnVmZmVyKCkgaW5zdGFuY2Vv
ZiBXZWJHTEJ1ZmZlciBpcyB0cnVlCitQQVNTIGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaW5zdGFu
Y2VvZiBXZWJHTEZyYW1lYnVmZmVyIGlzIHRydWUKK1BBU1MgZ2wuY3JlYXRlUHJvZ3JhbSgpIGlu
c3RhbmNlb2YgV2ViR0xQcm9ncmFtIGlzIHRydWUKK1BBU1MgZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmJ1ZmZlciBpcyB0cnVlCitQQVNTIGdsLmNyZWF0ZVNo
YWRlcihnbC5WRVJURVhfU0hBREVSKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyIGlzIHRydWUKK1BB
U1MgZ2wuY3JlYXRlVGV4dHVyZSgpIGluc3RhbmNlb2YgV2ViR0xUZXh0dXJlIGlzIHRydWUKK1BB
U1MgZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJjb2xvciIpIGluc3RhbmNlb2YgV2Vi
R0xVbmlmb3JtTG9jYXRpb24gaXMgdHJ1ZQorUEFTUyBnbC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgMCkgaW5zdGFuY2VvZiBXZWJHTEFjdGl2ZUluZm8gaXMgdHJ1ZQorUEFTUyBnbC5nZXRBY3Rp
dmVVbmlmb3JtKHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3Qu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luc3Rh
bmNlb2YtdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIg0KKyAg
Imh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+DQorPGh0bWw+DQorPGhlYWQ+
DQorPHRpdGxlPldlYkdMIGluc3RhbmNlb2YgdGVzdC48L3RpdGxlPg0KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+DQor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
DQorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+DQorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+DQorPC9o
ZWFkPg0KKzxib2R5Pg0KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIg
c3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4NCis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+DQorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+DQorPHNjcmlwdCBp
ZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPg0KK2F0dHJpYnV0ZSB2ZWM0IHZQ
b3NpdGlvbjsNCit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7DQordm9pZCBtYWluKCkNCit7DQorICAg
IGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOw0KK30NCis8L3NjcmlwdD4NCisNCis8c2NyaXB0IGlk
PSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4NCisjaWZkZWYgR0xfRVMNCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsNCisjZW5kaWYNCit1bmlmb3JtIHZlYzQgY29sb3I7DQor
dm9pZCBtYWluKCkNCit7DQorICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yOw0KK30NCis8L3Njcmlw
dD4NCis8c2NyaXB0Pg0KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsNCitkZWJ1ZygiVGVzdHMg
dGhhdCBpbnN0YW5jZW9mIHdvcmtzIG9uIFdlYkdMIG9iamVjdHMuIik7DQorZGVidWcoIiIpOw0K
K3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFz
IikpOw0KK3Nob3VsZEJlVHJ1ZSgnZ2wgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmluZ0NvbnRleHQn
KTsNCitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZUJ1ZmZlcigpIGluc3RhbmNlb2YgV2ViR0xCdWZm
ZXInKTsNCitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaW5zdGFuY2VvZiBX
ZWJHTEZyYW1lYnVmZmVyJyk7DQorc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVQcm9ncmFtKCkgaW5z
dGFuY2VvZiBXZWJHTFByb2dyYW0nKTsNCitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGluc3RhbmNlb2YgV2ViR0xSZW5kZXJidWZmZXInKTsNCitzaG91bGRCZVRydWUoJ2ds
LmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyJyk7
DQorc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVUZXh0dXJlKCkgaW5zdGFuY2VvZiBXZWJHTFRleHR1
cmUnKTsNCisNCit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oDQorICAgIGdsLA0KKyAg
ICBbd3R1LmxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCAndnNoYWRlcicsIGdsLlZFUlRFWF9TSEFE
RVIpLA0KKyAgICAgd3R1LmxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCAnZnNoYWRlcicsIGdsLkZS
QUdNRU5UX1NIQURFUildLA0KKyAgICBbJ3ZQb3NpdGlvbiddLCBbMF0pOw0KKw0KK3Nob3VsZEJl
VHJ1ZSgnZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJjb2xvciIpIGluc3RhbmNlb2Yg
V2ViR0xVbmlmb3JtTG9jYXRpb24nKTsNCitzaG91bGRCZVRydWUoJ2dsLmdldEFjdGl2ZUF0dHJp
Yihwcm9ncmFtLCAwKSBpbnN0YW5jZW9mIFdlYkdMQWN0aXZlSW5mbycpOw0KK3Nob3VsZEJlVHJ1
ZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSBpbnN0YW5jZW9mIFdlYkdMQWN0aXZl
SW5mbycpOw0KKw0KK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7DQorPC9zY3JpcHQ+DQorPC9i
b2R5Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4NCisNCis8c2NyaXB0Pg0KKzwvc2NyaXB0Pg0KKw0KKzwvYm9keT4NCis8L2h0bWw+
DQorDQorDQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDczNTc4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYg
KzYyLDE0IEBAIHZhciBfX3NraXBfXyA9IHsKICAgICAid2luZG93LnRleHRJbnB1dENvbnRyb2xs
ZXIiIDogMSwKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkgZG8g
bm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQgc2Vw
YXJhdGVseQogICAgICJ3aW5kb3cuV2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsIAorICAgICJ3
aW5kb3cuV2ViR0xBY3RpdmVJbmZvIiA6IDEsIAorICAgICJ3aW5kb3cuV2ViR0xCdWZmZXIiIDog
MSwgCisgICAgIndpbmRvdy5XZWJHTEZyYW1lYnVmZmVyIiA6IDEsIAorICAgICJ3aW5kb3cuV2Vi
R0xQcm9ncmFtIiA6IDEsIAorICAgICJ3aW5kb3cuV2ViR0xSZW5kZXJidWZmZXIiIDogMSwgCisg
ICAgIndpbmRvdy5XZWJHTFNoYWRlciIgOiAxLCAKKyAgICAid2luZG93LldlYkdMVGV4dHVyZSIg
OiAxLCAKKyAgICAid2luZG93LldlYkdMVW5pZm9ybUxvY2F0aW9uIiA6IDEsIAogICAgICJ3aW5k
b3cuQXJyYXlCdWZmZXIiIDogMSwKICAgICAid2luZG93LkRhdGFWaWV3IiA6IDEsCiAgICAgIndp
bmRvdy5JbnQ4QXJyYXkiIDogMSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9z
Y3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5
LWRlc2NyaXB0b3JzLmpzCShyZXZpc2lvbiA3MzU3OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMCw2ICsyMCwxNCBAQCB2YXIgX19za2lwX18gPSB7CiAgICAgInRleHRJ
bnB1dENvbnRyb2xsZXIiIDogMSwKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNh
dXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBi
ZSB0ZXN0ZWQgc2VwYXJhdGVseQogICAgICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiIDogMSwKKyAg
ICAiV2ViR0xBY3RpdmVJbmZvIiA6IDEsCisgICAgIldlYkdMQnVmZmVyIiA6IDEsCisgICAgIldl
YkdMRnJhbWVidWZmZXIiIDogMSwKKyAgICAiV2ViR0xQcm9ncmFtIiA6IDEsCisgICAgIldlYkdM
UmVuZGVyYnVmZmVyIiA6IDEsCisgICAgIldlYkdMU2hhZGVyIiA6IDEsCisgICAgIldlYkdMVGV4
dHVyZSIgOiAxLAorICAgICJXZWJHTFVuaWZvcm1Mb2NhdGlvbiIgOiAxLAogICAgICJBcnJheUJ1
ZmZlciIgOiAxLAogICAgICJEYXRhVmlldyIgOiAxLAogICAgICJJbnQ4QXJyYXkiIDogMSwKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFu
Y2UtMi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMv
cHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMJKHJldmlzaW9uIDczNTc4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw3ICs1OSwxNSBAQCBmdW5jdGlvbiBjb25zdHJ1Y3Rvck5hbWVzRm9y
V2luZG93KGdsb2JhCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgdmFyIHR5cGUgPSBj
bGFzc05hbWVGb3JPYmplY3QodmFsdWUpOwogICAgICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVy
dGllcyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRo
ZXkgd2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVseQotICAgICAgICBpZiAodHlwZSA9PSAiV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q29uc3RydWN0b3IiIHx8IAorICAgICAgICBpZiAodHlwZSA9PSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09ICJX
ZWJHTEFjdGl2ZUluZm9Db25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0gIldlYkdM
QnVmZmVyQ29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09ICJXZWJHTEZyYW1lYnVm
ZmVyQ29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09ICJXZWJHTFByb2dyYW1Db25z
dHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0gIldlYkdMUmVuZGVyYnVmZmVyQ29uc3Ry
dWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09ICJXZWJHTFNoYWRlckNvbnN0cnVjdG9yIiB8
fAorICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xUZXh0dXJlQ29uc3RydWN0b3IiIHx8CisgICAg
ICAgICAgICB0eXBlID09ICJXZWJHTFVuaWZvcm1Mb2NhdGlvbkNvbnN0cnVjdG9yIiB8fAogICAg
ICAgICAgICAgdHlwZSA9PSAiQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAg
IHR5cGUgPT0gIkRhdGFWaWV3Q29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09IkZs
b2F0MzJBcnJheUNvbnN0cnVjdG9yIiB8fApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2Ny
aXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzCShyZXZp
c2lvbiA3MzU3OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5
cGUtaW5oZXJpdGFuY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgdmFyIHNr
aXBwZWRQcm9wZXJ0aWVzID0gWwogICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1
c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJl
IHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgIndlYmtpdE5vdGlmaWNhdGlvbnMiLAogICAgICJ3ZWJr
aXRQZXJmb3JtYW5jZSIsCi0gICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIsCisgICAgIldlYkdM
UmVuZGVyaW5nQ29udGV4dCIsICJXZWJHTEFjdGl2ZUluZm8iLCAiV2ViR0xCdWZmZXIiLCAiV2Vi
R0xGcmFtZWJ1ZmZlciIsICJXZWJHTFByb2dyYW0iLCAiV2ViR0xSZW5kZXJidWZmZXIiLCAiV2Vi
R0xTaGFkZXIiLCAiV2ViR0xUZXh0dXJlIiwgIldlYkdMVW5pZm9ybUxvY2F0aW9uIiwKICAgICAi
QXJyYXlCdWZmZXIiLAogICAgICJEYXRhVmlldyIsICJJbnQ4QXJyYXkiLCAiVWludDhBcnJheSIs
ICJJbnQxNkFycmF5IiwgIlVpbnQxNkFycmF5IiwgIkludDMyQXJyYXkiLCAiVWludDMyQXJyYXki
LCAiRmxvYXQzMkFycmF5IiwKICAgICAiRmlsZUVycm9yIiwgIkZpbGVSZWFkZXIiLCAicmVxdWVz
dEZpbGVTeXN0ZW0iLApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xv
YmFsLWNvbnN0cnVjdG9ycy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzCShyZXZpc2lvbiA3MzU3OCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTE4LDYgKzE4LDE0IEBAIGZvciAodmFyIHggaW4gY29uc3RydWN0b3JO
YW1lcykgewogCiAgICAgLy8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGV5IGRv
IG5vdCBleGlzdCBpbiBhbGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUgdGVzdGVkIHNl
cGFyYXRlbHkKICAgICBpZiAobmFtZSA9PSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0IiB8fAorICAg
ICAgICBuYW1lID09ICJXZWJHTEFjdGl2ZUluZm8iIHx8CisgICAgICAgIG5hbWUgPT0gIldlYkdM
QnVmZmVyIiB8fAorICAgICAgICBuYW1lID09ICJXZWJHTEZyYW1lYnVmZmVyIiB8fAorICAgICAg
ICBuYW1lID09ICJXZWJHTFByb2dyYW0iIHx8CisgICAgICAgIG5hbWUgPT0gIldlYkdMUmVuZGVy
YnVmZmVyIiB8fAorICAgICAgICBuYW1lID09ICJXZWJHTFNoYWRlciIgfHwKKyAgICAgICAgbmFt
ZSA9PSAiV2ViR0xUZXh0dXJlIiB8fAorICAgICAgICBuYW1lID09ICJXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiIgfHwKICAgICAgICAgbmFtZSA9PSAiQXJyYXlCdWZmZXIiIHx8CiAgICAgICAgIG5hbWUg
PT0gIkRhdGFWaWV3IiB8fAogICAgICAgICBuYW1lID09ICJJbnQ4QXJyYXkiIHx8Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76138</attachid>
            <date>2010-12-09 17:08:15 -0800</date>
            <delta_ts>2010-12-09 17:15:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36512-20101209170814.patch</filename>
            <type>text/plain</type>
            <size>18267</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzY1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMTItMDkgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2Ug
Y29uc3RydWN0b3IgZnVuY3Rpb25zIGZvciBpbnN0YW5jZW9mIGNoZWNrcyBvZiBXZWJHTCBvYmpl
Y3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjUx
MgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC5odG1s
CisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYkdMQWN0aXZlSW5m
b0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2Vi
R0xCdWZmZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OndlYkdMRnJhbWVidWZmZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OndlYkdMUHJvZ3JhbUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViR0xSZW5kZXJidWZmZXJFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYkdMU2hhZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJHTFRleHR1cmVF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYkdM
VW5pZm9ybUxvY2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xBY3Rp
dmVJbmZvLmlkbDogUmVtb3ZlIE9taXRDb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuaWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
aWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGw6
IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbDogRGl0dG8uCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbDogRGl0dG8uCisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsOiBEaXR0by4KKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5pZGw6IEV4cG9zZSBjb25zdHJ1Y3RvcnMgZm9yIFdlYkdMIG9iamVjdHMg
aW4gRE9NV2luZG93LgorCiAyMDEwLTEyLTA5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVHJ5IGFuZCBmaXggdGhlIG1hYyBidWlsZC4KSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAkocmV2aXNpb24g
NzM2NTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDE0IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCB3ZWJHTEludEFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9
CiAgICAgc3RhdGljIGJvb2wgd2ViR0xVbnNpZ25lZEludEFycmF5RW5hYmxlZCgpIHsgcmV0dXJu
IGlzV2ViR0xFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgd2ViR0xGbG9hdEFycmF5RW5hYmxl
ZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2ViR0xBY3Rp
dmVJbmZvRW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CisgICAgc3RhdGljIGJv
b2wgd2ViR0xCdWZmZXJFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KKyAgICBz
dGF0aWMgYm9vbCB3ZWJHTEZyYW1lYnVmZmVyRW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFi
bGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2ViR0xQcm9ncmFtRW5hYmxlZCgpIHsgcmV0dXJuIGlz
V2ViR0xFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2ViR0xSZW5kZXJidWZmZXJFbmFibGVk
KCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCB3ZWJHTFNoYWRl
ckVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIHdl
YkdMVGV4dHVyZUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQorICAgIHN0YXRp
YyBib29sIHdlYkdMVW5pZm9ybUxvY2F0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFi
bGVkOyB9CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHNldFB1c2hTdGF0ZUVuYWJsZWQoYm9v
bCBpc0VuYWJsZWQpIHsgaXNQdXNoU3RhdGVFbmFibGVkID0gaXNFbmFibGVkOyB9CkluZGV4OiBX
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCShyZXZpc2lvbiA3MzY1NikKKysr
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOCArMjYsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAg
ICAgQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICAg
ICAgQ29uZGl0aW9uYWw9M0RfQ0FOVkFTCiAgICAgXSBXZWJHTEFjdGl2ZUluZm8gewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgaW50IHNpemU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBpbnQgdHlwZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
CShyZXZpc2lvbiA3MzY1NikKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw2IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewot
ICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLCBPbWl0Q29uc3RydWN0b3JdIFdl
YkdMQnVmZmVyIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBU10gV2ViR0xC
dWZmZXIgewogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVi
dWZmZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5pZGwJKHJldmlzaW9uIDczNjU2KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZy
YW1lYnVmZmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNiBAQAogICovCiAKIG1v
ZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBUywgT21pdENv
bnN0cnVjdG9yXSBXZWJHTEZyYW1lYnVmZmVyIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFs
PTNEX0NBTlZBU10gV2ViR0xGcmFtZWJ1ZmZlciB7CiAgICAgfTsKIH0KSW5kZXg6IFdlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwJKHJldmlzaW9uIDczNjU2KQorKysgV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw2IEBA
CiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9M0RfQ0FO
VkFTLCBPbWl0Q29uc3RydWN0b3JdIFdlYkdMUHJvZ3JhbSB7CisgICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD0zRF9DQU5WQVNdIFdlYkdMUHJvZ3JhbSB7CiAgICAgfTsKIH0KSW5kZXg6IFdlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCShyZXZpc2lvbiA3MzY1NikKKysr
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCw2ICsyNCw2IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
Q29uZGl0aW9uYWw9M0RfQ0FOVkFTLCBPbWl0Q29uc3RydWN0b3JdIFdlYkdMUmVuZGVyYnVmZmVy
IHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBU10gV2ViR0xSZW5kZXJidWZm
ZXIgewogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAkocmV2
aXNpb24gNzM2NTYpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNiBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBp
bnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBUywgT21pdENvbnN0cnVjdG9yXSBXZWJHTFNo
YWRlciB7CisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD0zRF9DQU5WQVNdIFdlYkdMU2hhZGVy
IHsKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbAkocmV2
aXNpb24gNzM2NTYpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDYgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAg
aW50ZXJmYWNlIFtDb25kaXRpb25hbD0zRF9DQU5WQVMsIE9taXRDb25zdHJ1Y3Rvcl0gV2ViR0xU
ZXh0dXJlIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBU10gV2ViR0xUZXh0
dXJlIHsKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1M
b2NhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZv
cm1Mb2NhdGlvbi5pZGwJKHJldmlzaW9uIDczNjU2KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDYgQEAK
ICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD0zRF9DQU5W
QVMsIE9taXRDb25zdHJ1Y3Rvcl0gV2ViR0xVbmlmb3JtTG9jYXRpb24geworICAgIGludGVyZmFj
ZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTXSBXZWJHTFVuaWZvcm1Mb2NhdGlvbiB7CiAgICAgfTsK
IH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiA3MzY1NikKKysrIFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00ODUsNyArNDg1LDE1IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgQ2FudmFzR3JhZGllbnRDb25zdHJ1Y3RvciBDYW52
YXNHcmFkaWVudDsKICAgICAgICAgYXR0cmlidXRlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENv
bnN0cnVjdG9yIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKICAgICAgICAgYXR0cmlidXRlIElt
YWdlRGF0YUNvbnN0cnVjdG9yIEltYWdlRGF0YTsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRp
b25hbD0zRF9DQU5WQVMsRW5hYmxlZEF0UnVudGltZV0gV2ViR0xBY3RpdmVJbmZvQ29uc3RydWN0
b3IgV2ViR0xBY3RpdmVJbmZvOworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPTNEX0NB
TlZBUyxFbmFibGVkQXRSdW50aW1lXSBXZWJHTEJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdMQnVmZmVy
OworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPTNEX0NBTlZBUyxFbmFibGVkQXRSdW50
aW1lXSBXZWJHTEZyYW1lYnVmZmVyQ29uc3RydWN0b3IgV2ViR0xGcmFtZWJ1ZmZlcjsKKyAgICAg
ICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD0zRF9DQU5WQVMsRW5hYmxlZEF0UnVudGltZV0gV2Vi
R0xQcm9ncmFtQ29uc3RydWN0b3IgV2ViR0xQcm9ncmFtOworICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPTNEX0NBTlZBUyxFbmFibGVkQXRSdW50aW1lXSBXZWJHTFJlbmRlcmJ1ZmZlckNv
bnN0cnVjdG9yIFdlYkdMUmVuZGVyYnVmZmVyOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPTNEX0NBTlZBUyxFbmFibGVkQXRSdW50aW1lXSBXZWJHTFJlbmRlcmluZ0NvbnRleHRDb25z
dHJ1Y3RvciBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0
aW9uYWw9M0RfQ0FOVkFTLEVuYWJsZWRBdFJ1bnRpbWVdIFdlYkdMU2hhZGVyQ29uc3RydWN0b3Ig
V2ViR0xTaGFkZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLEVu
YWJsZWRBdFJ1bnRpbWVdIFdlYkdMVGV4dHVyZUNvbnN0cnVjdG9yIFdlYkdMVGV4dHVyZTsKKyAg
ICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD0zRF9DQU5WQVMsRW5hYmxlZEF0UnVudGltZV0g
V2ViR0xVbmlmb3JtTG9jYXRpb25Db25zdHJ1Y3RvciBXZWJHTFVuaWZvcm1Mb2NhdGlvbjsKICAg
ICAgICAgYXR0cmlidXRlIFRleHRNZXRyaWNzQ29uc3RydWN0b3IgVGV4dE1ldHJpY3M7CiAKICAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZ01hcENvbnN0cnVjdG9yIERPTVN0cmluZ01hcDsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDczNjU2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTItMDkgIFpoZW55YW8gTW8gIDx6bW9AZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFeHBvc2UgY29uc3RydWN0b3IgZnVuY3Rpb25zIGZvciBpbnN0YW5jZW9mIGNoZWNrcyBvZiBX
ZWJHTCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjUxMgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFuY2VvZi10ZXN0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFu
Y2VvZi10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzOiBSZWdpc3RlciBuZXdseSBhZGRl
ZCBXZWJHTCBvYmplY3RzLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90
eXBlLWluaGVyaXRhbmNlLTIuanM6IERpdHRvLgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0Zv
cldpbmRvdyk6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS5qczogRGl0dG8uCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFs
LWNvbnN0cnVjdG9ycy5qczogRGl0dG8uCisKIDIwMTAtMTItMDkgIFBldGVyIEthc3RpbmcgIDxw
a2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBl
eHBlY3RhdGlvbnMgdXBkYXRlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
aW5zdGFuY2VvZi10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFuY2VvZi10ZXN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorIFRlc3RzIHRoYXQgaW5zdGFu
Y2VvZiB3b3JrcyBvbiBXZWJHTCBvYmplY3RzLgorCitQQVNTIGdsIGluc3RhbmNlb2YgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IGlzIHRydWUKK1BBU1MgZ2wuY3JlYXRlQnVmZmVyKCkgaW5zdGFuY2Vv
ZiBXZWJHTEJ1ZmZlciBpcyB0cnVlCitQQVNTIGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaW5zdGFu
Y2VvZiBXZWJHTEZyYW1lYnVmZmVyIGlzIHRydWUKK1BBU1MgZ2wuY3JlYXRlUHJvZ3JhbSgpIGlu
c3RhbmNlb2YgV2ViR0xQcm9ncmFtIGlzIHRydWUKK1BBU1MgZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmJ1ZmZlciBpcyB0cnVlCitQQVNTIGdsLmNyZWF0ZVNo
YWRlcihnbC5WRVJURVhfU0hBREVSKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyIGlzIHRydWUKK1BB
U1MgZ2wuY3JlYXRlVGV4dHVyZSgpIGluc3RhbmNlb2YgV2ViR0xUZXh0dXJlIGlzIHRydWUKK1BB
U1MgZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJjb2xvciIpIGluc3RhbmNlb2YgV2Vi
R0xVbmlmb3JtTG9jYXRpb24gaXMgdHJ1ZQorUEFTUyBnbC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgMCkgaW5zdGFuY2VvZiBXZWJHTEFjdGl2ZUluZm8gaXMgdHJ1ZQorUEFTUyBnbC5nZXRBY3Rp
dmVVbmlmb3JtKHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvIGlzIHRydWUK
KworVGVzdHMgdGhhdCB0aG9zZSBXZWJHTCBvYmplY3RzIGNhbiBub3QgYmUgY29uc3RydWN0ZWQg
dGhyb3VnaCBuZXcgb3BlcmF0b3IKKworUEFTUyBuZXcgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRo
cm93IGFuIGVycm9yCitQQVNTIG5ldyBXZWJHTEFjdGl2ZUluZm8gdGhyb3cgYW4gZXJyb3IKK1BB
U1MgbmV3IFdlYkdMQnVmZmVyIHRocm93IGFuIGVycm9yCitQQVNTIG5ldyBXZWJHTEZyYW1lYnVm
ZmVyIHRocm93IGFuIGVycm9yCitQQVNTIG5ldyBXZWJHTFByb2dyYW0gdGhyb3cgYW4gZXJyb3IK
K1BBU1MgbmV3IFdlYkdMUmVuZGVyYnVmZmVyIHRocm93IGFuIGVycm9yCitQQVNTIG5ldyBXZWJH
TFNoYWRlciB0aHJvdyBhbiBlcnJvcgorUEFTUyBuZXcgV2ViR0xUZXh0dXJlIHRocm93IGFuIGVy
cm9yCitQQVNTIG5ldyBXZWJHTFVuaWZvcm1Mb2NhdGlvbiB0aHJvdyBhbiBlcnJvcgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFuY2VvZi10
ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iDQorICAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4NCis8aHRtbD4NCis8aGVhZD4NCis8dGl0
bGU+V2ViR0wgaW5zdGFuY2VvZiB0ZXN0LjwvdGl0bGU+DQorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4NCis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4NCis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4NCis8L2hlYWQ+DQor
PGJvZHk+DQorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBzdHlsZT0i
d2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPg0KKzxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCis8c2NyaXB0IGlkPSJ2c2hh
ZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+DQorYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9u
Ow0KK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsNCit2b2lkIG1haW4oKQ0KK3sNCisgICAgZ2xfUG9z
aXRpb24gPSB2UG9zaXRpb247DQorfQ0KKzwvc2NyaXB0Pg0KKw0KKzxzY3JpcHQgaWQ9ImZzaGFk
ZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPg0KKyNpZmRlZiBHTF9FUw0KK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0Ow0KKyNlbmRpZg0KK3VuaWZvcm0gdmVjNCBjb2xvcjsNCit2b2lkIG1h
aW4oKQ0KK3sNCisgICAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7DQorfQ0KKzwvc2NyaXB0Pg0KKzxz
Y3JpcHQ+DQordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOw0KK2RlYnVnKCJUZXN0cyB0aGF0IGlu
c3RhbmNlb2Ygd29ya3Mgb24gV2ViR0wgb2JqZWN0cy4iKTsNCitkZWJ1ZygiIik7DQordmFyIGds
ID0gY3JlYXRlM0RDb250ZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKSk7DQor
c2hvdWxkQmVUcnVlKCdnbCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyaW5nQ29udGV4dCcpOw0KK3No
b3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlQnVmZmVyKCkgaW5zdGFuY2VvZiBXZWJHTEJ1ZmZlcicpOw0K
K3Nob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpbnN0YW5jZW9mIFdlYkdMRnJh
bWVidWZmZXInKTsNCitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZVByb2dyYW0oKSBpbnN0YW5jZW9m
IFdlYkdMUHJvZ3JhbScpOw0KK3Nob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkg
aW5zdGFuY2VvZiBXZWJHTFJlbmRlcmJ1ZmZlcicpOw0KK3Nob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRl
U2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpIGluc3RhbmNlb2YgV2ViR0xTaGFkZXInKTsNCitzaG91
bGRCZVRydWUoJ2dsLmNyZWF0ZVRleHR1cmUoKSBpbnN0YW5jZW9mIFdlYkdMVGV4dHVyZScpOw0K
Kw0KK3ZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgNCisgICAgZ2wsDQorICAgIFt3dHUu
bG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsICd2c2hhZGVyJywgZ2wuVkVSVEVYX1NIQURFUiksDQor
ICAgICB3dHUubG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsICdmc2hhZGVyJywgZ2wuRlJBR01FTlRf
U0hBREVSKV0sDQorICAgIFsndlBvc2l0aW9uJ10sIFswXSk7DQorDQorc2hvdWxkQmVUcnVlKCdn
bC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgImNvbG9yIikgaW5zdGFuY2VvZiBXZWJHTFVu
aWZvcm1Mb2NhdGlvbicpOw0KK3Nob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZlQXR0cmliKHByb2dy
YW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvJyk7DQorc2hvdWxkQmVUcnVlKCdnbC5n
ZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvJyk7
DQorDQorZGVidWcoIiIpOw0KK2RlYnVnKCJUZXN0cyB0aGF0IHRob3NlIFdlYkdMIG9iamVjdHMg
Y2FuIG5vdCBiZSBjb25zdHJ1Y3RlZCB0aHJvdWdoIG5ldyBvcGVyYXRvciIpOw0KK2RlYnVnKCIi
KTsNCisNCitmdW5jdGlvbiBzaG91bGRUaHJvd1dpdGhOZXcob2JqZWN0VHlwZSwgb2JqZWN0TmFt
ZSkNCit7DQorICAgIHRyeSB7DQorICAgICAgICBuZXcgb2JqZWN0VHlwZTsNCisgICAgICAgIHRl
c3RGYWlsZWQoJ25ldyAnICsgb2JqZWN0TmFtZSArICcgZGlkIG5vdCB0aHJvdycpOw0KKyAgICB9
IGNhdGNoIChlKSB7DQorICAgICAgICB0ZXN0UGFzc2VkKCduZXcgJyArIG9iamVjdE5hbWUgKyAn
IHRocm93IGFuIGVycm9yJyk7DQorICAgIH0NCit9DQorDQorc2hvdWxkVGhyb3dXaXRoTmV3KFdl
YkdMUmVuZGVyaW5nQ29udGV4dCwgJ1dlYkdMUmVuZGVyaW5nQ29udGV4dCcpOw0KK3Nob3VsZFRo
cm93V2l0aE5ldyhXZWJHTEFjdGl2ZUluZm8sICdXZWJHTEFjdGl2ZUluZm8nKTsNCitzaG91bGRU
aHJvd1dpdGhOZXcoV2ViR0xCdWZmZXIsICdXZWJHTEJ1ZmZlcicpOw0KK3Nob3VsZFRocm93V2l0
aE5ldyhXZWJHTEZyYW1lYnVmZmVyLCAnV2ViR0xGcmFtZWJ1ZmZlcicpOw0KK3Nob3VsZFRocm93
V2l0aE5ldyhXZWJHTFByb2dyYW0sICdXZWJHTFByb2dyYW0nKTsNCitzaG91bGRUaHJvd1dpdGhO
ZXcoV2ViR0xSZW5kZXJidWZmZXIsICdXZWJHTFJlbmRlcmJ1ZmZlcicpOw0KK3Nob3VsZFRocm93
V2l0aE5ldyhXZWJHTFNoYWRlciwgJ1dlYkdMU2hhZGVyJyk7DQorc2hvdWxkVGhyb3dXaXRoTmV3
KFdlYkdMVGV4dHVyZSwgJ1dlYkdMVGV4dHVyZScpOw0KK3Nob3VsZFRocm93V2l0aE5ldyhXZWJH
TFVuaWZvcm1Mb2NhdGlvbiwgJ1dlYkdMVW5pZm9ybUxvY2F0aW9uJyk7DQorDQorc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsNCis8L3NjcmlwdD4NCis8L2JvZHk+DQorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKw0KKzxzY3JpcHQ+
DQorPC9zY3JpcHQ+DQorDQorPC9ib2R5Pg0KKzwvaHRtbD4NCisNCisNCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAkocmV2
aXNpb24gNzM2NTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTQgQEAgdmFyIF9fc2tpcF9f
ID0gewogICAgICJ3aW5kb3cudGV4dElucHV0Q29udHJvbGxlciIgOiAxLAogICAgIC8vIElnbm9y
ZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxl
bWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgIndpbmRvdy5X
ZWJHTFJlbmRlcmluZ0NvbnRleHQiIDogMSwgCisgICAgIndpbmRvdy5XZWJHTEFjdGl2ZUluZm8i
IDogMSwgCisgICAgIndpbmRvdy5XZWJHTEJ1ZmZlciIgOiAxLCAKKyAgICAid2luZG93LldlYkdM
RnJhbWVidWZmZXIiIDogMSwgCisgICAgIndpbmRvdy5XZWJHTFByb2dyYW0iIDogMSwgCisgICAg
IndpbmRvdy5XZWJHTFJlbmRlcmJ1ZmZlciIgOiAxLCAKKyAgICAid2luZG93LldlYkdMU2hhZGVy
IiA6IDEsIAorICAgICJ3aW5kb3cuV2ViR0xUZXh0dXJlIiA6IDEsIAorICAgICJ3aW5kb3cuV2Vi
R0xVbmlmb3JtTG9jYXRpb24iIDogMSwgCiAgICAgIndpbmRvdy5BcnJheUJ1ZmZlciIgOiAxLAog
ICAgICJ3aW5kb3cuRGF0YVZpZXciIDogMSwKICAgICAid2luZG93LkludDhBcnJheSIgOiAxLApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJv
cGVydHktZGVzY3JpcHRvcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMJKHJldmlz
aW9uIDczNjU2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93
aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTIwLDYgKzIw
LDE0IEBAIHZhciBfX3NraXBfXyA9IHsKICAgICAidGV4dElucHV0Q29udHJvbGxlciIgOiAxLAog
ICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3Qg
aW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAg
ICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgOiAxLAorICAgICJXZWJHTEFjdGl2ZUluZm8iIDog
MSwKKyAgICAiV2ViR0xCdWZmZXIiIDogMSwKKyAgICAiV2ViR0xGcmFtZWJ1ZmZlciIgOiAxLAor
ICAgICJXZWJHTFByb2dyYW0iIDogMSwKKyAgICAiV2ViR0xSZW5kZXJidWZmZXIiIDogMSwKKyAg
ICAiV2ViR0xTaGFkZXIiIDogMSwKKyAgICAiV2ViR0xUZXh0dXJlIiA6IDEsCisgICAgIldlYkdM
VW5pZm9ybUxvY2F0aW9uIiA6IDEsCiAgICAgIkFycmF5QnVmZmVyIiA6IDEsCiAgICAgIkRhdGFW
aWV3IiA6IDEsCiAgICAgIkludDhBcnJheSIgOiAxLApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi5qcwkocmV2aXNpb24gNzM2NTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVz
dHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5
LDE1IEBAIGZ1bmN0aW9uIGNvbnN0cnVjdG9yTmFtZXNGb3JXaW5kb3coZ2xvYmEKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB2YXIgdHlwZSA9IGNsYXNzTmFtZUZvck9iamVjdCh2YWx1
ZSk7CiAgICAgICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBu
b3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBh
cmF0ZWx5Ci0gICAgICAgIGlmICh0eXBlID09ICJXZWJHTFJlbmRlcmluZ0NvbnRleHRDb25zdHJ1
Y3RvciIgfHwgCisgICAgICAgIGlmICh0eXBlID09ICJXZWJHTFJlbmRlcmluZ0NvbnRleHRDb25z
dHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0gIldlYkdMQWN0aXZlSW5mb0NvbnN0cnVj
dG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xCdWZmZXJDb25zdHJ1Y3RvciIgfHwK
KyAgICAgICAgICAgIHR5cGUgPT0gIldlYkdMRnJhbWVidWZmZXJDb25zdHJ1Y3RvciIgfHwKKyAg
ICAgICAgICAgIHR5cGUgPT0gIldlYkdMUHJvZ3JhbUNvbnN0cnVjdG9yIiB8fAorICAgICAgICAg
ICAgdHlwZSA9PSAiV2ViR0xSZW5kZXJidWZmZXJDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAg
IHR5cGUgPT0gIldlYkdMU2hhZGVyQ29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09
ICJXZWJHTFRleHR1cmVDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0gIldlYkdM
VW5pZm9ybUxvY2F0aW9uQ29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09ICJBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yIiB8fAogICAgICAgICAgICAgdHlwZSA9PSAiRGF0YVZpZXdDb25z
dHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iRmxvYXQzMkFycmF5Q29uc3RydWN0b3Ii
IHx8CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWlu
aGVyaXRhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10
ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMJKHJldmlzaW9uIDczNjU2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMTUsNyArMTUsNyBAQCB2YXIgc2tpcHBlZFByb3BlcnRpZXMgPSBbCiAg
ICAgLy8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGV5IGRvIG5vdCBleGlzdCBp
biBhbGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUgdGVzdGVkIHNlcGFyYXRlbHkKICAg
ICAid2Via2l0Tm90aWZpY2F0aW9ucyIsCiAgICAgIndlYmtpdFBlcmZvcm1hbmNlIiwKLSAgICAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0IiwKKyAgICAiV2ViR0xSZW5kZXJpbmdDb250ZXh0IiwgIldl
YkdMQWN0aXZlSW5mbyIsICJXZWJHTEJ1ZmZlciIsICJXZWJHTEZyYW1lYnVmZmVyIiwgIldlYkdM
UHJvZ3JhbSIsICJXZWJHTFJlbmRlcmJ1ZmZlciIsICJXZWJHTFNoYWRlciIsICJXZWJHTFRleHR1
cmUiLCAiV2ViR0xVbmlmb3JtTG9jYXRpb24iLAogICAgICJBcnJheUJ1ZmZlciIsCiAgICAgIkRh
dGFWaWV3IiwgIkludDhBcnJheSIsICJVaW50OEFycmF5IiwgIkludDE2QXJyYXkiLCAiVWludDE2
QXJyYXkiLCAiSW50MzJBcnJheSIsICJVaW50MzJBcnJheSIsICJGbG9hdDMyQXJyYXkiLAogICAg
ICJGaWxlRXJyb3IiLCAiRmlsZVJlYWRlciIsICJyZXF1ZXN0RmlsZVN5c3RlbSIsCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dsb2JhbC1jb25z
dHJ1Y3RvcnMuanMJKHJldmlzaW9uIDczNjU2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3Jp
cHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTgsNiAr
MTgsMTQgQEAgZm9yICh2YXIgeCBpbiBjb25zdHJ1Y3Rvck5hbWVzKSB7CiAKICAgICAvLyBJZ25v
cmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBs
ZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVseQogICAgIGlmIChuYW1l
ID09ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiIHx8CisgICAgICAgIG5hbWUgPT0gIldlYkdMQWN0
aXZlSW5mbyIgfHwKKyAgICAgICAgbmFtZSA9PSAiV2ViR0xCdWZmZXIiIHx8CisgICAgICAgIG5h
bWUgPT0gIldlYkdMRnJhbWVidWZmZXIiIHx8CisgICAgICAgIG5hbWUgPT0gIldlYkdMUHJvZ3Jh
bSIgfHwKKyAgICAgICAgbmFtZSA9PSAiV2ViR0xSZW5kZXJidWZmZXIiIHx8CisgICAgICAgIG5h
bWUgPT0gIldlYkdMU2hhZGVyIiB8fAorICAgICAgICBuYW1lID09ICJXZWJHTFRleHR1cmUiIHx8
CisgICAgICAgIG5hbWUgPT0gIldlYkdMVW5pZm9ybUxvY2F0aW9uIiB8fAogICAgICAgICBuYW1l
ID09ICJBcnJheUJ1ZmZlciIgfHwKICAgICAgICAgbmFtZSA9PSAiRGF0YVZpZXciIHx8CiAgICAg
ICAgIG5hbWUgPT0gIkludDhBcnJheSIgfHwK
</data>
<flag name="review"
          id="67027"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>