<?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>110998</bug_id>
          
          <creation_ts>2013-02-27 11:25:14 -0800</creation_ts>
          <short_desc>Refactor transform painting/hit testing code in RenderLayer</short_desc>
          <delta_ts>2013-02-27 12:41:03 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tdanderson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>843299</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-27 11:25:14 -0800</bug_when>
    <thetext>Refactor some of the RenderLayer painting code to prepare for the patch in bug 110624.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843316</commentid>
    <comment_count>1</comment_count>
      <attachid>190566</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-27 11:43:02 -0800</bug_when>
    <thetext>Created attachment 190566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843319</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 11:46:07 -0800</bug_when>
    <thetext>Attachment 190566 did not pass style-queue:

Source/WebCore/rendering/RenderLayer.cpp:3882:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3883:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3884:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3885:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3886:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3887:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3888:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3889:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3890:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3891:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3893:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3894:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3895:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3897:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3898:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3899:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:3900:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4355:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4356:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4358:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4361:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4362:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4363:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4365:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4366:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4367:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4368:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4369:  Weird number of Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/rendering/RenderLayer.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayer.h&apos;]&quot; exit_code: 1
spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4370:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4372:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4373:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4374:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4375:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4377:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4378:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4380:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderLayer.cpp:4381:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 40 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843353</commentid>
    <comment_count>3</comment_count>
      <attachid>190572</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-27 12:07:08 -0800</bug_when>
    <thetext>Created attachment 190572
Fix indentation issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843369</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 12:19:09 -0800</bug_when>
    <thetext>So this is just refactoring, no change in behavior, I assume?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843382</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-27 12:33:47 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; So this is just refactoring, no change in behavior, I assume?

Correct. Simon asked me to break this code out from bug 110624 so it could land separately and reduce the size of the patch in that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843385</commentid>
    <comment_count>6</comment_count>
      <attachid>190572</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 12:37:30 -0800</bug_when>
    <thetext>Comment on attachment 190572
Fix indentation issue

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843390</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-27 12:41:03 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 190572 [details])
&gt; LGTM.

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190566</attachid>
            <date>2013-02-27 11:43:02 -0800</date>
            <delta_ts>2013-02-27 12:07:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>12976</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDIxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTI3ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciB0cmFuc2Zvcm0gcGFp
bnRpbmcvaGl0IHRlc3RpbmcgY29kZSBpbiBSZW5kZXJMYXllci4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDk5OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQnlBcHBseWluZ1RyYW5zZm9ybSk6Cisg
ICAgICAgIFB1bGwgdGhlIGNvZGUgdGhhdCBhcHBsaWVzIHRoZSB0cmFuc2Zvcm0gZm9yIHBhaW50
aW5nIGludG8gYSBuZXcKKyAgICAgICAgZnVuY3Rpb24gdGhhdCBjYW4gYWxzbyBhcHBseSBhbiBh
ZGRpdGlvbmFsIHRyYW5zbGF0aW9uIG9mZnNldC4gVGhpcworICAgICAgICBvZmZzZXQgd2lsbCBi
ZSB1c2VkIGJ5IHRoZSBuZXcgY29sdW1ucyBjb2RlIHdoZW4gdGhhdCBwYXRjaCBsYW5kcy4KKyAg
ICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y3JlYXRlTG9jYWxUcmFuc2Zv
cm1TdGF0ZSk6CisgICAgICAgIEFsc28gcGF0Y2hlZCB0byBiZSBhYmxlIHRvIGFwcGx5IGFuIGFk
ZGl0aW9uYWwgdHJhbnNsYXRpb24gb2Zmc2V0LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6aGl0VGVzdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRU
ZXN0TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtKToKKyAgICAgICAgU2FtZSBhcyB3aXRoIHBhaW50
aW5nLCBwdWxsIHRoZSBjb2RlIHRoYXQgYXBwbGllcyB0aGUgdHJhbnNmb3JtIGludG8KKyAgICAg
ICAgaXRzIG93biBmdW5jdGlvbiBhbmQgYWxzbyBlbmFibGUgYW4gZXh0cmEgdHJhbnNsYXRpb24g
b2Zmc2V0IHRvIGJlCisgICAgICAgIGFwcGxpZWQuCisgICAgICAgIAorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICBBZGRlZCB0aGUgbmV3IGZ1bmN0aW9ucyB0byB0
aGUgaGVhZGVyLgorCiAyMDEzLTAyLTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgogCiAgICAgICAgIERvbid0IGFkZCBhIGJvZHkgdG8gcGxhdGZvcm0gcmVxdWVzdCB1bnRp
bCBuZWNlc3NhcnkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAkocmV2aXNpb24gMTQ0MjA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU3NCwyNiArMzU3NCw4IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnBhaW50TGF5ZXIoR3JhcGhpY3NDb24KICAgICAgICAgICAgIHBhcmVudCgpLT5jbGlw
VG9SZWN0KHBhaW50aW5nSW5mby5yb290TGF5ZXIsIGNvbnRleHQsIHBhaW50aW5nSW5mby5wYWlu
dERpcnR5UmVjdCwgY2xpcFJlY3QpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gQWRqdXN0IHRo
ZSB0cmFuc2Zvcm0gc3VjaCB0aGF0IHRoZSByZW5kZXJlcidzIHVwcGVyIGxlZnQgY29ybmVyIHdp
bGwgcGFpbnQgYXQgKDAsMCkgaW4gdXNlciBzcGFjZS4KLSAgICAgICAgLy8gVGhpcyBpbnZvbHZl
cyBzdWJ0cmFjdGluZyBvdXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciBpbiBvdXIgY3VycmVu
dCBjb29yZGluYXRlIHNwYWNlLCBidXQgcHJlc2VydmluZwotICAgICAgICAvLyB0aGUgYWNjdW11
bGF0ZWQgZXJyb3IgZm9yIHN1Yi1waXhlbCBsYXlvdXQuCi0gICAgICAgIExheW91dFBvaW50IGRl
bHRhOwotICAgICAgICBjb252ZXJ0VG9MYXllckNvb3JkcyhwYWludGluZ0luZm8ucm9vdExheWVy
LCBkZWx0YSk7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybShsYXllclRy
YW5zZm9ybSk7Ci0gICAgICAgIEludFBvaW50IHJvdW5kZWREZWx0YSA9IHJvdW5kZWRJbnRQb2lu
dChkZWx0YSk7Ci0gICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGVSaWdodChyb3VuZGVkRGVsdGEu
eCgpLCByb3VuZGVkRGVsdGEueSgpKTsKLSAgICAgICAgTGF5b3V0U2l6ZSBhZGp1c3RlZFN1YlBp
eGVsQWNjdW11bGF0aW9uID0gcGFpbnRpbmdJbmZvLnN1YlBpeGVsQWNjdW11bGF0aW9uICsgKGRl
bHRhIC0gcm91bmRlZERlbHRhKTsKKyAgICAgICAgcGFpbnRMYXllckJ5QXBwbHlpbmdUcmFuc2Zv
cm0oY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKICAgICAgICAgCi0gICAgICAg
IC8vIEFwcGx5IHRoZSB0cmFuc2Zvcm0uCi0gICAgICAgIHsKLSAgICAgICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7Ci0gICAgICAgICAgICBjb250
ZXh0LT5jb25jYXRDVE0odHJhbnNmb3JtLnRvQWZmaW5lVHJhbnNmb3JtKCkpOwotCi0gICAgICAg
ICAgICAvLyBOb3cgZG8gYSBwYWludCB3aXRoIHRoZSByb290IGxheWVyIHNoaWZ0ZWQgdG8gYmUg
dXMuCi0gICAgICAgICAgICBMYXllclBhaW50aW5nSW5mbyB0cmFuc2Zvcm1lZFBhaW50aW5nSW5m
byh0aGlzLCBlbmNsb3NpbmdJbnRSZWN0KHRyYW5zZm9ybS5pbnZlcnNlKCkubWFwUmVjdChwYWlu
dGluZ0luZm8ucGFpbnREaXJ0eVJlY3QpKSwgcGFpbnRpbmdJbmZvLnBhaW50QmVoYXZpb3IsIGFk
anVzdGVkU3ViUGl4ZWxBY2N1bXVsYXRpb24sIHBhaW50aW5nSW5mby5wYWludGluZ1Jvb3QsIHBh
aW50aW5nSW5mby5yZWdpb24sIHBhaW50aW5nSW5mby5vdmVybGFwVGVzdFJlcXVlc3RzKTsKLSAg
ICAgICAgICAgIHBhaW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24oY29udGV4dCwgdHJhbnNm
b3JtZWRQYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwotICAgICAgICB9ICAgICAgICAKLQogICAg
ICAgICAvLyBSZXN0b3JlIHRoZSBjbGlwLgogICAgICAgICBpZiAocGFyZW50KCkpCiAgICAgICAg
ICAgICBwYXJlbnQoKS0+cmVzdG9yZUNsaXAoY29udGV4dCwgcGFpbnRpbmdJbmZvLnBhaW50RGly
dHlSZWN0LCBjbGlwUmVjdCk7CkBAIC0zODk1LDYgKzM4NzcsMjkgQEAgdm9pZCBSZW5kZXJMYXll
cjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYQogICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5m
bywgUGFpbnRMYXllckZsYWdzIHBhaW50RmxhZ3MsIGNvbnN0IExheW91dFBvaW50JiB0cmFuc2xh
dGlvbk9mZnNldCkKK3sKKyAgIC8vIEFkanVzdCB0aGUgdHJhbnNmb3JtIHN1Y2ggdGhhdCB0aGUg
cmVuZGVyZXIncyB1cHBlciBsZWZ0IGNvcm5lciB3aWxsIHBhaW50IGF0ICgwLDApIGluIHVzZXIg
c3BhY2UuCisgICAvLyBUaGlzIGludm9sdmVzIHN1YnRyYWN0aW5nIG91dCB0aGUgcG9zaXRpb24g
b2YgdGhlIGxheWVyIGluIG91ciBjdXJyZW50IGNvb3JkaW5hdGUgc3BhY2UsIGJ1dCBwcmVzZXJ2
aW5nCisgICAvLyB0aGUgYWNjdW11bGF0ZWQgZXJyb3IgZm9yIHN1Yi1waXhlbCBsYXlvdXQuCisg
ICBMYXlvdXRQb2ludCBkZWx0YTsKKyAgIGNvbnZlcnRUb0xheWVyQ29vcmRzKHBhaW50aW5nSW5m
by5yb290TGF5ZXIsIGRlbHRhKTsKKyAgIGRlbHRhLm1vdmVCeSh0cmFuc2xhdGlvbk9mZnNldCk7
CisgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm0ocmVuZGVyYWJsZVRyYW5zZm9ybShw
YWludGluZ0luZm8ucGFpbnRCZWhhdmlvcikpOworICAgSW50UG9pbnQgcm91bmRlZERlbHRhID0g
cm91bmRlZEludFBvaW50KGRlbHRhKTsKKyAgIHRyYW5zZm9ybS50cmFuc2xhdGVSaWdodChyb3Vu
ZGVkRGVsdGEueCgpLCByb3VuZGVkRGVsdGEueSgpKTsKKyAgIExheW91dFNpemUgYWRqdXN0ZWRT
dWJQaXhlbEFjY3VtdWxhdGlvbiA9IHBhaW50aW5nSW5mby5zdWJQaXhlbEFjY3VtdWxhdGlvbiAr
IChkZWx0YSAtIHJvdW5kZWREZWx0YSk7CisKKyAgIC8vIEFwcGx5IHRoZSB0cmFuc2Zvcm0uCisg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOworICAgY29u
dGV4dC0+Y29uY2F0Q1RNKHRyYW5zZm9ybS50b0FmZmluZVRyYW5zZm9ybSgpKTsKKworICAgLy8g
Tm93IGRvIGEgcGFpbnQgd2l0aCB0aGUgcm9vdCBsYXllciBzaGlmdGVkIHRvIGJlIHVzLgorICAg
TGF5ZXJQYWludGluZ0luZm8gdHJhbnNmb3JtZWRQYWludGluZ0luZm8odGhpcywgZW5jbG9zaW5n
SW50UmVjdCh0cmFuc2Zvcm0uaW52ZXJzZSgpLm1hcFJlY3QocGFpbnRpbmdJbmZvLnBhaW50RGly
dHlSZWN0KSksIHBhaW50aW5nSW5mby5wYWludEJlaGF2aW9yLAorICAgICAgIGFkanVzdGVkU3Vi
UGl4ZWxBY2N1bXVsYXRpb24sIHBhaW50aW5nSW5mby5wYWludGluZ1Jvb3QsIHBhaW50aW5nSW5m
by5yZWdpb24sIHBhaW50aW5nSW5mby5vdmVybGFwVGVzdFJlcXVlc3RzKTsKKyAgIHBhaW50TGF5
ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24oY29udGV4dCwgdHJhbnNmb3JtZWRQYWludGluZ0luZm8s
IHBhaW50RmxhZ3MpOworfQorCiB2b2lkIFJlbmRlckxheWVyOjpwYWludExpc3QoVmVjdG9yPFJl
bmRlckxheWVyKj4qIGxpc3QsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQ
YWludGluZ0luZm8mIHBhaW50aW5nSW5mbywgUGFpbnRMYXllckZsYWdzIHBhaW50RmxhZ3MpCiB7
CiAgICAgaWYgKCFsaXN0KQpAQCAtNDEyNCw3ICs0MTI5LDggQEAgc3RhdGljIGRvdWJsZSBjb21w
dXRlWk9mZnNldChjb25zdCBIaXRUZQogCiBQYXNzUmVmUHRyPEhpdFRlc3RpbmdUcmFuc2Zvcm1T
dGF0ZT4gUmVuZGVyTGF5ZXI6OmNyZWF0ZUxvY2FsVHJhbnNmb3JtU3RhdGUoUmVuZGVyTGF5ZXIq
IHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnRhaW5lckxheWVyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIGhpdFRlc3RSZWN0LCBj
b25zdCBIaXRUZXN0TG9jYXRpb24mIGhpdFRlc3RMb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUqIGNv
bnRhaW5lclRyYW5zZm9ybVN0YXRlKSBjb25zdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZSogY29udGFpbmVyVHJh
bnNmb3JtU3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgTGF5b3V0UG9pbnQmIHRyYW5zbGF0aW9uT2Zmc2V0KSBjb25zdAogewogICAgIFJlZlB0cjxI
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGU+IHRyYW5zZm9ybVN0YXRlOwogICAgIExheW91dFBvaW50
IG9mZnNldDsKQEAgLTQxMzgsNyArNDE0NCw4IEBAIFBhc3NSZWZQdHI8SGl0VGVzdGluZ1RyYW5z
Zm9ybVN0YXRlPiBSZW4KICAgICAgICAgdHJhbnNmb3JtU3RhdGUgPSBIaXRUZXN0aW5nVHJhbnNm
b3JtU3RhdGU6OmNyZWF0ZShoaXRUZXN0TG9jYXRpb24udHJhbnNmb3JtZWRQb2ludCgpLCBoaXRU
ZXN0TG9jYXRpb24udHJhbnNmb3JtZWRSZWN0KCksIEZsb2F0UXVhZChoaXRUZXN0UmVjdCkpOwog
ICAgICAgICBjb252ZXJ0VG9MYXllckNvb3Jkcyhyb290TGF5ZXIsIG9mZnNldCk7CiAgICAgfQot
ICAgIAorICAgIG9mZnNldC5tb3ZlQnkodHJhbnNsYXRpb25PZmZzZXQpOworCiAgICAgUmVuZGVy
T2JqZWN0KiBjb250YWluZXJSZW5kZXJlciA9IGNvbnRhaW5lckxheWVyID8gY29udGFpbmVyTGF5
ZXItPnJlbmRlcmVyKCkgOiAwOwogICAgIGlmIChyZW5kZXJlcigpLT5zaG91bGRVc2VUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKGNvbnRhaW5lclJlbmRlcmVyKSkgewogICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBjb250YWluZXJUcmFuc2Zvcm07CkBAIC00MjA0LDMwICs0MjExLDcgQEAgUmVu
ZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXIoUgogICAgICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gQ3JlYXRlIGEgdHJhbnNmb3JtIHN0YXRl
IHRvIGFjY3VtdWxhdGUgdGhpcyB0cmFuc2Zvcm0uCi0gICAgICAgIFJlZlB0cjxIaXRUZXN0aW5n
VHJhbnNmb3JtU3RhdGU+IG5ld1RyYW5zZm9ybVN0YXRlID0gY3JlYXRlTG9jYWxUcmFuc2Zvcm1T
dGF0ZShyb290TGF5ZXIsIGNvbnRhaW5lckxheWVyLCBoaXRUZXN0UmVjdCwgaGl0VGVzdExvY2F0
aW9uLCB0cmFuc2Zvcm1TdGF0ZSk7Ci0KLSAgICAgICAgLy8gSWYgdGhlIHRyYW5zZm9ybSBjYW4n
dCBiZSBpbnZlcnRlZCwgdGhlbiBkb24ndCBoaXQgdGVzdCB0aGlzIGxheWVyIGF0IGFsbC4KLSAg
ICAgICAgaWYgKCFuZXdUcmFuc2Zvcm1TdGF0ZS0+bV9hY2N1bXVsYXRlZFRyYW5zZm9ybS5pc0lu
dmVydGlibGUoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIC8vIENvbXB1dGUg
dGhlIHBvaW50IGFuZCB0aGUgaGl0IHRlc3QgcmVjdCBpbiB0aGUgY29vcmRzIG9mIHRoaXMgbGF5
ZXIgYnkgdXNpbmcgdGhlIHZhbHVlcwotICAgICAgICAvLyBmcm9tIHRoZSB0cmFuc2Zvcm1TdGF0
ZSwgd2hpY2ggc3RvcmUgdGhlIHBvaW50IGFuZCBxdWFkIGluIHRoZSBjb29yZHMgb2YgdGhlIGxh
c3QgZmxhdHRlbmVkCi0gICAgICAgIC8vIGxheWVyLCBhbmQgdGhlIGFjY3VtdWxhdGVkIHRyYW5z
Zm9ybSB3aGljaCBsZXRzIHVwIG1hcCB0aHJvdWdoIHByZXNlcnZlLTNkIGxheWVycy4KLSAgICAg
ICAgLy8KLSAgICAgICAgLy8gV2UgY2FuJ3QganVzdCBtYXAgaGl0VGVzdExvY2F0aW9uIGFuZCBo
aXRUZXN0UmVjdCBiZWNhdXNlIHRoZXkgbWF5IGhhdmUgYmVlbiBmbGF0dGVuZWQgKGxvc2luZyB6
KQotICAgICAgICAvLyBieSBvdXIgY29udGFpbmVyLgotICAgICAgICBGbG9hdFBvaW50IGxvY2Fs
UG9pbnQgPSBuZXdUcmFuc2Zvcm1TdGF0ZS0+bWFwcGVkUG9pbnQoKTsKLSAgICAgICAgRmxvYXRR
dWFkIGxvY2FsUG9pbnRRdWFkID0gbmV3VHJhbnNmb3JtU3RhdGUtPm1hcHBlZFF1YWQoKTsKLSAg
ICAgICAgTGF5b3V0UmVjdCBsb2NhbEhpdFRlc3RSZWN0ID0gbmV3VHJhbnNmb3JtU3RhdGUtPmJv
dW5kc09mTWFwcGVkQXJlYSgpOwotICAgICAgICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVzdExv
Y2F0aW9uOwotICAgICAgICBpZiAoaGl0VGVzdExvY2F0aW9uLmlzUmVjdEJhc2VkVGVzdCgpKQot
ICAgICAgICAgICAgbmV3SGl0VGVzdExvY2F0aW9uID0gSGl0VGVzdExvY2F0aW9uKGxvY2FsUG9p
bnQsIGxvY2FsUG9pbnRRdWFkKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV3SGl0VGVz
dExvY2F0aW9uID0gSGl0VGVzdExvY2F0aW9uKGxvY2FsUG9pbnQpOwotCi0gICAgICAgIC8vIE5v
dyBkbyBhIGhpdCB0ZXN0IHdpdGggdGhlIHJvb3QgbGF5ZXIgc2hpZnRlZCB0byBiZSB1cy4KLSAg
ICAgICAgcmV0dXJuIGhpdFRlc3RMYXllcih0aGlzLCBjb250YWluZXJMYXllciwgcmVxdWVzdCwg
cmVzdWx0LCBsb2NhbEhpdFRlc3RSZWN0LCBuZXdIaXRUZXN0TG9jYXRpb24sIHRydWUsIG5ld1Ry
YW5zZm9ybVN0YXRlLmdldCgpLCB6T2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGhpdFRlc3RMYXll
ckJ5QXBwbHlpbmdUcmFuc2Zvcm0ocm9vdExheWVyLCBjb250YWluZXJMYXllciwgcmVxdWVzdCwg
cmVzdWx0LCBoaXRUZXN0UmVjdCwgaGl0VGVzdExvY2F0aW9uLCB0cmFuc2Zvcm1TdGF0ZSwgek9m
ZnNldCk7CiAgICAgfQogCiAgICAgLy8gRW5zdXJlIG91ciBsaXN0cyBhbmQgM2Qgc3RhdHVzIGFy
ZSB1cC10by1kYXRlLgpAQCAtNDM2Nyw2ICs0MzUxLDM2IEBAIFJlbmRlckxheWVyKiBSZW5kZXJM
YXllcjo6aGl0VGVzdExheWVyKFIKICAgICByZXR1cm4gMDsKIH0KIAorUmVuZGVyTGF5ZXIqIFJl
bmRlckxheWVyOjpoaXRUZXN0TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtKFJlbmRlckxheWVyKiBy
b290TGF5ZXIsIFJlbmRlckxheWVyKiBjb250YWluZXJMYXllciwgY29uc3QgSGl0VGVzdFJlcXVl
c3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwKKyAgIGNvbnN0IExheW91dFJlY3Qm
IGhpdFRlc3RSZWN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGhpdFRlc3RMb2NhdGlvbiwgY29u
c3QgSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlKiB0cmFuc2Zvcm1TdGF0ZSwgZG91YmxlKiB6T2Zm
c2V0LAorICAgY29uc3QgTGF5b3V0UG9pbnQmIHRyYW5zbGF0aW9uT2Zmc2V0KQoreworICAgLy8g
Q3JlYXRlIGEgdHJhbnNmb3JtIHN0YXRlIHRvIGFjY3VtdWxhdGUgdGhpcyB0cmFuc2Zvcm0uCisg
ICBSZWZQdHI8SGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlPiBuZXdUcmFuc2Zvcm1TdGF0ZSA9IGNy
ZWF0ZUxvY2FsVHJhbnNmb3JtU3RhdGUocm9vdExheWVyLCBjb250YWluZXJMYXllciwgaGl0VGVz
dFJlY3QsIGhpdFRlc3RMb2NhdGlvbiwgdHJhbnNmb3JtU3RhdGUsIHRyYW5zbGF0aW9uT2Zmc2V0
KTsKKworICAgLy8gSWYgdGhlIHRyYW5zZm9ybSBjYW4ndCBiZSBpbnZlcnRlZCwgdGhlbiBkb24n
dCBoaXQgdGVzdCB0aGlzIGxheWVyIGF0IGFsbC4KKyAgIGlmICghbmV3VHJhbnNmb3JtU3RhdGUt
Pm1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCisgICAgICAgcmV0dXJuIDA7
CisKKyAgIC8vIENvbXB1dGUgdGhlIHBvaW50IGFuZCB0aGUgaGl0IHRlc3QgcmVjdCBpbiB0aGUg
Y29vcmRzIG9mIHRoaXMgbGF5ZXIgYnkgdXNpbmcgdGhlIHZhbHVlcworICAgLy8gZnJvbSB0aGUg
dHJhbnNmb3JtU3RhdGUsIHdoaWNoIHN0b3JlIHRoZSBwb2ludCBhbmQgcXVhZCBpbiB0aGUgY29v
cmRzIG9mIHRoZSBsYXN0IGZsYXR0ZW5lZAorICAgLy8gbGF5ZXIsIGFuZCB0aGUgYWNjdW11bGF0
ZWQgdHJhbnNmb3JtIHdoaWNoIGxldHMgdXAgbWFwIHRocm91Z2ggcHJlc2VydmUtM2QgbGF5ZXJz
LgorICAgLy8KKyAgIC8vIFdlIGNhbid0IGp1c3QgbWFwIGhpdFRlc3RMb2NhdGlvbiBhbmQgaGl0
VGVzdFJlY3QgYmVjYXVzZSB0aGV5IG1heSBoYXZlIGJlZW4gZmxhdHRlbmVkIChsb3NpbmcgeikK
KyAgIC8vIGJ5IG91ciBjb250YWluZXIuCisgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBuZXdU
cmFuc2Zvcm1TdGF0ZS0+bWFwcGVkUG9pbnQoKTsKKyAgIEZsb2F0UXVhZCBsb2NhbFBvaW50UXVh
ZCA9IG5ld1RyYW5zZm9ybVN0YXRlLT5tYXBwZWRRdWFkKCk7CisgICBMYXlvdXRSZWN0IGxvY2Fs
SGl0VGVzdFJlY3QgPSBuZXdUcmFuc2Zvcm1TdGF0ZS0+Ym91bmRzT2ZNYXBwZWRBcmVhKCk7Cisg
ICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVzdExvY2F0aW9uOworICAgaWYgKGhpdFRlc3RMb2Nh
dGlvbi5pc1JlY3RCYXNlZFRlc3QoKSkKKyAgICAgICBuZXdIaXRUZXN0TG9jYXRpb24gPSBIaXRU
ZXN0TG9jYXRpb24obG9jYWxQb2ludCwgbG9jYWxQb2ludFF1YWQpOworICAgZWxzZQorICAgICAg
IG5ld0hpdFRlc3RMb2NhdGlvbiA9IEhpdFRlc3RMb2NhdGlvbihsb2NhbFBvaW50KTsKKworICAg
Ly8gTm93IGRvIGEgaGl0IHRlc3Qgd2l0aCB0aGUgcm9vdCBsYXllciBzaGlmdGVkIHRvIGJlIHVz
LgorICAgcmV0dXJuIGhpdFRlc3RMYXllcih0aGlzLCBjb250YWluZXJMYXllciwgcmVxdWVzdCwg
cmVzdWx0LCBsb2NhbEhpdFRlc3RSZWN0LCBuZXdIaXRUZXN0TG9jYXRpb24sIHRydWUsIG5ld1Ry
YW5zZm9ybVN0YXRlLmdldCgpLCB6T2Zmc2V0KTsKK30KKwogYm9vbCBSZW5kZXJMYXllcjo6aGl0
VGVzdENvbnRlbnRzKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRzLCBjb25zdCBIaXRUZXN0TG9j
YXRpb24mIGhpdFRlc3RMb2NhdGlvbiwgSGl0VGVzdEZpbHRlciBoaXRUZXN0RmlsdGVyKSBjb25z
dAogewogICAgIEFTU0VSVChpc1NlbGZQYWludGluZ0xheWVyKCkgfHwgaGFzU2VsZlBhaW50aW5n
TGF5ZXJEZXNjZW5kYW50KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgJKHJldmlzaW9uIDE0NDIwNCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC04ODYsNiArODg2LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgCiAgICAgdm9pZCBwYWludExheWVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVy
UGFpbnRpbmdJbmZvJiwgUGFpbnRMYXllckZsYWdzKTsKICAgICB2b2lkIHBhaW50TGF5ZXJDb250
ZW50c0FuZFJlZmxlY3Rpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0lu
Zm8mLCBQYWludExheWVyRmxhZ3MpOworICAgIHZvaWQgcGFpbnRMYXllckJ5QXBwbHlpbmdUcmFu
c2Zvcm0oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludExh
eWVyRmxhZ3MsIGNvbnN0IExheW91dFBvaW50JiB0cmFuc2xhdGlvbk9mZnNldCA9IExheW91dFBv
aW50KCkpOwogICAgIHZvaWQgcGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUGFpbnRMYXllckZsYWdzKTsKICAgICB2b2lkIHBhaW50
TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVy
UGFpbnRpbmdJbmZvJiwgUGFpbnRMYXllckZsYWdzKTsKICAgICB2b2lkIHBhaW50UGFnaW5hdGVk
Q2hpbGRMYXllcihSZW5kZXJMYXllciogY2hpbGRMYXllciwgR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludExheWVyRmxhZ3MpOwpAQCAtODk0LDYgKzg5NSw5
IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTGF5ZXIqIGhpdFRlc3RMYXllcihSZW5kZXJMYXllciog
cm9vdExheWVyLCBSZW5kZXJMYXllciogY29udGFpbmVyTGF5ZXIsIGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBoaXRUZXN0UmVjdCwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiwgYm9vbCBhcHBsaWVkVHJhbnNmb3JtLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlKiB0cmFuc2Zvcm1TdGF0ZSA9IDAs
IGRvdWJsZSogek9mZnNldCA9IDApOworICAgIFJlbmRlckxheWVyKiBoaXRUZXN0TGF5ZXJCeUFw
cGx5aW5nVHJhbnNmb3JtKFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVyKiBjb250
YWluZXJMYXllciwgY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwKKyAgICAg
ICAgY29uc3QgTGF5b3V0UmVjdCYgaGl0VGVzdFJlY3QsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYs
IGNvbnN0IEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZSogPSAwLCBkb3VibGUqIHpPZmZzZXQgPSAw
LAorICAgICAgICBjb25zdCBMYXlvdXRQb2ludCYgdHJhbnNsYXRpb25PZmZzZXQgPSBMYXlvdXRQ
b2ludCgpKTsKICAgICBSZW5kZXJMYXllciogaGl0VGVzdExpc3QoVmVjdG9yPFJlbmRlckxheWVy
Kj4qLCBSZW5kZXJMYXllciogcm9vdExheWVyLCBjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBMYXlvdXRSZWN0JiBoaXRUZXN0UmVjdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRl
KiB0cmFuc2Zvcm1TdGF0ZSwgZG91YmxlKiB6T2Zmc2V0Rm9yRGVzY2VuZGFudHMsIGRvdWJsZSog
ek9mZnNldCwKQEAgLTkwOCw3ICs5MTIsOCBAQCBwcml2YXRlOgogCiAgICAgUGFzc1JlZlB0cjxI
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGU+IGNyZWF0ZUxvY2FsVHJhbnNmb3JtU3RhdGUoUmVuZGVy
TGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnRhaW5lckxheWVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIGhpdFRlc3RSZWN0LCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpdFRl
c3RpbmdUcmFuc2Zvcm1TdGF0ZSogY29udGFpbmVyVHJhbnNmb3JtU3RhdGUpIGNvbnN0OworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZSog
Y29udGFpbmVyVHJhbnNmb3JtU3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgTGF5b3V0UG9pbnQmIHRyYW5zbGF0aW9uT2Zmc2V0ID0gTGF5b3V0UG9pbnQoKSkgY29uc3Q7
CiAgICAgCiAgICAgYm9vbCBoaXRUZXN0Q29udGVudHMoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZHMsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYsIEhpdFRlc3RGaWx0ZXIpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190572</attachid>
            <date>2013-02-27 12:07:08 -0800</date>
            <delta_ts>2013-02-27 12:37:30 -0800</delta_ts>
            <desc>Fix indentation issue</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>12909</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDIxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTI3ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciB0cmFuc2Zvcm0gcGFp
bnRpbmcvaGl0IHRlc3RpbmcgY29kZSBpbiBSZW5kZXJMYXllci4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDk5OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQnlBcHBseWluZ1RyYW5zZm9ybSk6Cisg
ICAgICAgIFB1bGwgdGhlIGNvZGUgdGhhdCBhcHBsaWVzIHRoZSB0cmFuc2Zvcm0gZm9yIHBhaW50
aW5nIGludG8gYSBuZXcKKyAgICAgICAgZnVuY3Rpb24gdGhhdCBjYW4gYWxzbyBhcHBseSBhbiBh
ZGRpdGlvbmFsIHRyYW5zbGF0aW9uIG9mZnNldC4gVGhpcworICAgICAgICBvZmZzZXQgd2lsbCBi
ZSB1c2VkIGJ5IHRoZSBuZXcgY29sdW1ucyBjb2RlIHdoZW4gdGhhdCBwYXRjaCBsYW5kcy4KKyAg
ICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y3JlYXRlTG9jYWxUcmFuc2Zv
cm1TdGF0ZSk6CisgICAgICAgIEFsc28gcGF0Y2hlZCB0byBiZSBhYmxlIHRvIGFwcGx5IGFuIGFk
ZGl0aW9uYWwgdHJhbnNsYXRpb24gb2Zmc2V0LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6aGl0VGVzdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRU
ZXN0TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtKToKKyAgICAgICAgU2FtZSBhcyB3aXRoIHBhaW50
aW5nLCBwdWxsIHRoZSBjb2RlIHRoYXQgYXBwbGllcyB0aGUgdHJhbnNmb3JtIGludG8KKyAgICAg
ICAgaXRzIG93biBmdW5jdGlvbiBhbmQgYWxzbyBlbmFibGUgYW4gZXh0cmEgdHJhbnNsYXRpb24g
b2Zmc2V0IHRvIGJlCisgICAgICAgIGFwcGxpZWQuCisgICAgICAgIAorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICBBZGRlZCB0aGUgbmV3IGZ1bmN0aW9ucyB0byB0
aGUgaGVhZGVyLgorCiAyMDEzLTAyLTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgogCiAgICAgICAgIERvbid0IGFkZCBhIGJvZHkgdG8gcGxhdGZvcm0gcmVxdWVzdCB1bnRp
bCBuZWNlc3NhcnkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAkocmV2aXNpb24gMTQ0MjA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU3NCwyNiArMzU3NCw4IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnBhaW50TGF5ZXIoR3JhcGhpY3NDb24KICAgICAgICAgICAgIHBhcmVudCgpLT5jbGlw
VG9SZWN0KHBhaW50aW5nSW5mby5yb290TGF5ZXIsIGNvbnRleHQsIHBhaW50aW5nSW5mby5wYWlu
dERpcnR5UmVjdCwgY2xpcFJlY3QpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gQWRqdXN0IHRo
ZSB0cmFuc2Zvcm0gc3VjaCB0aGF0IHRoZSByZW5kZXJlcidzIHVwcGVyIGxlZnQgY29ybmVyIHdp
bGwgcGFpbnQgYXQgKDAsMCkgaW4gdXNlciBzcGFjZS4KLSAgICAgICAgLy8gVGhpcyBpbnZvbHZl
cyBzdWJ0cmFjdGluZyBvdXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciBpbiBvdXIgY3VycmVu
dCBjb29yZGluYXRlIHNwYWNlLCBidXQgcHJlc2VydmluZwotICAgICAgICAvLyB0aGUgYWNjdW11
bGF0ZWQgZXJyb3IgZm9yIHN1Yi1waXhlbCBsYXlvdXQuCi0gICAgICAgIExheW91dFBvaW50IGRl
bHRhOwotICAgICAgICBjb252ZXJ0VG9MYXllckNvb3JkcyhwYWludGluZ0luZm8ucm9vdExheWVy
LCBkZWx0YSk7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybShsYXllclRy
YW5zZm9ybSk7Ci0gICAgICAgIEludFBvaW50IHJvdW5kZWREZWx0YSA9IHJvdW5kZWRJbnRQb2lu
dChkZWx0YSk7Ci0gICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGVSaWdodChyb3VuZGVkRGVsdGEu
eCgpLCByb3VuZGVkRGVsdGEueSgpKTsKLSAgICAgICAgTGF5b3V0U2l6ZSBhZGp1c3RlZFN1YlBp
eGVsQWNjdW11bGF0aW9uID0gcGFpbnRpbmdJbmZvLnN1YlBpeGVsQWNjdW11bGF0aW9uICsgKGRl
bHRhIC0gcm91bmRlZERlbHRhKTsKKyAgICAgICAgcGFpbnRMYXllckJ5QXBwbHlpbmdUcmFuc2Zv
cm0oY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKICAgICAgICAgCi0gICAgICAg
IC8vIEFwcGx5IHRoZSB0cmFuc2Zvcm0uCi0gICAgICAgIHsKLSAgICAgICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7Ci0gICAgICAgICAgICBjb250
ZXh0LT5jb25jYXRDVE0odHJhbnNmb3JtLnRvQWZmaW5lVHJhbnNmb3JtKCkpOwotCi0gICAgICAg
ICAgICAvLyBOb3cgZG8gYSBwYWludCB3aXRoIHRoZSByb290IGxheWVyIHNoaWZ0ZWQgdG8gYmUg
dXMuCi0gICAgICAgICAgICBMYXllclBhaW50aW5nSW5mbyB0cmFuc2Zvcm1lZFBhaW50aW5nSW5m
byh0aGlzLCBlbmNsb3NpbmdJbnRSZWN0KHRyYW5zZm9ybS5pbnZlcnNlKCkubWFwUmVjdChwYWlu
dGluZ0luZm8ucGFpbnREaXJ0eVJlY3QpKSwgcGFpbnRpbmdJbmZvLnBhaW50QmVoYXZpb3IsIGFk
anVzdGVkU3ViUGl4ZWxBY2N1bXVsYXRpb24sIHBhaW50aW5nSW5mby5wYWludGluZ1Jvb3QsIHBh
aW50aW5nSW5mby5yZWdpb24sIHBhaW50aW5nSW5mby5vdmVybGFwVGVzdFJlcXVlc3RzKTsKLSAg
ICAgICAgICAgIHBhaW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24oY29udGV4dCwgdHJhbnNm
b3JtZWRQYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwotICAgICAgICB9ICAgICAgICAKLQogICAg
ICAgICAvLyBSZXN0b3JlIHRoZSBjbGlwLgogICAgICAgICBpZiAocGFyZW50KCkpCiAgICAgICAg
ICAgICBwYXJlbnQoKS0+cmVzdG9yZUNsaXAoY29udGV4dCwgcGFpbnRpbmdJbmZvLnBhaW50RGly
dHlSZWN0LCBjbGlwUmVjdCk7CkBAIC0zODk1LDYgKzM4NzcsMjggQEAgdm9pZCBSZW5kZXJMYXll
cjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYQogICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5m
bywgUGFpbnRMYXllckZsYWdzIHBhaW50RmxhZ3MsIGNvbnN0IExheW91dFBvaW50JiB0cmFuc2xh
dGlvbk9mZnNldCkKK3sKKyAgICAvLyBUaGlzIGludm9sdmVzIHN1YnRyYWN0aW5nIG91dCB0aGUg
cG9zaXRpb24gb2YgdGhlIGxheWVyIGluIG91ciBjdXJyZW50IGNvb3JkaW5hdGUgc3BhY2UsIGJ1
dCBwcmVzZXJ2aW5nCisgICAgLy8gdGhlIGFjY3VtdWxhdGVkIGVycm9yIGZvciBzdWItcGl4ZWwg
bGF5b3V0LgorICAgIExheW91dFBvaW50IGRlbHRhOworICAgIGNvbnZlcnRUb0xheWVyQ29vcmRz
KHBhaW50aW5nSW5mby5yb290TGF5ZXIsIGRlbHRhKTsKKyAgICBkZWx0YS5tb3ZlQnkodHJhbnNs
YXRpb25PZmZzZXQpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybShyZW5kZXJh
YmxlVHJhbnNmb3JtKHBhaW50aW5nSW5mby5wYWludEJlaGF2aW9yKSk7CisgICAgSW50UG9pbnQg
cm91bmRlZERlbHRhID0gcm91bmRlZEludFBvaW50KGRlbHRhKTsKKyAgICB0cmFuc2Zvcm0udHJh
bnNsYXRlUmlnaHQocm91bmRlZERlbHRhLngoKSwgcm91bmRlZERlbHRhLnkoKSk7CisgICAgTGF5
b3V0U2l6ZSBhZGp1c3RlZFN1YlBpeGVsQWNjdW11bGF0aW9uID0gcGFpbnRpbmdJbmZvLnN1YlBp
eGVsQWNjdW11bGF0aW9uICsgKGRlbHRhIC0gcm91bmRlZERlbHRhKTsKKworICAgIC8vIEFwcGx5
IHRoZSB0cmFuc2Zvcm0uCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVy
KCpjb250ZXh0KTsKKyAgICBjb250ZXh0LT5jb25jYXRDVE0odHJhbnNmb3JtLnRvQWZmaW5lVHJh
bnNmb3JtKCkpOworCisgICAgLy8gTm93IGRvIGEgcGFpbnQgd2l0aCB0aGUgcm9vdCBsYXllciBz
aGlmdGVkIHRvIGJlIHVzLgorICAgIExheWVyUGFpbnRpbmdJbmZvIHRyYW5zZm9ybWVkUGFpbnRp
bmdJbmZvKHRoaXMsIGVuY2xvc2luZ0ludFJlY3QodHJhbnNmb3JtLmludmVyc2UoKS5tYXBSZWN0
KHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCkpLCBwYWludGluZ0luZm8ucGFpbnRCZWhhdmlv
ciwKKyAgICAgICAgYWRqdXN0ZWRTdWJQaXhlbEFjY3VtdWxhdGlvbiwgcGFpbnRpbmdJbmZvLnBh
aW50aW5nUm9vdCwgcGFpbnRpbmdJbmZvLnJlZ2lvbiwgcGFpbnRpbmdJbmZvLm92ZXJsYXBUZXN0
UmVxdWVzdHMpOworICAgIHBhaW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24oY29udGV4dCwg
dHJhbnNmb3JtZWRQYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOworfQorCiB2b2lkIFJlbmRlckxh
eWVyOjpwYWludExpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4qIGxpc3QsIEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5mbywgUGFpbnRM
YXllckZsYWdzIHBhaW50RmxhZ3MpCiB7CiAgICAgaWYgKCFsaXN0KQpAQCAtNDEyNCw3ICs0MTI4
LDggQEAgc3RhdGljIGRvdWJsZSBjb21wdXRlWk9mZnNldChjb25zdCBIaXRUZQogCiBQYXNzUmVm
UHRyPEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZT4gUmVuZGVyTGF5ZXI6OmNyZWF0ZUxvY2FsVHJh
bnNmb3JtU3RhdGUoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnRhaW5l
ckxheWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExh
eW91dFJlY3QmIGhpdFRlc3RSZWN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGhpdFRlc3RMb2Nh
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIaXRU
ZXN0aW5nVHJhbnNmb3JtU3RhdGUqIGNvbnRhaW5lclRyYW5zZm9ybVN0YXRlKSBjb25zdAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpdFRlc3RpbmdUcmFu
c2Zvcm1TdGF0ZSogY29udGFpbmVyVHJhbnNmb3JtU3RhdGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgTGF5b3V0UG9pbnQmIHRyYW5zbGF0aW9uT2Zmc2V0
KSBjb25zdAogewogICAgIFJlZlB0cjxIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGU+IHRyYW5zZm9y
bVN0YXRlOwogICAgIExheW91dFBvaW50IG9mZnNldDsKQEAgLTQxMzgsNyArNDE0Myw4IEBAIFBh
c3NSZWZQdHI8SGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlPiBSZW4KICAgICAgICAgdHJhbnNmb3Jt
U3RhdGUgPSBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGU6OmNyZWF0ZShoaXRUZXN0TG9jYXRpb24u
dHJhbnNmb3JtZWRQb2ludCgpLCBoaXRUZXN0TG9jYXRpb24udHJhbnNmb3JtZWRSZWN0KCksIEZs
b2F0UXVhZChoaXRUZXN0UmVjdCkpOwogICAgICAgICBjb252ZXJ0VG9MYXllckNvb3Jkcyhyb290
TGF5ZXIsIG9mZnNldCk7CiAgICAgfQotICAgIAorICAgIG9mZnNldC5tb3ZlQnkodHJhbnNsYXRp
b25PZmZzZXQpOworCiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXJSZW5kZXJlciA9IGNvbnRh
aW5lckxheWVyID8gY29udGFpbmVyTGF5ZXItPnJlbmRlcmVyKCkgOiAwOwogICAgIGlmIChyZW5k
ZXJlcigpLT5zaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnRhaW5lclJlbmRlcmVy
KSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjb250YWluZXJUcmFuc2Zvcm07CkBA
IC00MjA0LDMwICs0MjEwLDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5
ZXIoUgogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAKLSAgICAgICAgLy8g
Q3JlYXRlIGEgdHJhbnNmb3JtIHN0YXRlIHRvIGFjY3VtdWxhdGUgdGhpcyB0cmFuc2Zvcm0uCi0g
ICAgICAgIFJlZlB0cjxIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGU+IG5ld1RyYW5zZm9ybVN0YXRl
ID0gY3JlYXRlTG9jYWxUcmFuc2Zvcm1TdGF0ZShyb290TGF5ZXIsIGNvbnRhaW5lckxheWVyLCBo
aXRUZXN0UmVjdCwgaGl0VGVzdExvY2F0aW9uLCB0cmFuc2Zvcm1TdGF0ZSk7Ci0KLSAgICAgICAg
Ly8gSWYgdGhlIHRyYW5zZm9ybSBjYW4ndCBiZSBpbnZlcnRlZCwgdGhlbiBkb24ndCBoaXQgdGVz
dCB0aGlzIGxheWVyIGF0IGFsbC4KLSAgICAgICAgaWYgKCFuZXdUcmFuc2Zvcm1TdGF0ZS0+bV9h
Y2N1bXVsYXRlZFRyYW5zZm9ybS5pc0ludmVydGlibGUoKSkKLSAgICAgICAgICAgIHJldHVybiAw
OwotCi0gICAgICAgIC8vIENvbXB1dGUgdGhlIHBvaW50IGFuZCB0aGUgaGl0IHRlc3QgcmVjdCBp
biB0aGUgY29vcmRzIG9mIHRoaXMgbGF5ZXIgYnkgdXNpbmcgdGhlIHZhbHVlcwotICAgICAgICAv
LyBmcm9tIHRoZSB0cmFuc2Zvcm1TdGF0ZSwgd2hpY2ggc3RvcmUgdGhlIHBvaW50IGFuZCBxdWFk
IGluIHRoZSBjb29yZHMgb2YgdGhlIGxhc3QgZmxhdHRlbmVkCi0gICAgICAgIC8vIGxheWVyLCBh
bmQgdGhlIGFjY3VtdWxhdGVkIHRyYW5zZm9ybSB3aGljaCBsZXRzIHVwIG1hcCB0aHJvdWdoIHBy
ZXNlcnZlLTNkIGxheWVycy4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gV2UgY2FuJ3QganVzdCBt
YXAgaGl0VGVzdExvY2F0aW9uIGFuZCBoaXRUZXN0UmVjdCBiZWNhdXNlIHRoZXkgbWF5IGhhdmUg
YmVlbiBmbGF0dGVuZWQgKGxvc2luZyB6KQotICAgICAgICAvLyBieSBvdXIgY29udGFpbmVyLgot
ICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBuZXdUcmFuc2Zvcm1TdGF0ZS0+bWFwcGVk
UG9pbnQoKTsKLSAgICAgICAgRmxvYXRRdWFkIGxvY2FsUG9pbnRRdWFkID0gbmV3VHJhbnNmb3Jt
U3RhdGUtPm1hcHBlZFF1YWQoKTsKLSAgICAgICAgTGF5b3V0UmVjdCBsb2NhbEhpdFRlc3RSZWN0
ID0gbmV3VHJhbnNmb3JtU3RhdGUtPmJvdW5kc09mTWFwcGVkQXJlYSgpOwotICAgICAgICBIaXRU
ZXN0TG9jYXRpb24gbmV3SGl0VGVzdExvY2F0aW9uOwotICAgICAgICBpZiAoaGl0VGVzdExvY2F0
aW9uLmlzUmVjdEJhc2VkVGVzdCgpKQotICAgICAgICAgICAgbmV3SGl0VGVzdExvY2F0aW9uID0g
SGl0VGVzdExvY2F0aW9uKGxvY2FsUG9pbnQsIGxvY2FsUG9pbnRRdWFkKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgbmV3SGl0VGVzdExvY2F0aW9uID0gSGl0VGVzdExvY2F0aW9uKGxvY2Fs
UG9pbnQpOwotCi0gICAgICAgIC8vIE5vdyBkbyBhIGhpdCB0ZXN0IHdpdGggdGhlIHJvb3QgbGF5
ZXIgc2hpZnRlZCB0byBiZSB1cy4KLSAgICAgICAgcmV0dXJuIGhpdFRlc3RMYXllcih0aGlzLCBj
b250YWluZXJMYXllciwgcmVxdWVzdCwgcmVzdWx0LCBsb2NhbEhpdFRlc3RSZWN0LCBuZXdIaXRU
ZXN0TG9jYXRpb24sIHRydWUsIG5ld1RyYW5zZm9ybVN0YXRlLmdldCgpLCB6T2Zmc2V0KTsKKyAg
ICAgICAgcmV0dXJuIGhpdFRlc3RMYXllckJ5QXBwbHlpbmdUcmFuc2Zvcm0ocm9vdExheWVyLCBj
b250YWluZXJMYXllciwgcmVxdWVzdCwgcmVzdWx0LCBoaXRUZXN0UmVjdCwgaGl0VGVzdExvY2F0
aW9uLCB0cmFuc2Zvcm1TdGF0ZSwgek9mZnNldCk7CiAgICAgfQogCiAgICAgLy8gRW5zdXJlIG91
ciBsaXN0cyBhbmQgM2Qgc3RhdHVzIGFyZSB1cC10by1kYXRlLgpAQCAtNDM2Nyw2ICs0MzUwLDM2
IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFIKICAgICByZXR1cm4g
MDsKIH0KIAorUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXJCeUFwcGx5aW5n
VHJhbnNmb3JtKFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVyKiBjb250YWluZXJM
YXllciwgY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwKKyAgICBjb25zdCBMYXlvdXRSZWN0JiBoaXRUZXN0UmVjdCwgY29uc3QgSGl0VGVzdExvY2F0
aW9uJiBoaXRUZXN0TG9jYXRpb24sIGNvbnN0IEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZSogdHJh
bnNmb3JtU3RhdGUsIGRvdWJsZSogek9mZnNldCwKKyAgICBjb25zdCBMYXlvdXRQb2ludCYgdHJh
bnNsYXRpb25PZmZzZXQpCit7CisgICAgLy8gQ3JlYXRlIGEgdHJhbnNmb3JtIHN0YXRlIHRvIGFj
Y3VtdWxhdGUgdGhpcyB0cmFuc2Zvcm0uCisgICAgUmVmUHRyPEhpdFRlc3RpbmdUcmFuc2Zvcm1T
dGF0ZT4gbmV3VHJhbnNmb3JtU3RhdGUgPSBjcmVhdGVMb2NhbFRyYW5zZm9ybVN0YXRlKHJvb3RM
YXllciwgY29udGFpbmVyTGF5ZXIsIGhpdFRlc3RSZWN0LCBoaXRUZXN0TG9jYXRpb24sIHRyYW5z
Zm9ybVN0YXRlLCB0cmFuc2xhdGlvbk9mZnNldCk7CisKKyAgICAvLyBJZiB0aGUgdHJhbnNmb3Jt
IGNhbid0IGJlIGludmVydGVkLCB0aGVuIGRvbid0IGhpdCB0ZXN0IHRoaXMgbGF5ZXIgYXQgYWxs
LgorICAgIGlmICghbmV3VHJhbnNmb3JtU3RhdGUtPm1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0uaXNJ
bnZlcnRpYmxlKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gQ29tcHV0ZSB0aGUgcG9p
bnQgYW5kIHRoZSBoaXQgdGVzdCByZWN0IGluIHRoZSBjb29yZHMgb2YgdGhpcyBsYXllciBieSB1
c2luZyB0aGUgdmFsdWVzCisgICAgLy8gZnJvbSB0aGUgdHJhbnNmb3JtU3RhdGUsIHdoaWNoIHN0
b3JlIHRoZSBwb2ludCBhbmQgcXVhZCBpbiB0aGUgY29vcmRzIG9mIHRoZSBsYXN0IGZsYXR0ZW5l
ZAorICAgIC8vIGxheWVyLCBhbmQgdGhlIGFjY3VtdWxhdGVkIHRyYW5zZm9ybSB3aGljaCBsZXRz
IHVwIG1hcCB0aHJvdWdoIHByZXNlcnZlLTNkIGxheWVycy4KKyAgICAvLworICAgIC8vIFdlIGNh
bid0IGp1c3QgbWFwIGhpdFRlc3RMb2NhdGlvbiBhbmQgaGl0VGVzdFJlY3QgYmVjYXVzZSB0aGV5
IG1heSBoYXZlIGJlZW4gZmxhdHRlbmVkIChsb3NpbmcgeikKKyAgICAvLyBieSBvdXIgY29udGFp
bmVyLgorICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IG5ld1RyYW5zZm9ybVN0YXRlLT5tYXBw
ZWRQb2ludCgpOworICAgIEZsb2F0UXVhZCBsb2NhbFBvaW50UXVhZCA9IG5ld1RyYW5zZm9ybVN0
YXRlLT5tYXBwZWRRdWFkKCk7CisgICAgTGF5b3V0UmVjdCBsb2NhbEhpdFRlc3RSZWN0ID0gbmV3
VHJhbnNmb3JtU3RhdGUtPmJvdW5kc09mTWFwcGVkQXJlYSgpOworICAgIEhpdFRlc3RMb2NhdGlv
biBuZXdIaXRUZXN0TG9jYXRpb247CisgICAgaWYgKGhpdFRlc3RMb2NhdGlvbi5pc1JlY3RCYXNl
ZFRlc3QoKSkKKyAgICAgICAgbmV3SGl0VGVzdExvY2F0aW9uID0gSGl0VGVzdExvY2F0aW9uKGxv
Y2FsUG9pbnQsIGxvY2FsUG9pbnRRdWFkKTsKKyAgICBlbHNlCisgICAgICAgIG5ld0hpdFRlc3RM
b2NhdGlvbiA9IEhpdFRlc3RMb2NhdGlvbihsb2NhbFBvaW50KTsKKworICAgIC8vIE5vdyBkbyBh
IGhpdCB0ZXN0IHdpdGggdGhlIHJvb3QgbGF5ZXIgc2hpZnRlZCB0byBiZSB1cy4KKyAgICByZXR1
cm4gaGl0VGVzdExheWVyKHRoaXMsIGNvbnRhaW5lckxheWVyLCByZXF1ZXN0LCByZXN1bHQsIGxv
Y2FsSGl0VGVzdFJlY3QsIG5ld0hpdFRlc3RMb2NhdGlvbiwgdHJ1ZSwgbmV3VHJhbnNmb3JtU3Rh
dGUuZ2V0KCksIHpPZmZzZXQpOworfQorCiBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0Q29udGVu
dHMoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwg
Y29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZHMsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgaGl0
VGVzdExvY2F0aW9uLCBIaXRUZXN0RmlsdGVyIGhpdFRlc3RGaWx0ZXIpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGlzU2VsZlBhaW50aW5nTGF5ZXIoKSB8fCBoYXNTZWxmUGFpbnRpbmdMYXllckRlc2Nl
bmRhbnQoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkocmV2
aXNpb24gMTQ0MjA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTg4Niw2ICs4ODYsNyBAQCBwcml2YXRlOgogICAgICAgICAKICAg
ICB2b2lkIHBhaW50TGF5ZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0lu
Zm8mLCBQYWludExheWVyRmxhZ3MpOwogICAgIHZvaWQgcGFpbnRMYXllckNvbnRlbnRzQW5kUmVm
bGVjdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFBhaW50
TGF5ZXJGbGFncyk7CisgICAgdm9pZCBwYWludExheWVyQnlBcHBseWluZ1RyYW5zZm9ybShHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFBhaW50TGF5ZXJGbGFncywg
Y29uc3QgTGF5b3V0UG9pbnQmIHRyYW5zbGF0aW9uT2Zmc2V0ID0gTGF5b3V0UG9pbnQoKSk7CiAg
ICAgdm9pZCBwYWludExheWVyQ29udGVudHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQ
YWludGluZ0luZm8mLCBQYWludExheWVyRmxhZ3MpOwogICAgIHZvaWQgcGFpbnRMaXN0KFZlY3Rv
cjxSZW5kZXJMYXllcio+KiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0lu
Zm8mLCBQYWludExheWVyRmxhZ3MpOwogICAgIHZvaWQgcGFpbnRQYWdpbmF0ZWRDaGlsZExheWVy
KFJlbmRlckxheWVyKiBjaGlsZExheWVyLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBh
aW50aW5nSW5mbyYsIFBhaW50TGF5ZXJGbGFncyk7CkBAIC04OTQsNiArODk1LDkgQEAgcHJpdmF0
ZToKICAgICBSZW5kZXJMYXllciogaGl0VGVzdExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIs
IFJlbmRlckxheWVyKiBjb250YWluZXJMYXllciwgY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVl
c3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IExheW91dFJlY3QmIGhpdFRlc3RSZWN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mLCBi
b29sIGFwcGxpZWRUcmFuc2Zvcm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUqIHRyYW5zZm9ybVN0YXRlID0gMCwgZG91YmxlKiB6
T2Zmc2V0ID0gMCk7CisgICAgUmVuZGVyTGF5ZXIqIGhpdFRlc3RMYXllckJ5QXBwbHlpbmdUcmFu
c2Zvcm0oUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnRhaW5lckxheWVy
LCBjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLAorICAgICAgICBjb25zdCBM
YXlvdXRSZWN0JiBoaXRUZXN0UmVjdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgSGl0
VGVzdGluZ1RyYW5zZm9ybVN0YXRlKiA9IDAsIGRvdWJsZSogek9mZnNldCA9IDAsCisgICAgICAg
IGNvbnN0IExheW91dFBvaW50JiB0cmFuc2xhdGlvbk9mZnNldCA9IExheW91dFBvaW50KCkpOwog
ICAgIFJlbmRlckxheWVyKiBoaXRUZXN0TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiosIFJlbmRl
ckxheWVyKiByb290TGF5ZXIsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExheW91
dFJlY3QmIGhpdFRlc3RSZWN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUqIHRyYW5zZm9y
bVN0YXRlLCBkb3VibGUqIHpPZmZzZXRGb3JEZXNjZW5kYW50cywgZG91YmxlKiB6T2Zmc2V0LApA
QCAtOTA4LDcgKzkxMiw4IEBAIHByaXZhdGU6CiAKICAgICBQYXNzUmVmUHRyPEhpdFRlc3RpbmdU
cmFuc2Zvcm1TdGF0ZT4gY3JlYXRlTG9jYWxUcmFuc2Zvcm1TdGF0ZShSZW5kZXJMYXllciogcm9v
dExheWVyLCBSZW5kZXJMYXllciogY29udGFpbmVyTGF5ZXIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgaGl0VGVzdFJlY3QsIGNvbnN0IEhpdFRlc3RMb2Nh
dGlvbiYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSGl0VGVzdGluZ1RyYW5z
Zm9ybVN0YXRlKiBjb250YWluZXJUcmFuc2Zvcm1TdGF0ZSkgY29uc3Q7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlKiBjb250YWluZXJU
cmFuc2Zvcm1TdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMYXlvdXRQ
b2ludCYgdHJhbnNsYXRpb25PZmZzZXQgPSBMYXlvdXRQb2ludCgpKSBjb25zdDsKICAgICAKICAg
ICBib29sIGhpdFRlc3RDb250ZW50cyhjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1
bHQmLCBjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5kcywgY29uc3QgSGl0VGVzdExvY2F0aW9u
JiwgSGl0VGVzdEZpbHRlcikgY29uc3Q7CiAK
</data>
<flag name="review"
          id="211293"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>