<?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>106308</bug_id>
          
          <creation_ts>2013-01-08 00:03:21 -0800</creation_ts>
          <short_desc>[Chromium] WebGL typed array constructor crashes on exception</short_desc>
          <delta_ts>2013-01-11 10:40:39 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mstarzinger</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>802095</commentid>
    <comment_count>0</comment_count>
    <who name="">mstarzinger</who>
    <bug_when>2013-01-08 00:03:21 -0800</bug_when>
    <thetext>An object whose &apos;length&apos; property is an accessor that throws an exception might crash the WebGL typed array constructor when passed as a single parameter. The underlying cause is a missing check for an empty handle after the &apos;length&apos; property is read. This only applies to the V8 bindings. I have attached a simplified test case that reproduces the problem.

Note that I strongly suspect that the same problem exists when one of the elements is defined as a throwing accessor, but I didn&apos;t write a repro for this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802097</commentid>
    <comment_count>1</comment_count>
      <attachid>181661</attachid>
    <who name="">mstarzinger</who>
    <bug_when>2013-01-08 00:04:14 -0800</bug_when>
    <thetext>Created attachment 181661
Test case to reproduce bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804874</commentid>
    <comment_count>2</comment_count>
      <attachid>182243</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-01-10 19:03:45 -0800</bug_when>
    <thetext>Created attachment 182243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805006</commentid>
    <comment_count>3</comment_count>
      <attachid>182243</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-10 23:46:58 -0800</bug_when>
    <thetext>Comment on attachment 182243
Patch

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

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:176
&gt; +        v8::Local&lt;v8::Value&gt; val = srcArray-&gt;Get(v8::String::NewSymbol(&quot;length&quot;));
&gt; +        if (val.IsEmpty()) {
&gt; +            // Exception thrown during fetch of length property.

Another way to detect an exception is:

  v8::TryCatch block;
  v8::Local&lt;v8::Value&gt; val = srcArray-&gt;Get(v8::String::NewSymbol(&quot;length&quot;));
  if (block-&gt;hadException())
    return v8Null();

But as far as I see other code, it looks like we are likely to check IsEmpty() rather than using v8::TryCatch. So your code looks fine.

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:177
&gt; +            return v8::Null();

Nit: v8::Null() =&gt; v8Null()

Are you sure that this should be not v8Undefined() but v8Null()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805347</commentid>
    <comment_count>4</comment_count>
      <attachid>182243</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-01-11 10:03:56 -0800</bug_when>
    <thetext>Comment on attachment 182243
Patch

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

&gt;&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:176
&gt;&gt; +            // Exception thrown during fetch of length property.
&gt; 
&gt; Another way to detect an exception is:
&gt; 
&gt;   v8::TryCatch block;
&gt;   v8::Local&lt;v8::Value&gt; val = srcArray-&gt;Get(v8::String::NewSymbol(&quot;length&quot;));
&gt;   if (block-&gt;hadException())
&gt;     return v8Null();
&gt; 
&gt; But as far as I see other code, it looks like we are likely to check IsEmpty() rather than using v8::TryCatch. So your code looks fine.

Yes, I saw the TryCatch class in the V8 API but it seemed more direct to check for the failure case.

&gt;&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:177
&gt;&gt; +            return v8::Null();
&gt; 
&gt; Nit: v8::Null() =&gt; v8Null()
&gt; 
&gt; Are you sure that this should be not v8Undefined() but v8Null()?

Looking at other similar code it should be v8Undefined. The return value is ignored however since the exception is thrown to the calling code. I&apos;ll upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805349</commentid>
    <comment_count>5</comment_count>
      <attachid>182359</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-01-11 10:06:17 -0800</bug_when>
    <thetext>Created attachment 182359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805353</commentid>
    <comment_count>6</comment_count>
      <attachid>182359</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-11 10:09:50 -0800</bug_when>
    <thetext>Comment on attachment 182359
Patch

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

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:179
&gt; +        len = toUInt32(val);

This conversion can fail too. So you might want to do:

  bool ok;
  len = toUInt32(val, ok);
  if (!ok) {
    ...;
  }

Either way let&apos;s fix it in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805394</commentid>
    <comment_count>7</comment_count>
      <attachid>182359</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 10:40:35 -0800</bug_when>
    <thetext>Comment on attachment 182359
Patch

Clearing flags on attachment: 182359

Committed r139459: &lt;http://trac.webkit.org/changeset/139459&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805395</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 10:40:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>181661</attachid>
            <date>2013-01-08 00:04:14 -0800</date>
            <delta_ts>2013-01-08 00:04:14 -0800</delta_ts>
            <desc>Test case to reproduce bug.</desc>
            <filename>issue-chromium-168545.html</filename>
            <type>text/html</type>
            <size>134</size>
            <attacher>mstarzinger</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KCnZhciBvID0ge307Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAibGVuZ3RoIiwg
eyBnZXQ6IGZ1bmN0aW9uKCkgeyB0aHJvdyAiYmFpbCI7IH19KTsKdmFyIGEgPSBuZXcgSW50MTZB
cnJheShvKTsKCjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182243</attachid>
            <date>2013-01-10 19:03:45 -0800</date>
            <delta_ts>2013-01-11 10:06:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106308-20130110190048.patch</filename>
            <type>text/plain</type>
            <size>10930</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJiM2NjYzI4Y2E0Nzg1
OWI5NDA0MjhjYjgyNmFlZWMwZjAxMWE1NC4uMWMyYjNjNTlmZjVkYzM0NmI0M2UwYzFkMzk0ZDcw
NDIxZTQ3Yzc5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAxLTEwICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIFdlYkdM
IHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIGNyYXNoZXMgb24gZXhjZXB0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYzMDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVjayBmb3IgZW1wdHkgaGFu
ZGxlcyAoaW5kaWNhdGluZyBleGNlcHRpb24gdGhyb3duKSBhZnRlciBjYWxscworICAgICAgICBp
bnRvIFY4IFZNLgorCisgICAgICAgIEFkZGVkIG5ldyBjYXNlIGZyb20gS2hyb25vcyB0eXBlZCBh
cnJheSBjb25mb3JtYW5jZSB0ZXN0cyB0bworICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC9hcnJh
eS11bml0LXRlc3RzLmh0bWwuCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJh
eUJ1ZmZlclZpZXdDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJy
YXkpOgorICAgICAgICAgICAgQ2hlY2sgZm9yIGVtcHR5IGhhbmRsZXMgYWZ0ZXIgY2FsbHMgaW50
byBWOCBWTS4KKwogMjAxMy0wMS0wOCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBDb3B5LXBhc3RlIHByZXNlcnZlcyA8ZW1iZWQ+IHRhZ3MgY29udGFpbmluZyBh
Y3RpdmUgY29udGVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5kZXggN2I0NjYyZDA3MTQ4YjI0
MWRjMDE5MTIxNTY4NGUzMThhZmQ3NjA1Ni4uYmYyZWUxZjczNDFmYWZlN2E1YzQwZTQ0NjgwMDIy
MDkzZGI4Y2E5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTE3MSw3ICsxNzEsMTIgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncywgV3JhcHBlclR5cGUKICAgICAgICAgc3JjQXJyYXkgPSBhcmdzWzBdLT5Ub09i
amVjdCgpOwogICAgICAgICBpZiAoc3JjQXJyYXkuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCAwIHRvIGFuIGFy
cmF5IiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICBsZW4gPSB0b1VJbnQzMihzcmNBcnJh
eS0+R2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgibGVuZ3RoIikpKTsKKyAgICAgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsID0gc3JjQXJyYXktPkdldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2wo
Imxlbmd0aCIpKTsKKyAgICAgICAgaWYgKHZhbC5Jc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8v
IEV4Y2VwdGlvbiB0aHJvd24gZHVyaW5nIGZldGNoIG9mIGxlbmd0aCBwcm9wZXJ0eS4KKyAgICAg
ICAgICAgIHJldHVybiB2ODo6TnVsbCgpOworICAgICAgICB9CisgICAgICAgIGxlbiA9IHRvVUlu
dDMyKHZhbCk7CiAgICAgICAgIGRvSW5zdGFudGlhdGlvbiA9IHRydWU7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgYm9vbCBvayA9IGZhbHNlOwpAQCAtMjA4LDggKzIxMywxNCBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
LCBXcmFwcGVyVHlwZQogICAgIGlmICghc3JjQXJyYXkuSXNFbXB0eSgpKSB7CiAgICAgICAgIGJv
b2wgY29waWVkID0gY29weUVsZW1lbnRzKGFyZ3MuSG9sZGVyKCksIHNyY0FycmF5LCBsZW4sIDAs
IGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgaWYgKCFjb3BpZWQpIHsKLSAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW47IGkrKykKLSAgICAgICAgICAgICAgICBhcnJh
eS0+c2V0KGksIHNyY0FycmF5LT5HZXQoaSktPk51bWJlclZhbHVlKCkpOworICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsID0gc3JjQXJyYXktPkdldChpKTsKKyAgICAgICAgICAgICAg
ICBpZiAodmFsLklzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBFeGNlcHRpb24g
dGhyb3duIGR1cmluZyBmZXRjaC4KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpOdWxs
KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgdmFs
LT5OdW1iZXJWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDBiYTVkODk4NjhmYWE2OWRkZGY4YjQyZTdhMDZlYTE2ZTc5MGFhNjIuLjMwYjA3YTdhNGU0
M2ZmZjEzZDc3MzFjOWM4Y2M5OTgyNDlkM2M4OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
My0wMS0xMCAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0No
cm9taXVtXSBXZWJHTCB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciBjcmFzaGVzIG9uIGV4Y2VwdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MzA4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
ZCB0eXBlZCBhcnJheSB0ZXN0cyB0byBsYXRlc3QgdmVyc2lvbiBmcm9tIEtocm9ub3MgcmVwb3Np
dG9yeS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMu
aHRtbDoKKwogMjAxMy0wMS0wOCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gTGF5b3V0IFRlc3RzIHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQtc3ZnZG9tLXRhYmxlVmFsdWVzKiBhcmUg
Zmxha3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11
bml0LXRlc3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Fy
cmF5LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0CmluZGV4IDMwNDE3NmYyMzFhODY4ZWQzYzZkODQ2
MTdkMWViOGRmOTE3NmUyMzQuLjdmZjY1MWNmYzkwZmNjODY5NjZiNDM3Mzg1MTA5ODExNjY3ZGRi
YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQt
dGVzdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Fy
cmF5LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0CkBAIC0zNyw2ICszNyw3IEBAIFBBU1MgdGVzdCBG
bG9hdDMyQXJyYXkgQ29uc3RydWN0aW9uQm91bmRhcnlDb25kaXRpb25zCiBQQVNTIENvbnN0cnVj
dGlvbiBvZiBGbG9hdDMyQXJyYXkgd2l0aCBudWxsIGJ1ZmZlciB0aHJldyBleGNlcHRpb24KIFBB
U1MgQ29uc3RydWN0aW9uIG9mIEZsb2F0MzJBcnJheSB3aXRoIChudWxsIGJ1ZmZlciwgMCkgdGhy
ZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBGbG9hdDMyQXJyYXkgd2l0aCAobnVs
bCBidWZmZXIsIDAsIDApIHRocmV3IGV4Y2VwdGlvbgorUEFTUyBDb25zdHJ1Y3Rpb24gb2YgRmxv
YXQzMkFycmF5IHdpdGggZXhjZXB0aW9uLXRocm93aW5nIGFycmF5LWxpa2Ugb2JqZWN0IGRpZG4n
dCBjcmFzaCB1bmV4cGVjdGVkbHkKIFBBU1MgQ29uc3RydWN0aW9uIG9mIEZsb2F0MzJBcnJheSB3
aXRoIG91dC1vZi1yYW5nZSBudW1iZXIgb2YgZWxlbWVudHMgdGhyZXcgYW4gZXhjZXB0aW9uCiBQ
QVNTIENvbnN0cnVjdGlvbiBvZiBGbG9hdDMyQXJyYXkgd2l0aCBvdXQtb2YtcmFuZ2Ugb2Zmc2V0
IHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgQXJyYXlCdWZmZXIgd2l0
aCBuZWdhdGl2ZSBzaXplIHRocmV3IGV4Y2VwdGlvbgpAQCAtOTIsNiArOTMsNyBAQCBQQVNTIHRl
c3QgRmxvYXQ2NEFycmF5IENvbnN0cnVjdGlvbkJvdW5kYXJ5Q29uZGl0aW9ucwogUEFTUyBDb25z
dHJ1Y3Rpb24gb2YgRmxvYXQ2NEFycmF5IHdpdGggbnVsbCBidWZmZXIgdGhyZXcgZXhjZXB0aW9u
CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBGbG9hdDY0QXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDAp
IHRocmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgRmxvYXQ2NEFycmF5IHdpdGgg
KG51bGwgYnVmZmVyLCAwLCAwKSB0aHJldyBleGNlcHRpb24KK1BBU1MgQ29uc3RydWN0aW9uIG9m
IEZsb2F0NjRBcnJheSB3aXRoIGV4Y2VwdGlvbi10aHJvd2luZyBhcnJheS1saWtlIG9iamVjdCBk
aWRuJ3QgY3Jhc2ggdW5leHBlY3RlZGx5CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBGbG9hdDY0QXJy
YXkgd2l0aCBvdXQtb2YtcmFuZ2UgbnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFuIGV4Y2VwdGlv
bgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgRmxvYXQ2NEFycmF5IHdpdGggb3V0LW9mLXJhbmdlIG9m
ZnNldCB0aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEFycmF5QnVmZmVy
IHdpdGggbmVnYXRpdmUgc2l6ZSB0aHJldyBleGNlcHRpb24KQEAgLTE0OCw2ICsxNTAsNyBAQCBQ
QVNTIHRlc3QgSW50OEFycmF5IENvbnN0cnVjdGlvbkJvdW5kYXJ5Q29uZGl0aW9ucwogUEFTUyBD
b25zdHJ1Y3Rpb24gb2YgSW50OEFycmF5IHdpdGggbnVsbCBidWZmZXIgdGhyZXcgZXhjZXB0aW9u
CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQ4QXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDApIHRo
cmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50OEFycmF5IHdpdGggKG51bGwg
YnVmZmVyLCAwLCAwKSB0aHJldyBleGNlcHRpb24KK1BBU1MgQ29uc3RydWN0aW9uIG9mIEludDhB
cnJheSB3aXRoIGV4Y2VwdGlvbi10aHJvd2luZyBhcnJheS1saWtlIG9iamVjdCBkaWRuJ3QgY3Jh
c2ggdW5leHBlY3RlZGx5CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQ4QXJyYXkgd2l0aCBvdXQt
b2YtcmFuZ2UgbnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBDb25z
dHJ1Y3Rpb24gb2YgSW50OEFycmF5IHdpdGggb3V0LW9mLXJhbmdlIG9mZnNldCB0aHJldyBhbiBl
eGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEFycmF5QnVmZmVyIHdpdGggbmVnYXRpdmUg
c2l6ZSB0aHJldyBleGNlcHRpb24KQEAgLTE5OSw2ICsyMDIsNyBAQCBQQVNTIHRlc3QgSW50MTZB
cnJheSBDb25zdHJ1Y3Rpb25Cb3VuZGFyeUNvbmRpdGlvbnMKIFBBU1MgQ29uc3RydWN0aW9uIG9m
IEludDE2QXJyYXkgd2l0aCBudWxsIGJ1ZmZlciB0aHJldyBleGNlcHRpb24KIFBBU1MgQ29uc3Ry
dWN0aW9uIG9mIEludDE2QXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDApIHRocmV3IGV4Y2VwdGlv
bgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50MTZBcnJheSB3aXRoIChudWxsIGJ1ZmZlciwgMCwg
MCkgdGhyZXcgZXhjZXB0aW9uCitQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQxNkFycmF5IHdpdGgg
ZXhjZXB0aW9uLXRocm93aW5nIGFycmF5LWxpa2Ugb2JqZWN0IGRpZG4ndCBjcmFzaCB1bmV4cGVj
dGVkbHkKIFBBU1MgQ29uc3RydWN0aW9uIG9mIEludDE2QXJyYXkgd2l0aCBvdXQtb2YtcmFuZ2Ug
bnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24g
b2YgSW50MTZBcnJheSB3aXRoIG91dC1vZi1yYW5nZSBvZmZzZXQgdGhyZXcgYW4gZXhjZXB0aW9u
CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBBcnJheUJ1ZmZlciB3aXRoIG5lZ2F0aXZlIHNpemUgdGhy
ZXcgZXhjZXB0aW9uCkBAIC0yNTUsNiArMjU5LDcgQEAgUEFTUyB0ZXN0IEludDMyQXJyYXkgQ29u
c3RydWN0aW9uQm91bmRhcnlDb25kaXRpb25zCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQzMkFy
cmF5IHdpdGggbnVsbCBidWZmZXIgdGhyZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBv
ZiBJbnQzMkFycmF5IHdpdGggKG51bGwgYnVmZmVyLCAwKSB0aHJldyBleGNlcHRpb24KIFBBU1Mg
Q29uc3RydWN0aW9uIG9mIEludDMyQXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDAsIDApIHRocmV3
IGV4Y2VwdGlvbgorUEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50MzJBcnJheSB3aXRoIGV4Y2VwdGlv
bi10aHJvd2luZyBhcnJheS1saWtlIG9iamVjdCBkaWRuJ3QgY3Jhc2ggdW5leHBlY3RlZGx5CiBQ
QVNTIENvbnN0cnVjdGlvbiBvZiBJbnQzMkFycmF5IHdpdGggb3V0LW9mLXJhbmdlIG51bWJlciBv
ZiBlbGVtZW50cyB0aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEludDMy
QXJyYXkgd2l0aCBvdXQtb2YtcmFuZ2Ugb2Zmc2V0IHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBD
b25zdHJ1Y3Rpb24gb2YgQXJyYXlCdWZmZXIgd2l0aCBuZWdhdGl2ZSBzaXplIHRocmV3IGV4Y2Vw
dGlvbgpAQCAtMzExLDYgKzMxNiw3IEBAIFBBU1MgdGVzdCBVaW50OEFycmF5IENvbnN0cnVjdGlv
bkJvdW5kYXJ5Q29uZGl0aW9ucwogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhBcnJheSB3aXRo
IG51bGwgYnVmZmVyIHRocmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhB
cnJheSB3aXRoIChudWxsIGJ1ZmZlciwgMCkgdGhyZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVj
dGlvbiBvZiBVaW50OEFycmF5IHdpdGggKG51bGwgYnVmZmVyLCAwLCAwKSB0aHJldyBleGNlcHRp
b24KK1BBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQ4QXJyYXkgd2l0aCBleGNlcHRpb24tdGhyb3dp
bmcgYXJyYXktbGlrZSBvYmplY3QgZGlkbid0IGNyYXNoIHVuZXhwZWN0ZWRseQogUEFTUyBDb25z
dHJ1Y3Rpb24gb2YgVWludDhBcnJheSB3aXRoIG91dC1vZi1yYW5nZSBudW1iZXIgb2YgZWxlbWVu
dHMgdGhyZXcgYW4gZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50OEFycmF5IHdp
dGggb3V0LW9mLXJhbmdlIG9mZnNldCB0aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0
aW9uIG9mIEFycmF5QnVmZmVyIHdpdGggbmVnYXRpdmUgc2l6ZSB0aHJldyBleGNlcHRpb24KQEAg
LTM2Miw2ICszNjgsNyBAQCBQQVNTIHRlc3QgVWludDhDbGFtcGVkQXJyYXkgQ29uc3RydWN0aW9u
Qm91bmRhcnlDb25kaXRpb25zCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50OENsYW1wZWRBcnJh
eSB3aXRoIG51bGwgYnVmZmVyIHRocmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2Yg
VWludDhDbGFtcGVkQXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDApIHRocmV3IGV4Y2VwdGlvbgog
UEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhDbGFtcGVkQXJyYXkgd2l0aCAobnVsbCBidWZmZXIs
IDAsIDApIHRocmV3IGV4Y2VwdGlvbgorUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhDbGFtcGVk
QXJyYXkgd2l0aCBleGNlcHRpb24tdGhyb3dpbmcgYXJyYXktbGlrZSBvYmplY3QgZGlkbid0IGNy
YXNoIHVuZXhwZWN0ZWRseQogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhDbGFtcGVkQXJyYXkg
d2l0aCBvdXQtb2YtcmFuZ2UgbnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFuIGV4Y2VwdGlvbgog
UEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhDbGFtcGVkQXJyYXkgd2l0aCBvdXQtb2YtcmFuZ2Ug
b2Zmc2V0IHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgQXJyYXlCdWZm
ZXIgd2l0aCBuZWdhdGl2ZSBzaXplIHRocmV3IGV4Y2VwdGlvbgpAQCAtNDEzLDYgKzQyMCw3IEBA
IFBBU1MgdGVzdCBVaW50MTZBcnJheSBDb25zdHJ1Y3Rpb25Cb3VuZGFyeUNvbmRpdGlvbnMKIFBB
U1MgQ29uc3RydWN0aW9uIG9mIFVpbnQxNkFycmF5IHdpdGggbnVsbCBidWZmZXIgdGhyZXcgZXhj
ZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50MTZBcnJheSB3aXRoIChudWxsIGJ1ZmZl
ciwgMCkgdGhyZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50MTZBcnJheSB3
aXRoIChudWxsIGJ1ZmZlciwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uCitQQVNTIENvbnN0cnVjdGlv
biBvZiBVaW50MTZBcnJheSB3aXRoIGV4Y2VwdGlvbi10aHJvd2luZyBhcnJheS1saWtlIG9iamVj
dCBkaWRuJ3QgY3Jhc2ggdW5leHBlY3RlZGx5CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50MTZB
cnJheSB3aXRoIG91dC1vZi1yYW5nZSBudW1iZXIgb2YgZWxlbWVudHMgdGhyZXcgYW4gZXhjZXB0
aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50MTZBcnJheSB3aXRoIG91dC1vZi1yYW5nZSBv
ZmZzZXQgdGhyZXcgYW4gZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBBcnJheUJ1ZmZl
ciB3aXRoIG5lZ2F0aXZlIHNpemUgdGhyZXcgZXhjZXB0aW9uCkBAIC00NjksNiArNDc3LDcgQEAg
UEFTUyB0ZXN0IFVpbnQzMkFycmF5IENvbnN0cnVjdGlvbkJvdW5kYXJ5Q29uZGl0aW9ucwogUEFT
UyBDb25zdHJ1Y3Rpb24gb2YgVWludDMyQXJyYXkgd2l0aCBudWxsIGJ1ZmZlciB0aHJldyBleGNl
cHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQzMkFycmF5IHdpdGggKG51bGwgYnVmZmVy
LCAwKSB0aHJldyBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQzMkFycmF5IHdp
dGggKG51bGwgYnVmZmVyLCAwLCAwKSB0aHJldyBleGNlcHRpb24KK1BBU1MgQ29uc3RydWN0aW9u
IG9mIFVpbnQzMkFycmF5IHdpdGggZXhjZXB0aW9uLXRocm93aW5nIGFycmF5LWxpa2Ugb2JqZWN0
IGRpZG4ndCBjcmFzaCB1bmV4cGVjdGVkbHkKIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQzMkFy
cmF5IHdpdGggb3V0LW9mLXJhbmdlIG51bWJlciBvZiBlbGVtZW50cyB0aHJldyBhbiBleGNlcHRp
b24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQzMkFycmF5IHdpdGggb3V0LW9mLXJhbmdlIG9m
ZnNldCB0aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEFycmF5QnVmZmVy
IHdpdGggbmVnYXRpdmUgc2l6ZSB0aHJldyBleGNlcHRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAppbmRleCA4NmQ3NmQwNjA0
ZjI2ODgyNDI2ZTk2NzIyMmE4MjQ4MGNmZjYzMmQ3Li5lOWIzMDE3ODBiMDRmYjU0MjYzNmVlZDRj
NzAxMTkwMzE3ZGEwNzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS11bml0LXRlc3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXktdW5pdC10ZXN0cy5odG1sCkBAIC01NDQsNiArNTQ0LDE2IEBAIGZ1bmN0aW9uIHRl
c3RDb25zdHJ1Y3Rpb25XaXRoTnVsbEJ1ZmZlcih0eXBlLCBuYW1lKSB7CiAgICAgfQogfQogCitm
dW5jdGlvbiB0ZXN0Q29uc3RydWN0aW9uV2l0aEV4Y2VwdGlvblRocm93aW5nT2JqZWN0KHR5cGUs
IG5hbWUpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAi
bGVuZ3RoIiwgeyBnZXQ6IGZ1bmN0aW9uKCkgeyB0aHJvdyAiYmFpbDsiIH19KTsKKyAgICB0cnkg
eworICAgICAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZShvKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgfQorICAgIHRlc3RQYXNzZWQoIkNvbnN0cnVjdGlvbiBvZiAiICsgbmFtZSArICIgd2l0aCBl
eGNlcHRpb24tdGhyb3dpbmcgYXJyYXktbGlrZSBvYmplY3QgZGlkbid0IGNyYXNoIHVuZXhwZWN0
ZWRseSIpOworfQorCiBmdW5jdGlvbiBzaG91bGRUaHJvd0luZGV4U2l6ZUVycihmdW5jLCB0ZXh0
KSB7CiAgICAgdmFyIGVycm9yVGV4dCA9IHRleHQgKyAiIHNob3VsZCB0aHJvdyBhbiBleGNlcHRp
b24iOwogICAgIHRyeSB7CkBAIC0xMDYzLDYgKzEwNzMsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlLnRlc3RW
YWx1ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZS5l
eHBlY3RlZFZhbHVlcyk7CiAgICAgdGVzdENvbnN0cnVjdGlvbldpdGhOdWxsQnVmZmVyKHR5cGUs
IG5hbWUpOworICAgIHRlc3RDb25zdHJ1Y3Rpb25XaXRoRXhjZXB0aW9uVGhyb3dpbmdPYmplY3Qo
dHlwZSwgbmFtZSk7CiAgICAgdGVzdENvbnN0cnVjdGlvbldpdGhPdXRPZlJhbmdlVmFsdWVzKHR5
cGUsIG5hbWUpOwogICAgIHRlc3RDb25zdHJ1Y3Rpb25XaXRoTmVnYXRpdmVPdXRPZlJhbmdlVmFs
dWVzKHR5cGUsIG5hbWUpOwogICAgIHRlc3RDb25zdHJ1Y3Rpb25XaXRoVW5hbGlnbmVkT2Zmc2V0
KHR5cGUsIG5hbWUsIHRlc3RDYXNlLmVsZW1lbnRTaXplSW5CeXRlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182359</attachid>
            <date>2013-01-11 10:06:17 -0800</date>
            <delta_ts>2013-01-11 10:40:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106308-20130111100319.patch</filename>
            <type>text/plain</type>
            <size>10939</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhOWQ2YjA1MzUxYjk5
OTg0Mzg5MGU3ZGJlOTg4MDZkNjNjN2M5Yi4uZDc3ODFmYmI1MGJhMDVkYWY0MGQwMmNiNzg1ZGRh
OWUyZTE3NzBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAxLTExICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIFdlYkdM
IHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIGNyYXNoZXMgb24gZXhjZXB0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYzMDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVjayBmb3IgZW1wdHkgaGFu
ZGxlcyAoaW5kaWNhdGluZyBleGNlcHRpb24gdGhyb3duKSBhZnRlciBjYWxscworICAgICAgICBp
bnRvIFY4IFZNLgorCisgICAgICAgIEFkZGVkIG5ldyBjYXNlIGZyb20gS2hyb25vcyB0eXBlZCBh
cnJheSBjb25mb3JtYW5jZSB0ZXN0cyB0bworICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC9hcnJh
eS11bml0LXRlc3RzLmh0bWwuCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJh
eUJ1ZmZlclZpZXdDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJy
YXkpOgorICAgICAgICAgICAgQ2hlY2sgZm9yIGVtcHR5IGhhbmRsZXMgYWZ0ZXIgY2FsbHMgaW50
byBWOCBWTS4KKwogMjAxMy0wMS0xMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBXb3Jrc3BhY2Ugc2hvdWxkIHN1cHBvcnQg
c2V2ZXJhbCBwcm9qZWN0cyBhbmQgc2hvdWxkIG5vdCBoYXZlIHRlbXBvcmFyeSBVSVNvdXJjZUNv
ZGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJy
YXlCdWZmZXJWaWV3Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAppbmRleCA3YjQ2NjJkMDcxNDhiMjQxZGMwMTkxMjE1
Njg0ZTMxOGFmZDc2MDU2Li43OGQxMGJiMGU3ODY3ZmMwYzU0MWQxYmZmMWM2ZDVlODJmYWY3YzMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1
ZmZlclZpZXdDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaApAQCAtMTcxLDcgKzE3MSwxMiBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
LCBXcmFwcGVyVHlwZQogICAgICAgICBzcmNBcnJheSA9IGFyZ3NbMF0tPlRvT2JqZWN0KCk7CiAg
ICAgICAgIGlmIChzcmNBcnJheS5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDAgdG8gYW4gYXJyYXkiLCBhcmdz
LkdldElzb2xhdGUoKSk7Ci0gICAgICAgIGxlbiA9IHRvVUludDMyKHNyY0FycmF5LT5HZXQodjg6
OlN0cmluZzo6TmV3U3ltYm9sKCJsZW5ndGgiKSkpOworICAgICAgICB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWwgPSBzcmNBcnJheS0+R2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgibGVuZ3RoIikp
OworICAgICAgICBpZiAodmFsLklzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8gRXhjZXB0aW9u
IHRocm93biBkdXJpbmcgZmV0Y2ggb2YgbGVuZ3RoIHByb3BlcnR5LgorICAgICAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICAgICAgbGVuID0gdG9VSW50MzIodmFs
KTsKICAgICAgICAgZG9JbnN0YW50aWF0aW9uID0gdHJ1ZTsKICAgICB9IGVsc2UgewogICAgICAg
ICBib29sIG9rID0gZmFsc2U7CkBAIC0yMDgsOCArMjEzLDE0IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBw
ZXJUeXBlCiAgICAgaWYgKCFzcmNBcnJheS5Jc0VtcHR5KCkpIHsKICAgICAgICAgYm9vbCBjb3Bp
ZWQgPSBjb3B5RWxlbWVudHMoYXJncy5Ib2xkZXIoKSwgc3JjQXJyYXksIGxlbiwgMCwgYXJncy5H
ZXRJc29sYXRlKCkpOwogICAgICAgICBpZiAoIWNvcGllZCkgewotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgaSsrKQotICAgICAgICAgICAgICAgIGFycmF5LT5zZXQo
aSwgc3JjQXJyYXktPkdldChpKS0+TnVtYmVyVmFsdWUoKSk7CisgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWwgPSBzcmNBcnJheS0+R2V0KGkpOworICAgICAgICAgICAgICAgIGlmICh2
YWwuSXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24g
ZHVyaW5nIGZldGNoLgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXJyYXktPnNldChpLCB2YWwtPk51
bWJlclZhbHVlKCkpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YWJkYzA2ODNhNmY1ZTkxODlmOGE5MGFjYjczYzc0YWI2ZWE1ZTBmOC4uMWVkMDAwYmQwOGJlMDBk
MjNlMzU1MzY5ODQ0ZTJhMTJkNDc1NzUyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAx
LTExICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21p
dW1dIFdlYkdMIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIGNyYXNoZXMgb24gZXhjZXB0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYzMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHR5
cGVkIGFycmF5IHRlc3RzIHRvIGxhdGVzdCB2ZXJzaW9uIGZyb20gS2hyb25vcyByZXBvc2l0b3J5
LgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0cy5odG1s
OgorCiAyMDEzLTAxLTExICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBUZXN0IEV4cGVjdGF0aW9ucyB1cGRhdGUgYWZ0ZXIgU2tp
YSBmbGFnIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS11bml0LXRlc3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2FycmF5LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0CmluZGV4IDMwNDE3NmYyMzFhODY4
ZWQzYzZkODQ2MTdkMWViOGRmOTE3NmUyMzQuLjdmZjY1MWNmYzkwZmNjODY5NjZiNDM3Mzg1MTA5
ODExNjY3ZGRiYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Fy
cmF5LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2FycmF5LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0CkBAIC0zNyw2ICszNyw3IEBAIFBB
U1MgdGVzdCBGbG9hdDMyQXJyYXkgQ29uc3RydWN0aW9uQm91bmRhcnlDb25kaXRpb25zCiBQQVNT
IENvbnN0cnVjdGlvbiBvZiBGbG9hdDMyQXJyYXkgd2l0aCBudWxsIGJ1ZmZlciB0aHJldyBleGNl
cHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEZsb2F0MzJBcnJheSB3aXRoIChudWxsIGJ1ZmZl
ciwgMCkgdGhyZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBGbG9hdDMyQXJyYXkg
d2l0aCAobnVsbCBidWZmZXIsIDAsIDApIHRocmV3IGV4Y2VwdGlvbgorUEFTUyBDb25zdHJ1Y3Rp
b24gb2YgRmxvYXQzMkFycmF5IHdpdGggZXhjZXB0aW9uLXRocm93aW5nIGFycmF5LWxpa2Ugb2Jq
ZWN0IGRpZG4ndCBjcmFzaCB1bmV4cGVjdGVkbHkKIFBBU1MgQ29uc3RydWN0aW9uIG9mIEZsb2F0
MzJBcnJheSB3aXRoIG91dC1vZi1yYW5nZSBudW1iZXIgb2YgZWxlbWVudHMgdGhyZXcgYW4gZXhj
ZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBGbG9hdDMyQXJyYXkgd2l0aCBvdXQtb2YtcmFu
Z2Ugb2Zmc2V0IHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgQXJyYXlC
dWZmZXIgd2l0aCBuZWdhdGl2ZSBzaXplIHRocmV3IGV4Y2VwdGlvbgpAQCAtOTIsNiArOTMsNyBA
QCBQQVNTIHRlc3QgRmxvYXQ2NEFycmF5IENvbnN0cnVjdGlvbkJvdW5kYXJ5Q29uZGl0aW9ucwog
UEFTUyBDb25zdHJ1Y3Rpb24gb2YgRmxvYXQ2NEFycmF5IHdpdGggbnVsbCBidWZmZXIgdGhyZXcg
ZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBGbG9hdDY0QXJyYXkgd2l0aCAobnVsbCBi
dWZmZXIsIDApIHRocmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgRmxvYXQ2NEFy
cmF5IHdpdGggKG51bGwgYnVmZmVyLCAwLCAwKSB0aHJldyBleGNlcHRpb24KK1BBU1MgQ29uc3Ry
dWN0aW9uIG9mIEZsb2F0NjRBcnJheSB3aXRoIGV4Y2VwdGlvbi10aHJvd2luZyBhcnJheS1saWtl
IG9iamVjdCBkaWRuJ3QgY3Jhc2ggdW5leHBlY3RlZGx5CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBG
bG9hdDY0QXJyYXkgd2l0aCBvdXQtb2YtcmFuZ2UgbnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFu
IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgRmxvYXQ2NEFycmF5IHdpdGggb3V0LW9m
LXJhbmdlIG9mZnNldCB0aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEFy
cmF5QnVmZmVyIHdpdGggbmVnYXRpdmUgc2l6ZSB0aHJldyBleGNlcHRpb24KQEAgLTE0OCw2ICsx
NTAsNyBAQCBQQVNTIHRlc3QgSW50OEFycmF5IENvbnN0cnVjdGlvbkJvdW5kYXJ5Q29uZGl0aW9u
cwogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50OEFycmF5IHdpdGggbnVsbCBidWZmZXIgdGhyZXcg
ZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQ4QXJyYXkgd2l0aCAobnVsbCBidWZm
ZXIsIDApIHRocmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50OEFycmF5IHdp
dGggKG51bGwgYnVmZmVyLCAwLCAwKSB0aHJldyBleGNlcHRpb24KK1BBU1MgQ29uc3RydWN0aW9u
IG9mIEludDhBcnJheSB3aXRoIGV4Y2VwdGlvbi10aHJvd2luZyBhcnJheS1saWtlIG9iamVjdCBk
aWRuJ3QgY3Jhc2ggdW5leHBlY3RlZGx5CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQ4QXJyYXkg
d2l0aCBvdXQtb2YtcmFuZ2UgbnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFuIGV4Y2VwdGlvbgog
UEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50OEFycmF5IHdpdGggb3V0LW9mLXJhbmdlIG9mZnNldCB0
aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEFycmF5QnVmZmVyIHdpdGgg
bmVnYXRpdmUgc2l6ZSB0aHJldyBleGNlcHRpb24KQEAgLTE5OSw2ICsyMDIsNyBAQCBQQVNTIHRl
c3QgSW50MTZBcnJheSBDb25zdHJ1Y3Rpb25Cb3VuZGFyeUNvbmRpdGlvbnMKIFBBU1MgQ29uc3Ry
dWN0aW9uIG9mIEludDE2QXJyYXkgd2l0aCBudWxsIGJ1ZmZlciB0aHJldyBleGNlcHRpb24KIFBB
U1MgQ29uc3RydWN0aW9uIG9mIEludDE2QXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDApIHRocmV3
IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50MTZBcnJheSB3aXRoIChudWxsIGJ1
ZmZlciwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uCitQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQxNkFy
cmF5IHdpdGggZXhjZXB0aW9uLXRocm93aW5nIGFycmF5LWxpa2Ugb2JqZWN0IGRpZG4ndCBjcmFz
aCB1bmV4cGVjdGVkbHkKIFBBU1MgQ29uc3RydWN0aW9uIG9mIEludDE2QXJyYXkgd2l0aCBvdXQt
b2YtcmFuZ2UgbnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBDb25z
dHJ1Y3Rpb24gb2YgSW50MTZBcnJheSB3aXRoIG91dC1vZi1yYW5nZSBvZmZzZXQgdGhyZXcgYW4g
ZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBBcnJheUJ1ZmZlciB3aXRoIG5lZ2F0aXZl
IHNpemUgdGhyZXcgZXhjZXB0aW9uCkBAIC0yNTUsNiArMjU5LDcgQEAgUEFTUyB0ZXN0IEludDMy
QXJyYXkgQ29uc3RydWN0aW9uQm91bmRhcnlDb25kaXRpb25zCiBQQVNTIENvbnN0cnVjdGlvbiBv
ZiBJbnQzMkFycmF5IHdpdGggbnVsbCBidWZmZXIgdGhyZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0
cnVjdGlvbiBvZiBJbnQzMkFycmF5IHdpdGggKG51bGwgYnVmZmVyLCAwKSB0aHJldyBleGNlcHRp
b24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEludDMyQXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDAs
IDApIHRocmV3IGV4Y2VwdGlvbgorUEFTUyBDb25zdHJ1Y3Rpb24gb2YgSW50MzJBcnJheSB3aXRo
IGV4Y2VwdGlvbi10aHJvd2luZyBhcnJheS1saWtlIG9iamVjdCBkaWRuJ3QgY3Jhc2ggdW5leHBl
Y3RlZGx5CiBQQVNTIENvbnN0cnVjdGlvbiBvZiBJbnQzMkFycmF5IHdpdGggb3V0LW9mLXJhbmdl
IG51bWJlciBvZiBlbGVtZW50cyB0aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9u
IG9mIEludDMyQXJyYXkgd2l0aCBvdXQtb2YtcmFuZ2Ugb2Zmc2V0IHRocmV3IGFuIGV4Y2VwdGlv
bgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgQXJyYXlCdWZmZXIgd2l0aCBuZWdhdGl2ZSBzaXplIHRo
cmV3IGV4Y2VwdGlvbgpAQCAtMzExLDYgKzMxNiw3IEBAIFBBU1MgdGVzdCBVaW50OEFycmF5IENv
bnN0cnVjdGlvbkJvdW5kYXJ5Q29uZGl0aW9ucwogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhB
cnJheSB3aXRoIG51bGwgYnVmZmVyIHRocmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24g
b2YgVWludDhBcnJheSB3aXRoIChudWxsIGJ1ZmZlciwgMCkgdGhyZXcgZXhjZXB0aW9uCiBQQVNT
IENvbnN0cnVjdGlvbiBvZiBVaW50OEFycmF5IHdpdGggKG51bGwgYnVmZmVyLCAwLCAwKSB0aHJl
dyBleGNlcHRpb24KK1BBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQ4QXJyYXkgd2l0aCBleGNlcHRp
b24tdGhyb3dpbmcgYXJyYXktbGlrZSBvYmplY3QgZGlkbid0IGNyYXNoIHVuZXhwZWN0ZWRseQog
UEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhBcnJheSB3aXRoIG91dC1vZi1yYW5nZSBudW1iZXIg
b2YgZWxlbWVudHMgdGhyZXcgYW4gZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50
OEFycmF5IHdpdGggb3V0LW9mLXJhbmdlIG9mZnNldCB0aHJldyBhbiBleGNlcHRpb24KIFBBU1Mg
Q29uc3RydWN0aW9uIG9mIEFycmF5QnVmZmVyIHdpdGggbmVnYXRpdmUgc2l6ZSB0aHJldyBleGNl
cHRpb24KQEAgLTM2Miw2ICszNjgsNyBAQCBQQVNTIHRlc3QgVWludDhDbGFtcGVkQXJyYXkgQ29u
c3RydWN0aW9uQm91bmRhcnlDb25kaXRpb25zCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50OENs
YW1wZWRBcnJheSB3aXRoIG51bGwgYnVmZmVyIHRocmV3IGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1
Y3Rpb24gb2YgVWludDhDbGFtcGVkQXJyYXkgd2l0aCAobnVsbCBidWZmZXIsIDApIHRocmV3IGV4
Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhDbGFtcGVkQXJyYXkgd2l0aCAobnVs
bCBidWZmZXIsIDAsIDApIHRocmV3IGV4Y2VwdGlvbgorUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWlu
dDhDbGFtcGVkQXJyYXkgd2l0aCBleGNlcHRpb24tdGhyb3dpbmcgYXJyYXktbGlrZSBvYmplY3Qg
ZGlkbid0IGNyYXNoIHVuZXhwZWN0ZWRseQogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhDbGFt
cGVkQXJyYXkgd2l0aCBvdXQtb2YtcmFuZ2UgbnVtYmVyIG9mIGVsZW1lbnRzIHRocmV3IGFuIGV4
Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDhDbGFtcGVkQXJyYXkgd2l0aCBvdXQt
b2YtcmFuZ2Ugb2Zmc2V0IHRocmV3IGFuIGV4Y2VwdGlvbgogUEFTUyBDb25zdHJ1Y3Rpb24gb2Yg
QXJyYXlCdWZmZXIgd2l0aCBuZWdhdGl2ZSBzaXplIHRocmV3IGV4Y2VwdGlvbgpAQCAtNDEzLDYg
KzQyMCw3IEBAIFBBU1MgdGVzdCBVaW50MTZBcnJheSBDb25zdHJ1Y3Rpb25Cb3VuZGFyeUNvbmRp
dGlvbnMKIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQxNkFycmF5IHdpdGggbnVsbCBidWZmZXIg
dGhyZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50MTZBcnJheSB3aXRoIChu
dWxsIGJ1ZmZlciwgMCkgdGhyZXcgZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50
MTZBcnJheSB3aXRoIChudWxsIGJ1ZmZlciwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uCitQQVNTIENv
bnN0cnVjdGlvbiBvZiBVaW50MTZBcnJheSB3aXRoIGV4Y2VwdGlvbi10aHJvd2luZyBhcnJheS1s
aWtlIG9iamVjdCBkaWRuJ3QgY3Jhc2ggdW5leHBlY3RlZGx5CiBQQVNTIENvbnN0cnVjdGlvbiBv
ZiBVaW50MTZBcnJheSB3aXRoIG91dC1vZi1yYW5nZSBudW1iZXIgb2YgZWxlbWVudHMgdGhyZXcg
YW4gZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBVaW50MTZBcnJheSB3aXRoIG91dC1v
Zi1yYW5nZSBvZmZzZXQgdGhyZXcgYW4gZXhjZXB0aW9uCiBQQVNTIENvbnN0cnVjdGlvbiBvZiBB
cnJheUJ1ZmZlciB3aXRoIG5lZ2F0aXZlIHNpemUgdGhyZXcgZXhjZXB0aW9uCkBAIC00NjksNiAr
NDc3LDcgQEAgUEFTUyB0ZXN0IFVpbnQzMkFycmF5IENvbnN0cnVjdGlvbkJvdW5kYXJ5Q29uZGl0
aW9ucwogUEFTUyBDb25zdHJ1Y3Rpb24gb2YgVWludDMyQXJyYXkgd2l0aCBudWxsIGJ1ZmZlciB0
aHJldyBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQzMkFycmF5IHdpdGggKG51
bGwgYnVmZmVyLCAwKSB0aHJldyBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQz
MkFycmF5IHdpdGggKG51bGwgYnVmZmVyLCAwLCAwKSB0aHJldyBleGNlcHRpb24KK1BBU1MgQ29u
c3RydWN0aW9uIG9mIFVpbnQzMkFycmF5IHdpdGggZXhjZXB0aW9uLXRocm93aW5nIGFycmF5LWxp
a2Ugb2JqZWN0IGRpZG4ndCBjcmFzaCB1bmV4cGVjdGVkbHkKIFBBU1MgQ29uc3RydWN0aW9uIG9m
IFVpbnQzMkFycmF5IHdpdGggb3V0LW9mLXJhbmdlIG51bWJlciBvZiBlbGVtZW50cyB0aHJldyBh
biBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIFVpbnQzMkFycmF5IHdpdGggb3V0LW9m
LXJhbmdlIG9mZnNldCB0aHJldyBhbiBleGNlcHRpb24KIFBBU1MgQ29uc3RydWN0aW9uIG9mIEFy
cmF5QnVmZmVyIHdpdGggbmVnYXRpdmUgc2l6ZSB0aHJldyBleGNlcHRpb24KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAppbmRleCA4
NmQ3NmQwNjA0ZjI2ODgyNDI2ZTk2NzIyMmE4MjQ4MGNmZjYzMmQ3Li5lOWIzMDE3ODBiMDRmYjU0
MjYzNmVlZDRjNzAxMTkwMzE3ZGEwNzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0cy5odG1sCkBAIC01NDQsNiArNTQ0LDE2IEBAIGZ1
bmN0aW9uIHRlc3RDb25zdHJ1Y3Rpb25XaXRoTnVsbEJ1ZmZlcih0eXBlLCBuYW1lKSB7CiAgICAg
fQogfQogCitmdW5jdGlvbiB0ZXN0Q29uc3RydWN0aW9uV2l0aEV4Y2VwdGlvblRocm93aW5nT2Jq
ZWN0KHR5cGUsIG5hbWUpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvLCAibGVuZ3RoIiwgeyBnZXQ6IGZ1bmN0aW9uKCkgeyB0aHJvdyAiYmFpbDsiIH19KTsK
KyAgICB0cnkgeworICAgICAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZShvKTsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgfQorICAgIHRlc3RQYXNzZWQoIkNvbnN0cnVjdGlvbiBvZiAiICsgbmFtZSAr
ICIgd2l0aCBleGNlcHRpb24tdGhyb3dpbmcgYXJyYXktbGlrZSBvYmplY3QgZGlkbid0IGNyYXNo
IHVuZXhwZWN0ZWRseSIpOworfQorCiBmdW5jdGlvbiBzaG91bGRUaHJvd0luZGV4U2l6ZUVycihm
dW5jLCB0ZXh0KSB7CiAgICAgdmFyIGVycm9yVGV4dCA9IHRleHQgKyAiIHNob3VsZCB0aHJvdyBh
biBleGNlcHRpb24iOwogICAgIHRyeSB7CkBAIC0xMDYzLDYgKzEwNzMsNyBAQCBmdW5jdGlvbiBy
dW5UZXN0cygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RD
YXNlLnRlc3RWYWx1ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0Q2FzZS5leHBlY3RlZFZhbHVlcyk7CiAgICAgdGVzdENvbnN0cnVjdGlvbldpdGhOdWxsQnVm
ZmVyKHR5cGUsIG5hbWUpOworICAgIHRlc3RDb25zdHJ1Y3Rpb25XaXRoRXhjZXB0aW9uVGhyb3dp
bmdPYmplY3QodHlwZSwgbmFtZSk7CiAgICAgdGVzdENvbnN0cnVjdGlvbldpdGhPdXRPZlJhbmdl
VmFsdWVzKHR5cGUsIG5hbWUpOwogICAgIHRlc3RDb25zdHJ1Y3Rpb25XaXRoTmVnYXRpdmVPdXRP
ZlJhbmdlVmFsdWVzKHR5cGUsIG5hbWUpOwogICAgIHRlc3RDb25zdHJ1Y3Rpb25XaXRoVW5hbGln
bmVkT2Zmc2V0KHR5cGUsIG5hbWUsIHRlc3RDYXNlLmVsZW1lbnRTaXplSW5CeXRlcyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>