<?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>91532</bug_id>
          
          <creation_ts>2012-07-17 12:02:39 -0700</creation_ts>
          <short_desc>[Chromium] Add --encode-binary command line option for DRT</short_desc>
          <delta_ts>2012-07-17 17:22:03 -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>Tools / Tests</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>
          <dependson>86927</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Xianzhu Wang">wangxianzhu</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>671475</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-07-17 12:02:39 -0700</bug_when>
    <thetext>Now chromium-android requires DRT to output binary data base64-encoded because &apos;adb shell&apos; can&apos;t handle binary outputs. For now the base64 encoding is hard-coded in TestEventPrinter.cpp.

#if OS(ANDROID)
        // On Android, the layout test driver needs to read the image data through &apos;adb shell&apos; which can&apos;t
        // handle binary data properly. Need to encode the binary data into base64.
        // FIXME: extract this into a function so that we can also use it to output audio data. Will do when removing test_shell mode.

Fix the FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671624</commentid>
    <comment_count>1</comment_count>
      <attachid>152839</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-07-17 14:58:38 -0700</bug_when>
    <thetext>Created attachment 152839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671627</commentid>
    <comment_count>2</comment_count>
      <attachid>152839</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-17 15:04:33 -0700</bug_when>
    <thetext>Comment on attachment 152839
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestEventPrinter.cpp:39
&gt; +TestEventPrinter::TestEventPrinter(bool encodeBinary)

I probably would have just made this a setter on TestEventPrinter rather than a constructor argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671665</commentid>
    <comment_count>3</comment_count>
      <attachid>152852</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-07-17 15:34:26 -0700</bug_when>
    <thetext>Created attachment 152852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671666</commentid>
    <comment_count>4</comment_count>
      <attachid>152839</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-07-17 15:35:10 -0700</bug_when>
    <thetext>Comment on attachment 152839
Patch

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

&gt;&gt; Tools/DumpRenderTree/chromium/TestEventPrinter.cpp:39
&gt;&gt; +TestEventPrinter::TestEventPrinter(bool encodeBinary)
&gt; 
&gt; I probably would have just made this a setter on TestEventPrinter rather than a constructor argument.

Agreed. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671669</commentid>
    <comment_count>5</comment_count>
      <attachid>152852</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-17 15:37:30 -0700</bug_when>
    <thetext>Comment on attachment 152852
Patch

Much nicer.  Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671783</commentid>
    <comment_count>6</comment_count>
      <attachid>152852</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 17:21:58 -0700</bug_when>
    <thetext>Comment on attachment 152852
Patch

Clearing flags on attachment: 152852

Committed r122901: &lt;http://trac.webkit.org/changeset/122901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671784</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 17:22:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152839</attachid>
            <date>2012-07-17 14:58:38 -0700</date>
            <delta_ts>2012-07-17 15:35:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91532-20120717145837.patch</filename>
            <type>text/plain</type>
            <size>11330</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzAwOWExNjUzOTg1NDJhZGJmYzE2MzM5NzNlZDU3ZmQx
Nzc1NjY5OC4uNDg1MWEwNmU5ZjE3NDczNDFhMGM3OGRmOWQwZjQ0MzAzOTBlMmFiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDEyLTA3LTE3ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgLS1lbmNvZGUtYmluYXJ5IGNvbW1hbmQgbGluZSBv
cHRpb24gZm9yIERSVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTE1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIHRoZSBvcHRpb24gcHJlc2VudHMsIERSVCB3aWxsIGVuY29kZSBiaW5hcnkgb3V0
cHV0IGRhdGEgaW4gYmFzZTY0LgorICAgICAgICBDaHJvbWl1bUFuZHJvaWRQb3J0IHdpbGwgcGFz
cyB0aGUgb3B0aW9uIGJlY2F1c2UgJ2FkYiBzaGVsbCcgZG9lc24ndCBzdXBwb3J0CisgICAgICAg
IGJpbmFyeSBkYXRhIG91dHB1dC4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBhIHJlZmFjdG9y
aW5nIHRvIHJlcGxhY2UgdGhlIG9yaWdpbmFsIGhhcmQtY29kZWQgY29kZSBmb3IgQW5kcm9pZC4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RF
dmVudFByaW50ZXIuY3BwOgorICAgICAgICAoVGVzdEV2ZW50UHJpbnRlcjo6VGVzdEV2ZW50UHJp
bnRlcik6CisgICAgICAgIChUZXN0RXZlbnRQcmludGVyOjpoYW5kbGVBdWRpbyk6IE5ldyBmdW5j
dGlvbiByZXBsYWNpbmcgdGhlIG9yaWdpbmFsIGhhbmRsZUF1ZGlvSGVhZGVyCisgICAgICAgIChU
ZXN0RXZlbnRQcmludGVyOjpoYW5kbGVJbWFnZSk6CisgICAgICAgIChUZXN0RXZlbnRQcmludGVy
OjpoYW5kbGVCaW5hcnkpOiBFeHRyYWN0ZWQgY29tbW9uIGZ1bmN0aW9uIGZvciBoYW5kbGVBdWRp
byBhbmQgaGFuZGxlSW1hZ2UKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
RXZlbnRQcmludGVyLmg6CisgICAgICAgIChUZXN0RXZlbnRQcmludGVyKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxs
OjpUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXplKToKKyAgICAgICAg
KFRlc3RTaGVsbDo6ZHVtcCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpzZXRF
bmNvZGVCaW5hcnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fYW5kcm9pZC5weTogQWRkIC0tZW5jb2RlLWJpbmFyeSB0byBhZGRpdGlvbmFs
X2RydF9mbGFncworICAgICAgICAoQ2hyb21pdW1BbmRyb2lkUG9ydC5fX2luaXRfXyk6CisKIDIw
MTItMDctMTcgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4K
IAogICAgICAgICBbRUZMXSBSZXBsYWNlIDAgYnkgTlVMTCBpbiBwdWJsaWMgaGVhZGVycyBkb2N1
bWVudGF0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggMGExZmFhMzY0NDBhY2RmOTk3N2JlODFkOWZhYzA5ZTMyZDY3ZDA2Mi4u
Nzg5YWE4NzdmMGY5OTAyMWU5ZGM0M2ZhMjAwOTNhOTQzNmE0OGVkZCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNjQsNiArNjQs
NyBAQCBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVQZXJUaWxlUGFpbnRpbmdbXSA9ICIt
LWVuYWJsZS1wZXItdGlsZS1wYWludGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25TdHJl
c3NPcHRbXSA9ICItLXN0cmVzcy1vcHQiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uU3RyZXNz
RGVvcHRbXSA9ICItLXN0cmVzcy1kZW9wdCI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25KYXZh
U2NyaXB0RmxhZ3NbXSA9ICItLWpzLWZsYWdzPSI7CitzdGF0aWMgY29uc3QgY2hhciBvcHRpb25F
bmNvZGVCaW5hcnlbXSA9ICItLWVuY29kZS1iaW5hcnkiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0
aW9uTm9UaW1lb3V0W10gPSAiLS1uby10aW1lb3V0IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlv
bldlYkNvcmVMb2dDaGFubmVsc1tdID0gIi0td2ViY29yZS1sb2ctY2hhbm5lbHM9IjsKIApAQCAt
MTMyLDYgKzEzMyw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYm9v
bCBzdHJlc3NEZW9wdCA9IGZhbHNlOwogICAgIGJvb2wgaGFyZHdhcmVBY2NlbGVyYXRlZEdMID0g
ZmFsc2U7CiAgICAgc3RyaW5nIGphdmFTY3JpcHRGbGFnczsKKyAgICBib29sIGVuY29kZUJpbmFy
eSA9IGZhbHNlOwogICAgIGJvb2wgbm9UaW1lb3V0ID0gZmFsc2U7CiAgICAgZm9yIChpbnQgaSA9
IDE7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgc3RyaW5nIGFyZ3VtZW50KGFyZ3ZbaV0pOwpA
QCAtMTgxLDYgKzE4Myw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAg
ICAgICAgICBzdHJlc3NEZW9wdCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKCFhcmd1bWVudC5m
aW5kKG9wdGlvbkphdmFTY3JpcHRGbGFncykpCiAgICAgICAgICAgICBqYXZhU2NyaXB0RmxhZ3Mg
PSBhcmd1bWVudC5zdWJzdHIoc3RybGVuKG9wdGlvbkphdmFTY3JpcHRGbGFncykpOworICAgICAg
ICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25FbmNvZGVCaW5hcnkpCisgICAgICAgICAgICBl
bmNvZGVCaW5hcnkgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25O
b1RpbWVvdXQpCiAgICAgICAgICAgICBub1RpbWVvdXQgPSB0cnVlOwogICAgICAgICBlbHNlIGlm
ICghYXJndW1lbnQuZmluZChvcHRpb25XZWJDb3JlTG9nQ2hhbm5lbHMpKSB7CkBAIC0yMTQsNiAr
MjE4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgc2hlbGwu
c2V0SmF2YVNjcmlwdEZsYWdzKGphdmFTY3JpcHRGbGFncyk7CiAgICAgICAgIHNoZWxsLnNldFN0
cmVzc09wdChzdHJlc3NPcHQpOwogICAgICAgICBzaGVsbC5zZXRTdHJlc3NEZW9wdChzdHJlc3NE
ZW9wdCk7CisgICAgICAgIHNoZWxsLnNldEVuY29kZUJpbmFyeShlbmNvZGVCaW5hcnkpOwogICAg
ICAgICBpZiAobm9UaW1lb3V0KSB7CiAgICAgICAgICAgICAvLyAweDIwMDAwMDAwbXMgaXMgYmln
IGVub3VnaCBmb3IgdGhlIHB1cnBvc2UgdG8gYXZvaWQgdGltZW91dCBpbiBkZWJ1Z2dpbmcuCiAg
ICAgICAgICAgICBzaGVsbC5zZXRMYXlvdXRUZXN0VGltZW91dCgweDIwMDAwMDAwKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RFdmVudFByaW50ZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAKaW5k
ZXggOTk0MmRjMjA4MzcxZTM0YzI4YjRmNzg2ZGU1ZWI5YWZkZDc2MjViNi4uZDhmMTA5ZTIxNGEz
ZmIyOWFkN2E2YWI4YjM4OTgyZDAyNGQzOGI3YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAKQEAgLTM2LDcgKzM2LDggQEAKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgog
Ci1UZXN0RXZlbnRQcmludGVyOjpUZXN0RXZlbnRQcmludGVyKCkKK1Rlc3RFdmVudFByaW50ZXI6
OlRlc3RFdmVudFByaW50ZXIoYm9vbCBlbmNvZGVCaW5hcnkpCisgICAgOiBtX2VuY29kZUJpbmFy
eShlbmNvZGVCaW5hcnkpCiB7CiB9CiAKQEAgLTY3LDkgKzY4LDEwIEBAIHZvaWQgVGVzdEV2ZW50
UHJpbnRlcjo6aGFuZGxlVGV4dEZvb3RlcigpIGNvbnN0CiAgICAgZnByaW50ZihzdGRlcnIsICIj
RU9GXG4iKTsKIH0KIAotdm9pZCBUZXN0RXZlbnRQcmludGVyOjpoYW5kbGVBdWRpb0hlYWRlcigp
IGNvbnN0Cit2b2lkIFRlc3RFdmVudFByaW50ZXI6OmhhbmRsZUF1ZGlvKGNvbnN0IHZvaWQqIGF1
ZGlvRGF0YSwgc2l6ZV90IGF1ZGlvU2l6ZSkgY29uc3QKIHsKICAgICBwcmludGYoIkNvbnRlbnQt
VHlwZTogYXVkaW8vd2F2XG4iKTsKKyAgICBoYW5kbGVCaW5hcnkoYXVkaW9EYXRhLCBhdWRpb1Np
emUpOwogfQogCiB2b2lkIFRlc3RFdmVudFByaW50ZXI6OmhhbmRsZUF1ZGlvRm9vdGVyKCkgY29u
c3QKQEAgLTg2LDIyICs4OCw3IEBAIHZvaWQgVGVzdEV2ZW50UHJpbnRlcjo6aGFuZGxlSW1hZ2Uo
Y29uc3QgY2hhciogYWN0dWFsSGFzaCwgY29uc3QgY2hhciogZXhwZWN0ZWRICiAgICAgICAgIHBy
aW50ZigiXG5FeHBlY3RlZEhhc2g6ICVzXG4iLCBleHBlY3RlZEhhc2gpOwogICAgIGlmIChpbWFn
ZURhdGEgJiYgaW1hZ2VTaXplKSB7CiAgICAgICAgIHByaW50ZigiQ29udGVudC1UeXBlOiBpbWFn
ZS9wbmdcbiIpOwotI2lmIE9TKEFORFJPSUQpCi0gICAgICAgIC8vIE9uIEFuZHJvaWQsIHRoZSBs
YXlvdXQgdGVzdCBkcml2ZXIgbmVlZHMgdG8gcmVhZCB0aGUgaW1hZ2UgZGF0YSB0aHJvdWdoICdh
ZGIgc2hlbGwnIHdoaWNoIGNhbid0Ci0gICAgICAgIC8vIGhhbmRsZSBiaW5hcnkgZGF0YSBwcm9w
ZXJseS4gTmVlZCB0byBlbmNvZGUgdGhlIGJpbmFyeSBkYXRhIGludG8gYmFzZTY0LgotICAgICAg
ICAvLyBGSVhNRTogZXh0cmFjdCB0aGlzIGludG8gYSBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBh
bHNvIHVzZSBpdCB0byBvdXRwdXQgYXVkaW8gZGF0YS4gV2lsbCBkbyB3aGVuIHJlbW92aW5nIHRl
c3Rfc2hlbGwgbW9kZS4KLSAgICAgICAgVmVjdG9yPGNoYXI+IGJhc2U2NDsKLSAgICAgICAgYmFz
ZTY0RW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGltYWdlRGF0YSksIGltYWdl
U2l6ZSwgYmFzZTY0LCBCYXNlNjRJbnNlcnRMRnMpOwotICAgICAgICBpbWFnZURhdGEgPSByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihiYXNlNjQuZGF0YSgpKTsKLSAgICAg
ICAgaW1hZ2VTaXplID0gYmFzZTY0LnNpemUoKTsKLSAgICAgICAgcHJpbnRmKCJDb250ZW50LVRy
YW5zZmVyLUVuY29kaW5nOiBiYXNlNjRcbiIpOwotI2VuZGlmCi0gICAgICAgIC8vIFByaW50ZiBm
b3JtYXR0aW5nIGZvciBzaXplX3Qgb24gMzItYml0LCA2NC1iaXQsIGFuZCBvbiBXaW5kb3dzIGlz
IGhhcmQgc28ganVzdCBjYXN0IHRvIGFuIGludC4KLSAgICAgICAgcHJpbnRmKCJDb250ZW50LUxl
bmd0aDogJWRcbiIsIHN0YXRpY19jYXN0PGludD4oaW1hZ2VTaXplKSk7Ci0gICAgICAgIGlmIChm
d3JpdGUoaW1hZ2VEYXRhLCAxLCBpbWFnZVNpemUsIHN0ZG91dCkgIT0gaW1hZ2VTaXplKSB7Ci0g
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlNob3J0IHdyaXRlIHRvIHN0ZG91dC5cbiIpOwot
ICAgICAgICAgICAgZXhpdCgxKTsKLSAgICAgICAgfQorICAgICAgICBoYW5kbGVCaW5hcnkoaW1h
Z2VEYXRhLCBpbWFnZVNpemUpOwogICAgIH0KIH0KIApAQCAtMTA5LDMgKzk2LDIwIEBAIHZvaWQg
VGVzdEV2ZW50UHJpbnRlcjo6aGFuZGxlVGVzdEZvb3Rlcihib29sKSBjb25zdAogewogICAgIHBy
aW50ZigiI0VPRlxuIik7CiB9CisKK3ZvaWQgVGVzdEV2ZW50UHJpbnRlcjo6aGFuZGxlQmluYXJ5
KGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplKSBjb25zdAoreworICAgIFZlY3RvcjxjaGFy
PiBiYXNlNjQ7CisgICAgaWYgKG1fZW5jb2RlQmluYXJ5KSB7CisgICAgICAgIGJhc2U2NEVuY29k
ZShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIHNpemUsIGJhc2U2NCwgQmFzZTY0SW5z
ZXJ0TEZzKTsKKyAgICAgICAgZGF0YSA9IGJhc2U2NC5kYXRhKCk7CisgICAgICAgIHNpemUgPSBi
YXNlNjQuc2l6ZSgpOworICAgICAgICBwcmludGYoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IGJhc2U2NFxuIik7CisgICAgfQorICAgIC8vIFByaW50ZiBmb3JtYXR0aW5nIGZvciBzaXplX3Qg
b24gMzItYml0LCA2NC1iaXQsIGFuZCBvbiBXaW5kb3dzIGlzIGhhcmQgc28ganVzdCBjYXN0IHRv
IGFuIGludC4KKyAgICBwcmludGYoIkNvbnRlbnQtTGVuZ3RoOiAlZFxuIiwgc3RhdGljX2Nhc3Q8
aW50PihzaXplKSk7CisgICAgaWYgKGZ3cml0ZShkYXRhLCAxLCBzaXplLCBzdGRvdXQpICE9IHNp
emUpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJTaG9ydCB3cml0ZSB0byBzdGRvdXQuXG4i
KTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0RXZlbnRQcmludGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0RXZlbnRQcmludGVyLmgKaW5kZXggY2I4OGNkMjU5MzkxMzY5ZTI1ZWZl
ZDUxODc2MGI0YzAyZTNhZTVjNC4uYjJlN2FkMDI2NDRlODQ5OTU4NGIxZjk3NTUzNzkyOTRlNDc1
N2Q1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdEV2ZW50
UHJpbnRlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RFdmVudFBy
aW50ZXIuaApAQCAtMzUsMTYgKzM1LDIxIEBACiAKIGNsYXNzIFRlc3RFdmVudFByaW50ZXIgewog
cHVibGljOgotICAgIFRlc3RFdmVudFByaW50ZXIoKTsKKyAgICBUZXN0RXZlbnRQcmludGVyKGJv
b2wgZW5jb2RlQmluYXJ5KTsKICAgICB+VGVzdEV2ZW50UHJpbnRlcigpOwogICAgIHZvaWQgaGFu
ZGxlVGVzdEhlYWRlcihjb25zdCBjaGFyKiB1cmwpIGNvbnN0OwogICAgIHZvaWQgaGFuZGxlVGlt
ZWRPdXQoKSBjb25zdDsKICAgICB2b2lkIGhhbmRsZVRleHRIZWFkZXIoKSBjb25zdDsKICAgICB2
b2lkIGhhbmRsZVRleHRGb290ZXIoKSBjb25zdDsKLSAgICB2b2lkIGhhbmRsZUF1ZGlvSGVhZGVy
KCkgY29uc3Q7CisgICAgdm9pZCBoYW5kbGVBdWRpbyhjb25zdCB2b2lkKiBhdWRpb0RhdGEsIHNp
emVfdCBhdWRpb1NpemUpIGNvbnN0OwogICAgIHZvaWQgaGFuZGxlQXVkaW9Gb290ZXIoKSBjb25z
dDsKICAgICB2b2lkIGhhbmRsZUltYWdlKGNvbnN0IGNoYXIqIGFjdHVhbEhhc2gsIGNvbnN0IGNo
YXIqIGV4cGVjdGVkSGFzaCwgY29uc3Qgdm9pZCogaW1hZ2VEYXRhLCBzaXplX3QgaW1hZ2VTaXpl
KSBjb25zdDsKICAgICB2b2lkIGhhbmRsZVRlc3RGb290ZXIoYm9vbCBkdW1wZWRBbnl0aGluZykg
Y29uc3Q7CisKK3ByaXZhdGU6CisgICAgdm9pZCBoYW5kbGVCaW5hcnkoY29uc3Qgdm9pZCogZGF0
YSwgc2l6ZV90KSBjb25zdDsKKworICAgIGJvb2wgbV9lbmNvZGVCaW5hcnk7CiB9OwogCiAjZW5k
aWYgLy8gVGVzdEV2ZW50UHJpbnRlcl9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFNoZWxsLmNwcAppbmRleCA4ZDAzYTE5ODc2ZGVkYjRhYTBlY2RjYTE3ZWUzMzJlYmEwMzNi
NmE2Li4wMzc4MDczOWQxMDg2NGFkNzAwNzQwMTJkOGZhMGVjMDhmMmE3OTQ5IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTExNyw2ICsxMTcsNyBA
QCBUZXN0U2hlbGw6OlRlc3RTaGVsbCgpCiAgICAgLCBtX3N0cmVzc0Rlb3B0KGZhbHNlKQogICAg
ICwgbV9kdW1wV2hlbkZpbmlzaGVkKHRydWUpCiAgICAgLCBtX2lzRGlzcGxheWluZ01vZGFsRGlh
bG9nKGZhbHNlKQorICAgICwgbV9lbmNvZGVCaW5hcnkoZmFsc2UpCiB7CiAgICAgV2ViUnVudGlt
ZUZlYXR1cmVzOjplbmFibGVEYXRhVHJhbnNmZXJJdGVtcyh0cnVlKTsKICAgICBXZWJSdW50aW1l
RmVhdHVyZXM6OmVuYWJsZUdlb2xvY2F0aW9uKHRydWUpOwpAQCAtMTUzLDcgKzE1NCw3IEBAIHZv
aWQgVGVzdFNoZWxsOjppbml0aWFsaXplKCkKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVy
ID0gYWRvcHRQdHIobmV3IE5vdGlmaWNhdGlvblByZXNlbnRlcih0aGlzKSk7CiAjZW5kaWYKLSAg
ICBtX3ByaW50ZXIgPSBhZG9wdFB0cihuZXcgVGVzdEV2ZW50UHJpbnRlcigpKTsKKyAgICBtX3By
aW50ZXIgPSBhZG9wdFB0cihuZXcgVGVzdEV2ZW50UHJpbnRlcihtX2VuY29kZUJpbmFyeSkpOwog
I2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKICAgICBtX3ByZXJlbmRlcmluZ1N1cHBvcnQgPSBh
ZG9wdFB0cihuZXcgTW9ja1dlYlByZXJlbmRlcmluZ1N1cHBvcnQoKSk7CiAjZW5kaWYKQEAgLTU2
MCwxMyArNTYxLDggQEAgdm9pZCBUZXN0U2hlbGw6OmR1bXAoKQogICAgIGJvb2wgZHVtcGVkQW55
dGhpbmcgPSBmYWxzZTsKIAogICAgIGlmIChzaG91bGREdW1wQXNBdWRpbykgewotICAgICAgICBt
X3ByaW50ZXItPmhhbmRsZUF1ZGlvSGVhZGVyKCk7Ci0KICAgICAgICAgY29uc3QgV2ViS2l0OjpX
ZWJBcnJheUJ1ZmZlclZpZXcmIHdlYkFycmF5QnVmZmVyVmlldyA9IG1fbGF5b3V0VGVzdENvbnRy
b2xsZXItPmF1ZGlvRGF0YSgpOwotICAgICAgICBwcmludGYoIkNvbnRlbnQtTGVuZ3RoOiAlZFxu
Iiwgd2ViQXJyYXlCdWZmZXJWaWV3LmJ5dGVMZW5ndGgoKSk7Ci0KLSAgICAgICAgaWYgKGZ3cml0
ZSh3ZWJBcnJheUJ1ZmZlclZpZXcuYmFzZUFkZHJlc3MoKSwgMSwgd2ViQXJyYXlCdWZmZXJWaWV3
LmJ5dGVMZW5ndGgoKSwgc3Rkb3V0KSAhPSB3ZWJBcnJheUJ1ZmZlclZpZXcuYnl0ZUxlbmd0aCgp
KQotICAgICAgICAgICAgRkFUQUwoIlNob3J0IHdyaXRlIHRvIHN0ZG91dCwgZGlzayBmdWxsP1xu
Iik7CisgICAgICAgIG1fcHJpbnRlci0+aGFuZGxlQXVkaW8od2ViQXJyYXlCdWZmZXJWaWV3LmJh
c2VBZGRyZXNzKCksIHdlYkFycmF5QnVmZmVyVmlldy5ieXRlTGVuZ3RoKCkpOwogICAgICAgICBt
X3ByaW50ZXItPmhhbmRsZUF1ZGlvRm9vdGVyKCk7CiAgICAgICAgIG1fcHJpbnRlci0+aGFuZGxl
VGVzdEZvb3Rlcih0cnVlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuaAppbmRleCA1ODJhOWRlODRhYzM0MzA4MzYzMWI0N2QyYzBkZGE2NDhiZWQ5ZjcyLi42YmYx
NjExODdmOTY4ZDQ5NWE4YmRiZDU1ZTQ4ZjI2OWFmMTc3OTU2IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTY3LDYgKzE2Nyw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldElzRGlzcGxheWluZ01vZGFsRGlhbG9nKGJvb2wgaXNEaXNwbGF5aW5nTW9kYWxE
aWFsb2cpIHsgbV9pc0Rpc3BsYXlpbmdNb2RhbERpYWxvZyA9IGlzRGlzcGxheWluZ01vZGFsRGlh
bG9nOyB9CiAgICAgYm9vbCBpc0Rpc3BsYXlpbmdNb2RhbERpYWxvZygpIGNvbnN0IHsgcmV0dXJu
IG1faXNEaXNwbGF5aW5nTW9kYWxEaWFsb2c7IH0KIAorICAgIC8vIFNldCB3aGV0aGVyIHRoZSBi
aW5hcnkgZGF0YSBvdXRwdXQgc2hvdWxkIGJlIGVuY29kZWQgaW4gYmFzZTY0IHRleHQuCisgICAg
dm9pZCBzZXRFbmNvZGVCaW5hcnkoYm9vbCBlbmNvZGVCaW5hcnkpIHsgbV9lbmNvZGVCaW5hcnkg
PSBlbmNvZGVCaW5hcnk7IH0KKwogICAgIFdlYlZpZXdIb3N0KiBjcmVhdGVOZXdXaW5kb3coY29u
c3QgV2ViS2l0OjpXZWJVUkwmKTsKICAgICB2b2lkIGNsb3NlV2luZG93KFdlYlZpZXdIb3N0Kik7
CiAgICAgdm9pZCBjbG9zZVJlbWFpbmluZ1dpbmRvd3MoKTsKQEAgLTI0MSw2ICsyNDQsNyBAQCBw
cml2YXRlOgogICAgIHN0ZDo6c3RyaW5nIG1famF2YVNjcmlwdEZsYWdzOwogICAgIGJvb2wgbV9k
dW1wV2hlbkZpbmlzaGVkOwogICAgIGJvb2wgbV9pc0Rpc3BsYXlpbmdNb2RhbERpYWxvZzsKKyAg
ICBib29sIG1fZW5jb2RlQmluYXJ5OwogCiAKICAgICAvLyBMaXN0IG9mIGFsbCB3aW5kb3dzIGlu
IHRoaXMgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weQppbmRleCA1NjdmM2FlYThiZjMw
MmZlY2UwNjBhNjA2NGY5ZmFhZDYwY2U2ZTUyLi5hZTQzMGQyNmNmZGViYmYxOTkzNWU4MTAyN2Qw
ZTlmZGMzZmRkMzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkLnB5CkBAIC0xNTUsNiArMTU1LDEw
IEBAIGNsYXNzIENocm9taXVtQW5kcm9pZFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lLCAqKmt3YXJncyk6CiAgICAgICAg
IHN1cGVyKENocm9taXVtQW5kcm9pZFBvcnQsIHNlbGYpLl9faW5pdF9fKGhvc3QsIHBvcnRfbmFt
ZSwgKiprd2FyZ3MpCiAKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2Fk
ZGl0aW9uYWxfZHJ0X2ZsYWcnKToKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuYWRkaXRpb25h
bF9kcnRfZmxhZyA9IFtdCisgICAgICAgIHNlbGYuX29wdGlvbnMuYWRkaXRpb25hbF9kcnRfZmxh
Zy5hcHBlbmQoJy0tZW5jb2RlLWJpbmFyeScpCisKICAgICAgICAgIyBUaGUgQ2hyb21pdW0gcG9y
dCBmb3IgQW5kcm9pZCBhbHdheXMgdXNlcyB0aGUgaGFyZHdhcmUgR1BVIHBhdGguCiAgICAgICAg
IHNlbGYuX29wdGlvbnMuZW5hYmxlX2hhcmR3YXJlX2dwdSA9IFRydWUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152852</attachid>
            <date>2012-07-17 15:34:26 -0700</date>
            <delta_ts>2012-07-17 17:21:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91532-20120717153425.patch</filename>
            <type>text/plain</type>
            <size>13696</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzAwOWExNjUzOTg1NDJhZGJmYzE2MzM5NzNlZDU3ZmQx
Nzc1NjY5OC4uNDg1MWEwNmU5ZjE3NDczNDFhMGM3OGRmOWQwZjQ0MzAzOTBlMmFiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDEyLTA3LTE3ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgLS1lbmNvZGUtYmluYXJ5IGNvbW1hbmQgbGluZSBv
cHRpb24gZm9yIERSVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTE1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIHRoZSBvcHRpb24gcHJlc2VudHMsIERSVCB3aWxsIGVuY29kZSBiaW5hcnkgb3V0
cHV0IGRhdGEgaW4gYmFzZTY0LgorICAgICAgICBDaHJvbWl1bUFuZHJvaWRQb3J0IHdpbGwgcGFz
cyB0aGUgb3B0aW9uIGJlY2F1c2UgJ2FkYiBzaGVsbCcgZG9lc24ndCBzdXBwb3J0CisgICAgICAg
IGJpbmFyeSBkYXRhIG91dHB1dC4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBhIHJlZmFjdG9y
aW5nIHRvIHJlcGxhY2UgdGhlIG9yaWdpbmFsIGhhcmQtY29kZWQgY29kZSBmb3IgQW5kcm9pZC4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RF
dmVudFByaW50ZXIuY3BwOgorICAgICAgICAoVGVzdEV2ZW50UHJpbnRlcjo6VGVzdEV2ZW50UHJp
bnRlcik6CisgICAgICAgIChUZXN0RXZlbnRQcmludGVyOjpoYW5kbGVBdWRpbyk6IE5ldyBmdW5j
dGlvbiByZXBsYWNpbmcgdGhlIG9yaWdpbmFsIGhhbmRsZUF1ZGlvSGVhZGVyCisgICAgICAgIChU
ZXN0RXZlbnRQcmludGVyOjpoYW5kbGVJbWFnZSk6CisgICAgICAgIChUZXN0RXZlbnRQcmludGVy
OjpoYW5kbGVCaW5hcnkpOiBFeHRyYWN0ZWQgY29tbW9uIGZ1bmN0aW9uIGZvciBoYW5kbGVBdWRp
byBhbmQgaGFuZGxlSW1hZ2UKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
RXZlbnRQcmludGVyLmg6CisgICAgICAgIChUZXN0RXZlbnRQcmludGVyKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxs
OjpUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXplKToKKyAgICAgICAg
KFRlc3RTaGVsbDo6ZHVtcCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpzZXRF
bmNvZGVCaW5hcnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fYW5kcm9pZC5weTogQWRkIC0tZW5jb2RlLWJpbmFyeSB0byBhZGRpdGlvbmFs
X2RydF9mbGFncworICAgICAgICAoQ2hyb21pdW1BbmRyb2lkUG9ydC5fX2luaXRfXyk6CisKIDIw
MTItMDctMTcgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4K
IAogICAgICAgICBbRUZMXSBSZXBsYWNlIDAgYnkgTlVMTCBpbiBwdWJsaWMgaGVhZGVycyBkb2N1
bWVudGF0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggMGExZmFhMzY0NDBhY2RmOTk3N2JlODFkOWZhYzA5ZTMyZDY3ZDA2Mi4u
Nzg5YWE4NzdmMGY5OTAyMWU5ZGM0M2ZhMjAwOTNhOTQzNmE0OGVkZCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNjQsNiArNjQs
NyBAQCBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVQZXJUaWxlUGFpbnRpbmdbXSA9ICIt
LWVuYWJsZS1wZXItdGlsZS1wYWludGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25TdHJl
c3NPcHRbXSA9ICItLXN0cmVzcy1vcHQiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uU3RyZXNz
RGVvcHRbXSA9ICItLXN0cmVzcy1kZW9wdCI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25KYXZh
U2NyaXB0RmxhZ3NbXSA9ICItLWpzLWZsYWdzPSI7CitzdGF0aWMgY29uc3QgY2hhciBvcHRpb25F
bmNvZGVCaW5hcnlbXSA9ICItLWVuY29kZS1iaW5hcnkiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0
aW9uTm9UaW1lb3V0W10gPSAiLS1uby10aW1lb3V0IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlv
bldlYkNvcmVMb2dDaGFubmVsc1tdID0gIi0td2ViY29yZS1sb2ctY2hhbm5lbHM9IjsKIApAQCAt
MTMyLDYgKzEzMyw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYm9v
bCBzdHJlc3NEZW9wdCA9IGZhbHNlOwogICAgIGJvb2wgaGFyZHdhcmVBY2NlbGVyYXRlZEdMID0g
ZmFsc2U7CiAgICAgc3RyaW5nIGphdmFTY3JpcHRGbGFnczsKKyAgICBib29sIGVuY29kZUJpbmFy
eSA9IGZhbHNlOwogICAgIGJvb2wgbm9UaW1lb3V0ID0gZmFsc2U7CiAgICAgZm9yIChpbnQgaSA9
IDE7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgc3RyaW5nIGFyZ3VtZW50KGFyZ3ZbaV0pOwpA
QCAtMTgxLDYgKzE4Myw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAg
ICAgICAgICBzdHJlc3NEZW9wdCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKCFhcmd1bWVudC5m
aW5kKG9wdGlvbkphdmFTY3JpcHRGbGFncykpCiAgICAgICAgICAgICBqYXZhU2NyaXB0RmxhZ3Mg
PSBhcmd1bWVudC5zdWJzdHIoc3RybGVuKG9wdGlvbkphdmFTY3JpcHRGbGFncykpOworICAgICAg
ICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25FbmNvZGVCaW5hcnkpCisgICAgICAgICAgICBl
bmNvZGVCaW5hcnkgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25O
b1RpbWVvdXQpCiAgICAgICAgICAgICBub1RpbWVvdXQgPSB0cnVlOwogICAgICAgICBlbHNlIGlm
ICghYXJndW1lbnQuZmluZChvcHRpb25XZWJDb3JlTG9nQ2hhbm5lbHMpKSB7CkBAIC0yMTQsNiAr
MjE4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgc2hlbGwu
c2V0SmF2YVNjcmlwdEZsYWdzKGphdmFTY3JpcHRGbGFncyk7CiAgICAgICAgIHNoZWxsLnNldFN0
cmVzc09wdChzdHJlc3NPcHQpOwogICAgICAgICBzaGVsbC5zZXRTdHJlc3NEZW9wdChzdHJlc3NE
ZW9wdCk7CisgICAgICAgIHNoZWxsLnNldEVuY29kZUJpbmFyeShlbmNvZGVCaW5hcnkpOwogICAg
ICAgICBpZiAobm9UaW1lb3V0KSB7CiAgICAgICAgICAgICAvLyAweDIwMDAwMDAwbXMgaXMgYmln
IGVub3VnaCBmb3IgdGhlIHB1cnBvc2UgdG8gYXZvaWQgdGltZW91dCBpbiBkZWJ1Z2dpbmcuCiAg
ICAgICAgICAgICBzaGVsbC5zZXRMYXlvdXRUZXN0VGltZW91dCgweDIwMDAwMDAwKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RFdmVudFByaW50ZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAKaW5k
ZXggOTk0MmRjMjA4MzcxZTM0YzI4YjRmNzg2ZGU1ZWI5YWZkZDc2MjViNi4uYjhhZWNmMTAwNGFm
N2I0YTY3OWYwMGY3YzRkMDcyNjkwNTcwOGI0MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KIAogVGVzdEV2ZW50UHJpbnRlcjo6VGVzdEV2ZW50
UHJpbnRlcigpCisgICAgOiBtX2VuY29kZUJpbmFyeShmYWxzZSkKIHsKIH0KIApAQCAtNjcsOSAr
NjgsMTAgQEAgdm9pZCBUZXN0RXZlbnRQcmludGVyOjpoYW5kbGVUZXh0Rm9vdGVyKCkgY29uc3QK
ICAgICBmcHJpbnRmKHN0ZGVyciwgIiNFT0ZcbiIpOwogfQogCi12b2lkIFRlc3RFdmVudFByaW50
ZXI6OmhhbmRsZUF1ZGlvSGVhZGVyKCkgY29uc3QKK3ZvaWQgVGVzdEV2ZW50UHJpbnRlcjo6aGFu
ZGxlQXVkaW8oY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBzaXplX3QgYXVkaW9TaXplKSBjb25zdAog
ewogICAgIHByaW50ZigiQ29udGVudC1UeXBlOiBhdWRpby93YXZcbiIpOworICAgIGhhbmRsZUJp
bmFyeShhdWRpb0RhdGEsIGF1ZGlvU2l6ZSk7CiB9CiAKIHZvaWQgVGVzdEV2ZW50UHJpbnRlcjo6
aGFuZGxlQXVkaW9Gb290ZXIoKSBjb25zdApAQCAtODYsMjIgKzg4LDcgQEAgdm9pZCBUZXN0RXZl
bnRQcmludGVyOjpoYW5kbGVJbWFnZShjb25zdCBjaGFyKiBhY3R1YWxIYXNoLCBjb25zdCBjaGFy
KiBleHBlY3RlZEgKICAgICAgICAgcHJpbnRmKCJcbkV4cGVjdGVkSGFzaDogJXNcbiIsIGV4cGVj
dGVkSGFzaCk7CiAgICAgaWYgKGltYWdlRGF0YSAmJiBpbWFnZVNpemUpIHsKICAgICAgICAgcHJp
bnRmKCJDb250ZW50LVR5cGU6IGltYWdlL3BuZ1xuIik7Ci0jaWYgT1MoQU5EUk9JRCkKLSAgICAg
ICAgLy8gT24gQW5kcm9pZCwgdGhlIGxheW91dCB0ZXN0IGRyaXZlciBuZWVkcyB0byByZWFkIHRo
ZSBpbWFnZSBkYXRhIHRocm91Z2ggJ2FkYiBzaGVsbCcgd2hpY2ggY2FuJ3QKLSAgICAgICAgLy8g
aGFuZGxlIGJpbmFyeSBkYXRhIHByb3Blcmx5LiBOZWVkIHRvIGVuY29kZSB0aGUgYmluYXJ5IGRh
dGEgaW50byBiYXNlNjQuCi0gICAgICAgIC8vIEZJWE1FOiBleHRyYWN0IHRoaXMgaW50byBhIGZ1
bmN0aW9uIHNvIHRoYXQgd2UgY2FuIGFsc28gdXNlIGl0IHRvIG91dHB1dCBhdWRpbyBkYXRhLiBX
aWxsIGRvIHdoZW4gcmVtb3ZpbmcgdGVzdF9zaGVsbCBtb2RlLgotICAgICAgICBWZWN0b3I8Y2hh
cj4gYmFzZTY0OwotICAgICAgICBiYXNlNjRFbmNvZGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oaW1hZ2VEYXRhKSwgaW1hZ2VTaXplLCBiYXNlNjQsIEJhc2U2NEluc2VydExGcyk7Ci0g
ICAgICAgIGltYWdlRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+
KGJhc2U2NC5kYXRhKCkpOwotICAgICAgICBpbWFnZVNpemUgPSBiYXNlNjQuc2l6ZSgpOwotICAg
ICAgICBwcmludGYoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NFxuIik7Ci0jZW5k
aWYKLSAgICAgICAgLy8gUHJpbnRmIGZvcm1hdHRpbmcgZm9yIHNpemVfdCBvbiAzMi1iaXQsIDY0
LWJpdCwgYW5kIG9uIFdpbmRvd3MgaXMgaGFyZCBzbyBqdXN0IGNhc3QgdG8gYW4gaW50LgotICAg
ICAgICBwcmludGYoIkNvbnRlbnQtTGVuZ3RoOiAlZFxuIiwgc3RhdGljX2Nhc3Q8aW50PihpbWFn
ZVNpemUpKTsKLSAgICAgICAgaWYgKGZ3cml0ZShpbWFnZURhdGEsIDEsIGltYWdlU2l6ZSwgc3Rk
b3V0KSAhPSBpbWFnZVNpemUpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiU2hvcnQg
d3JpdGUgdG8gc3Rkb3V0LlxuIik7Ci0gICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Cisg
ICAgICAgIGhhbmRsZUJpbmFyeShpbWFnZURhdGEsIGltYWdlU2l6ZSk7CiAgICAgfQogfQogCkBA
IC0xMDksMyArOTYsMjAgQEAgdm9pZCBUZXN0RXZlbnRQcmludGVyOjpoYW5kbGVUZXN0Rm9vdGVy
KGJvb2wpIGNvbnN0CiB7CiAgICAgcHJpbnRmKCIjRU9GXG4iKTsKIH0KKwordm9pZCBUZXN0RXZl
bnRQcmludGVyOjpoYW5kbGVCaW5hcnkoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUpIGNv
bnN0Cit7CisgICAgVmVjdG9yPGNoYXI+IGJhc2U2NDsKKyAgICBpZiAobV9lbmNvZGVCaW5hcnkp
IHsKKyAgICAgICAgYmFzZTY0RW5jb2RlKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwg
c2l6ZSwgYmFzZTY0LCBCYXNlNjRJbnNlcnRMRnMpOworICAgICAgICBkYXRhID0gYmFzZTY0LmRh
dGEoKTsKKyAgICAgICAgc2l6ZSA9IGJhc2U2NC5zaXplKCk7CisgICAgICAgIHByaW50ZigiQ29u
dGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0XG4iKTsKKyAgICB9CisgICAgLy8gUHJpbnRm
IGZvcm1hdHRpbmcgZm9yIHNpemVfdCBvbiAzMi1iaXQsIDY0LWJpdCwgYW5kIG9uIFdpbmRvd3Mg
aXMgaGFyZCBzbyBqdXN0IGNhc3QgdG8gYW4gaW50LgorICAgIHByaW50ZigiQ29udGVudC1MZW5n
dGg6ICVkXG4iLCBzdGF0aWNfY2FzdDxpbnQ+KHNpemUpKTsKKyAgICBpZiAoZndyaXRlKGRhdGEs
IDEsIHNpemUsIHN0ZG91dCkgIT0gc2l6ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlNo
b3J0IHdyaXRlIHRvIHN0ZG91dC5cbiIpOworICAgICAgICBleGl0KDEpOworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RFdmVudFByaW50ZXIu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RFdmVudFByaW50ZXIuaAppbmRl
eCBjYjg4Y2QyNTkzOTEzNjllMjVlZmVkNTE4NzYwYjRjMDJlM2FlNWM0Li5jMWE3ZTJkY2Q0YzA3
MmRjMzRlNDY5MmZmNzU3ZWZmZDFhMTE4ZmVmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0RXZlbnRQcmludGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5oCkBAIC00MSwxMCArNDEsMTggQEAgcHVibGlj
OgogICAgIHZvaWQgaGFuZGxlVGltZWRPdXQoKSBjb25zdDsKICAgICB2b2lkIGhhbmRsZVRleHRI
ZWFkZXIoKSBjb25zdDsKICAgICB2b2lkIGhhbmRsZVRleHRGb290ZXIoKSBjb25zdDsKLSAgICB2
b2lkIGhhbmRsZUF1ZGlvSGVhZGVyKCkgY29uc3Q7CisgICAgdm9pZCBoYW5kbGVBdWRpbyhjb25z
dCB2b2lkKiBhdWRpb0RhdGEsIHNpemVfdCBhdWRpb1NpemUpIGNvbnN0OwogICAgIHZvaWQgaGFu
ZGxlQXVkaW9Gb290ZXIoKSBjb25zdDsKICAgICB2b2lkIGhhbmRsZUltYWdlKGNvbnN0IGNoYXIq
IGFjdHVhbEhhc2gsIGNvbnN0IGNoYXIqIGV4cGVjdGVkSGFzaCwgY29uc3Qgdm9pZCogaW1hZ2VE
YXRhLCBzaXplX3QgaW1hZ2VTaXplKSBjb25zdDsKICAgICB2b2lkIGhhbmRsZVRlc3RGb290ZXIo
Ym9vbCBkdW1wZWRBbnl0aGluZykgY29uc3Q7CisKKyAgICAvLyBTZXQgaWYgYmluYXJ5IG91dHB1
dCBkYXRhIHNob3VsZCBiZSBlbmNvZGVkIGluIGJhc2U2NC4gRGVmYXVsdCBpcyBvZmYuCisgICAg
dm9pZCBzZXRFbmNvZGVCaW5hcnkoYm9vbCBlbmNvZGVCaW5hcnkpIHsgbV9lbmNvZGVCaW5hcnkg
PSBlbmNvZGVCaW5hcnk7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGhhbmRsZUJpbmFyeShjb25z
dCB2b2lkKiBkYXRhLCBzaXplX3QpIGNvbnN0OworCisgICAgYm9vbCBtX2VuY29kZUJpbmFyeTsK
IH07CiAKICNlbmRpZiAvLyBUZXN0RXZlbnRQcmludGVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDhkMDNhMTk4NzZkZWRiNGFhMGVjZGNhMTdl
ZTMzMmViYTAzM2I2YTYuLmI0MTQyZWFjZjA3M2U2NDgzZGE5ZWVhNWIyMTk3NGQ5N2M4N2YxNWMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtMTUz
LDcgKzE1Myw2IEBAIHZvaWQgVGVzdFNoZWxsOjppbml0aWFsaXplKCkKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1fbm90aWZp
Y2F0aW9uUHJlc2VudGVyID0gYWRvcHRQdHIobmV3IE5vdGlmaWNhdGlvblByZXNlbnRlcih0aGlz
KSk7CiAjZW5kaWYKLSAgICBtX3ByaW50ZXIgPSBhZG9wdFB0cihuZXcgVGVzdEV2ZW50UHJpbnRl
cigpKTsKICNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCiAgICAgbV9wcmVyZW5kZXJpbmdTdXBw
b3J0ID0gYWRvcHRQdHIobmV3IE1vY2tXZWJQcmVyZW5kZXJpbmdTdXBwb3J0KCkpOwogI2VuZGlm
CkBAIC0yNjQsNyArMjYzLDcgQEAgdm9pZCBUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KGNvbnN0IFRl
c3RQYXJhbXMmIHBhcmFtcykKICAgICAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+c2V0U2hv
d0RlYnVnTGF5ZXJUcmVlKHRydWUpOwogCiAgICAgaWYgKG1fZHVtcFdoZW5GaW5pc2hlZCkKLSAg
ICAgICAgbV9wcmludGVyLT5oYW5kbGVUZXN0SGVhZGVyKHRlc3RVcmwuY19zdHIoKSk7CisgICAg
ICAgIG1fcHJpbnRlci5oYW5kbGVUZXN0SGVhZGVyKHRlc3RVcmwuY19zdHIoKSk7CiAgICAgbG9h
ZFVSTChtX3BhcmFtcy50ZXN0VXJsKTsKIAogICAgIG1fdGVzdElzUHJlcGFyaW5nID0gZmFsc2U7
CkBAIC0zNzIsNyArMzcxLDcgQEAgdm9pZCBUZXN0U2hlbGw6OnRlc3RGaW5pc2hlZCgpCiAKIHZv
aWQgVGVzdFNoZWxsOjp0ZXN0VGltZWRPdXQoKQogewotICAgIG1fcHJpbnRlci0+aGFuZGxlVGlt
ZWRPdXQoKTsKKyAgICBtX3ByaW50ZXIuaGFuZGxlVGltZWRPdXQoKTsKICAgICB0ZXN0RmluaXNo
ZWQoKTsKIH0KIApAQCAtNTYwLDE1ICs1NTksMTAgQEAgdm9pZCBUZXN0U2hlbGw6OmR1bXAoKQog
ICAgIGJvb2wgZHVtcGVkQW55dGhpbmcgPSBmYWxzZTsKIAogICAgIGlmIChzaG91bGREdW1wQXNB
dWRpbykgewotICAgICAgICBtX3ByaW50ZXItPmhhbmRsZUF1ZGlvSGVhZGVyKCk7Ci0KICAgICAg
ICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcmIHdlYkFycmF5QnVmZmVyVmlldyA9
IG1fbGF5b3V0VGVzdENvbnRyb2xsZXItPmF1ZGlvRGF0YSgpOwotICAgICAgICBwcmludGYoIkNv
bnRlbnQtTGVuZ3RoOiAlZFxuIiwgd2ViQXJyYXlCdWZmZXJWaWV3LmJ5dGVMZW5ndGgoKSk7Ci0K
LSAgICAgICAgaWYgKGZ3cml0ZSh3ZWJBcnJheUJ1ZmZlclZpZXcuYmFzZUFkZHJlc3MoKSwgMSwg
d2ViQXJyYXlCdWZmZXJWaWV3LmJ5dGVMZW5ndGgoKSwgc3Rkb3V0KSAhPSB3ZWJBcnJheUJ1ZmZl
clZpZXcuYnl0ZUxlbmd0aCgpKQotICAgICAgICAgICAgRkFUQUwoIlNob3J0IHdyaXRlIHRvIHN0
ZG91dCwgZGlzayBmdWxsP1xuIik7Ci0gICAgICAgIG1fcHJpbnRlci0+aGFuZGxlQXVkaW9Gb290
ZXIoKTsKLSAgICAgICAgbV9wcmludGVyLT5oYW5kbGVUZXN0Rm9vdGVyKHRydWUpOworICAgICAg
ICBtX3ByaW50ZXIuaGFuZGxlQXVkaW8od2ViQXJyYXlCdWZmZXJWaWV3LmJhc2VBZGRyZXNzKCks
IHdlYkFycmF5QnVmZmVyVmlldy5ieXRlTGVuZ3RoKCkpOworICAgICAgICBtX3ByaW50ZXIuaGFu
ZGxlQXVkaW9Gb290ZXIoKTsKKyAgICAgICAgbV9wcmludGVyLmhhbmRsZVRlc3RGb290ZXIodHJ1
ZSk7CiAKICAgICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgICAgIGZmbHVzaChzdGRlcnIpOwpA
QCAtNTc3LDcgKzU3MSw3IEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkKIAogICAgIGlmIChtX3Bh
cmFtcy5kdW1wVHJlZSkgewogICAgICAgICBkdW1wZWRBbnl0aGluZyA9IHRydWU7Ci0gICAgICAg
IG1fcHJpbnRlci0+aGFuZGxlVGV4dEhlYWRlcigpOworICAgICAgICBtX3ByaW50ZXIuaGFuZGxl
VGV4dEhlYWRlcigpOwogICAgICAgICAvLyBUZXh0IG91dHB1dDogdGhlIHRlc3QgcGFnZSBjYW4g
cmVxdWVzdCBkaWZmZXJlbnQgdHlwZXMgb2Ygb3V0cHV0CiAgICAgICAgIC8vIHdoaWNoIHdlIGhh
bmRsZSBoZXJlLgogICAgICAgICBpZiAoIXNob3VsZER1bXBBc1RleHQpIHsKQEAgLTYwNyw3ICs2
MDEsNyBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgpCiAgICAgICAgICAgICBwcmludGYoIiVzIiwg
ZHVtcEFsbEJhY2tGb3J3YXJkTGlzdHMoKS5jX3N0cigpKTsKICAgICB9CiAgICAgaWYgKGR1bXBl
ZEFueXRoaW5nICYmIG1fcGFyYW1zLnByaW50U2VwYXJhdG9ycykKLSAgICAgICAgbV9wcmludGVy
LT5oYW5kbGVUZXh0Rm9vdGVyKCk7CisgICAgICAgIG1fcHJpbnRlci5oYW5kbGVUZXh0Rm9vdGVy
KCk7CiAKICAgICBpZiAobV9wYXJhbXMuZHVtcFBpeGVscyAmJiBzaG91bGRHZW5lcmF0ZVBpeGVs
UmVzdWx0cykgewogICAgICAgICAvLyBJbWFnZSBvdXRwdXQ6IHdlIHdyaXRlIHRoZSBpbWFnZSBk
YXRhIHRvIHRoZSBmaWxlIGdpdmVuIG9uIHRoZQpAQCAtNjUyLDcgKzY0Niw3IEBAIHZvaWQgVGVz
dFNoZWxsOjpkdW1wKCkKIAogICAgICAgICBkdW1wSW1hZ2UobV93ZWJWaWV3SG9zdC0+Y2FudmFz
KCkpOwogICAgIH0KLSAgICBtX3ByaW50ZXItPmhhbmRsZVRlc3RGb290ZXIoZHVtcGVkQW55dGhp
bmcpOworICAgIG1fcHJpbnRlci5oYW5kbGVUZXN0Rm9vdGVyKGR1bXBlZEFueXRoaW5nKTsKICAg
ICBmZmx1c2goc3Rkb3V0KTsKICAgICBmZmx1c2goc3RkZXJyKTsKIH0KQEAgLTcxOSw5ICs3MTMs
OSBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcEltYWdlKFNrQ2FudmFzKiBjYW52YXMpIGNvbnN0CiAg
ICAgICAgICAgICBzb3VyY2VCaXRtYXAuaGVpZ2h0KCksIHN0YXRpY19jYXN0PGludD4oc291cmNl
Qml0bWFwLnJvd0J5dGVzKCkpLCBkaXNjYXJkVHJhbnNwYXJlbmN5LCBtZDVoYXNoLCAmcG5nKTsK
ICNlbmRpZgogCi0gICAgICAgIG1fcHJpbnRlci0+aGFuZGxlSW1hZ2UobWQ1aGFzaC5jX3N0cigp
LCBtX3BhcmFtcy5waXhlbEhhc2guY19zdHIoKSwgJnBuZ1swXSwgcG5nLnNpemUoKSk7CisgICAg
ICAgIG1fcHJpbnRlci5oYW5kbGVJbWFnZShtZDVoYXNoLmNfc3RyKCksIG1fcGFyYW1zLnBpeGVs
SGFzaC5jX3N0cigpLCAmcG5nWzBdLCBwbmcuc2l6ZSgpKTsKICAgICB9IGVsc2UKLSAgICAgICAg
bV9wcmludGVyLT5oYW5kbGVJbWFnZShtZDVoYXNoLmNfc3RyKCksIG1fcGFyYW1zLnBpeGVsSGFz
aC5jX3N0cigpLCAwLCAwKTsKKyAgICAgICAgbV9wcmludGVyLmhhbmRsZUltYWdlKG1kNWhhc2gu
Y19zdHIoKSwgbV9wYXJhbXMucGl4ZWxIYXNoLmNfc3RyKCksIDAsIDApOwogfQogCiB2b2lkIFRl
c3RTaGVsbDo6YmluZEpTT2JqZWN0c1RvV2luZG93KFdlYkZyYW1lKiBmcmFtZSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKaW5kZXggNTgyYTlkZTg0YWMzNDMwODM2
MzFiNDdkMmMwZGRhNjQ4YmVkOWY3Mi4uN2VhNTc5MDU2NWFiOGY5ZTViNjEwMjAyOWI1NmViN2Q4
YmYyNGJkYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKQEAg
LTk3LDcgKzk3LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIE5v
dGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1
cm4gbV9ub3RpZmljYXRpb25QcmVzZW50ZXIuZ2V0KCk7IH0KICNlbmRpZgotICAgIFRlc3RFdmVu
dFByaW50ZXIqIHByaW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3ByaW50ZXIuZ2V0KCk7IH0KKyAg
ICBjb25zdCBUZXN0RXZlbnRQcmludGVyKiBwcmludGVyKCkgY29uc3QgeyByZXR1cm4gJm1fcHJp
bnRlcjsgfQogCiAgICAgV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgeyByZXR1cm4gJm1f
cHJlZnM7IH0KICAgICB2b2lkIGFwcGx5UHJlZmVyZW5jZXMoKSB7IG1fcHJlZnMuYXBwbHlUbyht
X3dlYlZpZXcpOyB9CkBAIC0xNjcsNiArMTY3LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNE
aXNwbGF5aW5nTW9kYWxEaWFsb2coYm9vbCBpc0Rpc3BsYXlpbmdNb2RhbERpYWxvZykgeyBtX2lz
RGlzcGxheWluZ01vZGFsRGlhbG9nID0gaXNEaXNwbGF5aW5nTW9kYWxEaWFsb2c7IH0KICAgICBi
b29sIGlzRGlzcGxheWluZ01vZGFsRGlhbG9nKCkgY29uc3QgeyByZXR1cm4gbV9pc0Rpc3BsYXlp
bmdNb2RhbERpYWxvZzsgfQogCisgICAgLy8gU2V0IHdoZXRoZXIgdGhlIGJpbmFyeSBkYXRhIG91
dHB1dCBzaG91bGQgYmUgZW5jb2RlZCBpbiBiYXNlNjQgdGV4dC4KKyAgICB2b2lkIHNldEVuY29k
ZUJpbmFyeShib29sIGVuY29kZUJpbmFyeSkgeyBtX3ByaW50ZXIuc2V0RW5jb2RlQmluYXJ5KGVu
Y29kZUJpbmFyeSk7IH0KKwogICAgIFdlYlZpZXdIb3N0KiBjcmVhdGVOZXdXaW5kb3coY29uc3Qg
V2ViS2l0OjpXZWJVUkwmKTsKICAgICB2b2lkIGNsb3NlV2luZG93KFdlYlZpZXdIb3N0Kik7CiAg
ICAgdm9pZCBjbG9zZVJlbWFpbmluZ1dpbmRvd3MoKTsKQEAgLTIwNyw3ICsyMTAsNyBAQCBwcml2
YXRlOgogICAgIFdlYlZpZXdIb3N0KiBtX2RldlRvb2xzOwogCiAgICAgLy8gQmUgY2FyZWZ1bCBv
ZiB0aGUgZGVzdHJ1Y3Rpb24gb3JkZXIgb2YgdGhlIGZvbGxvd2luZyBvYmplY3RzLgotICAgIE93
blB0cjxUZXN0RXZlbnRQcmludGVyPiBtX3ByaW50ZXI7CisgICAgVGVzdEV2ZW50UHJpbnRlciBt
X3ByaW50ZXI7CiAgICAgT3duUHRyPFdlYlBlcm1pc3Npb25zPiBtX3dlYlBlcm1pc3Npb25zOwog
ICAgIE93blB0cjxEUlREZXZUb29sc0FnZW50PiBtX2RydERldlRvb2xzQWdlbnQ7CiAgICAgT3du
UHRyPERSVERldlRvb2xzQ2xpZW50PiBtX2RydERldlRvb2xzQ2xpZW50OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lk
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9h
bmRyb2lkLnB5CmluZGV4IDU2N2YzYWVhOGJmMzAyZmVjZTA2MGE2MDY0ZjlmYWFkNjBjZTZlNTIu
LmFlNDMwZDI2Y2ZkZWJiZjE5OTM1ZTgxMDI3ZDBlOWZkYzNmZGQzNmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X2FuZHJvaWQucHkKQEAgLTE1NSw2ICsxNTUsMTAgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkUG9y
dChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBw
b3J0X25hbWUsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoQ2hyb21pdW1BbmRyb2lkUG9ydCwg
c2VsZikuX19pbml0X18oaG9zdCwgcG9ydF9uYW1lLCAqKmt3YXJncykKIAorICAgICAgICBpZiBu
b3QgaGFzYXR0cihzZWxmLl9vcHRpb25zLCAnYWRkaXRpb25hbF9kcnRfZmxhZycpOgorICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy5hZGRpdGlvbmFsX2RydF9mbGFnID0gW10KKyAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5hZGRpdGlvbmFsX2RydF9mbGFnLmFwcGVuZCgnLS1lbmNvZGUtYmluYXJ5JykK
KwogICAgICAgICAjIFRoZSBDaHJvbWl1bSBwb3J0IGZvciBBbmRyb2lkIGFsd2F5cyB1c2VzIHRo
ZSBoYXJkd2FyZSBHUFUgcGF0aC4KICAgICAgICAgc2VsZi5fb3B0aW9ucy5lbmFibGVfaGFyZHdh
cmVfZ3B1ID0gVHJ1ZQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>