<?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>89070</bug_id>
          
          <creation_ts>2012-06-14 00:54:06 -0700</creation_ts>
          <short_desc>[JSC/V8] Improve DOMString[] support</short_desc>
          <delta_ts>2012-06-14 18:47:50 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>88768</blocked>
    
    <blocked>89151</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>abarth</cc>
    
    <cc>code.vineet</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>648901</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 00:54:06 -0700</bug_when>
    <thetext>If we use DOMString[] for
 - an argument of a non-overload function
 - an return value of a function,
our binding generators produce wrong code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648908</commentid>
    <comment_count>1</comment_count>
      <attachid>147510</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 01:01:22 -0700</bug_when>
    <thetext>Created attachment 147510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648911</commentid>
    <comment_count>2</comment_count>
      <attachid>147512</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 01:04:42 -0700</bug_when>
    <thetext>Created attachment 147512
Patch 2

Remove useless comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648914</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-14 01:05:36 -0700</bug_when>
    <thetext>Looks reasonable, but I&apos;d like haraken to take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648921</commentid>
    <comment_count>4</comment_count>
      <attachid>147512</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-14 01:09:47 -0700</bug_when>
    <thetext>Comment on attachment 147512
Patch 2

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

Looks reasonable to me too.

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:153
&gt; +    if (!stringList)
&gt; +        return jsUndefined();

Just a confirmation: You are intending to return (not [] but) undefined for a null stringList, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648923</commentid>
    <comment_count>5</comment_count>
      <attachid>147512</attachid>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2012-06-14 01:13:25 -0700</bug_when>
    <thetext>Comment on attachment 147512
Patch 2

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:-3075
&gt; -        if (!$codeGenerator-&gt;SkipIncludeHeader($arrayType)) {

tkent: can we add &quot;DOMString[]&quot; to SkipIncludeHeader() ..? because I think this will fail for numerictypes like float[]. I mean will include float.h  to cpp files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648927</commentid>
    <comment_count>6</comment_count>
      <attachid>147512</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 01:18:51 -0700</bug_when>
    <thetext>Comment on attachment 147512
Patch 2

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

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:153
&gt;&gt; +        return jsUndefined();
&gt; 
&gt; Just a confirmation: You are intending to return (not [] but) undefined for a null stringList, right?

Oh, this should be null to match V8 binding behavior.  I&apos;ll change it so.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648928</commentid>
    <comment_count>7</comment_count>
      <attachid>147512</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 01:20:38 -0700</bug_when>
    <thetext>Comment on attachment 147512
Patch 2

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

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:-3075
&gt;&gt; -        if (!$codeGenerator-&gt;SkipIncludeHeader($arrayType)) {
&gt; 
&gt; tkent: can we add &quot;DOMString[]&quot; to SkipIncludeHeader() ..? because I think this will fail for numerictypes like float[]. I mean will include float.h  to cpp files.

ok, will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648932</commentid>
    <comment_count>8</comment_count>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2012-06-14 01:28:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 147512 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147512&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:-3075
&gt; &gt;&gt; -        if (!$codeGenerator-&gt;SkipIncludeHeader($arrayType)) {
&gt; &gt; 
&gt; &gt; tkent: can we add &quot;DOMString[]&quot; to SkipIncludeHeader() ..? because I think this will fail for numerictypes like float[]. I mean will include float.h  to cpp files.
&gt; 
&gt; ok, will do.

Ahh sorry tkent previous comment you are handling that in elsif.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648938</commentid>
    <comment_count>9</comment_count>
      <attachid>147512</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 01:35:38 -0700</bug_when>
    <thetext>Comment on attachment 147512
Patch 2

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

&gt;&gt;&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:-3075
&gt;&gt;&gt;&gt; -        if (!$codeGenerator-&gt;SkipIncludeHeader($arrayType)) {
&gt;&gt;&gt; 
&gt;&gt;&gt; tkent: can we add &quot;DOMString[]&quot; to SkipIncludeHeader() ..? because I think this will fail for numerictypes like float[]. I mean will include float.h  to cpp files.
&gt;&gt; 
&gt;&gt; ok, will do.
&gt; 
&gt; Ahh sorry tkent previous comment you are handling that in elsif.

ok, no problem.

Anyway, we might not need to include JSDOMStringList.h and DOMStringList.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648943</commentid>
    <comment_count>10</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 01:44:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Anyway, we might not need to include JSDOMStringList.h and DOMStringList.h.

I&apos;ll investigate this later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648946</commentid>
    <comment_count>11</comment_count>
      <attachid>147517</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 01:46:06 -0700</bug_when>
    <thetext>Created attachment 147517
Patch for landing

undefined -&gt; null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649021</commentid>
    <comment_count>12</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 02:59:35 -0700</bug_when>
    <thetext>Committed r120304: &lt;http://trac.webkit.org/changeset/120304&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649685</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 17:50:41 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 147512 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147512&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:153
&gt; &gt;&gt; +        return jsUndefined();
&gt; &gt; 
&gt; &gt; Just a confirmation: You are intending to return (not [] but) undefined for a null stringList, right?
&gt; 
&gt; Oh, this should be null to match V8 binding behavior.  I&apos;ll change it so.

I was incorrect.  We doesn&apos;t have V8 binding code to convert a DOMStringList to v8 array.  I looked a wrong code.
Probably we should have different behavior for &quot;DOMString[]&quot; and &quot;DOMString[]?&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649689</commentid>
    <comment_count>14</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-14 17:52:23 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I was incorrect.  We doesn&apos;t have V8 binding code to convert a DOMStringList to v8 array.  I looked a wrong code.
&gt; Probably we should have different behavior for &quot;DOMString[]&quot; and &quot;DOMString[]?&quot;.

Yes. DOMString[] is not nullable, but DOMString[]? is nullable: http://www.w3.org/TR/WebIDL/#idl-nullable-type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649710</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 18:27:33 -0700</bug_when>
    <thetext>Ok, code generators should produce v8ArrayOrNull() / jsArrayOrNull() for &quot;DOMString[]?&quot;.  So, jsArray() / v8Array() should not return null/undefined.
I&apos;ll make a patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147510</attachid>
            <date>2012-06-14 01:01:22 -0700</date>
            <delta_ts>2012-06-14 01:04:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89070-20120614170121.patch</filename>
            <type>text/plain</type>
            <size>12640</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIwN2FiYzdiMGQwN2Q0
OTNiZTFjOGUwYTUyZmUwOTUyZDYyZDIxMy4uZjBhNjU4MDBlOTc3NWM2ZTQ1NjAxNjZlMDVkYTg5
OWMyZmIwOGIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA2LTE0ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBbSlNDL1Y4XSBJbXByb3Zl
IERPTVN0cmluZ1tdIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5MDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHM6IG5ldyB0ZXN0IGNhc2UgaW4gVGVzdE9iai5pZGwKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0Fy
cmF5KTogSW1wbGVtZW50IGpzQXJyYXkoKSBmb3IgRE9NU3RyaW5nTGlzdC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDogRGVjbGFyZSBqc0FycmF5KCkgZm9yIERPTVN0cmlu
Z0xpc3QuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChOYXRpdmVUb0pTVmFsdWUpOiBBdm9pZCB0byBpbmNsdWRlIEpTRE9NU3RyaW5nLmgg
YW5kIERPTVN0cmluZy5oLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtOgorICAgICAgICAoR2V0TmF0aXZlVHlwZSk6IE1vdmUgYSBjaGVjayBmb3IgRE9NU3Ry
aW5nW10gYmVjYXVzZSBpdCdzIGEgUmVmUHRyIHR5cGUKKyAgICAgICAgYW5kIHdlJ2QgbGlrZSB0
byBhdm9pZCB0byBnZW5lcmF0ZSBSZWZQdHI8RE9NU3RyaW5nW10+CisgICAgICAgICglbm9uX3dy
YXBwZXJfdHlwZXMpOiBET01TdHJpbmdbXSBpcyBub3QgYSB3cmFwcGVyIHR5cGUuIFRoaXMgaXMg
bmVlZGVkCisgICAgICAgIHRvIGF2b2lkIHRvIGdlbmVyYXRlIHVubmVjZXNzYXJ5IGN1c3RvbSBm
dW5jdGlvbiB0ZW1wbGF0ZS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbDogQWRkIG5vbi1vdmVybG9hZCBmdW5jdGlvbiB1c2luZyBET01TdHJpbmdbXS4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogVXBkYXRlIGV4
cGVjdGF0aW9uLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDogZGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHA6IGRpdHRvLgorCiAyMDEyLTA2LTE0ICBMaSBZaW4gIDxsaS55aW5AaW50ZWwuY29tPgogCiAg
ICAgICAgIFtXZWJTb2NrZXRdIFdlYlNvY2tldCBvYmplY3QgaW4gV29ya2VyIENvbnRleHQgc2hv
dWxkIGZpcmUgZXJyb3IgZXZlbnQgd2hlbiBpdCBmYWlscyBjb25uZWN0aW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggM2E2YzY0YTA1ZmIyYWFk
NjE3ZmRkYTEzOWJkOThlZmM4MzZkNzAyOS4uNmRjNTU1ZjIzNDQxZTI0MjIzZTkyYjEwYWM4NjU3
ZmQ2ODc0YWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
Y3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAKICNpbmNs
dWRlICJET01PYmplY3RIYXNoVGFibGVNYXAuaCIKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlYWRlcnMu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25JbnRlcmZhY2VzLmgiCkBAIC0xNDYsNiArMTQ3LDE2IEBA
IGRvdWJsZSB2YWx1ZVRvRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlLnRvT2JqZWN0KGV4ZWMpKS0+
aW50ZXJuYWxOdW1iZXIoKTsKIH0KIAorSlNDOjpKU1ZhbHVlIGpzQXJyYXkoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gc3RyaW5nTGlzdCkKK3sKKyAgICBpZiAoIXN0cmluZ0xpc3QpCisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RyaW5nTGlzdC0+bGVuZ3RoKCk7ICsr
aSkKKyAgICAgICAgbGlzdC5hcHBlbmQoanNTdHJpbmcoZXhlYywgc3RyaW5nTGlzdC0+aXRlbShp
KSkpOworICAgIHJldHVybiBKU0M6OmNvbnN0cnVjdEFycmF5KGV4ZWMsIGdsb2JhbE9iamVjdCwg
bGlzdCk7Cit9CisKIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBleGNlcHRpb24pCiB7CiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihl
eGNlcHRpb24pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRl
eCAxYmU2MzEwYThjODhiYmUyZmNkZGQwNGNlMGRjZTM1YjdhODEyZjUzLi5kMjc4YTgwMmFjOTIx
MDU0NjJkYTFjOTEwZDk4MzlhMjZmNGQ2YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaApAQCAtNDQsNiArNDQsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERPTVN0cmluZ0xpc3Q7CisKIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7
CiAgICAgRGVmYXVsdElzVW5kZWZpbmVkLAogICAgIERlZmF1bHRJc051bGxTdHJpbmcKQEAgLTI5
MSw2ICsyOTMsOCBAQCBlbnVtIFBhcmFtZXRlckRlZmF1bHRQb2xpY3kgewogICAgICAgICByZXR1
cm4gSlNDOjpjb25zdHJ1Y3RBcnJheShleGVjLCBnbG9iYWxPYmplY3QsIGxpc3QpOwogICAgIH0K
IAorICAgIEpTQzo6SlNWYWx1ZSBqc0FycmF5KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KTsKKwogICAgIHRlbXBsYXRlPD4KICAg
ICBpbmxpbmUgSlNDOjpKU1ZhbHVlIGpzQXJyYXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpdGVyYXRv
cikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IDBhODY3NjFlNDEyYzhlYjkzNGMwNGUxZTU0ZWY5NDUzNjNjNTQ1
ZmIuLmVjNDhmNDVjNjgwYjZkMDdjMzcyNzhkOTBlMTIwYzBjNzZiZDRmNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0z
MDcyLDcgKzMwNzIsMTAgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogCiAgICAgbXkgJGFycmF5VHlw
ZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5cGUoJHR5cGUpOwogICAgIGlmICgkYXJyYXlU
eXBlKSB7Ci0gICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPlNraXBJbmNsdWRlSGVhZGVyKCRh
cnJheVR5cGUpKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nW10iKSB7CisgICAg
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01TdHJpbmdMaXN0LmgiLCAkY29uZGl0aW9u
YWwpOworICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkRPTVN0cmluZ0xpc3QuaCIsICRj
b25kaXRpb25hbCk7CisgICAgICAgIH0gZWxzaWYgKCEkY29kZUdlbmVyYXRvci0+U2tpcEluY2x1
ZGVIZWFkZXIoJGFycmF5VHlwZSkpIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJK
UyRhcnJheVR5cGUuaCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiJGFycmF5VHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA4
YjkyZDBiMTY2ODExMDgzMDQ5MzdhMzg2YzFlNGI0NTQwYjBmZDUxLi5mZjg4ODM1MjBiZDZkYTI5
MDQwYWVjYzllMzQ1YTUyZTFiM2Y4ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzUwNiw2ICszNTA2LDcgQEAgc3Vi
IEdldE5hdGl2ZVR5cGUKICAgICAjIG5lY2Vzc2FyeSBhcyByZXNvbHZlcnMgY291bGQgYmUgY29u
c3RydWN0ZWQgb24gZmx5LgogICAgIHJldHVybiAiUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4iIGlm
ICR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwogCisgICAgcmV0dXJuICJSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4iIGlmICR0eXBlIGVxICJET01TdHJpbmdbXSI7CiAgICAgcmV0dXJuICJSZWZQdHI8
JHt0eXBlfT4iIGlmIElzUmVmUHRyVHlwZSgkdHlwZSkgYW5kIG5vdCAkaXNQYXJhbWV0ZXI7CiAK
ICAgICByZXR1cm4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIgaWYgJHR5cGUgZXEg
Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiOwpAQCAtMzUxNCw3ICszNTE1LDYgQEAgc3ViIEdldE5h
dGl2ZVR5cGUKICAgICByZXR1cm4gIlZlY3RvcjxmbG9hdD4iIGlmICR0eXBlIGVxICJmbG9hdFtd
IjsKICAgICByZXR1cm4gIlZlY3Rvcjxkb3VibGU+IiBpZiAkdHlwZSBlcSAiZG91YmxlW10iOwog
ICAgIHJldHVybiAiUmVmUHRyPERPTVN0cmluZ0xpc3Q+IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5n
TGlzdCI7Ci0gICAgcmV0dXJuICJSZWZQdHI8RE9NU3RyaW5nTGlzdD4iIGlmICR0eXBlIGVxICJE
T01TdHJpbmdbXSI7CiAKICAgICAjIERlZmF1bHQsIGFzc3VtZSBuYXRpdmUgdHlwZSBpcyBhIHBv
aW50ZXIgd2l0aCBzYW1lIHR5cGUgbmFtZSBhcyBpZGwgdHlwZQogICAgIHJldHVybiAiJHt0eXBl
fSoiOwpAQCAtMzc0Niw2ICszNzQ2LDcgQEAgbXkgJW5vbl93cmFwcGVyX3R5cGVzID0gKAogICAg
ICdDb21wYXJlSG93JyA9PiAxLAogICAgICdET01PYmplY3QnID0+IDEsCiAgICAgJ0RPTVN0cmlu
ZycgPT4gMSwKKyAgICAnRE9NU3RyaW5nW10nID0+IDEsICMgQXZvaWQgdG8gbWFrZSBjdXN0b20g
ZnVuY3Rpb24gdGVtcGxhdGUKICAgICAnRE9NVGltZVN0YW1wJyA9PiAxLAogICAgICdEYXRlJyA9
PiAxLAogICAgICdEaWN0aW9uYXJ5JyA9PiAxLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBjODllZjdhODZhNWRh
OTg1ZGFhM2VhYzJiNTgxMjgwODZjYmYzYTM1Li5mNGE1Y2Q4NThkYjI0ZDVhMjNhYzM0MDhiODBl
OGUzNTZmNmM5MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE9iai5oIgogCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlz
dC5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTMwMiw2ICszMDMsNyBAQCBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAjZW5kaWYK
ICAgICB7ICJvdmVybG9hZGVkTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kKSwgKGludHB0cl90KTIsIE5vSW50cmluc2ljIH0sCiAgICAg
eyAibWV0aG9kV2l0aFVuc2lnbmVkTG9uZ0FycmF5IiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rp
b24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nQXJyYXkpLCAoaW50cHRyX3QpMSwgTm9J
bnRyaW5zaWMgfSwKKyAgICB7ICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwgRG9udERlbGV0ZSB8IEpT
Qzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKSwgKGludHB0cl90KTEsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAiZ2V0U1ZHRG9jdW1lbnQiLCBEb250RGVsZXRlIHwgSlNDOjpG
dW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KSwgKGludHB0cl90KTAsIE5vSW50cmluc2lj
IH0sCiAgICAgeyAiY29udmVydDEiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQxKSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiY29udmVydDIi
LCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKSwgKGludHB0cl90
KTEsIE5vSW50cmluc2ljIH0sCkBAIC0yMjUwLDYgKzIyNTIsMjYgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25l
ZExvbmdBcnIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
U3RyaW5nQXJyYXlGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHMoJkpTVGVzdE9iajo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KGFz
T2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKKyAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiB2YWx1ZXModG9ET01TdHJpbmdMaXN0KGV4ZWMsIE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNBcnJheShl
eGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC0+c3RyaW5nQXJyYXlGdW5jdGlv
bih2YWx1ZXMsIGVjKSk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudChFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgKaW5kZXggY2ZhNzk1NWFiMWM4MzE1N2ViZTk1MDllZmRiYThiYzM2MTM2Njc1My4uYzc0
YjIzZjQ0N2ZjMTliMzE0ODZiODI1ZDk2MjQyMzBkMTY0Y2IyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMjA0LDYg
KzIwNCw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKEpTQzo6CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qx
KEpTQzo6RXhlY1N0YXRlKik7CiAjZW5kaWYKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdBcnJh
eShKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihKU0M6OkV4ZWNTdGF0
ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MihKU0M6OkV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDJiYjA5
MDkxYjJkYTI1NmUwYjZiZGQyZjE0ZjdiYzc4N2U1N2FkMWQuLmVmMzQyZjhiZTY1OTUxMGIzOTFk
YWQ2NjFmYjYyNDdmZTIxYmQyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTIwMSw2ICsyMDEsOSBAQCBtb2R1bGUgdGVzdCB7
CiAjaWYgZGVmaW5lZChURVNUSU5HX0pTKQogICAgICAgICB2b2lkIG1ldGhvZFdpdGhVbnNpZ25l
ZExvbmdBcnJheShpbiB1bnNpZ25lZCBsb25nW10gdW5zaWduZWRMb25nQXJyYXkpOwogI2VuZGlm
CisjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCisgICAgICAg
IERPTVN0cmluZ1tdIHN0cmluZ0FycmF5RnVuY3Rpb24oaW4gRE9NU3RyaW5nW10gdmFsdWVzKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ2hlY2tTZWN1cml0eUZvck5vZGVdIERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKICAgICAg
ICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1bWVudCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
YmouY3BwCmluZGV4IGZlZDdhNTI2NzQ5N2I1YmQyZjBlOGRiNWRjZjM4YzRmOTU2OTgzYWQuLjQx
N2I1N2NjM2Q5MmJlNDQ1MDU1ZGNiYzcyMjJmMGMzNTM0YTZiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0y
Miw2ICsyMiw3IEBACiAjaW5jbHVkZSAiVjhUZXN0T2JqLmgiCiAKICNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJET01TdHJpbmcuaCIKICNpbmNsdWRlICJEaWN0aW9uYXJ5
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpA
QCAtMzgsNiArMzksNyBAQAogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Qmlu
ZGluZ01hY3Jvcy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiVjhE
T01TdHJpbmcuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJWOERvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKQEAgLTE2NzMsNiArMTY3NSwy
NCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRob2Qy
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJpbmdBcnJheUZ1
bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLnN0cmluZ0FycmF5RnVuY3Rpb24iKTsKKyAgICBpZiAoYXJncy5MZW5n
dGgoKSA8IDEpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IHsKKyAgICBFWENFUFRJT05fQkxPQ0soUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB2YWx1ZXMsIHY4
VmFsdWVUb1dlYkNvcmVET01TdHJpbmdMaXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gcmVz
dWx0ID0gaW1wLT5zdHJpbmdBcnJheUZ1bmN0aW9uKHZhbHVlcywgZWMpOworICAgIGlmIChVTkxJ
S0VMWShlYykpCisgICAgICAgIGdvdG8gZmFpbDsKKyAgICByZXR1cm4gdjhBcnJheShyZXN1bHQu
cmVsZWFzZSgpLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgfQorICAgIGZhaWw6CisgICAgcmV0
dXJuIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkpOworfQor
CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldFNWR0RvY3VtZW50Q2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmdl
dFNWR0RvY3VtZW50Iik7CkBAIC0xOTQ5LDYgKzE5NjksNyBAQCBzdGF0aWMgY29uc3QgQmF0Y2hl
ZENhbGxiYWNrIFRlc3RPYmpDYWxsYmFja3NbXSA9IHsKICAgICB7ImNvbmRpdGlvbmFsTWV0aG9k
MyIsIFRlc3RPYmpWOEludGVybmFsOjpjb25kaXRpb25hbE1ldGhvZDNDYWxsYmFja30sCiAjZW5k
aWYKICAgICB7Im92ZXJsb2FkZWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRl
ZE1ldGhvZENhbGxiYWNrfSwKKyAgICB7InN0cmluZ0FycmF5RnVuY3Rpb24iLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6c3RyaW5nQXJyYXlGdW5jdGlvbkNhbGxiYWNrfSwKICAgICB7ImdldFNWR0RvY3Vt
ZW50IiwgVGVzdE9ialY4SW50ZXJuYWw6OmdldFNWR0RvY3VtZW50Q2FsbGJhY2t9LAogICAgIHsi
bXV0YWJsZVBvaW50RnVuY3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6bXV0YWJsZVBvaW50RnVu
Y3Rpb25DYWxsYmFja30sCiAgICAgeyJpbW11dGFibGVQb2ludEZ1bmN0aW9uIiwgVGVzdE9ialY4
SW50ZXJuYWw6OmltbXV0YWJsZVBvaW50RnVuY3Rpb25DYWxsYmFja30sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147512</attachid>
            <date>2012-06-14 01:04:42 -0700</date>
            <delta_ts>2012-06-14 01:46:00 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-89070-20120614170440.patch</filename>
            <type>text/plain</type>
            <size>12599</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIwN2FiYzdiMGQwN2Q0
OTNiZTFjOGUwYTUyZmUwOTUyZDYyZDIxMy4uZjBhNjU4MDBlOTc3NWM2ZTQ1NjAxNjZlMDVkYTg5
OWMyZmIwOGIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA2LTE0ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBbSlNDL1Y4XSBJbXByb3Zl
IERPTVN0cmluZ1tdIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5MDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHM6IG5ldyB0ZXN0IGNhc2UgaW4gVGVzdE9iai5pZGwKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0Fy
cmF5KTogSW1wbGVtZW50IGpzQXJyYXkoKSBmb3IgRE9NU3RyaW5nTGlzdC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDogRGVjbGFyZSBqc0FycmF5KCkgZm9yIERPTVN0cmlu
Z0xpc3QuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChOYXRpdmVUb0pTVmFsdWUpOiBBdm9pZCB0byBpbmNsdWRlIEpTRE9NU3RyaW5nLmgg
YW5kIERPTVN0cmluZy5oLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtOgorICAgICAgICAoR2V0TmF0aXZlVHlwZSk6IE1vdmUgYSBjaGVjayBmb3IgRE9NU3Ry
aW5nW10gYmVjYXVzZSBpdCdzIGEgUmVmUHRyIHR5cGUKKyAgICAgICAgYW5kIHdlJ2QgbGlrZSB0
byBhdm9pZCB0byBnZW5lcmF0ZSBSZWZQdHI8RE9NU3RyaW5nW10+CisgICAgICAgICglbm9uX3dy
YXBwZXJfdHlwZXMpOiBET01TdHJpbmdbXSBpcyBub3QgYSB3cmFwcGVyIHR5cGUuIFRoaXMgaXMg
bmVlZGVkCisgICAgICAgIHRvIGF2b2lkIHRvIGdlbmVyYXRlIHVubmVjZXNzYXJ5IGN1c3RvbSBm
dW5jdGlvbiB0ZW1wbGF0ZS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbDogQWRkIG5vbi1vdmVybG9hZCBmdW5jdGlvbiB1c2luZyBET01TdHJpbmdbXS4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogVXBkYXRlIGV4
cGVjdGF0aW9uLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDogZGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHA6IGRpdHRvLgorCiAyMDEyLTA2LTE0ICBMaSBZaW4gIDxsaS55aW5AaW50ZWwuY29tPgogCiAg
ICAgICAgIFtXZWJTb2NrZXRdIFdlYlNvY2tldCBvYmplY3QgaW4gV29ya2VyIENvbnRleHQgc2hv
dWxkIGZpcmUgZXJyb3IgZXZlbnQgd2hlbiBpdCBmYWlscyBjb25uZWN0aW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggM2E2YzY0YTA1ZmIyYWFk
NjE3ZmRkYTEzOWJkOThlZmM4MzZkNzAyOS4uNmRjNTU1ZjIzNDQxZTI0MjIzZTkyYjEwYWM4NjU3
ZmQ2ODc0YWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
Y3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAKICNpbmNs
dWRlICJET01PYmplY3RIYXNoVGFibGVNYXAuaCIKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlYWRlcnMu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25JbnRlcmZhY2VzLmgiCkBAIC0xNDYsNiArMTQ3LDE2IEBA
IGRvdWJsZSB2YWx1ZVRvRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlLnRvT2JqZWN0KGV4ZWMpKS0+
aW50ZXJuYWxOdW1iZXIoKTsKIH0KIAorSlNDOjpKU1ZhbHVlIGpzQXJyYXkoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gc3RyaW5nTGlzdCkKK3sKKyAgICBpZiAoIXN0cmluZ0xpc3QpCisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RyaW5nTGlzdC0+bGVuZ3RoKCk7ICsr
aSkKKyAgICAgICAgbGlzdC5hcHBlbmQoanNTdHJpbmcoZXhlYywgc3RyaW5nTGlzdC0+aXRlbShp
KSkpOworICAgIHJldHVybiBKU0M6OmNvbnN0cnVjdEFycmF5KGV4ZWMsIGdsb2JhbE9iamVjdCwg
bGlzdCk7Cit9CisKIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBleGNlcHRpb24pCiB7CiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihl
eGNlcHRpb24pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRl
eCAxYmU2MzEwYThjODhiYmUyZmNkZGQwNGNlMGRjZTM1YjdhODEyZjUzLi5kMjc4YTgwMmFjOTIx
MDU0NjJkYTFjOTEwZDk4MzlhMjZmNGQ2YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaApAQCAtNDQsNiArNDQsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERPTVN0cmluZ0xpc3Q7CisKIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7
CiAgICAgRGVmYXVsdElzVW5kZWZpbmVkLAogICAgIERlZmF1bHRJc051bGxTdHJpbmcKQEAgLTI5
MSw2ICsyOTMsOCBAQCBlbnVtIFBhcmFtZXRlckRlZmF1bHRQb2xpY3kgewogICAgICAgICByZXR1
cm4gSlNDOjpjb25zdHJ1Y3RBcnJheShleGVjLCBnbG9iYWxPYmplY3QsIGxpc3QpOwogICAgIH0K
IAorICAgIEpTQzo6SlNWYWx1ZSBqc0FycmF5KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KTsKKwogICAgIHRlbXBsYXRlPD4KICAg
ICBpbmxpbmUgSlNDOjpKU1ZhbHVlIGpzQXJyYXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpdGVyYXRv
cikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IDBhODY3NjFlNDEyYzhlYjkzNGMwNGUxZTU0ZWY5NDUzNjNjNTQ1
ZmIuLmVjNDhmNDVjNjgwYjZkMDdjMzcyNzhkOTBlMTIwYzBjNzZiZDRmNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0z
MDcyLDcgKzMwNzIsMTAgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogCiAgICAgbXkgJGFycmF5VHlw
ZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5cGUoJHR5cGUpOwogICAgIGlmICgkYXJyYXlU
eXBlKSB7Ci0gICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPlNraXBJbmNsdWRlSGVhZGVyKCRh
cnJheVR5cGUpKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nW10iKSB7CisgICAg
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01TdHJpbmdMaXN0LmgiLCAkY29uZGl0aW9u
YWwpOworICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkRPTVN0cmluZ0xpc3QuaCIsICRj
b25kaXRpb25hbCk7CisgICAgICAgIH0gZWxzaWYgKCEkY29kZUdlbmVyYXRvci0+U2tpcEluY2x1
ZGVIZWFkZXIoJGFycmF5VHlwZSkpIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJK
UyRhcnJheVR5cGUuaCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiJGFycmF5VHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA4
YjkyZDBiMTY2ODExMDgzMDQ5MzdhMzg2YzFlNGI0NTQwYjBmZDUxLi5kZGE4OTkxMmM4ZTM2ZTYy
ZTgwM2E2ZTc4NzI3ODA1NDUyM2U1NTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzUwNiw2ICszNTA2LDcgQEAgc3Vi
IEdldE5hdGl2ZVR5cGUKICAgICAjIG5lY2Vzc2FyeSBhcyByZXNvbHZlcnMgY291bGQgYmUgY29u
c3RydWN0ZWQgb24gZmx5LgogICAgIHJldHVybiAiUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4iIGlm
ICR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwogCisgICAgcmV0dXJuICJSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4iIGlmICR0eXBlIGVxICJET01TdHJpbmdbXSI7CiAgICAgcmV0dXJuICJSZWZQdHI8
JHt0eXBlfT4iIGlmIElzUmVmUHRyVHlwZSgkdHlwZSkgYW5kIG5vdCAkaXNQYXJhbWV0ZXI7CiAK
ICAgICByZXR1cm4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIgaWYgJHR5cGUgZXEg
Ik1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiOwpAQCAtMzUxNCw3ICszNTE1LDYgQEAgc3ViIEdldE5h
dGl2ZVR5cGUKICAgICByZXR1cm4gIlZlY3RvcjxmbG9hdD4iIGlmICR0eXBlIGVxICJmbG9hdFtd
IjsKICAgICByZXR1cm4gIlZlY3Rvcjxkb3VibGU+IiBpZiAkdHlwZSBlcSAiZG91YmxlW10iOwog
ICAgIHJldHVybiAiUmVmUHRyPERPTVN0cmluZ0xpc3Q+IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5n
TGlzdCI7Ci0gICAgcmV0dXJuICJSZWZQdHI8RE9NU3RyaW5nTGlzdD4iIGlmICR0eXBlIGVxICJE
T01TdHJpbmdbXSI7CiAKICAgICAjIERlZmF1bHQsIGFzc3VtZSBuYXRpdmUgdHlwZSBpcyBhIHBv
aW50ZXIgd2l0aCBzYW1lIHR5cGUgbmFtZSBhcyBpZGwgdHlwZQogICAgIHJldHVybiAiJHt0eXBl
fSoiOwpAQCAtMzc0Niw2ICszNzQ2LDcgQEAgbXkgJW5vbl93cmFwcGVyX3R5cGVzID0gKAogICAg
ICdDb21wYXJlSG93JyA9PiAxLAogICAgICdET01PYmplY3QnID0+IDEsCiAgICAgJ0RPTVN0cmlu
ZycgPT4gMSwKKyAgICAnRE9NU3RyaW5nW10nID0+IDEsCiAgICAgJ0RPTVRpbWVTdGFtcCcgPT4g
MSwKICAgICAnRGF0ZScgPT4gMSwKICAgICAnRGljdGlvbmFyeScgPT4gMSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5k
ZXggYzg5ZWY3YTg2YTVkYTk4NWRhYTNlYWMyYjU4MTI4MDg2Y2JmM2EzNS4uZjRhNWNkODU4ZGIy
NGQ1YTIzYWMzNDA4YjgwZThlMzU2ZjZjOTI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTIxLDYgKzIxLDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RPYmouaCIKIAorI2luY2x1
ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC0zMDIsNiArMzAzLDcg
QEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQogI2VuZGlmCiAgICAgeyAib3ZlcmxvYWRlZE1ldGhvZCIsIERvbnREZWxldGUgfCBK
U0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCksIChpbnRwdHJfdCkyLCBOb0lu
dHJpbnNpYyB9LAogICAgIHsgIm1ldGhvZFdpdGhVbnNpZ25lZExvbmdBcnJheSIsIERvbnREZWxl
dGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ0FycmF5KSwg
KGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCisgICAgeyAic3RyaW5nQXJyYXlGdW5jdGlvbiIs
IERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbiks
IChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImdldFNWR0RvY3VtZW50IiwgRG9u
dERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudCksIChpbnRwdHJf
dCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNvbnZlcnQxIiwgRG9udERlbGV0ZSB8IEpTQzo6
RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MSksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LAog
ICAgIHsgImNvbnZlcnQyIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252
ZXJ0MiksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LApAQCAtMjI1MCw2ICsyMjUyLDI2IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoVW5zaWduZWRMb25nQXJyCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQorewor
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2Fz
dDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CisgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKKyAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKKyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdmFsdWVzKHRvRE9NU3Ry
aW5nTGlzdChleGVjLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworCisgICAgSlNDOjpKU1ZhbHVlIHJl
c3VsdCA9IGpzQXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwtPnN0
cmluZ0FycmF5RnVuY3Rpb24odmFsdWVzLCBlYykpOworICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9j
dW1lbnQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IGNmYTc5NTVhYjFjODMxNTdlYmU5NTA5ZWZkYmE4
YmMzNjEzNjY3NTMuLmM3NGIyM2Y0NDdmYzE5YjMxNDg2YjgyNWQ5NjI0MjMwZDE2NGNiMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgKQEAgLTIwNCw2ICsyMDQsNyBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMihKU0M6OgogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kMShKU0M6OkV4ZWNTdGF0ZSopOwogI2VuZGlmCiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
VW5zaWduZWRMb25nQXJyYXkoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rp
b24oSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KEpTQzo6RXhlY1N0YXRlKik7
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoSlNDOjpFeGVjU3Rh
dGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAppbmRleCAyYmIwOTA5MWIyZGEyNTZlMGI2YmRkMmYxNGY3YmM3ODdlNTdhZDFkLi5lZjM0
MmY4YmU2NTk1MTBiMzkxZGFkNjYxZmI2MjQ3ZmUyMWJkMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0yMDEsNiArMjAxLDkg
QEAgbW9kdWxlIHRlc3QgewogI2lmIGRlZmluZWQoVEVTVElOR19KUykKICAgICAgICAgdm9pZCBt
ZXRob2RXaXRoVW5zaWduZWRMb25nQXJyYXkoaW4gdW5zaWduZWQgbG9uZ1tdIHVuc2lnbmVkTG9u
Z0FycmF5KTsKICNlbmRpZgorI2lmIGRlZmluZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNU
SU5HX0pTKQorICAgICAgICBET01TdHJpbmdbXSBzdHJpbmdBcnJheUZ1bmN0aW9uKGluIERPTVN0
cmluZ1tdIHZhbHVlcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKIAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBEb2N1bWVudCBjb250ZW50
RG9jdW1lbnQ7CiAgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gU1ZHRG9jdW1lbnQgZ2V0
U1ZHRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCBmZWQ3YTUyNjc0OTdiNWJkMmYwZThkYjVkY2Yz
OGM0Zjk1Njk4M2FkLi40MTdiNTdjYzNkOTJiZTQ0NTA1NWRjYmM3MjIyZjBjMzUzNGE2YmU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIlY4VGVzdE9iai5oIgogCiAj
aW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiRE9NU3RyaW5nLmgiCiAjaW5j
bHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKQEAgLTM4LDYgKzM5LDcgQEAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
ICNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5o
IgorI2luY2x1ZGUgIlY4RE9NU3RyaW5nLmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCiAj
aW5jbHVkZSAiVjhEb2N1bWVudC5oIgogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCkBA
IC0xNjczLDYgKzE2NzUsMjQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVk
QXRSdW50aW1lTWV0aG9kMkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMKICAgICByZXR1cm4g
djg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gc3RyaW5nQXJyYXlGdW5jdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
Cit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBcnJheUZ1bmN0aW9uIik7Cisg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CisgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKKyAgICB7CisgICAgRVhDRVBUSU9OX0JMT0NLKFJlZlB0cjxET01TdHJpbmdM
aXN0PiwgdmFsdWVzLCB2OFZhbHVlVG9XZWJDb3JlRE9NU3RyaW5nTGlzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgUmVmUHRyPERP
TVN0cmluZ0xpc3Q+IHJlc3VsdCA9IGltcC0+c3RyaW5nQXJyYXlGdW5jdGlvbih2YWx1ZXMsIGVj
KTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgICAgICBnb3RvIGZhaWw7CisgICAgcmV0dXJu
IHY4QXJyYXkocmVzdWx0LnJlbGVhc2UoKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIH0KKyAg
ICBmYWlsOgorICAgIHJldHVybiBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRTVkdEb2N1
bWVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5nZXRTVkdEb2N1bWVudCIpOwpAQCAtMTk0OSw2ICsxOTY5LDcgQEAgc3Rh
dGljIGNvbnN0IEJhdGNoZWRDYWxsYmFjayBUZXN0T2JqQ2FsbGJhY2tzW10gPSB7CiAgICAgeyJj
b25kaXRpb25hbE1ldGhvZDMiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxNZXRob2Qz
Q2FsbGJhY2t9LAogI2VuZGlmCiAgICAgeyJvdmVybG9hZGVkTWV0aG9kIiwgVGVzdE9ialY4SW50
ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2RDYWxsYmFja30sCisgICAgeyJzdHJpbmdBcnJheUZ1bmN0
aW9uIiwgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0FycmF5RnVuY3Rpb25DYWxsYmFja30sCiAg
ICAgeyJnZXRTVkdEb2N1bWVudCIsIFRlc3RPYmpWOEludGVybmFsOjpnZXRTVkdEb2N1bWVudENh
bGxiYWNrfSwKICAgICB7Im11dGFibGVQb2ludEZ1bmN0aW9uIiwgVGVzdE9ialY4SW50ZXJuYWw6
Om11dGFibGVQb2ludEZ1bmN0aW9uQ2FsbGJhY2t9LAogICAgIHsiaW1tdXRhYmxlUG9pbnRGdW5j
dGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjppbW11dGFibGVQb2ludEZ1bmN0aW9uQ2FsbGJhY2t9
LAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147517</attachid>
            <date>2012-06-14 01:46:06 -0700</date>
            <delta_ts>2012-06-14 02:43:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-89070-20120614174605.patch</filename>
            <type>text/plain</type>
            <size>12592</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIwN2FiYzdiMGQwN2Q0
OTNiZTFjOGUwYTUyZmUwOTUyZDYyZDIxMy4uNzJkNjVjMTYyZGFiOTg1YTczM2VlNTJjZmExMDYy
N2ZhMmVhMDMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA2LTE0ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBbSlNDL1Y4XSBJbXByb3Zl
IERPTVN0cmluZ1tdIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5MDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VudGFybyBIYXJhLgor
CisgICAgICAgIFRlc3RzOiBuZXcgdGVzdCBjYXNlIGluIFRlc3RPYmouaWRsCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNBcnJh
eSk6IEltcGxlbWVudCBqc0FycmF5KCkgZm9yIERPTVN0cmluZ0xpc3QuCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmg6IERlY2xhcmUganNBcnJheSgpIGZvciBET01TdHJpbmdM
aXN0LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAoTmF0aXZlVG9KU1ZhbHVlKTogQXZvaWQgdG8gaW5jbHVkZSBKU0RPTVN0cmluZy5oIGFu
ZCBET01TdHJpbmcuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbToKKyAgICAgICAgKEdldE5hdGl2ZVR5cGUpOiBNb3ZlIGEgY2hlY2sgZm9yIERPTVN0cmlu
Z1tdIGJlY2F1c2UgaXQncyBhIFJlZlB0ciB0eXBlCisgICAgICAgIGFuZCB3ZSdkIGxpa2UgdG8g
YXZvaWQgdG8gZ2VuZXJhdGUgUmVmUHRyPERPTVN0cmluZ1tdPgorICAgICAgICAoJW5vbl93cmFw
cGVyX3R5cGVzKTogRE9NU3RyaW5nW10gaXMgbm90IGEgd3JhcHBlciB0eXBlLiBUaGlzIGlzIG5l
ZWRlZAorICAgICAgICB0byBhdm9pZCB0byBnZW5lcmF0ZSB1bm5lY2Vzc2FyeSBjdXN0b20gZnVu
Y3Rpb24gdGVtcGxhdGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGw6IEFkZCBub24tb3ZlcmxvYWQgZnVuY3Rpb24gdXNpbmcgRE9NU3RyaW5nW10uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6IFVwZGF0ZSBleHBl
Y3RhdGlvbi4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6
IGRpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
OiBkaXR0by4KKwogMjAxMi0wNi0xNCAgTGkgWWluICA8bGkueWluQGludGVsLmNvbT4KIAogICAg
ICAgICBbV2ViU29ja2V0XSBXZWJTb2NrZXQgb2JqZWN0IGluIFdvcmtlciBDb250ZXh0IHNob3Vs
ZCBmaXJlIGVycm9yIGV2ZW50IHdoZW4gaXQgZmFpbHMgY29ubmVjdGlvbi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDNhNmM2NGEwNWZiMmFhZDYx
N2ZkZGExMzliZDk4ZWZjODM2ZDcwMjkuLmQwMzY1NWUyNGUzN2RlYTRhZGM0MDNmODQzNDZjNWFj
Mzc0ODYzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogCiAjaW5jbHVk
ZSAiRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmgiCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWFkZXJzLmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uSW50ZXJmYWNlcy5oIgpAQCAtMTQ2LDYgKzE0NywxNiBAQCBk
b3VibGUgdmFsdWVUb0RhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPih2YWx1ZS50b09iamVjdChleGVjKSktPmlu
dGVybmFsTnVtYmVyKCk7CiB9CiAKK0pTQzo6SlNWYWx1ZSBqc0FycmF5KEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IHN0cmluZ0xpc3QpCit7CisgICAgaWYgKCFzdHJpbmdMaXN0KQorICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdHJpbmdMaXN0LT5sZW5ndGgoKTsgKytpKQorICAg
ICAgICBsaXN0LmFwcGVuZChqc1N0cmluZyhleGVjLCBzdHJpbmdMaXN0LT5pdGVtKGkpKSk7Cisg
ICAgcmV0dXJuIEpTQzo6Y29uc3RydWN0QXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0LCBsaXN0KTsK
K30KKwogdm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGV4Y2Vw
dGlvbikKIHsKICAgICBpZiAoaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGV4Y2VwdGlv
bikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDFiZTYz
MTBhOGM4OGJiZTJmY2RkZDA0Y2UwZGNlMzViN2E4MTJmNTMuLmQyNzhhODAyYWM5MjEwNTQ2MmRh
MWM5MTBkOTgzOWEyNmY0ZDZjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCkBAIC00NCw2ICs0NCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgRE9NU3RyaW5nTGlzdDsKKwogZW51bSBQYXJhbWV0ZXJEZWZhdWx0UG9saWN5IHsKICAgICBE
ZWZhdWx0SXNVbmRlZmluZWQsCiAgICAgRGVmYXVsdElzTnVsbFN0cmluZwpAQCAtMjkxLDYgKzI5
Myw4IEBAIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7CiAgICAgICAgIHJldHVybiBKU0M6
OmNvbnN0cnVjdEFycmF5KGV4ZWMsIGdsb2JhbE9iamVjdCwgbGlzdCk7CiAgICAgfQogCisgICAg
SlNDOjpKU1ZhbHVlIGpzQXJyYXkoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pOworCiAgICAgdGVtcGxhdGU8PgogICAgIGlubGlu
ZSBKU0M6OkpTVmFsdWUganNBcnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGl0ZXJhdG9yKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggMGE4Njc2MWU0MTJjOGViOTM0YzA0ZTFlNTRlZjk0NTM2M2M1NDVmYi4uZWM0
OGY0NWM2ODBiNmQwN2MzNzI3OGQ5MGUxMjBjMGM3NmJkNGY1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTMwNzIsNyAr
MzA3MiwxMCBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAKICAgICBteSAkYXJyYXlUeXBlID0gJGNv
ZGVHZW5lcmF0b3ItPkdldEFycmF5VHlwZSgkdHlwZSk7CiAgICAgaWYgKCRhcnJheVR5cGUpIHsK
LSAgICAgICAgaWYgKCEkY29kZUdlbmVyYXRvci0+U2tpcEluY2x1ZGVIZWFkZXIoJGFycmF5VHlw
ZSkpIHsKKyAgICAgICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmdbXSIpIHsKKyAgICAgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTVN0cmluZ0xpc3QuaCIsICRjb25kaXRpb25hbCk7Cisg
ICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiRE9NU3RyaW5nTGlzdC5oIiwgJGNvbmRpdGlv
bmFsKTsKKyAgICAgICAgfSBlbHNpZiAoISRjb2RlR2VuZXJhdG9yLT5Ta2lwSW5jbHVkZUhlYWRl
cigkYXJyYXlUeXBlKSkgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJGFycmF5
VHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIk
YXJyYXlUeXBlLmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDhiOTJkMGIx
NjY4MTEwODMwNDkzN2EzODZjMWU0YjQ1NDBiMGZkNTEuLmRkYTg5OTEyYzhlMzZlNjJlODAzYTZl
Nzg3Mjc4MDU0NTIzZTU1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0zNTA2LDYgKzM1MDYsNyBAQCBzdWIgR2V0TmF0
aXZlVHlwZQogICAgICMgbmVjZXNzYXJ5IGFzIHJlc29sdmVycyBjb3VsZCBiZSBjb25zdHJ1Y3Rl
ZCBvbiBmbHkuCiAgICAgcmV0dXJuICJSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiIgaWYgJHR5cGUg
ZXEgIlhQYXRoTlNSZXNvbHZlciI7CiAKKyAgICByZXR1cm4gIlJlZlB0cjxET01TdHJpbmdMaXN0
PiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZ1tdIjsKICAgICByZXR1cm4gIlJlZlB0cjwke3R5cGV9
PiIgaWYgSXNSZWZQdHJUeXBlKCR0eXBlKSBhbmQgbm90ICRpc1BhcmFtZXRlcjsKIAogICAgIHJl
dHVybiAiUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IiBpZiAkdHlwZSBlcSAiTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciI7CkBAIC0zNTE0LDcgKzM1MTUsNiBAQCBzdWIgR2V0TmF0aXZlVHlw
ZQogICAgIHJldHVybiAiVmVjdG9yPGZsb2F0PiIgaWYgJHR5cGUgZXEgImZsb2F0W10iOwogICAg
IHJldHVybiAiVmVjdG9yPGRvdWJsZT4iIGlmICR0eXBlIGVxICJkb3VibGVbXSI7CiAgICAgcmV0
dXJuICJSZWZQdHI8RE9NU3RyaW5nTGlzdD4iIGlmICR0eXBlIGVxICJET01TdHJpbmdMaXN0IjsK
LSAgICByZXR1cm4gIlJlZlB0cjxET01TdHJpbmdMaXN0PiIgaWYgJHR5cGUgZXEgIkRPTVN0cmlu
Z1tdIjsKIAogICAgICMgRGVmYXVsdCwgYXNzdW1lIG5hdGl2ZSB0eXBlIGlzIGEgcG9pbnRlciB3
aXRoIHNhbWUgdHlwZSBuYW1lIGFzIGlkbCB0eXBlCiAgICAgcmV0dXJuICIke3R5cGV9KiI7CkBA
IC0zNzQ2LDYgKzM3NDYsNyBAQCBteSAlbm9uX3dyYXBwZXJfdHlwZXMgPSAoCiAgICAgJ0NvbXBh
cmVIb3cnID0+IDEsCiAgICAgJ0RPTU9iamVjdCcgPT4gMSwKICAgICAnRE9NU3RyaW5nJyA9PiAx
LAorICAgICdET01TdHJpbmdbXScgPT4gMSwKICAgICAnRE9NVGltZVN0YW1wJyA9PiAxLAogICAg
ICdEYXRlJyA9PiAxLAogICAgICdEaWN0aW9uYXJ5JyA9PiAxLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBjODll
ZjdhODZhNWRhOTg1ZGFhM2VhYzJiNTgxMjgwODZjYmYzYTM1Li5mNGE1Y2Q4NThkYjI0ZDVhMjNh
YzM0MDhiODBlOGUzNTZmNmM5MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE9iai5oIgogCisjaW5jbHVkZSAiRE9N
U3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTMwMiw2ICszMDMsNyBAQCBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9
CiAjZW5kaWYKICAgICB7ICJvdmVybG9hZGVkTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVu
Y3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKSwgKGludHB0cl90KTIsIE5vSW50cmluc2lj
IH0sCiAgICAgeyAibWV0aG9kV2l0aFVuc2lnbmVkTG9uZ0FycmF5IiwgRG9udERlbGV0ZSB8IEpT
Qzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nQXJyYXkpLCAoaW50cHRy
X3QpMSwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwgRG9udERl
bGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKSwgKGludHB0
cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiZ2V0U1ZHRG9jdW1lbnQiLCBEb250RGVsZXRl
IHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KSwgKGludHB0cl90KTAsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAiY29udmVydDEiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlv
biwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbnZlcnQxKSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAi
Y29udmVydDIiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKSwg
KGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCkBAIC0yMjUwLDYgKzIyNTIsMjYgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhVbnNpZ25lZExvbmdBcnIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0aGlzVmFs
dWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVz
dE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKKyAgICBUZXN0T2JqKiBpbXBsID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiB2YWx1ZXModG9ET01TdHJpbmdMaXN0
KGV4ZWMsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0g
anNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC0+c3RyaW5nQXJy
YXlGdW5jdGlvbih2YWx1ZXMsIGVjKSk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudChF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmgKaW5kZXggY2ZhNzk1NWFiMWM4MzE1N2ViZTk1MDllZmRiYThiYzM2MTM2
Njc1My4uYzc0YjIzZjQ0N2ZjMTliMzE0ODZiODI1ZDk2MjQyMzBkMTY0Y2IyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApA
QCAtMjA0LDYgKzIwNCw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKEpTQzo6CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2QxKEpTQzo6RXhlY1N0YXRlKik7CiAjZW5kaWYKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25l
ZExvbmdBcnJheShKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihKU0M6
OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bnZlcnQxKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MihKU0M6OkV4ZWNTdGF0ZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmlu
ZGV4IDJiYjA5MDkxYjJkYTI1NmUwYjZiZGQyZjE0ZjdiYzc4N2U1N2FkMWQuLmVmMzQyZjhiZTY1
OTUxMGIzOTFkYWQ2NjFmYjYyNDdmZTIxYmQyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTIwMSw2ICsyMDEsOSBAQCBtb2R1
bGUgdGVzdCB7CiAjaWYgZGVmaW5lZChURVNUSU5HX0pTKQogICAgICAgICB2b2lkIG1ldGhvZFdp
dGhVbnNpZ25lZExvbmdBcnJheShpbiB1bnNpZ25lZCBsb25nW10gdW5zaWduZWRMb25nQXJyYXkp
OwogI2VuZGlmCisjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMp
CisgICAgICAgIERPTVN0cmluZ1tdIHN0cmluZ0FycmF5RnVuY3Rpb24oaW4gRE9NU3RyaW5nW10g
dmFsdWVzKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ2hlY2tTZWN1cml0eUZvck5vZGVdIERvY3VtZW50IGNvbnRlbnREb2N1bWVu
dDsKICAgICAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1
bWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCmluZGV4IGZlZDdhNTI2NzQ5N2I1YmQyZjBlOGRiNWRjZjM4YzRmOTU2
OTgzYWQuLjQxN2I1N2NjM2Q5MmJlNDQ1MDU1ZGNiYzcyMjJmMGMzNTM0YTZiZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiVjhUZXN0T2JqLmgiCiAKICNpbmNsdWRl
ICJDb250ZXh0RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJET01TdHJpbmcuaCIKICNpbmNsdWRlICJE
aWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgpAQCAtMzgsNiArMzksNyBAQAogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1
ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCisjaW5j
bHVkZSAiVjhET01TdHJpbmcuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRl
ICJWOERvY3VtZW50LmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKQEAgLTE2NzMs
NiArMTY3NSwyNCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRp
bWVNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIHJldHVybiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJp
bmdBcnJheUZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnN0cmluZ0FycmF5RnVuY3Rpb24iKTsKKyAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIHsKKyAgICBFWENFUFRJT05fQkxPQ0soUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB2
YWx1ZXMsIHY4VmFsdWVUb1dlYkNvcmVET01TdHJpbmdMaXN0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBSZWZQdHI8RE9NU3RyaW5n
TGlzdD4gcmVzdWx0ID0gaW1wLT5zdHJpbmdBcnJheUZ1bmN0aW9uKHZhbHVlcywgZWMpOworICAg
IGlmIChVTkxJS0VMWShlYykpCisgICAgICAgIGdvdG8gZmFpbDsKKyAgICByZXR1cm4gdjhBcnJh
eShyZXN1bHQucmVsZWFzZSgpLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgfQorICAgIGZhaWw6
CisgICAgcmV0dXJuIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRl
KCkpOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldFNWR0RvY3VtZW50Q2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLmdldFNWR0RvY3VtZW50Iik7CkBAIC0xOTQ5LDYgKzE5NjksNyBAQCBzdGF0aWMgY29u
c3QgQmF0Y2hlZENhbGxiYWNrIFRlc3RPYmpDYWxsYmFja3NbXSA9IHsKICAgICB7ImNvbmRpdGlv
bmFsTWV0aG9kMyIsIFRlc3RPYmpWOEludGVybmFsOjpjb25kaXRpb25hbE1ldGhvZDNDYWxsYmFj
a30sCiAjZW5kaWYKICAgICB7Im92ZXJsb2FkZWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6
b3ZlcmxvYWRlZE1ldGhvZENhbGxiYWNrfSwKKyAgICB7InN0cmluZ0FycmF5RnVuY3Rpb24iLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXJyYXlGdW5jdGlvbkNhbGxiYWNrfSwKICAgICB7Imdl
dFNWR0RvY3VtZW50IiwgVGVzdE9ialY4SW50ZXJuYWw6OmdldFNWR0RvY3VtZW50Q2FsbGJhY2t9
LAogICAgIHsibXV0YWJsZVBvaW50RnVuY3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6bXV0YWJs
ZVBvaW50RnVuY3Rpb25DYWxsYmFja30sCiAgICAgeyJpbW11dGFibGVQb2ludEZ1bmN0aW9uIiwg
VGVzdE9ialY4SW50ZXJuYWw6OmltbXV0YWJsZVBvaW50RnVuY3Rpb25DYWxsYmFja30sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>