<?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>22882</bug_id>
          
          <creation_ts>2008-12-16 11:19:58 -0800</creation_ts>
          <short_desc>Make fast\encoding\char-encoding.html not depend on the ability to have reference fragments on data URLs</short_desc>
          <delta_ts>2012-07-19 15:16:26 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>91791</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>xlyuan</reporter>
          <assigned_to name="Jungshik Shin">jshin</assigned_to>
          <cc>ap</cc>
    
    <cc>julian.reschke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>102681</commentid>
    <comment_count>0</comment_count>
    <who name="">xlyuan</who>
    <bug_when>2008-12-16 11:19:58 -0800</bug_when>
    <thetext>1. Currently, fast\encoding\char-encoding.html depend on the ability to have reference fragments on data URLs, it makes the layout test on Chrome fails, modified char-encoding.html and added resources/dummy.html to make this test case can be passed on Chrome
2. Move Mac* encodings to char-encoding-mac.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102682</commentid>
    <comment_count>1</comment_count>
      <attachid>26058</attachid>
    <who name="">xlyuan</who>
    <bug_when>2008-12-16 11:22:17 -0800</bug_when>
    <thetext>Created attachment 26058
Patch file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102842</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-12-17 17:40:54 -0800</bug_when>
    <thetext>*** Bug 22883 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102974</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-19 03:35:43 -0800</bug_when>
    <thetext>The attachment is not a patch, please see &lt;http://webkit.org/coding/contributing.html&gt; for instructions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103721</commentid>
    <comment_count>4</comment_count>
      <attachid>26295</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-12-29 12:55:03 -0800</bug_when>
    <thetext>Created attachment 26295
patch built on top of xlyuan&apos;s change

As in attachment 26058 by Xiaolu, I used a local dummy file access instead of data: . While splitting char-encoding to two tests (char-encoding and char-encoding-mac), I moved the common functions to resources/char-encoding-utils.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103723</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-29 13:16:32 -0800</bug_when>
    <thetext>Could you please add a ChangeLog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103832</commentid>
    <comment_count>6</comment_count>
      <attachid>26324</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-12-30 14:18:51 -0800</bug_when>
    <thetext>Created attachment 26324
patch with ChangeLog

Oops. Now this one has the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103833</commentid>
    <comment_count>7</comment_count>
      <attachid>26325</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-12-30 14:23:05 -0800</bug_when>
    <thetext>Created attachment 26325
patch with changelog diff fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103874</commentid>
    <comment_count>8</comment_count>
      <attachid>26325</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-31 00:00:09 -0800</bug_when>
    <thetext>Comment on attachment 26325
patch with changelog diff fixed

&gt; +        possible to to skip it.

Typo: &quot;to to&quot;.

&gt; +        - Enable UTF-8 test for U+221A

How did you ensure that this is safe now? Did you test on Tiger?

This should really be mentioned in ChangeLog.

&gt; +        * fast/encoding/resources/char-encoding-utils.js: Added.
&gt; +        (encode):
&gt; +        (testsDone):
&gt; +        (processResult):
&gt; +        (subframeLoaded):
&gt; +        (loadTimedOut):
&gt; +        (runTest):
&gt; +        (testEncode):

We normally try to describe changes for each file, not just as a global overview. This is not very important in this case, but I think that you could omit function names for brevity, as you don&apos;t have descriptions of individual changes anyway.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104470</commentid>
    <comment_count>9</comment_count>
      <attachid>26437</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-01-05 13:07:38 -0800</bug_when>
    <thetext>Created attachment 26437
updated patch with ap&apos;s review comments addressed

Moving r+ flag from the previous patch. I addressed ap&apos;s review comments:

I got rid of function names in ChangeLog. 
I also left alone the UTF-8 test case (i.e. it&apos;s still commented out) because I don&apos;t have an access to Tiger. I mistakenly thought that the issue was across platforms and not using &apos;data&apos; url would resolve it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105189</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-11 01:41:27 -0800</bug_when>
    <thetext>Committed revision 39787.

I had to remove UTF-8 test results from expected results file to make the test pass.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26058</attachid>
            <date>2008-12-16 11:22:17 -0800</date>
            <delta_ts>2008-12-29 12:55:03 -0800</delta_ts>
            <desc>Patch file</desc>
            <filename>char-encoding.html</filename>
            <type>text/plain</type>
            <size>3758</size>
            <attacher>xlyuan</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+CjxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgo8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KPGZvcm0gaWQ9ImZvcm0iIHRhcmdl
dD0ic3ViZnJhbWUiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dCIgbmFtZT0idGV4dCI+PC9m
b3JtPgo8aWZyYW1lIGlkPSJzdWJmcmFtZSIgbmFtZT0ic3ViZnJhbWUiPjwvaWZyYW1lPgo8c2Ny
aXB0PgoKCnZhciBjaGFyc2V0cyA9IG5ldyBBcnJheTsKdmFyIHVuaWNvZGVzID0gbmV3IEFycmF5
Owp2YXIgZXhwZWN0ZWRSZXN1bHRzID0gbmV3IEFycmF5OwoKdmFyIHJlc3VsdHMgPSBuZXcgT2Jq
ZWN0OwoKdmFyIGkgPSAwOwoKZnVuY3Rpb24gZW5jb2RlKGNoYXJzZXQsIHVuaWNvZGUpCnsKICAg
IC8vIFJldHVybnMgYSB2YWx1ZSBhbHJlYWR5IGVuY29kZWQsIHNpbmNlIHdlIGNhbid0IGRvIGl0
IHN5bmNocm9ub3VzbHkuCiAgICByZXR1cm4gcmVzdWx0c1tjaGFyc2V0XVt1bmljb2RlXTsKfQoK
ZnVuY3Rpb24gdGVzdHNEb25lKCkKewogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZm9ybScpOwogICAgdmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3N1YmZyYW1lJyk7CgogICAgZm9ybS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZvcm0pOwogICAg
c3ViZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdWJmcmFtZSk7CgogICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgZW5jb2RpbmcgY2hhcmFjdGVycyBpbiB2YXJpb3VzIGNoYXJhY3RlciBz
ZXRzLiIpOwoKICAgIGZvciAoaSA9IDA7IGkgPCBjaGFyc2V0cy5sZW5ndGg7ICsraSkgewogICAg
ICAgIHNob3VsZEJlKCJlbmNvZGUoJyIgKyBjaGFyc2V0c1tpXSArICInLCAnIiArIHVuaWNvZGVz
W2ldICsgIicpIiwgIiciICsgZXhwZWN0ZWRSZXN1bHRzW2ldICsgIiciKTsKICAgIH0KCiAgICBp
c1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwoKICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwp9Cgp2YXIgdGlt
ZW91dCA9IG51bGw7CgpmdW5jdGlvbiBwcm9jZXNzUmVzdWx0KHJlc3VsdCkKewogICAgdmFyIGNo
YXJzZXRSZXN1bHRzID0gcmVzdWx0c1tjaGFyc2V0c1tpXV07CiAgICBpZiAoIWNoYXJzZXRSZXN1
bHRzKSB7CiAgICAgICAgY2hhcnNldFJlc3VsdHMgPSBuZXcgT2JqZWN0OwogICAgICAgIHJlc3Vs
dHNbY2hhcnNldHNbaV1dID0gY2hhcnNldFJlc3VsdHM7CiAgICB9CiAgICBjaGFyc2V0UmVzdWx0
c1t1bmljb2Rlc1tpXV0gPSByZXN1bHQ7IAp9CgpmdW5jdGlvbiBzdWJmcmFtZUxvYWRlZCgpCnsK
ICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgIHRpbWVvdXQgPSBudWxsOwogICAgdmFyIFVS
TCA9ICIiICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmZyYW1lJykuY29udGVudFdpbmRv
dy5sb2NhdGlvbjsKICAgIHByb2Nlc3NSZXN1bHQoVVJMLnN1YnN0cihVUkwuaW5kZXhPZignPScp
ICsgMSkpOwogICAgKytpOwogICAgcnVuVGVzdCgpOwp9CgovLyBXb3JrYXJvdW5kIGZvciByZGFy
Oi8vcHJvYmxlbS81MTE0Mjk2IG5lZWQgdG8gYWxsb3cgZm9yIAovLyBkb3dubG9hZCBvY2N1cmlu
ZywgYW5kIHRodXMgbm90IHRyaWdnZXJpbmcgc3ViZnJhbWVMb2FkZWQoKQpmdW5jdGlvbiBsb2Fk
VGltZWRPdXQoKQp7CiAgICB0aW1lb3V0ID0gbnVsbDsKICAgIHByb2Nlc3NSZXN1bHQoIkZBSUxF
RCIpOyAgICAKICAgICsraTsKICAgIHJ1blRlc3QoKTsKfQoKZnVuY3Rpb24gcnVuVGVzdCgpCnsg
ICAgCiAgICBpZiAoaSA+PSBjaGFyc2V0cy5sZW5ndGgpIHsKICAgICAgICB0ZXN0c0RvbmUoKTsK
ICAgICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZm9ybScpOwogICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4
dCcpOwogICAgdmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmZyYW1l
Jyk7CgogICAgZm9ybS5hY2NlcHRDaGFyc2V0ID0gY2hhcnNldHNbaV07CiAgICAvL2Zvcm0uYWN0
aW9uID0gImRhdGE6dGV4dC9wbGFpbix4IjsKCWZvcm0uYWN0aW9uID0gIi4uL2pzL3Jlc291cmNl
cy9kdW1teS5odG1sIjsKICAgIHN1YmZyYW1lLm9ubG9hZCA9IHN1YmZyYW1lTG9hZGVkOwogICAg
dGV4dC52YWx1ZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodW5pY29kZXNbaV0ucmVwbGFjZSgnVSsn
LCAnMHgnKSk7CiAgICAKICAgIC8vIFdvcmthcm91bmQgZm9yIHJkYXI6Ly9wcm9ibGVtLzUxMTQy
OTYKICAgIC8vIDUwMCBtaWxsaXNlY29uZCB0aW1lb3V0LiBUaGlzIHdpbGwgY2F1c2UgYSBzaWdu
aWZpY2FudCBzbG93ZG93biBvbiBmYWlsdXJlcywgCiAgICAvLyBidXQgc2hvdWxkIGd1YXJhbnRl
ZSB3ZSBkb24ndCBmaXJlIHByZW1hdHVyZWx5CiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChsb2Fk
VGltZWRPdXQsIDUwMCk7CiAgICBmb3JtLnN1Ym1pdCgpOwp9CgpmdW5jdGlvbiB0ZXN0RW5jb2Rl
KGNoYXJzZXROYW1lLCB1bmljb2RlLCBjaGFyYWN0ZXJTZXF1ZW5jZSkKewogICAgY2hhcnNldHMu
cHVzaChjaGFyc2V0TmFtZSk7CiAgICB1bmljb2Rlcy5wdXNoKHVuaWNvZGUpOwogICAgZXhwZWN0
ZWRSZXN1bHRzLnB1c2goY2hhcmFjdGVyU2VxdWVuY2UpOwp9Cgp0ZXN0RW5jb2RlKCJVVEYtOCIs
ICJVKzAwQTAiLCAiJUMyJUEwIik7Ci8vWWVuIHN5bWJvbCBpbiBnYmsKdGVzdEVuY29kZSgnR0JL
JywgJ1UrMDBBNScsICclQTMlQTQnKTsKdGVzdEVuY29kZSgnZ2IyMzEyJywgJ1UrMDBBNScsICcl
QTMlQTQnKTsKdGVzdEVuY29kZSgnR0ItMjMxMi04MCcsICdVKzAwQTUnLCAnJUEzJUE0Jyk7CnRl
c3RFbmNvZGUoJ0VVQy1DTicsICdVKzAwQTUnLCAnJUEzJUE0Jyk7Ci8vRXVybyBzeW1ib2wgaW4g
Z2JrCnRlc3RFbmNvZGUoJ0dCSycsICdVKzIwQUMnLCAnJTgwJyk7CnRlc3RFbmNvZGUoJ2diMjMx
MicsICdVKzIwQUMnLCAnJTgwJyk7CnRlc3RFbmNvZGUoJ0dCLTIzMTItODAnLCAnVSsyMEFDJywg
JyU4MCcpOwp0ZXN0RW5jb2RlKCdFVUMtQ04nLCAnVSsyMEFDJywgJyU4MCcpOwovL01pc2Mgc3lt
Ym9scyBmcm9tIFRFQyBzcGVjaWZpYyBHQksgdHJhbnNsYXRpb24gCnRlc3RFbmNvZGUoJ0dCSycs
ICdVKzAxRjknLCAnJUE4JUJGJyk7CnRlc3RFbmNvZGUoJ0dCSycsICdVKzFFM0YnLCAnJUE4JUJD
Jyk7CnRlc3RFbmNvZGUoJ0dCSycsICdVKzIyRUYnLCAnJUExJUFEJyk7CnRlc3RFbmNvZGUoJ0dC
SycsICdVKzMwMUMnLCAnJUExJUFCJyk7CgoKLy8gVHVybmluZyBvbiB0aGlzIHRlc3QgY2F1c2Vz
IGEgZG93bmxvYWQgdG8gb2NjdXIuIEZJWE1FOiBBIGJ1Zz8KLy90ZXN0RW5jb2RlKCdVVEYtOCcs
ICdVKzIyMUEnLCAnJUUyJTg4JTlBJyk7CgppZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQogICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwpydW5UZXN0KCk7Cgpz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwoKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26295</attachid>
            <date>2008-12-29 12:55:03 -0800</date>
            <delta_ts>2008-12-30 14:18:51 -0800</delta_ts>
            <desc>patch built on top of xlyuan&apos;s change</desc>
            <filename>22882.patch.1</filename>
            <type>text/plain</type>
            <size>10255</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5n
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzk0OTkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL2NoYXItZW5jb2RpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxNCAr
MTYsNyBAQCBQQVNTIGVuY29kZSgnR0JLJywgJ1UrMDFGOScpIGlzICclQTglQkYnCiBQQVNTIGVu
Y29kZSgnR0JLJywgJ1UrMUUzRicpIGlzICclQTglQkMnCiBQQVNTIGVuY29kZSgnR0JLJywgJ1Ur
MjJFRicpIGlzICclQTElQUQnCiBQQVNTIGVuY29kZSgnR0JLJywgJ1UrMzAxQycpIGlzICclQTEl
QUInCi1QQVNTIGVuY29kZSgnbWFjJywgJ1UrMjIxQScpIGlzICclQzMnCi1QQVNTIGVuY29kZSgn
bWFjaW50b3NoJywgJ1UrMjIxQScpIGlzICclQzMnCi1QQVNTIGVuY29kZSgnTWFjUm9tYW4nLCAn
VSsyMjFBJykgaXMgJyVDMycKLVBBU1MgZW5jb2RlKCd4LW1hYy1ncmVlaycsICdVKzAzOTEnKSBp
cyAnJUIwJwotUEFTUyBlbmNvZGUoJ3gtbWFjLWN5cmlsbGljJywgJ1UrMDQxMCcpIGlzICclODAn
Ci1QQVNTIGVuY29kZSgnbWFjLWN5cmlsbGljJywgJ1UrMDQxMCcpIGlzICclODAnCi1QQVNTIGVu
Y29kZSgneC1tYWMtY2VudHJhbGV1cnJvbWFuJywgJ1UrMDEwMCcpIGlzICclODEnCi1QQVNTIGVu
Y29kZSgneC1tYWMtdHVya2lzaCcsICdVKzAwQzUnKSBpcyAnJTgxJworUEFTUyBlbmNvZGUoJ1VU
Ri04JywgJ1UrMjIxQScpIGlzICclRTIlODglOUEnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
Y2hhci1lbmNvZGluZy1tYWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1tYWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMgdGVzdHMgZW5jb2Rpbmcg
Y2hhcmFjdGVycyBpbiB2YXJpb3VzIGNoYXJhY3RlciBzZXRzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBlbmNvZGUoJ21hYycsICdVKzIyMUEnKSBpcyAnJUMzJworUEFT
UyBlbmNvZGUoJ21hY2ludG9zaCcsICdVKzIyMUEnKSBpcyAnJUMzJworUEFTUyBlbmNvZGUoJ01h
Y1JvbWFuJywgJ1UrMjIxQScpIGlzICclQzMnCitQQVNTIGVuY29kZSgneC1tYWMtZ3JlZWsnLCAn
VSswMzkxJykgaXMgJyVCMCcKK1BBU1MgZW5jb2RlKCd4LW1hYy1jeXJpbGxpYycsICdVKzA0MTAn
KSBpcyAnJTgwJworUEFTUyBlbmNvZGUoJ21hYy1jeXJpbGxpYycsICdVKzA0MTAnKSBpcyAnJTgw
JworUEFTUyBlbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21hbicsICdVKzAxMDAnKSBpcyAnJTgx
JworUEFTUyBlbmNvZGUoJ3gtbWFjLXR1cmtpc2gnLCAnVSswMEM1JykgaXMgJyU4MScKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmctbWFjLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NoYXItZW5jb2RpbmctdXRpbHMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gaWQ9ImZvcm0iIG1ldGhvZD0iR0VUIiB0YXJn
ZXQ9InN1YmZyYW1lIj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRleHQiIG5hbWU9InRleHQiPjwv
Zm9ybT4KKzxpZnJhbWUgaWQ9InN1YmZyYW1lIiBuYW1lPSJzdWJmcmFtZSI+PC9pZnJhbWU+Cis8
c2NyaXB0PgorCisKK3ZhciBjaGFyc2V0cyA9IG5ldyBBcnJheTsKK3ZhciB1bmljb2RlcyA9IG5l
dyBBcnJheTsKK3ZhciBleHBlY3RlZFJlc3VsdHMgPSBuZXcgQXJyYXk7CisKK3ZhciByZXN1bHRz
ID0gbmV3IE9iamVjdDsKKwordmFyIGkgPSAwOworCit2YXIgdGltZW91dCA9IG51bGw7CisKKy8v
IExlZ2FjeSBNYWMgZW5jb2RpbmdzLgordGVzdEVuY29kZSgnbWFjJywgJ1UrMjIxQScsICclQzMn
KTsKK3Rlc3RFbmNvZGUoJ21hY2ludG9zaCcsICdVKzIyMUEnLCAnJUMzJyk7Cit0ZXN0RW5jb2Rl
KCdNYWNSb21hbicsICdVKzIyMUEnLCAnJUMzJyk7Cit0ZXN0RW5jb2RlKCd4LW1hYy1ncmVlaycs
ICdVKzAzOTEnLCAnJUIwJyk7Cit0ZXN0RW5jb2RlKCd4LW1hYy1jeXJpbGxpYycsICdVKzA0MTAn
LCAnJTgwJyk7Cit0ZXN0RW5jb2RlKCdtYWMtY3lyaWxsaWMnLCAnVSswNDEwJywgJyU4MCcpOwor
dGVzdEVuY29kZSgneC1tYWMtY2VudHJhbGV1cnJvbWFuJywgJ1UrMDEwMCcsICclODEnKTsKK3Rl
c3RFbmNvZGUoJ3gtbWFjLXR1cmtpc2gnLCAnVSswMEM1JywgJyU4MScpOworCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKK3J1blRlc3QoKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZW5jb2RpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL2NoYXItZW5jb2RpbmcuaHRtbAkocmV2aXNpb24gMzk0OTkpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMSAr
MywxMiBAQAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NoYXItZW5j
b2RpbmctdXRpbHMuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGZvcm0gaWQ9ImZvcm0iIHRh
cmdldD0ic3ViZnJhbWUiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dCIgbmFtZT0idGV4dCI+
PC9mb3JtPgorPGZvcm0gaWQ9ImZvcm0iIG1ldGhvZD0iR0VUIiB0YXJnZXQ9InN1YmZyYW1lIj48
aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRleHQiIG5hbWU9InRleHQiPjwvZm9ybT4KIDxpZnJhbWUg
aWQ9InN1YmZyYW1lIiBuYW1lPSJzdWJmcmFtZSI+PC9pZnJhbWU+CiA8c2NyaXB0PgogCkBAIC0y
MCw5NCArMjEsOCBAQCB2YXIgcmVzdWx0cyA9IG5ldyBPYmplY3Q7CiAKIHZhciBpID0gMDsKIAot
ZnVuY3Rpb24gZW5jb2RlKGNoYXJzZXQsIHVuaWNvZGUpCi17Ci0gICAgLy8gUmV0dXJucyBhIHZh
bHVlIGFscmVhZHkgZW5jb2RlZCwgc2luY2Ugd2UgY2FuJ3QgZG8gaXQgc3luY2hyb25vdXNseS4K
LSAgICByZXR1cm4gcmVzdWx0c1tjaGFyc2V0XVt1bmljb2RlXTsKLX0KLQotZnVuY3Rpb24gdGVz
dHNEb25lKCkKLXsKLSAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jt
Jyk7Ci0gICAgdmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmZyYW1l
Jyk7Ci0KLSAgICBmb3JtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZm9ybSk7Ci0gICAgc3ViZnJh
bWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdWJmcmFtZSk7Ci0KLSAgICBkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0cyBlbmNvZGluZyBjaGFyYWN0ZXJzIGluIHZhcmlvdXMgY2hhcmFjdGVyIHNldHMu
Iik7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgY2hhcnNldHMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgc2hvdWxkQmUoImVuY29kZSgnIiArIGNoYXJzZXRzW2ldICsgIicsICciICsgdW5pY29kZXNb
aV0gKyAiJykiLCAiJyIgKyBleHBlY3RlZFJlc3VsdHNbaV0gKyAiJyIpOwotICAgIH0KLQotICAg
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19Ci0K
IHZhciB0aW1lb3V0ID0gbnVsbDsKIAotZnVuY3Rpb24gcHJvY2Vzc1Jlc3VsdChyZXN1bHQpCi17
Ci0gICAgdmFyIGNoYXJzZXRSZXN1bHRzID0gcmVzdWx0c1tjaGFyc2V0c1tpXV07Ci0gICAgaWYg
KCFjaGFyc2V0UmVzdWx0cykgewotICAgICAgICBjaGFyc2V0UmVzdWx0cyA9IG5ldyBPYmplY3Q7
Ci0gICAgICAgIHJlc3VsdHNbY2hhcnNldHNbaV1dID0gY2hhcnNldFJlc3VsdHM7Ci0gICAgfQot
ICAgIGNoYXJzZXRSZXN1bHRzW3VuaWNvZGVzW2ldXSA9IHJlc3VsdDsgCi19Ci0KLWZ1bmN0aW9u
IHN1YmZyYW1lTG9hZGVkKCkKLXsKLSAgICBjbGVhclRpbWVvdXQodGltZW91dCk7Ci0gICAgdGlt
ZW91dCA9IG51bGw7Ci0gICAgdmFyIFVSTCA9ICIiICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3N1YmZyYW1lJykuY29udGVudFdpbmRvdy5sb2NhdGlvbjsKLSAgICBwcm9jZXNzUmVzdWx0KFVS
TC5zdWJzdHIoVVJMLmluZGV4T2YoJz0nKSArIDEpKTsKLSAgICArK2k7Ci0gICAgcnVuVGVzdCgp
OwotfQotCi0vLyBXb3JrYXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS81MTE0Mjk2IG5lZWQgdG8g
YWxsb3cgZm9yIAotLy8gZG93bmxvYWQgb2NjdXJpbmcsIGFuZCB0aHVzIG5vdCB0cmlnZ2VyaW5n
IHN1YmZyYW1lTG9hZGVkKCkKLWZ1bmN0aW9uIGxvYWRUaW1lZE91dCgpCi17Ci0gICAgdGltZW91
dCA9IG51bGw7Ci0gICAgcHJvY2Vzc1Jlc3VsdCgiRkFJTEVEIik7ICAgIAotICAgICsraTsKLSAg
ICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQoteyAgICAKLSAgICBpZiAoaSA+
PSBjaGFyc2V0cy5sZW5ndGgpIHsKLSAgICAgICAgdGVzdHNEb25lKCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jt
Jyk7Ci0gICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dCcpOwotICAg
IHZhciBzdWJmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpOwotCi0g
ICAgZm9ybS5hY2NlcHRDaGFyc2V0ID0gY2hhcnNldHNbaV07Ci0gICAgZm9ybS5hY3Rpb24gPSAi
ZGF0YTp0ZXh0L3BsYWluLHgiOwotICAgIHN1YmZyYW1lLm9ubG9hZCA9IHN1YmZyYW1lTG9hZGVk
OwotICAgIHRleHQudmFsdWUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHVuaWNvZGVzW2ldLnJlcGxh
Y2UoJ1UrJywgJzB4JykpOwotICAgIAotICAgIC8vIFdvcmthcm91bmQgZm9yIHJkYXI6Ly9wcm9i
bGVtLzUxMTQyOTYKLSAgICAvLyA1MDAgbWlsbGlzZWNvbmQgdGltZW91dC4gVGhpcyB3aWxsIGNh
dXNlIGEgc2lnbmlmaWNhbnQgc2xvd2Rvd24gb24gZmFpbHVyZXMsIAotICAgIC8vIGJ1dCBzaG91
bGQgZ3VhcmFudGVlIHdlIGRvbid0IGZpcmUgcHJlbWF0dXJlbHkKLSAgICB0aW1lb3V0ID0gc2V0
VGltZW91dChsb2FkVGltZWRPdXQsIDUwMCk7Ci0gICAgZm9ybS5zdWJtaXQoKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdEVuY29kZShjaGFyc2V0TmFtZSwgdW5pY29kZSwgY2hhcmFjdGVyU2VxdWVuY2Up
Ci17Ci0gICAgY2hhcnNldHMucHVzaChjaGFyc2V0TmFtZSk7Ci0gICAgdW5pY29kZXMucHVzaCh1
bmljb2RlKTsKLSAgICBleHBlY3RlZFJlc3VsdHMucHVzaChjaGFyYWN0ZXJTZXF1ZW5jZSk7Ci19
Ci0KIHRlc3RFbmNvZGUoIlVURi04IiwgIlUrMDBBMCIsICIlQzIlQTAiKTsKIC8vWWVuIHN5bWJv
bCBpbiBnYmsKIHRlc3RFbmNvZGUoJ0dCSycsICdVKzAwQTUnLCAnJUEzJUE0Jyk7CkBAIC0xMjUs
MTggKzQwLDcgQEAgdGVzdEVuY29kZSgnR0JLJywgJ1UrMUUzRicsICclQTglQkMnKTsKIHRlc3RF
bmNvZGUoJ0dCSycsICdVKzIyRUYnLCAnJUExJUFEJyk7CiB0ZXN0RW5jb2RlKCdHQksnLCAnVSsz
MDFDJywgJyVBMSVBQicpOwogCi0vLyBMZWdhY3kgTWFjIGVuY29kaW5ncy4KLXRlc3RFbmNvZGUo
J21hYycsICdVKzIyMUEnLCAnJUMzJyk7Ci10ZXN0RW5jb2RlKCdtYWNpbnRvc2gnLCAnVSsyMjFB
JywgJyVDMycpOwotdGVzdEVuY29kZSgnTWFjUm9tYW4nLCAnVSsyMjFBJywgJyVDMycpOwotdGVz
dEVuY29kZSgneC1tYWMtZ3JlZWsnLCAnVSswMzkxJywgJyVCMCcpOwotdGVzdEVuY29kZSgneC1t
YWMtY3lyaWxsaWMnLCAnVSswNDEwJywgJyU4MCcpOwotdGVzdEVuY29kZSgnbWFjLWN5cmlsbGlj
JywgJ1UrMDQxMCcsICclODAnKTsKLXRlc3RFbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21hbics
ICdVKzAxMDAnLCAnJTgxJyk7Ci10ZXN0RW5jb2RlKCd4LW1hYy10dXJraXNoJywgJ1UrMDBDNScs
ICclODEnKTsKLQotLy8gVHVybmluZyBvbiB0aGlzIHRlc3QgY2F1c2VzIGEgZG93bmxvYWQgdG8g
b2NjdXIuIEZJWE1FOiBBIGJ1Zz8KLS8vdGVzdEVuY29kZSgnVVRGLTgnLCAnVSsyMjFBJywgJyVF
MiU4OCU5QScpOwordGVzdEVuY29kZSgnVVRGLTgnLCAnVSsyMjFBJywgJyVFMiU4OCU5QScpOwog
CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVz
b3VyY2VzL2NoYXItZW5jb2RpbmctdXRpbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy11dGlscy5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2NoYXItZW5jb2Rpbmct
dXRpbHMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODcgQEAKK2Z1bmN0aW9uIGVuY29kZShj
aGFyc2V0LCB1bmljb2RlKQoreworICAgIC8vIFJldHVybnMgYSB2YWx1ZSBhbHJlYWR5IGVuY29k
ZWQsIHNpbmNlIHdlIGNhbid0IGRvIGl0IHN5bmNocm9ub3VzbHkuCisgICAgcmV0dXJuIHJlc3Vs
dHNbY2hhcnNldF1bdW5pY29kZV07Cit9CisKK2Z1bmN0aW9uIHRlc3RzRG9uZSgpCit7CisgICAg
dmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOworICAgIHZhciBzdWJm
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpOworCisgICAgZm9ybS5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKGZvcm0pOworICAgIHN1YmZyYW1lLnBhcmVudE5vZGUucmVt
b3ZlQ2hpbGQoc3ViZnJhbWUpOworCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgZW5jb2Rp
bmcgY2hhcmFjdGVycyBpbiB2YXJpb3VzIGNoYXJhY3RlciBzZXRzLiIpOworCisgICAgZm9yIChp
ID0gMDsgaSA8IGNoYXJzZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKCJlbmNv
ZGUoJyIgKyBjaGFyc2V0c1tpXSArICInLCAnIiArIHVuaWNvZGVzW2ldICsgIicpIiwgIiciICsg
ZXhwZWN0ZWRSZXN1bHRzW2ldICsgIiciKTsKKyAgICB9CisKKyAgICBpc1N1Y2Nlc3NmdWxseVBh
cnNlZCgpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgdGltZW91dCA9IG51
bGw7CisKK2Z1bmN0aW9uIHByb2Nlc3NSZXN1bHQocmVzdWx0KQoreworICAgIHZhciBjaGFyc2V0
UmVzdWx0cyA9IHJlc3VsdHNbY2hhcnNldHNbaV1dOworICAgIGlmICghY2hhcnNldFJlc3VsdHMp
IHsKKyAgICAgICAgY2hhcnNldFJlc3VsdHMgPSBuZXcgT2JqZWN0OworICAgICAgICByZXN1bHRz
W2NoYXJzZXRzW2ldXSA9IGNoYXJzZXRSZXN1bHRzOworICAgIH0KKyAgICBjaGFyc2V0UmVzdWx0
c1t1bmljb2Rlc1tpXV0gPSByZXN1bHQ7IAorfQorCitmdW5jdGlvbiBzdWJmcmFtZUxvYWRlZCgp
Cit7CisgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOworICAgIHRpbWVvdXQgPSBudWxsOworICAg
IHZhciBVUkwgPSAiIiArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpLmNvbnRl
bnRXaW5kb3cubG9jYXRpb247CisgICAgcHJvY2Vzc1Jlc3VsdChVUkwuc3Vic3RyKFVSTC5pbmRl
eE9mKCc9JykgKyAxKSk7CisgICAgKytpOworICAgIHJ1blRlc3QoKTsKK30KKworLy8gV29ya2Fy
b3VuZCBmb3IgcmRhcjovL3Byb2JsZW0vNTExNDI5NiBuZWVkIHRvIGFsbG93IGZvciAKKy8vIGRv
d25sb2FkIG9jY3VyaW5nLCBhbmQgdGh1cyBub3QgdHJpZ2dlcmluZyBzdWJmcmFtZUxvYWRlZCgp
CitmdW5jdGlvbiBsb2FkVGltZWRPdXQoKQoreworICAgIHRpbWVvdXQgPSBudWxsOworICAgIHBy
b2Nlc3NSZXN1bHQoIkZBSUxFRCIpOyAgICAKKyAgICArK2k7CisgICAgcnVuVGVzdCgpOworfQor
CitmdW5jdGlvbiBydW5UZXN0KCkKK3sgICAgCisgICAgaWYgKGkgPj0gY2hhcnNldHMubGVuZ3Ro
KSB7CisgICAgICAgIHRlc3RzRG9uZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
dmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOworICAgIHZhciB0ZXh0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQnKTsKKyAgICB2YXIgc3ViZnJhbWUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ViZnJhbWUnKTsKKworICAgIGZvcm0uYWNjZXB0Q2hh
cnNldCA9IGNoYXJzZXRzW2ldOworICAgIGZvcm0uYWN0aW9uID0gInJlc291cmNlcy9kdW1teS5o
dG1sIjsKKyAgICBzdWJmcmFtZS5vbmxvYWQgPSBzdWJmcmFtZUxvYWRlZDsKKyAgICB0ZXh0LnZh
bHVlID0gU3RyaW5nLmZyb21DaGFyQ29kZSh1bmljb2Rlc1tpXS5yZXBsYWNlKCdVKycsICcweCcp
KTsKKyAgICAKKyAgICAvLyBXb3JrYXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS81MTE0Mjk2Cisg
ICAgLy8gNTAwIG1pbGxpc2Vjb25kIHRpbWVvdXQuIFRoaXMgd2lsbCBjYXVzZSBhIHNpZ25pZmlj
YW50IHNsb3dkb3duIG9uIGZhaWx1cmVzLCAKKyAgICAvLyBidXQgc2hvdWxkIGd1YXJhbnRlZSB3
ZSBkb24ndCBmaXJlIHByZW1hdHVyZWx5CisgICAgdGltZW91dCA9IHNldFRpbWVvdXQobG9hZFRp
bWVkT3V0LCA1MDApOworICAgIGZvcm0uc3VibWl0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFbmNv
ZGUoY2hhcnNldE5hbWUsIHVuaWNvZGUsIGNoYXJhY3RlclNlcXVlbmNlKQoreworICAgIGNoYXJz
ZXRzLnB1c2goY2hhcnNldE5hbWUpOworICAgIHVuaWNvZGVzLnB1c2godW5pY29kZSk7CisgICAg
ZXhwZWN0ZWRSZXN1bHRzLnB1c2goY2hhcmFjdGVyU2VxdWVuY2UpOworfQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvZHVtbXkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26324</attachid>
            <date>2008-12-30 14:18:51 -0800</date>
            <delta_ts>2008-12-30 14:23:05 -0800</delta_ts>
            <desc>patch with ChangeLog</desc>
            <filename>22882.patch.1</filename>
            <type>text/plain</type>
            <size>12389</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM5NTE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDgtMTItMjkgIEp1bmdzaGlrIFNoaW4gIDxq
c2hpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPb3BzKQor
CisgICAgICAgIC0gTWFrZSBmYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmcgdGVzdCB3b3JrIHdp
dGggQ2hyb21pdW0gYnkgcmVwbGFjaW5nCisgICAgICAgICdkYXRhOicgd2l0aCAnZmlsZTonIHBv
aW50aW5nIHRvIHJlc291cmNlcy9kdW1teS5odG1sIChhbiBlbXB0eSBmaWxlKS4KKyAgICAgICAg
LSBQdXQgb2xkIE1hYyBlbmNvZGluZ3MgaW4gYSBzZXBhcmF0ZSBjaGFyLWVuY29kaW5nLW1hYy5o
dG1sIHRvIG1ha2UgaXQgCisgICAgICAgIHBvc3NpYmxlIHRvIHRvIHNraXAgaXQuCisgICAgICAg
IC0gRmFjdG9yIG91dCBjb21tb24gZnVuY3Rpb25zIGluIGNoYXItZW5jb2RpbmcuaHRtbCBhbmQg
Y2hhci1lbmNvZGluZy1tYWMuaHRtbAorICAgICAgICBhbmQgcHV0IHRoZW0gaW4gY2hhci1lbmNv
ZGluZy11dGlscy5qcworICAgICAgICAtIEVuYWJsZSBVVEYtOCB0ZXN0IGZvciBVKzIyMUEKKwor
ICAgICAgICBTZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4
MgorCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1tYWMuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWw6Cisg
ICAgICAgICogZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy11dGlscy5qczog
QWRkZWQuCisgICAgICAgIChlbmNvZGUpOgorICAgICAgICAodGVzdHNEb25lKToKKyAgICAgICAg
KHByb2Nlc3NSZXN1bHQpOgorICAgICAgICAoc3ViZnJhbWVMb2FkZWQpOgorICAgICAgICAobG9h
ZFRpbWVkT3V0KToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAodGVzdEVuY29kZSk6Cisg
ICAgICAgICogZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvZHVtbXkuaHRtbDogQWRkZWQuCisKIDIw
MDgtMTItMjkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBDYW1lcm9uIFp3YXJpY2guCkBAIC04MjAsNiArODQ3LDcgQEAKICAgICAgICAgKiB0
cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGhvdXQtdW5pdHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KICAgICAgICAgKiB0cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGhvdXQtdW5pdHMuaHRt
bDogQWRkZWQuCiAKKz4+Pj4+Pj4gLnIzOTQ5OQogMjAwOC0xMi0xNSAgU2ltb24gSGF1c21hbm4g
IDxoYXVzbWFubkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5
dGhlci4KQEAgLTEyNzUsNiArMTMwMyw3IEBACiAgICAgICAgICogZmFzdC9jc3MvbWFzay1taXNz
aW5nLWltYWdlLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgICogZmFzdC9jc3Mv
bWFzay1taXNzaW5nLWltYWdlLWNyYXNoLmh0bWw6IEFkZGVkLgogCis+Pj4+Pj4+IC5yMzkzMDUK
IDIwMDgtMTItMDkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhbiBCZXJuc3RlaW4uCkBAIC0yMDUwLDYgKzIwNzksNyBA
QAogICAgICAgICAqIGZhc3QvcmVnZXgvYWx0ZXJuYXRpdmUtbGVuZ3RoLW1pc2NhbGN1bGF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgICogZmFzdC9yZWdleC9hbHRlcm5hdGl2ZS1s
ZW5ndGgtbWlzY2FsY3VsYXRpb24uaHRtbDogQWRkZWQuCiAKKz4+Pj4+Pj4gLnIzOTE0NwogMjAw
OC0xMi0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZW5jb2RpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDM5NDk5KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTYsMTQgKzE2LDcgQEAgUEFTUyBlbmNvZGUoJ0dCSycsICdVKzAx
RjknKSBpcyAnJUE4JUJGJwogUEFTUyBlbmNvZGUoJ0dCSycsICdVKzFFM0YnKSBpcyAnJUE4JUJD
JwogUEFTUyBlbmNvZGUoJ0dCSycsICdVKzIyRUYnKSBpcyAnJUExJUFEJwogUEFTUyBlbmNvZGUo
J0dCSycsICdVKzMwMUMnKSBpcyAnJUExJUFCJwotUEFTUyBlbmNvZGUoJ21hYycsICdVKzIyMUEn
KSBpcyAnJUMzJwotUEFTUyBlbmNvZGUoJ21hY2ludG9zaCcsICdVKzIyMUEnKSBpcyAnJUMzJwot
UEFTUyBlbmNvZGUoJ01hY1JvbWFuJywgJ1UrMjIxQScpIGlzICclQzMnCi1QQVNTIGVuY29kZSgn
eC1tYWMtZ3JlZWsnLCAnVSswMzkxJykgaXMgJyVCMCcKLVBBU1MgZW5jb2RlKCd4LW1hYy1jeXJp
bGxpYycsICdVKzA0MTAnKSBpcyAnJTgwJwotUEFTUyBlbmNvZGUoJ21hYy1jeXJpbGxpYycsICdV
KzA0MTAnKSBpcyAnJTgwJwotUEFTUyBlbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21hbicsICdV
KzAxMDAnKSBpcyAnJTgxJwotUEFTUyBlbmNvZGUoJ3gtbWFjLXR1cmtpc2gnLCAnVSswMEM1Jykg
aXMgJyU4MScKK1BBU1MgZW5jb2RlKCdVVEYtOCcsICdVKzIyMUEnKSBpcyAnJUUyJTg4JTlBJwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmctbWFjLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmctbWFj
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
Y2hhci1lbmNvZGluZy1tYWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3
IEBACitUaGlzIHRlc3RzIGVuY29kaW5nIGNoYXJhY3RlcnMgaW4gdmFyaW91cyBjaGFyYWN0ZXIg
c2V0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZW5jb2RlKCdtYWMn
LCAnVSsyMjFBJykgaXMgJyVDMycKK1BBU1MgZW5jb2RlKCdtYWNpbnRvc2gnLCAnVSsyMjFBJykg
aXMgJyVDMycKK1BBU1MgZW5jb2RlKCdNYWNSb21hbicsICdVKzIyMUEnKSBpcyAnJUMzJworUEFT
UyBlbmNvZGUoJ3gtbWFjLWdyZWVrJywgJ1UrMDM5MScpIGlzICclQjAnCitQQVNTIGVuY29kZSgn
eC1tYWMtY3lyaWxsaWMnLCAnVSswNDEwJykgaXMgJyU4MCcKK1BBU1MgZW5jb2RlKCdtYWMtY3ly
aWxsaWMnLCAnVSswNDEwJykgaXMgJyU4MCcKK1BBU1MgZW5jb2RlKCd4LW1hYy1jZW50cmFsZXVy
cm9tYW4nLCAnVSswMTAwJykgaXMgJyU4MScKK1BBU1MgZW5jb2RlKCd4LW1hYy10dXJraXNoJywg
J1UrMDBDNScpIGlzICclODEnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29k
aW5nLW1hYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hh
ci1lbmNvZGluZy1tYWMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY2hhci1lbmNvZGluZy1tYWMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIGlk
PSJmb3JtIiBtZXRob2Q9IkdFVCIgdGFyZ2V0PSJzdWJmcmFtZSI+PGlucHV0IHR5cGU9InRleHQi
IGlkPSJ0ZXh0IiBuYW1lPSJ0ZXh0Ij48L2Zvcm0+Cis8aWZyYW1lIGlkPSJzdWJmcmFtZSIgbmFt
ZT0ic3ViZnJhbWUiPjwvaWZyYW1lPgorPHNjcmlwdD4KKworCit2YXIgY2hhcnNldHMgPSBuZXcg
QXJyYXk7Cit2YXIgdW5pY29kZXMgPSBuZXcgQXJyYXk7Cit2YXIgZXhwZWN0ZWRSZXN1bHRzID0g
bmV3IEFycmF5OworCit2YXIgcmVzdWx0cyA9IG5ldyBPYmplY3Q7CisKK3ZhciBpID0gMDsKKwor
dmFyIHRpbWVvdXQgPSBudWxsOworCisvLyBMZWdhY3kgTWFjIGVuY29kaW5ncy4KK3Rlc3RFbmNv
ZGUoJ21hYycsICdVKzIyMUEnLCAnJUMzJyk7Cit0ZXN0RW5jb2RlKCdtYWNpbnRvc2gnLCAnVSsy
MjFBJywgJyVDMycpOwordGVzdEVuY29kZSgnTWFjUm9tYW4nLCAnVSsyMjFBJywgJyVDMycpOwor
dGVzdEVuY29kZSgneC1tYWMtZ3JlZWsnLCAnVSswMzkxJywgJyVCMCcpOwordGVzdEVuY29kZSgn
eC1tYWMtY3lyaWxsaWMnLCAnVSswNDEwJywgJyU4MCcpOwordGVzdEVuY29kZSgnbWFjLWN5cmls
bGljJywgJ1UrMDQxMCcsICclODAnKTsKK3Rlc3RFbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21h
bicsICdVKzAxMDAnLCAnJTgxJyk7Cit0ZXN0RW5jb2RlKCd4LW1hYy10dXJraXNoJywgJ1UrMDBD
NScsICclODEnKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitydW5UZXN0KCk7CisKK3N1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWwJKHJldmlzaW9u
IDM5NDk5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTMsMTEgKzMsMTIgQEAKIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KIDxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLTxmb3JtIGlkPSJmb3JtIiB0YXJnZXQ9InN1YmZyYW1lIj48aW5wdXQgdHlwZT0idGV4
dCIgaWQ9InRleHQiIG5hbWU9InRleHQiPjwvZm9ybT4KKzxmb3JtIGlkPSJmb3JtIiBtZXRob2Q9
IkdFVCIgdGFyZ2V0PSJzdWJmcmFtZSI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ0ZXh0IiBuYW1l
PSJ0ZXh0Ij48L2Zvcm0+CiA8aWZyYW1lIGlkPSJzdWJmcmFtZSIgbmFtZT0ic3ViZnJhbWUiPjwv
aWZyYW1lPgogPHNjcmlwdD4KIApAQCAtMjAsOTQgKzIxLDggQEAgdmFyIHJlc3VsdHMgPSBuZXcg
T2JqZWN0OwogCiB2YXIgaSA9IDA7CiAKLWZ1bmN0aW9uIGVuY29kZShjaGFyc2V0LCB1bmljb2Rl
KQotewotICAgIC8vIFJldHVybnMgYSB2YWx1ZSBhbHJlYWR5IGVuY29kZWQsIHNpbmNlIHdlIGNh
bid0IGRvIGl0IHN5bmNocm9ub3VzbHkuCi0gICAgcmV0dXJuIHJlc3VsdHNbY2hhcnNldF1bdW5p
Y29kZV07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RzRG9uZSgpCi17Ci0gICAgdmFyIGZvcm0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOwotICAgIHZhciBzdWJmcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpOwotCi0gICAgZm9ybS5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKGZvcm0pOwotICAgIHN1YmZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3ViZnJh
bWUpOwotCi0gICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgZW5jb2RpbmcgY2hhcmFjdGVycyBp
biB2YXJpb3VzIGNoYXJhY3RlciBzZXRzLiIpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IGNoYXJz
ZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHNob3VsZEJlKCJlbmNvZGUoJyIgKyBjaGFyc2V0
c1tpXSArICInLCAnIiArIHVuaWNvZGVzW2ldICsgIicpIiwgIiciICsgZXhwZWN0ZWRSZXN1bHRz
W2ldICsgIiciKTsKLSAgICB9Ci0KLSAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotCi0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOwotfQotCiB2YXIgdGltZW91dCA9IG51bGw7CiAKLWZ1bmN0aW9u
IHByb2Nlc3NSZXN1bHQocmVzdWx0KQotewotICAgIHZhciBjaGFyc2V0UmVzdWx0cyA9IHJlc3Vs
dHNbY2hhcnNldHNbaV1dOwotICAgIGlmICghY2hhcnNldFJlc3VsdHMpIHsKLSAgICAgICAgY2hh
cnNldFJlc3VsdHMgPSBuZXcgT2JqZWN0OwotICAgICAgICByZXN1bHRzW2NoYXJzZXRzW2ldXSA9
IGNoYXJzZXRSZXN1bHRzOwotICAgIH0KLSAgICBjaGFyc2V0UmVzdWx0c1t1bmljb2Rlc1tpXV0g
PSByZXN1bHQ7IAotfQotCi1mdW5jdGlvbiBzdWJmcmFtZUxvYWRlZCgpCi17Ci0gICAgY2xlYXJU
aW1lb3V0KHRpbWVvdXQpOwotICAgIHRpbWVvdXQgPSBudWxsOwotICAgIHZhciBVUkwgPSAiIiAr
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpLmNvbnRlbnRXaW5kb3cubG9jYXRp
b247Ci0gICAgcHJvY2Vzc1Jlc3VsdChVUkwuc3Vic3RyKFVSTC5pbmRleE9mKCc9JykgKyAxKSk7
Ci0gICAgKytpOwotICAgIHJ1blRlc3QoKTsKLX0KLQotLy8gV29ya2Fyb3VuZCBmb3IgcmRhcjov
L3Byb2JsZW0vNTExNDI5NiBuZWVkIHRvIGFsbG93IGZvciAKLS8vIGRvd25sb2FkIG9jY3VyaW5n
LCBhbmQgdGh1cyBub3QgdHJpZ2dlcmluZyBzdWJmcmFtZUxvYWRlZCgpCi1mdW5jdGlvbiBsb2Fk
VGltZWRPdXQoKQotewotICAgIHRpbWVvdXQgPSBudWxsOwotICAgIHByb2Nlc3NSZXN1bHQoIkZB
SUxFRCIpOyAgICAKLSAgICArK2k7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkKLXsgICAgCi0gICAgaWYgKGkgPj0gY2hhcnNldHMubGVuZ3RoKSB7Ci0gICAgICAgIHRl
c3RzRG9uZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdmFyIGZvcm0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOwotICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RleHQnKTsKLSAgICB2YXIgc3ViZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3ViZnJhbWUnKTsKLQotICAgIGZvcm0uYWNjZXB0Q2hhcnNldCA9IGNoYXJzZXRz
W2ldOwotICAgIGZvcm0uYWN0aW9uID0gImRhdGE6dGV4dC9wbGFpbix4IjsKLSAgICBzdWJmcmFt
ZS5vbmxvYWQgPSBzdWJmcmFtZUxvYWRlZDsKLSAgICB0ZXh0LnZhbHVlID0gU3RyaW5nLmZyb21D
aGFyQ29kZSh1bmljb2Rlc1tpXS5yZXBsYWNlKCdVKycsICcweCcpKTsKLSAgICAKLSAgICAvLyBX
b3JrYXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS81MTE0Mjk2Ci0gICAgLy8gNTAwIG1pbGxpc2Vj
b25kIHRpbWVvdXQuIFRoaXMgd2lsbCBjYXVzZSBhIHNpZ25pZmljYW50IHNsb3dkb3duIG9uIGZh
aWx1cmVzLCAKLSAgICAvLyBidXQgc2hvdWxkIGd1YXJhbnRlZSB3ZSBkb24ndCBmaXJlIHByZW1h
dHVyZWx5Ci0gICAgdGltZW91dCA9IHNldFRpbWVvdXQobG9hZFRpbWVkT3V0LCA1MDApOwotICAg
IGZvcm0uc3VibWl0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RFbmNvZGUoY2hhcnNldE5hbWUsIHVu
aWNvZGUsIGNoYXJhY3RlclNlcXVlbmNlKQotewotICAgIGNoYXJzZXRzLnB1c2goY2hhcnNldE5h
bWUpOwotICAgIHVuaWNvZGVzLnB1c2godW5pY29kZSk7Ci0gICAgZXhwZWN0ZWRSZXN1bHRzLnB1
c2goY2hhcmFjdGVyU2VxdWVuY2UpOwotfQotCiB0ZXN0RW5jb2RlKCJVVEYtOCIsICJVKzAwQTAi
LCAiJUMyJUEwIik7CiAvL1llbiBzeW1ib2wgaW4gZ2JrCiB0ZXN0RW5jb2RlKCdHQksnLCAnVSsw
MEE1JywgJyVBMyVBNCcpOwpAQCAtMTI1LDE4ICs0MCw3IEBAIHRlc3RFbmNvZGUoJ0dCSycsICdV
KzFFM0YnLCAnJUE4JUJDJyk7CiB0ZXN0RW5jb2RlKCdHQksnLCAnVSsyMkVGJywgJyVBMSVBRCcp
OwogdGVzdEVuY29kZSgnR0JLJywgJ1UrMzAxQycsICclQTElQUInKTsKIAotLy8gTGVnYWN5IE1h
YyBlbmNvZGluZ3MuCi10ZXN0RW5jb2RlKCdtYWMnLCAnVSsyMjFBJywgJyVDMycpOwotdGVzdEVu
Y29kZSgnbWFjaW50b3NoJywgJ1UrMjIxQScsICclQzMnKTsKLXRlc3RFbmNvZGUoJ01hY1JvbWFu
JywgJ1UrMjIxQScsICclQzMnKTsKLXRlc3RFbmNvZGUoJ3gtbWFjLWdyZWVrJywgJ1UrMDM5MScs
ICclQjAnKTsKLXRlc3RFbmNvZGUoJ3gtbWFjLWN5cmlsbGljJywgJ1UrMDQxMCcsICclODAnKTsK
LXRlc3RFbmNvZGUoJ21hYy1jeXJpbGxpYycsICdVKzA0MTAnLCAnJTgwJyk7Ci10ZXN0RW5jb2Rl
KCd4LW1hYy1jZW50cmFsZXVycm9tYW4nLCAnVSswMTAwJywgJyU4MScpOwotdGVzdEVuY29kZSgn
eC1tYWMtdHVya2lzaCcsICdVKzAwQzUnLCAnJTgxJyk7Ci0KLS8vIFR1cm5pbmcgb24gdGhpcyB0
ZXN0IGNhdXNlcyBhIGRvd25sb2FkIHRvIG9jY3VyLiBGSVhNRTogQSBidWc/Ci0vL3Rlc3RFbmNv
ZGUoJ1VURi04JywgJ1UrMjIxQScsICclRTIlODglOUEnKTsKK3Rlc3RFbmNvZGUoJ1VURi04Jywg
J1UrMjIxQScsICclRTIlODglOUEnKTsKIAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2NoYXItZW5j
b2RpbmctdXRpbHMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3Jlc291cmNlcy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDg3IEBACitmdW5jdGlvbiBlbmNvZGUoY2hhcnNldCwgdW5pY29kZSkKK3sKKyAgICAvLyBSZXR1
cm5zIGEgdmFsdWUgYWxyZWFkeSBlbmNvZGVkLCBzaW5jZSB3ZSBjYW4ndCBkbyBpdCBzeW5jaHJv
bm91c2x5LgorICAgIHJldHVybiByZXN1bHRzW2NoYXJzZXRdW3VuaWNvZGVdOworfQorCitmdW5j
dGlvbiB0ZXN0c0RvbmUoKQoreworICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Zvcm0nKTsKKyAgICB2YXIgc3ViZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c3ViZnJhbWUnKTsKKworICAgIGZvcm0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmb3JtKTsKKyAg
ICBzdWJmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN1YmZyYW1lKTsKKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIGVuY29kaW5nIGNoYXJhY3RlcnMgaW4gdmFyaW91cyBjaGFyYWN0
ZXIgc2V0cy4iKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBjaGFyc2V0cy5sZW5ndGg7ICsraSkg
eworICAgICAgICBzaG91bGRCZSgiZW5jb2RlKCciICsgY2hhcnNldHNbaV0gKyAiJywgJyIgKyB1
bmljb2Rlc1tpXSArICInKSIsICInIiArIGV4cGVjdGVkUmVzdWx0c1tpXSArICInIik7CisgICAg
fQorCisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKwordmFyIHRpbWVvdXQgPSBudWxsOworCitmdW5jdGlvbiBwcm9jZXNzUmVzdWx0KHJl
c3VsdCkKK3sKKyAgICB2YXIgY2hhcnNldFJlc3VsdHMgPSByZXN1bHRzW2NoYXJzZXRzW2ldXTsK
KyAgICBpZiAoIWNoYXJzZXRSZXN1bHRzKSB7CisgICAgICAgIGNoYXJzZXRSZXN1bHRzID0gbmV3
IE9iamVjdDsKKyAgICAgICAgcmVzdWx0c1tjaGFyc2V0c1tpXV0gPSBjaGFyc2V0UmVzdWx0czsK
KyAgICB9CisgICAgY2hhcnNldFJlc3VsdHNbdW5pY29kZXNbaV1dID0gcmVzdWx0OyAKK30KKwor
ZnVuY3Rpb24gc3ViZnJhbWVMb2FkZWQoKQoreworICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsK
KyAgICB0aW1lb3V0ID0gbnVsbDsKKyAgICB2YXIgVVJMID0gIiIgKyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3ViZnJhbWUnKS5jb250ZW50V2luZG93LmxvY2F0aW9uOworICAgIHByb2Nlc3NS
ZXN1bHQoVVJMLnN1YnN0cihVUkwuaW5kZXhPZignPScpICsgMSkpOworICAgICsraTsKKyAgICBy
dW5UZXN0KCk7Cit9CisKKy8vIFdvcmthcm91bmQgZm9yIHJkYXI6Ly9wcm9ibGVtLzUxMTQyOTYg
bmVlZCB0byBhbGxvdyBmb3IgCisvLyBkb3dubG9hZCBvY2N1cmluZywgYW5kIHRodXMgbm90IHRy
aWdnZXJpbmcgc3ViZnJhbWVMb2FkZWQoKQorZnVuY3Rpb24gbG9hZFRpbWVkT3V0KCkKK3sKKyAg
ICB0aW1lb3V0ID0gbnVsbDsKKyAgICBwcm9jZXNzUmVzdWx0KCJGQUlMRUQiKTsgICAgCisgICAg
KytpOworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7ICAgIAorICAg
IGlmIChpID49IGNoYXJzZXRzLmxlbmd0aCkgeworICAgICAgICB0ZXN0c0RvbmUoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Zvcm0nKTsKKyAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0
Jyk7CisgICAgdmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmZyYW1l
Jyk7CisKKyAgICBmb3JtLmFjY2VwdENoYXJzZXQgPSBjaGFyc2V0c1tpXTsKKyAgICBmb3JtLmFj
dGlvbiA9ICJyZXNvdXJjZXMvZHVtbXkuaHRtbCI7CisgICAgc3ViZnJhbWUub25sb2FkID0gc3Vi
ZnJhbWVMb2FkZWQ7CisgICAgdGV4dC52YWx1ZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodW5pY29k
ZXNbaV0ucmVwbGFjZSgnVSsnLCAnMHgnKSk7CisgICAgCisgICAgLy8gV29ya2Fyb3VuZCBmb3Ig
cmRhcjovL3Byb2JsZW0vNTExNDI5NgorICAgIC8vIDUwMCBtaWxsaXNlY29uZCB0aW1lb3V0LiBU
aGlzIHdpbGwgY2F1c2UgYSBzaWduaWZpY2FudCBzbG93ZG93biBvbiBmYWlsdXJlcywgCisgICAg
Ly8gYnV0IHNob3VsZCBndWFyYW50ZWUgd2UgZG9uJ3QgZmlyZSBwcmVtYXR1cmVseQorICAgIHRp
bWVvdXQgPSBzZXRUaW1lb3V0KGxvYWRUaW1lZE91dCwgNTAwKTsKKyAgICBmb3JtLnN1Ym1pdCgp
OworfQorCitmdW5jdGlvbiB0ZXN0RW5jb2RlKGNoYXJzZXROYW1lLCB1bmljb2RlLCBjaGFyYWN0
ZXJTZXF1ZW5jZSkKK3sKKyAgICBjaGFyc2V0cy5wdXNoKGNoYXJzZXROYW1lKTsKKyAgICB1bmlj
b2Rlcy5wdXNoKHVuaWNvZGUpOworICAgIGV4cGVjdGVkUmVzdWx0cy5wdXNoKGNoYXJhY3RlclNl
cXVlbmNlKTsKK30KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2R1
bW15Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26325</attachid>
            <date>2008-12-30 14:23:05 -0800</date>
            <delta_ts>2009-01-05 13:07:38 -0800</delta_ts>
            <desc>patch with changelog diff fixed</desc>
            <filename>22882.patch.1a</filename>
            <type>text/plain</type>
            <size>11591</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM5NTE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDgtMTItMjkgIEp1bmdzaGlrIFNoaW4gIDxq
c2hpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPb3BzKQor
CisgICAgICAgIC0gTWFrZSBmYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmcgdGVzdCB3b3JrIHdp
dGggQ2hyb21pdW0gYnkgcmVwbGFjaW5nCisgICAgICAgICdkYXRhOicgd2l0aCAnZmlsZTonIHBv
aW50aW5nIHRvIHJlc291cmNlcy9kdW1teS5odG1sIChhbiBlbXB0eSBmaWxlKS4KKyAgICAgICAg
LSBQdXQgb2xkIE1hYyBlbmNvZGluZ3MgaW4gYSBzZXBhcmF0ZSBjaGFyLWVuY29kaW5nLW1hYy5o
dG1sIHRvIG1ha2UgaXQgCisgICAgICAgIHBvc3NpYmxlIHRvIHRvIHNraXAgaXQuCisgICAgICAg
IC0gRmFjdG9yIG91dCBjb21tb24gZnVuY3Rpb25zIGluIGNoYXItZW5jb2RpbmcuaHRtbCBhbmQg
Y2hhci1lbmNvZGluZy1tYWMuaHRtbAorICAgICAgICBhbmQgcHV0IHRoZW0gaW4gY2hhci1lbmNv
ZGluZy11dGlscy5qcworICAgICAgICAtIEVuYWJsZSBVVEYtOCB0ZXN0IGZvciBVKzIyMUEKKwor
ICAgICAgICBTZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4
MgorCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1tYWMuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWw6Cisg
ICAgICAgICogZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy11dGlscy5qczog
QWRkZWQuCisgICAgICAgIChlbmNvZGUpOgorICAgICAgICAodGVzdHNEb25lKToKKyAgICAgICAg
KHByb2Nlc3NSZXN1bHQpOgorICAgICAgICAoc3ViZnJhbWVMb2FkZWQpOgorICAgICAgICAobG9h
ZFRpbWVkT3V0KToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAodGVzdEVuY29kZSk6Cisg
ICAgICAgICogZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvZHVtbXkuaHRtbDogQWRkZWQuCisKIDIw
MDgtMTItMjkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBDYW1lcm9uIFp3YXJpY2guCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZW5jb2RpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDM5NDk5KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTYsMTQgKzE2LDcgQEAgUEFTUyBlbmNvZGUoJ0dCSycsICdVKzAx
RjknKSBpcyAnJUE4JUJGJwogUEFTUyBlbmNvZGUoJ0dCSycsICdVKzFFM0YnKSBpcyAnJUE4JUJD
JwogUEFTUyBlbmNvZGUoJ0dCSycsICdVKzIyRUYnKSBpcyAnJUExJUFEJwogUEFTUyBlbmNvZGUo
J0dCSycsICdVKzMwMUMnKSBpcyAnJUExJUFCJwotUEFTUyBlbmNvZGUoJ21hYycsICdVKzIyMUEn
KSBpcyAnJUMzJwotUEFTUyBlbmNvZGUoJ21hY2ludG9zaCcsICdVKzIyMUEnKSBpcyAnJUMzJwot
UEFTUyBlbmNvZGUoJ01hY1JvbWFuJywgJ1UrMjIxQScpIGlzICclQzMnCi1QQVNTIGVuY29kZSgn
eC1tYWMtZ3JlZWsnLCAnVSswMzkxJykgaXMgJyVCMCcKLVBBU1MgZW5jb2RlKCd4LW1hYy1jeXJp
bGxpYycsICdVKzA0MTAnKSBpcyAnJTgwJwotUEFTUyBlbmNvZGUoJ21hYy1jeXJpbGxpYycsICdV
KzA0MTAnKSBpcyAnJTgwJwotUEFTUyBlbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21hbicsICdV
KzAxMDAnKSBpcyAnJTgxJwotUEFTUyBlbmNvZGUoJ3gtbWFjLXR1cmtpc2gnLCAnVSswMEM1Jykg
aXMgJyU4MScKK1BBU1MgZW5jb2RlKCdVVEYtOCcsICdVKzIyMUEnKSBpcyAnJUUyJTg4JTlBJwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmctbWFjLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmctbWFj
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
Y2hhci1lbmNvZGluZy1tYWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3
IEBACitUaGlzIHRlc3RzIGVuY29kaW5nIGNoYXJhY3RlcnMgaW4gdmFyaW91cyBjaGFyYWN0ZXIg
c2V0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZW5jb2RlKCdtYWMn
LCAnVSsyMjFBJykgaXMgJyVDMycKK1BBU1MgZW5jb2RlKCdtYWNpbnRvc2gnLCAnVSsyMjFBJykg
aXMgJyVDMycKK1BBU1MgZW5jb2RlKCdNYWNSb21hbicsICdVKzIyMUEnKSBpcyAnJUMzJworUEFT
UyBlbmNvZGUoJ3gtbWFjLWdyZWVrJywgJ1UrMDM5MScpIGlzICclQjAnCitQQVNTIGVuY29kZSgn
eC1tYWMtY3lyaWxsaWMnLCAnVSswNDEwJykgaXMgJyU4MCcKK1BBU1MgZW5jb2RlKCdtYWMtY3ly
aWxsaWMnLCAnVSswNDEwJykgaXMgJyU4MCcKK1BBU1MgZW5jb2RlKCd4LW1hYy1jZW50cmFsZXVy
cm9tYW4nLCAnVSswMTAwJykgaXMgJyU4MScKK1BBU1MgZW5jb2RlKCd4LW1hYy10dXJraXNoJywg
J1UrMDBDNScpIGlzICclODEnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29k
aW5nLW1hYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hh
ci1lbmNvZGluZy1tYWMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY2hhci1lbmNvZGluZy1tYWMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIGlk
PSJmb3JtIiBtZXRob2Q9IkdFVCIgdGFyZ2V0PSJzdWJmcmFtZSI+PGlucHV0IHR5cGU9InRleHQi
IGlkPSJ0ZXh0IiBuYW1lPSJ0ZXh0Ij48L2Zvcm0+Cis8aWZyYW1lIGlkPSJzdWJmcmFtZSIgbmFt
ZT0ic3ViZnJhbWUiPjwvaWZyYW1lPgorPHNjcmlwdD4KKworCit2YXIgY2hhcnNldHMgPSBuZXcg
QXJyYXk7Cit2YXIgdW5pY29kZXMgPSBuZXcgQXJyYXk7Cit2YXIgZXhwZWN0ZWRSZXN1bHRzID0g
bmV3IEFycmF5OworCit2YXIgcmVzdWx0cyA9IG5ldyBPYmplY3Q7CisKK3ZhciBpID0gMDsKKwor
dmFyIHRpbWVvdXQgPSBudWxsOworCisvLyBMZWdhY3kgTWFjIGVuY29kaW5ncy4KK3Rlc3RFbmNv
ZGUoJ21hYycsICdVKzIyMUEnLCAnJUMzJyk7Cit0ZXN0RW5jb2RlKCdtYWNpbnRvc2gnLCAnVSsy
MjFBJywgJyVDMycpOwordGVzdEVuY29kZSgnTWFjUm9tYW4nLCAnVSsyMjFBJywgJyVDMycpOwor
dGVzdEVuY29kZSgneC1tYWMtZ3JlZWsnLCAnVSswMzkxJywgJyVCMCcpOwordGVzdEVuY29kZSgn
eC1tYWMtY3lyaWxsaWMnLCAnVSswNDEwJywgJyU4MCcpOwordGVzdEVuY29kZSgnbWFjLWN5cmls
bGljJywgJ1UrMDQxMCcsICclODAnKTsKK3Rlc3RFbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21h
bicsICdVKzAxMDAnLCAnJTgxJyk7Cit0ZXN0RW5jb2RlKCd4LW1hYy10dXJraXNoJywgJ1UrMDBD
NScsICclODEnKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitydW5UZXN0KCk7CisKK3N1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWwJKHJldmlzaW9u
IDM5NDk5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTMsMTEgKzMsMTIgQEAKIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KIDxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLTxmb3JtIGlkPSJmb3JtIiB0YXJnZXQ9InN1YmZyYW1lIj48aW5wdXQgdHlwZT0idGV4
dCIgaWQ9InRleHQiIG5hbWU9InRleHQiPjwvZm9ybT4KKzxmb3JtIGlkPSJmb3JtIiBtZXRob2Q9
IkdFVCIgdGFyZ2V0PSJzdWJmcmFtZSI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ0ZXh0IiBuYW1l
PSJ0ZXh0Ij48L2Zvcm0+CiA8aWZyYW1lIGlkPSJzdWJmcmFtZSIgbmFtZT0ic3ViZnJhbWUiPjwv
aWZyYW1lPgogPHNjcmlwdD4KIApAQCAtMjAsOTQgKzIxLDggQEAgdmFyIHJlc3VsdHMgPSBuZXcg
T2JqZWN0OwogCiB2YXIgaSA9IDA7CiAKLWZ1bmN0aW9uIGVuY29kZShjaGFyc2V0LCB1bmljb2Rl
KQotewotICAgIC8vIFJldHVybnMgYSB2YWx1ZSBhbHJlYWR5IGVuY29kZWQsIHNpbmNlIHdlIGNh
bid0IGRvIGl0IHN5bmNocm9ub3VzbHkuCi0gICAgcmV0dXJuIHJlc3VsdHNbY2hhcnNldF1bdW5p
Y29kZV07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RzRG9uZSgpCi17Ci0gICAgdmFyIGZvcm0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOwotICAgIHZhciBzdWJmcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpOwotCi0gICAgZm9ybS5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKGZvcm0pOwotICAgIHN1YmZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3ViZnJh
bWUpOwotCi0gICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgZW5jb2RpbmcgY2hhcmFjdGVycyBp
biB2YXJpb3VzIGNoYXJhY3RlciBzZXRzLiIpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IGNoYXJz
ZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHNob3VsZEJlKCJlbmNvZGUoJyIgKyBjaGFyc2V0
c1tpXSArICInLCAnIiArIHVuaWNvZGVzW2ldICsgIicpIiwgIiciICsgZXhwZWN0ZWRSZXN1bHRz
W2ldICsgIiciKTsKLSAgICB9Ci0KLSAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotCi0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOwotfQotCiB2YXIgdGltZW91dCA9IG51bGw7CiAKLWZ1bmN0aW9u
IHByb2Nlc3NSZXN1bHQocmVzdWx0KQotewotICAgIHZhciBjaGFyc2V0UmVzdWx0cyA9IHJlc3Vs
dHNbY2hhcnNldHNbaV1dOwotICAgIGlmICghY2hhcnNldFJlc3VsdHMpIHsKLSAgICAgICAgY2hh
cnNldFJlc3VsdHMgPSBuZXcgT2JqZWN0OwotICAgICAgICByZXN1bHRzW2NoYXJzZXRzW2ldXSA9
IGNoYXJzZXRSZXN1bHRzOwotICAgIH0KLSAgICBjaGFyc2V0UmVzdWx0c1t1bmljb2Rlc1tpXV0g
PSByZXN1bHQ7IAotfQotCi1mdW5jdGlvbiBzdWJmcmFtZUxvYWRlZCgpCi17Ci0gICAgY2xlYXJU
aW1lb3V0KHRpbWVvdXQpOwotICAgIHRpbWVvdXQgPSBudWxsOwotICAgIHZhciBVUkwgPSAiIiAr
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpLmNvbnRlbnRXaW5kb3cubG9jYXRp
b247Ci0gICAgcHJvY2Vzc1Jlc3VsdChVUkwuc3Vic3RyKFVSTC5pbmRleE9mKCc9JykgKyAxKSk7
Ci0gICAgKytpOwotICAgIHJ1blRlc3QoKTsKLX0KLQotLy8gV29ya2Fyb3VuZCBmb3IgcmRhcjov
L3Byb2JsZW0vNTExNDI5NiBuZWVkIHRvIGFsbG93IGZvciAKLS8vIGRvd25sb2FkIG9jY3VyaW5n
LCBhbmQgdGh1cyBub3QgdHJpZ2dlcmluZyBzdWJmcmFtZUxvYWRlZCgpCi1mdW5jdGlvbiBsb2Fk
VGltZWRPdXQoKQotewotICAgIHRpbWVvdXQgPSBudWxsOwotICAgIHByb2Nlc3NSZXN1bHQoIkZB
SUxFRCIpOyAgICAKLSAgICArK2k7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkKLXsgICAgCi0gICAgaWYgKGkgPj0gY2hhcnNldHMubGVuZ3RoKSB7Ci0gICAgICAgIHRl
c3RzRG9uZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdmFyIGZvcm0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOwotICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RleHQnKTsKLSAgICB2YXIgc3ViZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3ViZnJhbWUnKTsKLQotICAgIGZvcm0uYWNjZXB0Q2hhcnNldCA9IGNoYXJzZXRz
W2ldOwotICAgIGZvcm0uYWN0aW9uID0gImRhdGE6dGV4dC9wbGFpbix4IjsKLSAgICBzdWJmcmFt
ZS5vbmxvYWQgPSBzdWJmcmFtZUxvYWRlZDsKLSAgICB0ZXh0LnZhbHVlID0gU3RyaW5nLmZyb21D
aGFyQ29kZSh1bmljb2Rlc1tpXS5yZXBsYWNlKCdVKycsICcweCcpKTsKLSAgICAKLSAgICAvLyBX
b3JrYXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS81MTE0Mjk2Ci0gICAgLy8gNTAwIG1pbGxpc2Vj
b25kIHRpbWVvdXQuIFRoaXMgd2lsbCBjYXVzZSBhIHNpZ25pZmljYW50IHNsb3dkb3duIG9uIGZh
aWx1cmVzLCAKLSAgICAvLyBidXQgc2hvdWxkIGd1YXJhbnRlZSB3ZSBkb24ndCBmaXJlIHByZW1h
dHVyZWx5Ci0gICAgdGltZW91dCA9IHNldFRpbWVvdXQobG9hZFRpbWVkT3V0LCA1MDApOwotICAg
IGZvcm0uc3VibWl0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RFbmNvZGUoY2hhcnNldE5hbWUsIHVu
aWNvZGUsIGNoYXJhY3RlclNlcXVlbmNlKQotewotICAgIGNoYXJzZXRzLnB1c2goY2hhcnNldE5h
bWUpOwotICAgIHVuaWNvZGVzLnB1c2godW5pY29kZSk7Ci0gICAgZXhwZWN0ZWRSZXN1bHRzLnB1
c2goY2hhcmFjdGVyU2VxdWVuY2UpOwotfQotCiB0ZXN0RW5jb2RlKCJVVEYtOCIsICJVKzAwQTAi
LCAiJUMyJUEwIik7CiAvL1llbiBzeW1ib2wgaW4gZ2JrCiB0ZXN0RW5jb2RlKCdHQksnLCAnVSsw
MEE1JywgJyVBMyVBNCcpOwpAQCAtMTI1LDE4ICs0MCw3IEBAIHRlc3RFbmNvZGUoJ0dCSycsICdV
KzFFM0YnLCAnJUE4JUJDJyk7CiB0ZXN0RW5jb2RlKCdHQksnLCAnVSsyMkVGJywgJyVBMSVBRCcp
OwogdGVzdEVuY29kZSgnR0JLJywgJ1UrMzAxQycsICclQTElQUInKTsKIAotLy8gTGVnYWN5IE1h
YyBlbmNvZGluZ3MuCi10ZXN0RW5jb2RlKCdtYWMnLCAnVSsyMjFBJywgJyVDMycpOwotdGVzdEVu
Y29kZSgnbWFjaW50b3NoJywgJ1UrMjIxQScsICclQzMnKTsKLXRlc3RFbmNvZGUoJ01hY1JvbWFu
JywgJ1UrMjIxQScsICclQzMnKTsKLXRlc3RFbmNvZGUoJ3gtbWFjLWdyZWVrJywgJ1UrMDM5MScs
ICclQjAnKTsKLXRlc3RFbmNvZGUoJ3gtbWFjLWN5cmlsbGljJywgJ1UrMDQxMCcsICclODAnKTsK
LXRlc3RFbmNvZGUoJ21hYy1jeXJpbGxpYycsICdVKzA0MTAnLCAnJTgwJyk7Ci10ZXN0RW5jb2Rl
KCd4LW1hYy1jZW50cmFsZXVycm9tYW4nLCAnVSswMTAwJywgJyU4MScpOwotdGVzdEVuY29kZSgn
eC1tYWMtdHVya2lzaCcsICdVKzAwQzUnLCAnJTgxJyk7Ci0KLS8vIFR1cm5pbmcgb24gdGhpcyB0
ZXN0IGNhdXNlcyBhIGRvd25sb2FkIHRvIG9jY3VyLiBGSVhNRTogQSBidWc/Ci0vL3Rlc3RFbmNv
ZGUoJ1VURi04JywgJ1UrMjIxQScsICclRTIlODglOUEnKTsKK3Rlc3RFbmNvZGUoJ1VURi04Jywg
J1UrMjIxQScsICclRTIlODglOUEnKTsKIAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2NoYXItZW5j
b2RpbmctdXRpbHMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3Jlc291cmNlcy9jaGFyLWVuY29kaW5nLXV0aWxzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDg3IEBACitmdW5jdGlvbiBlbmNvZGUoY2hhcnNldCwgdW5pY29kZSkKK3sKKyAgICAvLyBSZXR1
cm5zIGEgdmFsdWUgYWxyZWFkeSBlbmNvZGVkLCBzaW5jZSB3ZSBjYW4ndCBkbyBpdCBzeW5jaHJv
bm91c2x5LgorICAgIHJldHVybiByZXN1bHRzW2NoYXJzZXRdW3VuaWNvZGVdOworfQorCitmdW5j
dGlvbiB0ZXN0c0RvbmUoKQoreworICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Zvcm0nKTsKKyAgICB2YXIgc3ViZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c3ViZnJhbWUnKTsKKworICAgIGZvcm0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmb3JtKTsKKyAg
ICBzdWJmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN1YmZyYW1lKTsKKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIGVuY29kaW5nIGNoYXJhY3RlcnMgaW4gdmFyaW91cyBjaGFyYWN0
ZXIgc2V0cy4iKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBjaGFyc2V0cy5sZW5ndGg7ICsraSkg
eworICAgICAgICBzaG91bGRCZSgiZW5jb2RlKCciICsgY2hhcnNldHNbaV0gKyAiJywgJyIgKyB1
bmljb2Rlc1tpXSArICInKSIsICInIiArIGV4cGVjdGVkUmVzdWx0c1tpXSArICInIik7CisgICAg
fQorCisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKwordmFyIHRpbWVvdXQgPSBudWxsOworCitmdW5jdGlvbiBwcm9jZXNzUmVzdWx0KHJl
c3VsdCkKK3sKKyAgICB2YXIgY2hhcnNldFJlc3VsdHMgPSByZXN1bHRzW2NoYXJzZXRzW2ldXTsK
KyAgICBpZiAoIWNoYXJzZXRSZXN1bHRzKSB7CisgICAgICAgIGNoYXJzZXRSZXN1bHRzID0gbmV3
IE9iamVjdDsKKyAgICAgICAgcmVzdWx0c1tjaGFyc2V0c1tpXV0gPSBjaGFyc2V0UmVzdWx0czsK
KyAgICB9CisgICAgY2hhcnNldFJlc3VsdHNbdW5pY29kZXNbaV1dID0gcmVzdWx0OyAKK30KKwor
ZnVuY3Rpb24gc3ViZnJhbWVMb2FkZWQoKQoreworICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsK
KyAgICB0aW1lb3V0ID0gbnVsbDsKKyAgICB2YXIgVVJMID0gIiIgKyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3ViZnJhbWUnKS5jb250ZW50V2luZG93LmxvY2F0aW9uOworICAgIHByb2Nlc3NS
ZXN1bHQoVVJMLnN1YnN0cihVUkwuaW5kZXhPZignPScpICsgMSkpOworICAgICsraTsKKyAgICBy
dW5UZXN0KCk7Cit9CisKKy8vIFdvcmthcm91bmQgZm9yIHJkYXI6Ly9wcm9ibGVtLzUxMTQyOTYg
bmVlZCB0byBhbGxvdyBmb3IgCisvLyBkb3dubG9hZCBvY2N1cmluZywgYW5kIHRodXMgbm90IHRy
aWdnZXJpbmcgc3ViZnJhbWVMb2FkZWQoKQorZnVuY3Rpb24gbG9hZFRpbWVkT3V0KCkKK3sKKyAg
ICB0aW1lb3V0ID0gbnVsbDsKKyAgICBwcm9jZXNzUmVzdWx0KCJGQUlMRUQiKTsgICAgCisgICAg
KytpOworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7ICAgIAorICAg
IGlmIChpID49IGNoYXJzZXRzLmxlbmd0aCkgeworICAgICAgICB0ZXN0c0RvbmUoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Zvcm0nKTsKKyAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0
Jyk7CisgICAgdmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmZyYW1l
Jyk7CisKKyAgICBmb3JtLmFjY2VwdENoYXJzZXQgPSBjaGFyc2V0c1tpXTsKKyAgICBmb3JtLmFj
dGlvbiA9ICJyZXNvdXJjZXMvZHVtbXkuaHRtbCI7CisgICAgc3ViZnJhbWUub25sb2FkID0gc3Vi
ZnJhbWVMb2FkZWQ7CisgICAgdGV4dC52YWx1ZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodW5pY29k
ZXNbaV0ucmVwbGFjZSgnVSsnLCAnMHgnKSk7CisgICAgCisgICAgLy8gV29ya2Fyb3VuZCBmb3Ig
cmRhcjovL3Byb2JsZW0vNTExNDI5NgorICAgIC8vIDUwMCBtaWxsaXNlY29uZCB0aW1lb3V0LiBU
aGlzIHdpbGwgY2F1c2UgYSBzaWduaWZpY2FudCBzbG93ZG93biBvbiBmYWlsdXJlcywgCisgICAg
Ly8gYnV0IHNob3VsZCBndWFyYW50ZWUgd2UgZG9uJ3QgZmlyZSBwcmVtYXR1cmVseQorICAgIHRp
bWVvdXQgPSBzZXRUaW1lb3V0KGxvYWRUaW1lZE91dCwgNTAwKTsKKyAgICBmb3JtLnN1Ym1pdCgp
OworfQorCitmdW5jdGlvbiB0ZXN0RW5jb2RlKGNoYXJzZXROYW1lLCB1bmljb2RlLCBjaGFyYWN0
ZXJTZXF1ZW5jZSkKK3sKKyAgICBjaGFyc2V0cy5wdXNoKGNoYXJzZXROYW1lKTsKKyAgICB1bmlj
b2Rlcy5wdXNoKHVuaWNvZGUpOworICAgIGV4cGVjdGVkUmVzdWx0cy5wdXNoKGNoYXJhY3RlclNl
cXVlbmNlKTsKK30KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2R1
bW15Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQo=
</data>
<flag name="review"
          id="12472"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26437</attachid>
            <date>2009-01-05 13:07:38 -0800</date>
            <delta_ts>2009-01-05 13:07:38 -0800</delta_ts>
            <desc>updated patch with ap&apos;s review comments addressed</desc>
            <filename>22882.patch.1c</filename>
            <type>text/plain</type>
            <size>11395</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM5NjEwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMDEtMDUgIEp1bmdzaGlrIFNoaW4gIDxq
c2hpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5
YWtvdgorCisgICAgICAgIC0gTWFrZSBmYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmcgdGVzdCB3
b3JrIHdpdGggQ2hyb21pdW0gYnkgcmVwbGFjaW5nCisgICAgICAgICdkYXRhOicgd2l0aCAnZmls
ZTonIHBvaW50aW5nIHRvIHJlc291cmNlcy9kdW1teS5odG1sIChhbiBlbXB0eSBmaWxlKS4KKyAg
ICAgICAgLSBQdXQgb2xkIE1hYyBlbmNvZGluZ3MgaW4gYSBzZXBhcmF0ZSBjaGFyLWVuY29kaW5n
LW1hYy5odG1sIHRvIG1ha2UgaXQgCisgICAgICAgIHBvc3NpYmxlIHRvIHRvIHNraXAgaXQuCisg
ICAgICAgIC0gRmFjdG9yIG91dCBjb21tb24gZnVuY3Rpb25zIGluIGNoYXItZW5jb2RpbmcuaHRt
bCBhbmQgY2hhci1lbmNvZGluZy1tYWMuaHRtbAorICAgICAgICBhbmQgcHV0IHRoZW0gaW4gY2hh
ci1lbmNvZGluZy11dGlscy5qcworCisgICAgICAgIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyODgyCisKKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL2NoYXIt
ZW5jb2RpbmctbWFjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGlu
Zy9jaGFyLWVuY29kaW5nLW1hYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5n
L2NoYXItZW5jb2RpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Jlc291cmNlcy9j
aGFyLWVuY29kaW5nLXV0aWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Jl
c291cmNlcy9kdW1teS5odG1sOiBBZGRlZC4KKwogMjAwOS0wMS0wNSAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMzk0OTkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZW5jb2RpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxNCArMTYs
NyBAQCBQQVNTIGVuY29kZSgnR0JLJywgJ1UrMDFGOScpIGlzICclQTglQkYnCiBQQVNTIGVuY29k
ZSgnR0JLJywgJ1UrMUUzRicpIGlzICclQTglQkMnCiBQQVNTIGVuY29kZSgnR0JLJywgJ1UrMjJF
RicpIGlzICclQTElQUQnCiBQQVNTIGVuY29kZSgnR0JLJywgJ1UrMzAxQycpIGlzICclQTElQUIn
Ci1QQVNTIGVuY29kZSgnbWFjJywgJ1UrMjIxQScpIGlzICclQzMnCi1QQVNTIGVuY29kZSgnbWFj
aW50b3NoJywgJ1UrMjIxQScpIGlzICclQzMnCi1QQVNTIGVuY29kZSgnTWFjUm9tYW4nLCAnVSsy
MjFBJykgaXMgJyVDMycKLVBBU1MgZW5jb2RlKCd4LW1hYy1ncmVlaycsICdVKzAzOTEnKSBpcyAn
JUIwJwotUEFTUyBlbmNvZGUoJ3gtbWFjLWN5cmlsbGljJywgJ1UrMDQxMCcpIGlzICclODAnCi1Q
QVNTIGVuY29kZSgnbWFjLWN5cmlsbGljJywgJ1UrMDQxMCcpIGlzICclODAnCi1QQVNTIGVuY29k
ZSgneC1tYWMtY2VudHJhbGV1cnJvbWFuJywgJ1UrMDEwMCcpIGlzICclODEnCi1QQVNTIGVuY29k
ZSgneC1tYWMtdHVya2lzaCcsICdVKzAwQzUnKSBpcyAnJTgxJworUEFTUyBlbmNvZGUoJ1VURi04
JywgJ1UrMjIxQScpIGlzICclRTIlODglOUEnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hh
ci1lbmNvZGluZy1tYWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvY2hhci1lbmNvZGluZy1tYWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMgdGVzdHMgZW5jb2RpbmcgY2hh
cmFjdGVycyBpbiB2YXJpb3VzIGNoYXJhY3RlciBzZXRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBlbmNvZGUoJ21hYycsICdVKzIyMUEnKSBpcyAnJUMzJworUEFTUyBl
bmNvZGUoJ21hY2ludG9zaCcsICdVKzIyMUEnKSBpcyAnJUMzJworUEFTUyBlbmNvZGUoJ01hY1Jv
bWFuJywgJ1UrMjIxQScpIGlzICclQzMnCitQQVNTIGVuY29kZSgneC1tYWMtZ3JlZWsnLCAnVSsw
MzkxJykgaXMgJyVCMCcKK1BBU1MgZW5jb2RlKCd4LW1hYy1jeXJpbGxpYycsICdVKzA0MTAnKSBp
cyAnJTgwJworUEFTUyBlbmNvZGUoJ21hYy1jeXJpbGxpYycsICdVKzA0MTAnKSBpcyAnJTgwJwor
UEFTUyBlbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21hbicsICdVKzAxMDAnKSBpcyAnJTgxJwor
UEFTUyBlbmNvZGUoJ3gtbWFjLXR1cmtpc2gnLCAnVSswMEM1JykgaXMgJyU4MScKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2VuY29kaW5nL2NoYXItZW5jb2RpbmctbWFjLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWVuY29kaW5nLW1hYy5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NoYXItZW5jb2RpbmctdXRpbHMuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gaWQ9ImZvcm0iIG1ldGhvZD0iR0VUIiB0YXJnZXQ9
InN1YmZyYW1lIj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRleHQiIG5hbWU9InRleHQiPjwvZm9y
bT4KKzxpZnJhbWUgaWQ9InN1YmZyYW1lIiBuYW1lPSJzdWJmcmFtZSI+PC9pZnJhbWU+Cis8c2Ny
aXB0PgorCisKK3ZhciBjaGFyc2V0cyA9IG5ldyBBcnJheTsKK3ZhciB1bmljb2RlcyA9IG5ldyBB
cnJheTsKK3ZhciBleHBlY3RlZFJlc3VsdHMgPSBuZXcgQXJyYXk7CisKK3ZhciByZXN1bHRzID0g
bmV3IE9iamVjdDsKKwordmFyIGkgPSAwOworCit2YXIgdGltZW91dCA9IG51bGw7CisKKy8vIExl
Z2FjeSBNYWMgZW5jb2RpbmdzLgordGVzdEVuY29kZSgnbWFjJywgJ1UrMjIxQScsICclQzMnKTsK
K3Rlc3RFbmNvZGUoJ21hY2ludG9zaCcsICdVKzIyMUEnLCAnJUMzJyk7Cit0ZXN0RW5jb2RlKCdN
YWNSb21hbicsICdVKzIyMUEnLCAnJUMzJyk7Cit0ZXN0RW5jb2RlKCd4LW1hYy1ncmVlaycsICdV
KzAzOTEnLCAnJUIwJyk7Cit0ZXN0RW5jb2RlKCd4LW1hYy1jeXJpbGxpYycsICdVKzA0MTAnLCAn
JTgwJyk7Cit0ZXN0RW5jb2RlKCdtYWMtY3lyaWxsaWMnLCAnVSswNDEwJywgJyU4MCcpOwordGVz
dEVuY29kZSgneC1tYWMtY2VudHJhbGV1cnJvbWFuJywgJ1UrMDEwMCcsICclODEnKTsKK3Rlc3RF
bmNvZGUoJ3gtbWFjLXR1cmtpc2gnLCAnVSswMEM1JywgJyU4MScpOworCitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKK3J1blRlc3QoKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2No
YXItZW5jb2RpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZW5jb2RpbmcuaHRtbAkocmV2aXNpb24gMzk0OTkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2VuY29kaW5nL2NoYXItZW5jb2RpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMSArMywx
MiBAQAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1m
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NoYXItZW5jb2Rp
bmctdXRpbHMuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGZvcm0gaWQ9ImZvcm0iIHRhcmdl
dD0ic3ViZnJhbWUiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dCIgbmFtZT0idGV4dCI+PC9m
b3JtPgorPGZvcm0gaWQ9ImZvcm0iIG1ldGhvZD0iR0VUIiB0YXJnZXQ9InN1YmZyYW1lIj48aW5w
dXQgdHlwZT0idGV4dCIgaWQ9InRleHQiIG5hbWU9InRleHQiPjwvZm9ybT4KIDxpZnJhbWUgaWQ9
InN1YmZyYW1lIiBuYW1lPSJzdWJmcmFtZSI+PC9pZnJhbWU+CiA8c2NyaXB0PgogCkBAIC0yMCw5
NCArMjEsOCBAQCB2YXIgcmVzdWx0cyA9IG5ldyBPYmplY3Q7CiAKIHZhciBpID0gMDsKIAotZnVu
Y3Rpb24gZW5jb2RlKGNoYXJzZXQsIHVuaWNvZGUpCi17Ci0gICAgLy8gUmV0dXJucyBhIHZhbHVl
IGFscmVhZHkgZW5jb2RlZCwgc2luY2Ugd2UgY2FuJ3QgZG8gaXQgc3luY2hyb25vdXNseS4KLSAg
ICByZXR1cm4gcmVzdWx0c1tjaGFyc2V0XVt1bmljb2RlXTsKLX0KLQotZnVuY3Rpb24gdGVzdHNE
b25lKCkKLXsKLSAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtJyk7
Ci0gICAgdmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmZyYW1lJyk7
Ci0KLSAgICBmb3JtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZm9ybSk7Ci0gICAgc3ViZnJhbWUu
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdWJmcmFtZSk7Ci0KLSAgICBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0cyBlbmNvZGluZyBjaGFyYWN0ZXJzIGluIHZhcmlvdXMgY2hhcmFjdGVyIHNldHMuIik7
Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgY2hhcnNldHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
c2hvdWxkQmUoImVuY29kZSgnIiArIGNoYXJzZXRzW2ldICsgIicsICciICsgdW5pY29kZXNbaV0g
KyAiJykiLCAiJyIgKyBleHBlY3RlZFJlc3VsdHNbaV0gKyAiJyIpOwotICAgIH0KLQotICAgIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19Ci0KIHZh
ciB0aW1lb3V0ID0gbnVsbDsKIAotZnVuY3Rpb24gcHJvY2Vzc1Jlc3VsdChyZXN1bHQpCi17Ci0g
ICAgdmFyIGNoYXJzZXRSZXN1bHRzID0gcmVzdWx0c1tjaGFyc2V0c1tpXV07Ci0gICAgaWYgKCFj
aGFyc2V0UmVzdWx0cykgewotICAgICAgICBjaGFyc2V0UmVzdWx0cyA9IG5ldyBPYmplY3Q7Ci0g
ICAgICAgIHJlc3VsdHNbY2hhcnNldHNbaV1dID0gY2hhcnNldFJlc3VsdHM7Ci0gICAgfQotICAg
IGNoYXJzZXRSZXN1bHRzW3VuaWNvZGVzW2ldXSA9IHJlc3VsdDsgCi19Ci0KLWZ1bmN0aW9uIHN1
YmZyYW1lTG9hZGVkKCkKLXsKLSAgICBjbGVhclRpbWVvdXQodGltZW91dCk7Ci0gICAgdGltZW91
dCA9IG51bGw7Ci0gICAgdmFyIFVSTCA9ICIiICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1
YmZyYW1lJykuY29udGVudFdpbmRvdy5sb2NhdGlvbjsKLSAgICBwcm9jZXNzUmVzdWx0KFVSTC5z
dWJzdHIoVVJMLmluZGV4T2YoJz0nKSArIDEpKTsKLSAgICArK2k7Ci0gICAgcnVuVGVzdCgpOwot
fQotCi0vLyBXb3JrYXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS81MTE0Mjk2IG5lZWQgdG8gYWxs
b3cgZm9yIAotLy8gZG93bmxvYWQgb2NjdXJpbmcsIGFuZCB0aHVzIG5vdCB0cmlnZ2VyaW5nIHN1
YmZyYW1lTG9hZGVkKCkKLWZ1bmN0aW9uIGxvYWRUaW1lZE91dCgpCi17Ci0gICAgdGltZW91dCA9
IG51bGw7Ci0gICAgcHJvY2Vzc1Jlc3VsdCgiRkFJTEVEIik7ICAgIAotICAgICsraTsKLSAgICBy
dW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQoteyAgICAKLSAgICBpZiAoaSA+PSBj
aGFyc2V0cy5sZW5ndGgpIHsKLSAgICAgICAgdGVzdHNEb25lKCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtJyk7
Ci0gICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dCcpOwotICAgIHZh
ciBzdWJmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpOwotCi0gICAg
Zm9ybS5hY2NlcHRDaGFyc2V0ID0gY2hhcnNldHNbaV07Ci0gICAgZm9ybS5hY3Rpb24gPSAiZGF0
YTp0ZXh0L3BsYWluLHgiOwotICAgIHN1YmZyYW1lLm9ubG9hZCA9IHN1YmZyYW1lTG9hZGVkOwot
ICAgIHRleHQudmFsdWUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHVuaWNvZGVzW2ldLnJlcGxhY2Uo
J1UrJywgJzB4JykpOwotICAgIAotICAgIC8vIFdvcmthcm91bmQgZm9yIHJkYXI6Ly9wcm9ibGVt
LzUxMTQyOTYKLSAgICAvLyA1MDAgbWlsbGlzZWNvbmQgdGltZW91dC4gVGhpcyB3aWxsIGNhdXNl
IGEgc2lnbmlmaWNhbnQgc2xvd2Rvd24gb24gZmFpbHVyZXMsIAotICAgIC8vIGJ1dCBzaG91bGQg
Z3VhcmFudGVlIHdlIGRvbid0IGZpcmUgcHJlbWF0dXJlbHkKLSAgICB0aW1lb3V0ID0gc2V0VGlt
ZW91dChsb2FkVGltZWRPdXQsIDUwMCk7Ci0gICAgZm9ybS5zdWJtaXQoKTsKLX0KLQotZnVuY3Rp
b24gdGVzdEVuY29kZShjaGFyc2V0TmFtZSwgdW5pY29kZSwgY2hhcmFjdGVyU2VxdWVuY2UpCi17
Ci0gICAgY2hhcnNldHMucHVzaChjaGFyc2V0TmFtZSk7Ci0gICAgdW5pY29kZXMucHVzaCh1bmlj
b2RlKTsKLSAgICBleHBlY3RlZFJlc3VsdHMucHVzaChjaGFyYWN0ZXJTZXF1ZW5jZSk7Ci19Ci0K
IHRlc3RFbmNvZGUoIlVURi04IiwgIlUrMDBBMCIsICIlQzIlQTAiKTsKIC8vWWVuIHN5bWJvbCBp
biBnYmsKIHRlc3RFbmNvZGUoJ0dCSycsICdVKzAwQTUnLCAnJUEzJUE0Jyk7CkBAIC0xMjUsMTgg
KzQwLDggQEAgdGVzdEVuY29kZSgnR0JLJywgJ1UrMUUzRicsICclQTglQkMnKTsKIHRlc3RFbmNv
ZGUoJ0dCSycsICdVKzIyRUYnLCAnJUExJUFEJyk7CiB0ZXN0RW5jb2RlKCdHQksnLCAnVSszMDFD
JywgJyVBMSVBQicpOwogCi0vLyBMZWdhY3kgTWFjIGVuY29kaW5ncy4KLXRlc3RFbmNvZGUoJ21h
YycsICdVKzIyMUEnLCAnJUMzJyk7Ci10ZXN0RW5jb2RlKCdtYWNpbnRvc2gnLCAnVSsyMjFBJywg
JyVDMycpOwotdGVzdEVuY29kZSgnTWFjUm9tYW4nLCAnVSsyMjFBJywgJyVDMycpOwotdGVzdEVu
Y29kZSgneC1tYWMtZ3JlZWsnLCAnVSswMzkxJywgJyVCMCcpOwotdGVzdEVuY29kZSgneC1tYWMt
Y3lyaWxsaWMnLCAnVSswNDEwJywgJyU4MCcpOwotdGVzdEVuY29kZSgnbWFjLWN5cmlsbGljJywg
J1UrMDQxMCcsICclODAnKTsKLXRlc3RFbmNvZGUoJ3gtbWFjLWNlbnRyYWxldXJyb21hbicsICdV
KzAxMDAnLCAnJTgxJyk7Ci10ZXN0RW5jb2RlKCd4LW1hYy10dXJraXNoJywgJ1UrMDBDNScsICcl
ODEnKTsKLQogLy8gVHVybmluZyBvbiB0aGlzIHRlc3QgY2F1c2VzIGEgZG93bmxvYWQgdG8gb2Nj
dXIuIEZJWE1FOiBBIGJ1Zz8KLS8vdGVzdEVuY29kZSgnVVRGLTgnLCAnVSsyMjFBJywgJyVFMiU4
OCU5QScpOworLy8gdGVzdEVuY29kZSgnVVRGLTgnLCAnVSsyMjFBJywgJyVFMiU4OCU5QScpOwog
CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVz
b3VyY2VzL2NoYXItZW5jb2RpbmctdXRpbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy11dGlscy5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2NoYXItZW5jb2Rpbmct
dXRpbHMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODcgQEAKK2Z1bmN0aW9uIGVuY29kZShj
aGFyc2V0LCB1bmljb2RlKQoreworICAgIC8vIFJldHVybnMgYSB2YWx1ZSBhbHJlYWR5IGVuY29k
ZWQsIHNpbmNlIHdlIGNhbid0IGRvIGl0IHN5bmNocm9ub3VzbHkuCisgICAgcmV0dXJuIHJlc3Vs
dHNbY2hhcnNldF1bdW5pY29kZV07Cit9CisKK2Z1bmN0aW9uIHRlc3RzRG9uZSgpCit7CisgICAg
dmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOworICAgIHZhciBzdWJm
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpOworCisgICAgZm9ybS5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKGZvcm0pOworICAgIHN1YmZyYW1lLnBhcmVudE5vZGUucmVt
b3ZlQ2hpbGQoc3ViZnJhbWUpOworCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgZW5jb2Rp
bmcgY2hhcmFjdGVycyBpbiB2YXJpb3VzIGNoYXJhY3RlciBzZXRzLiIpOworCisgICAgZm9yIChp
ID0gMDsgaSA8IGNoYXJzZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKCJlbmNv
ZGUoJyIgKyBjaGFyc2V0c1tpXSArICInLCAnIiArIHVuaWNvZGVzW2ldICsgIicpIiwgIiciICsg
ZXhwZWN0ZWRSZXN1bHRzW2ldICsgIiciKTsKKyAgICB9CisKKyAgICBpc1N1Y2Nlc3NmdWxseVBh
cnNlZCgpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgdGltZW91dCA9IG51
bGw7CisKK2Z1bmN0aW9uIHByb2Nlc3NSZXN1bHQocmVzdWx0KQoreworICAgIHZhciBjaGFyc2V0
UmVzdWx0cyA9IHJlc3VsdHNbY2hhcnNldHNbaV1dOworICAgIGlmICghY2hhcnNldFJlc3VsdHMp
IHsKKyAgICAgICAgY2hhcnNldFJlc3VsdHMgPSBuZXcgT2JqZWN0OworICAgICAgICByZXN1bHRz
W2NoYXJzZXRzW2ldXSA9IGNoYXJzZXRSZXN1bHRzOworICAgIH0KKyAgICBjaGFyc2V0UmVzdWx0
c1t1bmljb2Rlc1tpXV0gPSByZXN1bHQ7IAorfQorCitmdW5jdGlvbiBzdWJmcmFtZUxvYWRlZCgp
Cit7CisgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOworICAgIHRpbWVvdXQgPSBudWxsOworICAg
IHZhciBVUkwgPSAiIiArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJmcmFtZScpLmNvbnRl
bnRXaW5kb3cubG9jYXRpb247CisgICAgcHJvY2Vzc1Jlc3VsdChVUkwuc3Vic3RyKFVSTC5pbmRl
eE9mKCc9JykgKyAxKSk7CisgICAgKytpOworICAgIHJ1blRlc3QoKTsKK30KKworLy8gV29ya2Fy
b3VuZCBmb3IgcmRhcjovL3Byb2JsZW0vNTExNDI5NiBuZWVkIHRvIGFsbG93IGZvciAKKy8vIGRv
d25sb2FkIG9jY3VyaW5nLCBhbmQgdGh1cyBub3QgdHJpZ2dlcmluZyBzdWJmcmFtZUxvYWRlZCgp
CitmdW5jdGlvbiBsb2FkVGltZWRPdXQoKQoreworICAgIHRpbWVvdXQgPSBudWxsOworICAgIHBy
b2Nlc3NSZXN1bHQoIkZBSUxFRCIpOyAgICAKKyAgICArK2k7CisgICAgcnVuVGVzdCgpOworfQor
CitmdW5jdGlvbiBydW5UZXN0KCkKK3sgICAgCisgICAgaWYgKGkgPj0gY2hhcnNldHMubGVuZ3Ro
KSB7CisgICAgICAgIHRlc3RzRG9uZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
dmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOworICAgIHZhciB0ZXh0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQnKTsKKyAgICB2YXIgc3ViZnJhbWUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ViZnJhbWUnKTsKKworICAgIGZvcm0uYWNjZXB0Q2hh
cnNldCA9IGNoYXJzZXRzW2ldOworICAgIGZvcm0uYWN0aW9uID0gInJlc291cmNlcy9kdW1teS5o
dG1sIjsKKyAgICBzdWJmcmFtZS5vbmxvYWQgPSBzdWJmcmFtZUxvYWRlZDsKKyAgICB0ZXh0LnZh
bHVlID0gU3RyaW5nLmZyb21DaGFyQ29kZSh1bmljb2Rlc1tpXS5yZXBsYWNlKCdVKycsICcweCcp
KTsKKyAgICAKKyAgICAvLyBXb3JrYXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS81MTE0Mjk2Cisg
ICAgLy8gNTAwIG1pbGxpc2Vjb25kIHRpbWVvdXQuIFRoaXMgd2lsbCBjYXVzZSBhIHNpZ25pZmlj
YW50IHNsb3dkb3duIG9uIGZhaWx1cmVzLCAKKyAgICAvLyBidXQgc2hvdWxkIGd1YXJhbnRlZSB3
ZSBkb24ndCBmaXJlIHByZW1hdHVyZWx5CisgICAgdGltZW91dCA9IHNldFRpbWVvdXQobG9hZFRp
bWVkT3V0LCA1MDApOworICAgIGZvcm0uc3VibWl0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFbmNv
ZGUoY2hhcnNldE5hbWUsIHVuaWNvZGUsIGNoYXJhY3RlclNlcXVlbmNlKQoreworICAgIGNoYXJz
ZXRzLnB1c2goY2hhcnNldE5hbWUpOworICAgIHVuaWNvZGVzLnB1c2godW5pY29kZSk7CisgICAg
ZXhwZWN0ZWRSZXN1bHRzLnB1c2goY2hhcmFjdGVyU2VxdWVuY2UpOworfQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvZHVtbXkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cg==
</data>
<flag name="review"
          id="12537"
          type_id="1"
          status="+"
          setter="jshin"
    />
          </attachment>
      

    </bug>

</bugzilla>