<?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>59822</bug_id>
          
          <creation_ts>2011-04-29 13:25:32 -0700</creation_ts>
          <short_desc>IndexedDB does not update r/w index cursors that are mutated during iteration</short_desc>
          <delta_ts>2012-01-27 16:05:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>hans</cc>
    
    <cc>jsbell</cc>
    
    <cc>pilgrim</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>395459</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-29 13:25:32 -0700</bug_when>
    <thetext>Original test: http://mxr.mozilla.org/mozilla2.0/source/dom/indexedDB/test/test_cursor_mutation.html?raw=1
Ported test: see attachment

The scenario here is that you have an object store with data in it, and an index on one of the fields. (In the attached test, the index is an alphabetical index of first names.) You open a read/write transaction and use it to open a cursor on the index. While iterating through the cursor (in alphabetical order), you mutate the object store to add another row whose values would not yet have shown up in iteration.

Expected result: the index cursor should automatically update to include the new row when it eventually comes up in the alphabetical order (of the index). The mutation occurs before the added name would have appeared in the cursor iteration, thus the iteration should eventually find it.

Actual result: WebKit&apos;s behavior is to skip over the row that was added during iteration. Iteration of the index cursor continues in the expected (alphabetical) order through the original data in the object store, but the added row is never found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395463</commentid>
    <comment_count>1</comment_count>
      <attachid>91723</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-29 13:26:41 -0700</bug_when>
    <thetext>Created attachment 91723
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395465</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-29 13:27:45 -0700</bug_when>
    <thetext>Not a patch, just a test case. Removed spurious review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395503</commentid>
    <comment_count>3</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-04-29 14:11:40 -0700</bug_when>
    <thetext>Just curious, do we correctly handle this case if the cursor is iterating over an objectstore rather than an index?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396361</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-05-02 06:40:11 -0700</bug_when>
    <thetext>Yes, see bug 59933.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397024</commentid>
    <comment_count>5</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-05-03 03:00:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Yes, see bug 59933.

Hmm, that&apos;s interesting. Thanks for finding this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516880</commentid>
    <comment_count>6</comment_count>
      <attachid>118266</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-07 13:38:13 -0800</bug_when>
    <thetext>Created attachment 118266
updated test case

No repro for me. This may have been fixed with the move to LevelDB.

The attached test case was a bit crufty; I dusted it off (attached) and it works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516881</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-07 13:40:36 -0800</bug_when>
    <thetext>On further thought, we should probably pull in this test, but perhaps keep it closer to the original moz test than my edit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544449</commentid>
    <comment_count>8</comment_count>
      <attachid>124384</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-27 15:37:00 -0800</bug_when>
    <thetext>Created attachment 124384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544450</commentid>
    <comment_count>9</comment_count>
      <attachid>124384</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-27 15:37:48 -0800</bug_when>
    <thetext>Comment on attachment 124384
Patch

Dusted off the original patch a bit. Still passes as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544453</commentid>
    <comment_count>10</comment_count>
      <attachid>124384</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-01-27 15:41:05 -0800</bug_when>
    <thetext>Comment on attachment 124384
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544480</commentid>
    <comment_count>11</comment_count>
      <attachid>124384</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 16:05:10 -0800</bug_when>
    <thetext>Comment on attachment 124384
Patch

Clearing flags on attachment: 124384

Committed r106165: &lt;http://trac.webkit.org/changeset/106165&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544481</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 16:05:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91723</attachid>
            <date>2011-04-29 13:26:41 -0700</date>
            <delta_ts>2012-01-27 15:36:55 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>bug-59822-20110429162638.patch</filename>
            <type>text/plain</type>
            <size>6940</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg1MzUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDQtMjkgIE1hcmsgUGlsZ3JpbSAgPHBp
bGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEluZGV4ZWREQiBkb2VzIG5vdCB1cGRhdGUgci93IGluZGV4IGN1cnNvcnMg
dGhhdCBhcmUgbXV0YXRlZCBkdXJpbmcgaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTgyMgorCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTEtMDQtMjkg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTcyOQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9j
dXJzb3ItbXV0YXRpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPCEtLQorICBvcmlnaW5hbCB0ZXN0OiBodHRwOi8vbXhyLm1vemlsbGEub3Jn
L21vemlsbGEyLjAvc291cmNlL2RvbS9pbmRleGVkREIvdGVzdC90ZXN0X2N1cnNvcl9tdXRhdGlv
bi5odG1sP2ZvcmNlPTEKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55IGNv
cHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRwOi8v
Y3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIG11
dGF0aW9uIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
aW5kZXhlZERCID0gZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3
aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7Iik7CisgICAgc2hv
dWxkQmVGYWxzZSgiaW5kZXhlZERCID09IG51bGwiKTsKKyAgICBJREJEYXRhYmFzZUV4Y2VwdGlv
biA9IGV2YWxBbmRMb2coIklEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNl
RXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIik7CisgICAgSURCVHJh
bnNhY3Rpb24gPSBldmFsQW5kTG9nKCJJREJUcmFuc2FjdGlvbiA9IHdpbmRvdy5JREJUcmFuc2Fj
dGlvbiB8fCB3aW5kb3cud2Via2l0SURCVHJhbnNhY3Rpb247Iik7CisgICAgc2hvdWxkQmVGYWxz
ZSgiSURCVHJhbnNhY3Rpb24gPT0gbnVsbCIpOworCisgICAgbmFtZSA9IHdpbmRvdy5sb2NhdGlv
bi5wYXRobmFtZTsKKyAgICBkZXNjcmlwdGlvbiA9ICJNeSBUZXN0IERhdGFiYXNlIjsKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSwgZGVzY3JpcHRpb24pIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQoreworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIGRiID0gZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
c2V0dXBPYmplY3RTdG9yZUFuZENyZWF0ZUluZGV4OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZXR1cE9iamVjdFN0b3JlQW5k
Q3JlYXRlSW5kZXgoKQoreworICAgIGRlYnVnKCJzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRlSW5k
ZXgoKToiKTsKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworCisgICAgb2JqZWN0U3Rv
cmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28n
LCB7IGtleVBhdGg6ICdzcycgfSk7Iik7CisgICAgaW5kZXggPSBldmFsQW5kTG9nKCJpbmRleCA9
IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCduYW1lJywgJ25hbWUnLCB7IHVuaXF1ZTogdHJ1ZSB9
KTsiKTsKKyAgICBvYmplY3RTdG9yZURhdGEgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZURhdGEg
PSBbXG4iICsgCisiICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzInLCBuYW1lOiAnQm9iJyB9LFxu
IiArIAorCisiICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzMnLCBuYW1lOiAnQW5uJyB9LFxuIiAr
CisiICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzQnLCBuYW1lOiAnUm9uJyB9LFxuIiArCisiICAg
ICAgICB7IHNzOiAnMjM3LTIzLTc3MzUnLCBuYW1lOiAnU3VlJyB9LFxuIiArCisiICAgICAgICB7
IHNzOiAnMjM3LTIzLTc3MzYnLCBuYW1lOiAnSm9lJyB9LFxuIiArCisKKyIgICAgICAgIHsgc3M6
ICcyMzctMjMtNzczNycsIG5hbWU6ICdQYXQnIH1cbiIgKworIiAgICBdOyIpOworCisgICAgZm9y
IChpID0gMDsgaSA8IG9iamVjdFN0b3JlRGF0YS5sZW5ndGggLSAxOyBpKyspIHsKKyAgICAgICAg
ZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKG9iamVjdFN0b3JlRGF0YVtpXSk7Iik7CisgICAg
fQorCisgICAgY291bnQgPSBldmFsQW5kTG9nKCJjb3VudCA9IDA7Iik7CisgICAgc2F3QWRkZWQg
PSBldmFsQW5kTG9nKCJzYXdBZGRlZCA9IGZhbHNlOyIpOworICAgIHNhd1JlbW92ZWQgPSBldmFs
QW5kTG9nKCJzYXdSZW1vdmVkID0gZmFsc2U7Iik7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsiKTsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGl0ZXJhdGVDdXJzb3I7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGl0ZXJhdGVDdXJzb3IoKQoreworICAgIGRl
YnVnKCJpdGVyYXRlQ3Vyc29yKCk6Iik7CisgICAgZXZhbEFuZExvZygiZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSBjaGVja0N1cnNvclJlc3VsdHNBbmRTZXR1cE11dGF0aW5n
Q3Vyc29yOyIpOworICAgIGN1cnNvciA9IGV2YWxBbmRMb2coImN1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7Iik7CisgICAgaWYgKGN1cnNvcikgeworICAgICAgICBpZiAoY3Vyc29yLnZhbHVl
Lm5hbWUgPT0gb2JqZWN0U3RvcmVEYXRhWzBdLm5hbWUpIHsKKyAgICAgICAgICAgIHNhd1JlbW92
ZWQgPSBldmFsQW5kTG9nKCJzYXdSZW1vdmVkID0gdHJ1ZTsiKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoY3Vyc29yLnZhbHVlLm5hbWUgPT0gb2JqZWN0U3RvcmVEYXRhW29iamVjdFN0b3JlRGF0
YS5sZW5ndGggLSAxXS5uYW1lKSB7CisgICAgICAgICAgICBzYXdBZGRlZCA9IGV2YWxBbmRMb2co
InNhd0FkZGVkID0gdHJ1ZTsiKTsKKyAgICAgICAgfQorICAgICAgICBldmFsQW5kTG9nKCJjb3Vu
dCsrOyIpOworICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKTsiKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIGNoZWNrQ3Vyc29yUmVzdWx0c0FuZFNldHVwTXV0YXRpbmdDdXJzb3Io
KQoreworICAgIGRlYnVnKCJjaGVja0N1cnNvclJlc3VsdHNBbmRTZXR1cE11dGF0aW5nQ3Vyc29y
KCk6Iik7CisgICAgc2hvdWxkQmUoImNvdW50IiwgIm9iamVjdFN0b3JlRGF0YS5sZW5ndGggLSAx
Iik7CisgICAgc2hvdWxkQmUoInNhd0FkZGVkIiwgImZhbHNlIik7CisgICAgc2hvdWxkQmUoInNh
d1JlbW92ZWQiLCAidHJ1ZSIpOworCisgICAgY291bnQgPSBldmFsQW5kTG9nKCJjb3VudCA9IDA7
Iik7CisgICAgc2F3QWRkZWQgPSBldmFsQW5kTG9nKCJzYXdBZGRlZCA9IGZhbHNlOyIpOworICAg
IHNhd1JlbW92ZWQgPSBldmFsQW5kTG9nKCJzYXdSZW1vdmVkID0gZmFsc2U7Iik7CisgICAgZGVi
dWcoIltvYmplY3RTdG9yZURhdGFOYW1lU29ydCBpcyBhbiBhcnJheSBvZiBpbmRleGVzIGludG8g
b2JqZWN0U3RvcmVEYXRhIGluIGFscGhhYmV0aWNhbCBvcmRlciBieSBuYW1lXSIpOworICAgIG9i
amVjdFN0b3JlRGF0YU5hbWVTb3J0ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmVEYXRhTmFtZVNv
cnQgPSBbIDEsIDQsIDUsIDIsIDMgXTsiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJy
ZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24oJ2ZvbycsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
Lm9iamVjdFN0b3JlKCdmb28nKS5pbmRleCgnbmFtZScpLm9wZW5DdXJzb3IoKTsiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGl0ZXJhdGVNdXRhdGluZ0N1cnNvcjsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gaXRlcmF0ZU11
dGF0aW5nQ3Vyc29yKCkKK3sKKyAgICBkZWJ1ZygiaXRlcmF0ZU11dGF0aW5nQ3Vyc29yKCk6Iik7
CisgICAgZXZhbEFuZExvZygiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBj
aGVja011dGF0aW5nQ3Vyc29yUmVzdWx0czsiKTsKKyAgICBjdXJzb3IgPSBldmFsQW5kTG9nKCJj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OyIpOworICAgIGlmIChjdXJzb3IpIHsKKyAgICAg
ICAgaWYgKGN1cnNvci52YWx1ZS5uYW1lID09IG9iamVjdFN0b3JlRGF0YVswXS5uYW1lKSB7Cisg
ICAgICAgICAgICBzYXdSZW1vdmVkID0gZXZhbEFuZExvZygic2F3UmVtb3ZlZCA9IHRydWU7Iik7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN1cnNvci52YWx1ZS5uYW1lID09IG9iamVjdFN0b3Jl
RGF0YVtvYmplY3RTdG9yZURhdGEubGVuZ3RoIC0gMV0ubmFtZSkgeworICAgICAgICAgICAgc2F3
QWRkZWQgPSBldmFsQW5kTG9nKCJzYXdBZGRlZCA9IHRydWU7Iik7CisgICAgICAgIH0KKyAgICAg
ICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZS5uYW1lIiwgIm9iamVjdFN0b3JlRGF0YVtvYmplY3RT
dG9yZURhdGFOYW1lU29ydFtjb3VudF1dLm5hbWUiKTsKKyAgICAgICAgZXZhbEFuZExvZygiY291
bnQrKyIpOworCisgICAgICAgIGlmIChjb3VudCA9PSAxKSB7CisgICAgICAgICAgICBvYmplY3RT
dG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdmb28nKTsiKTsKK2FkZEZpbmFsRGF0YSgpOworLyoKKyAgICAgICAgICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuZGVsZXRlKG9iamVj
dFN0b3JlRGF0YVswXS5zcyk7Iik7CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGFk
ZEZpbmFsRGF0YTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiBhZGRGaW5hbERhdGEoKQor
eworICAgIGRlYnVnKCJhZGRGaW5hbERhdGEoKToiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChvYmplY3RTdG9yZURhdGFbb2JqZWN0U3RvcmVE
YXRhLmxlbmd0aCAtIDFdKTsiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgp
IHsgY3Vyc29yLmNvbnRpbnVlKCk7IH0KKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY2hlY2tNdXRhdGluZ0N1cnNvclJlc3VsdHMo
KQoreworICAgIGRlYnVnKCJjaGVja011dGF0aW5nQ3Vyc29yUmVzdWx0cygpOiIpOworICAgIHNo
b3VsZEJlKCJjb3VudCIsICJvYmplY3RTdG9yZURhdGEubGVuZ3RoIC0gMSIpOworICAgIHNob3Vs
ZEJlKCJzYXdBZGRlZCIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoInNhd1JlbW92ZWQiLCAiZmFs
c2UiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
Cit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>118266</attachid>
            <date>2011-12-07 13:38:13 -0800</date>
            <delta_ts>2011-12-07 13:38:13 -0800</delta_ts>
            <desc>updated test case</desc>
            <filename>cursor-mutation.html</filename>
            <type>text/html</type>
            <size>5698</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjwhLS0KICBvcmlnaW5hbCB0ZXN0OiBodHRwOi8vbXhyLm1vemlsbGEu
b3JnL21vemlsbGEyLjAvc291cmNlL2RvbS9pbmRleGVkREIvdGVzdC90ZXN0X2N1cnNvcl9tdXRh
dGlvbi5odG1sP2ZvcmNlPTEKICBsaWNlbnNlIG9mIG9yaWdpbmFsIHRlc3Q6CiAgICAiIEFueSBj
b3B5cmlnaHQgaXMgZGVkaWNhdGVkIHRvIHRoZSBQdWJsaWMgRG9tYWluLgogICAgICBodHRwOi8v
Y3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKLS0+CjxodG1sPgo8
aGVhZD4KPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2Ny
aXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CjxzY3JpcHQ+CgpkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjdXJz
b3IgbXV0YXRpb24iKTsKaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKCmZ1bmN0aW9uIHRlc3QoKQp7CiAgICBp
bmRleGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdp
bmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsiKTsKICAgIHNob3Vs
ZEJlRmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7CiAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9
IGV2YWxBbmRMb2coIklEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNlRXhj
ZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsiKTsKICAgIHNob3Vs
ZEJlRmFsc2UoIklEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwiKTsKICAgIElEQlRyYW5zYWN0
aW9uID0gZXZhbEFuZExvZygiSURCVHJhbnNhY3Rpb24gPSB3aW5kb3cuSURCVHJhbnNhY3Rpb24g
fHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uOyIpOwogICAgc2hvdWxkQmVGYWxzZSgiSURC
VHJhbnNhY3Rpb24gPT0gbnVsbCIpOwoKICAgIG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5h
bWU7CiAgICBkZXNjcmlwdGlvbiA9ICJNeSBUZXN0IERhdGFiYXNlIjsKICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikiKTsKICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBvcGVuU3VjY2VzczsKfQoKZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQp7CiAgICBkZWJ1Zygi
Iik7CiAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7CgogICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwogICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXR1cE9iamVjdFN0b3Jl
QW5kQ3JlYXRlSW5kZXg7Cn0KCmZ1bmN0aW9uIHNldHVwT2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRl
eCgpCnsKICAgIGRlYnVnKCIiKTsKICAgIGRlYnVnKCJzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRl
SW5kZXgoKToiKTsKCiAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0
Iik7CgogICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKCiAgICBvYmplY3RTdG9yZSA9IGV2
YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScs
IHsga2V5UGF0aDogJ3NzJyB9KTsiKTsKICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBv
YmplY3RTdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ25hbWUnLCB7IHVuaXF1ZTogdHJ1
ZSB9KTsiKTsKICAgIHRlc3REYXRhID0gWwogICAgICAgIHsgc3M6ICcyMzctMjMtNzczMicsIG5h
bWU6ICdCb2InIH0sIC8vIFRoaXMgd2lsbCBnZXQgcmVtb3ZlZCBsYXRlci4KCiAgICAgICAgeyBz
czogJzIzNy0yMy03NzMzJywgbmFtZTogJ0FubicgfSwKICAgICAgICB7IHNzOiAnMjM3LTIzLTc3
MzQnLCBuYW1lOiAnUm9uJyB9LAogICAgICAgIHsgc3M6ICcyMzctMjMtNzczNScsIG5hbWU6ICdT
dWUnIH0sCiAgICAgICAgeyBzczogJzIzNy0yMy03NzM2JywgbmFtZTogJ0pvZScgfSwKCiAgICAg
ICAgeyBzczogJzIzNy0yMy03NzM3JywgbmFtZTogJ1BhdCcgfSAvLyBUaGlzIHdpbGwgZ2V0IGFk
ZGVkIGxhdGVyLgogICAgXTsKICAgIHRlc3REYXRhRmluYWxOYW1lcyA9IFsgJ0FubicsICdKb2Un
LCAnUGF0JywgJ1JvbicsICdTdWUnIF07CgogICAgZm9yIChpID0gMDsgaSA8IHRlc3REYXRhLmxl
bmd0aCAtIDE7IGkrKykgewogICAgICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgiICsg
SlNPTi5zdHJpbmdpZnkodGVzdERhdGFbaV0pICsgIikiKTsKICAgIH0KCiAgICBjb3VudCA9IGV2
YWxBbmRMb2coImNvdW50ID0gMDsiKTsKICAgIHNhd0FkZGVkID0gZXZhbEFuZExvZygic2F3QWRk
ZWQgPSBmYWxzZTsiKTsKICAgIHNhd1JlbW92ZWQgPSBldmFsQW5kTG9nKCJzYXdSZW1vdmVkID0g
ZmFsc2U7Iik7CgogICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9y
ZS5vcGVuQ3Vyc29yKCk7Iik7CiAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGl0ZXJhdGVDdXJzb3I7
CiAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKCiAgICBldmFs
QW5kTG9nKCJ0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gY2hlY2tDdXJzb3JSZXN1bHRzQW5kU2V0
dXBNdXRhdGluZ0N1cnNvcjsiKTsKfQoKZnVuY3Rpb24gaXRlcmF0ZUN1cnNvcigpCnsKICAgIGRl
YnVnKCIiKTsKICAgIGRlYnVnKCJpdGVyYXRlQ3Vyc29yKCk6Iik7CiAgICBjdXJzb3IgPSBldmFs
QW5kTG9nKCJjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OyIpOwogICAgaWYgKGN1cnNvcikg
ewogICAgICAgIGlmIChjdXJzb3IudmFsdWUubmFtZSA9PSB0ZXN0RGF0YVswXS5uYW1lKSB7CiAg
ICAgICAgICAgIHNhd1JlbW92ZWQgPSBldmFsQW5kTG9nKCJzYXdSZW1vdmVkID0gdHJ1ZTsiKTsK
ICAgICAgICB9CiAgICAgICAgaWYgKGN1cnNvci52YWx1ZS5uYW1lID09IHRlc3REYXRhW3Rlc3RE
YXRhLmxlbmd0aCAtIDFdLm5hbWUpIHsKICAgICAgICAgICAgc2F3QWRkZWQgPSBldmFsQW5kTG9n
KCJzYXdBZGRlZCA9IHRydWU7Iik7CiAgICAgICAgfQogICAgICAgIGV2YWxBbmRMb2coImNvdW50
Kys7Iik7CiAgICAgICAgZXZhbEFuZExvZygiY3Vyc29yLmNvbnRpbnVlKCk7Iik7CiAgICB9Cn0K
CmZ1bmN0aW9uIGNoZWNrQ3Vyc29yUmVzdWx0c0FuZFNldHVwTXV0YXRpbmdDdXJzb3IoKQp7CiAg
ICBkZWJ1ZygiIik7CiAgICBkZWJ1ZygiY2hlY2tDdXJzb3JSZXN1bHRzQW5kU2V0dXBNdXRhdGlu
Z0N1cnNvcigpOiIpOwogICAgc2hvdWxkQmUoImNvdW50IiwgInRlc3REYXRhLmxlbmd0aCAtIDEi
KTsKICAgIHNob3VsZEJlKCJzYXdBZGRlZCIsICJmYWxzZSIpOwogICAgc2hvdWxkQmUoInNhd1Jl
bW92ZWQiLCAidHJ1ZSIpOwoKICAgIGRlYnVnKCIiKTsKICAgIGNvdW50ID0gZXZhbEFuZExvZygi
Y291bnQgPSAwOyIpOwogICAgc2F3QWRkZWQgPSBldmFsQW5kTG9nKCJzYXdBZGRlZCA9IGZhbHNl
OyIpOwogICAgc2F3UmVtb3ZlZCA9IGV2YWxBbmRMb2coInNhd1JlbW92ZWQgPSBmYWxzZTsiKTsK
CiAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKS5pbmRleCgnaW5kZXhOYW1lJykub3BlbkN1cnNvcigpIik7CiAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGl0ZXJhdGVNdXRhdGluZ0N1cnNvcjsKICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IGNoZWNrTXV0YXRpbmdDdXJzb3JSZXN1bHRzIik7Cn0KCmZ1bmN0aW9uIGl0ZXJhdGVNdXRh
dGluZ0N1cnNvcigpCnsKICAgIGRlYnVnKCIiKTsKICAgIGRlYnVnKCJpdGVyYXRlTXV0YXRpbmdD
dXJzb3IoKToiKTsKICAgIGN1cnNvciA9IGV2YWxBbmRMb2coImN1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7Iik7CiAgICBpZiAoY3Vyc29yKSB7CiAgICAgICAgaWYgKGN1cnNvci52YWx1ZS5u
YW1lID09IHRlc3REYXRhWzBdLm5hbWUpIHsKICAgICAgICAgICAgc2F3UmVtb3ZlZCA9IGV2YWxB
bmRMb2coInNhd1JlbW92ZWQgPSB0cnVlOyIpOwogICAgICAgIH0KICAgICAgICBpZiAoY3Vyc29y
LnZhbHVlLm5hbWUgPT0gdGVzdERhdGFbdGVzdERhdGEubGVuZ3RoIC0gMV0ubmFtZSkgewogICAg
ICAgICAgICBzYXdBZGRlZCA9IGV2YWxBbmRMb2coInNhd0FkZGVkID0gdHJ1ZTsiKTsKICAgICAg
ICB9CiAgICAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZS5uYW1lIiwgInRlc3REYXRhRmluYWxO
YW1lc1tjb3VudF0iKTsKICAgICAgICBldmFsQW5kTG9nKCJjb3VudCsrIik7CgogICAgICAgIGlm
IChjb3VudCA9PSAxKSB7CiAgICAgICAgICAgIGRlYnVnKCJJbnRvIHRoZSBpdGVyYXRpb24sIG5v
dyBtdXRhdGUgdGhlIHN0b3JlIGFuZCBpbmRleCIpOwogICAgICAgICAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygicmVxdWVzdCA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKS5k
ZWxldGUoIiArIEpTT04uc3RyaW5naWZ5KHRlc3REYXRhWzBdLnNzKSArICIpIik7CiAgICAgICAg
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgICAgICAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykuYWRkKCIgKyBKU09OLnN0cmluZ2lmeSh0ZXN0RGF0YVt0ZXN0RGF0YS5sZW5ndGggLSAx
XSkgKyAiKSIpOwogICAgICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CiAgICAgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwogICAgICAgICAgICAg
ICAgfTsKICAgICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjdXJzb3Iu
Y29udGludWUoKTsKICAgICAgICB9CiAgICB9Cn0KCmZ1bmN0aW9uIGNoZWNrTXV0YXRpbmdDdXJz
b3JSZXN1bHRzKCkKewogICAgZGVidWcoImNoZWNrTXV0YXRpbmdDdXJzb3JSZXN1bHRzKCk6Iik7
CiAgICBzaG91bGRCZSgiY291bnQiLCAidGVzdERhdGEubGVuZ3RoIC0gMSIpOwogICAgc2hvdWxk
QmUoInNhd0FkZGVkIiwgInRydWUiKTsKICAgIHNob3VsZEJlKCJzYXdSZW1vdmVkIiwgImZhbHNl
Iik7CiAgICBkb25lKCk7Cn0KCnRlc3QoKTsKCjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4KCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124384</attachid>
            <date>2012-01-27 15:37:00 -0800</date>
            <delta_ts>2012-01-27 16:05:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59822-20120127153659.patch</filename>
            <type>text/plain</type>
            <size>11686</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDk2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjg4Njk1MDkyMGZkZGQxM2Y4MWQx
NmUyOGMwYzZhNDVmY2UyY2E1MS4uYWQzMjliZmU5MDZlMzFmZmI4ZjliYzE3N2MzYzEyOWFjZDQy
OTVjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTI3ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCIGRvZXMgbm90IHVwZGF0ZSBy
L3cgaW5kZXggY3Vyc29ycyB0aGF0IGFyZSBtdXRhdGVkIGR1cmluZyBpdGVyYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5ODIyCisKKyAgICAg
ICAgQWRkZWQgdGVzdHMgdG8gdmVyaWZ5IHRoYXQgaW5kZXggY3Vyc29ycyBzZWUgdXBkYXRlcyBt
YWRlIHRvIGFuIG9iamVjdCBzdG9yZSB3aGlsZQorICAgICAgICBpdGVyYXRpbmcsIGFzc3VtaW5n
IHRoZSBjdXJzb3IgYW5kIHVwZGF0ZXMgb2NjdXIgd2l0aGluIHRoZSBzYW1lIHRyYW5zYWN0aW9u
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5o
dG1sOiBBZGRlZC4KKwogMjAxMi0wMS0yNiAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5j
b20+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb24gY2hh
bmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9j
dXJzb3ItbXV0YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0OTJk
MmVhMmMzMmFhYTQ1NDZiMGE5ZjIyZDczMzgyODBmNTMxODgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMzggQEAKK1Rlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIG11dGF0
aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cu
aW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWRE
QgorUEFTUyBpbmRleGVkREIgPT0gbnVsbCBpcyBmYWxzZQorSURCRGF0YWJhc2VFeGNlcHRpb24g
PSB3aW5kb3cuSURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNl
RXhjZXB0aW9uCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwgaXMgZmFsc2UKK0lE
QlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJU
cmFuc2FjdGlvbgorUEFTUyBJREJUcmFuc2FjdGlvbiA9PSBudWxsIGlzIGZhbHNlCisKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShuYW1lKQoraW5kZXhlZERCLm9wZW4obmFtZSkKK2RiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAorZGIuc2V0VmVyc2lvbignMScpCisKK3NldHVwT2JqZWN0U3RvcmVB
bmRDcmVhdGVJbmRleCgpOgordHJhbnMgPSByZXF1ZXN0LnJlc3VsdAorb2JqZWN0U3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJywgeyBrZXlQYXRoOiAnc3MnIH0pCitpbmRleCA9IG9i
amVjdFN0b3JlLmNyZWF0ZUluZGV4KCduYW1lJywgJ25hbWUnLCB7IHVuaXF1ZTogdHJ1ZSB9KQor
b2JqZWN0U3RvcmVEYXRhID0gWworICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzInLCBuYW1lOiAn
Qm9iJyB9LAorICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzMnLCBuYW1lOiAnQW5uJyB9LAorICAg
ICAgICB7IHNzOiAnMjM3LTIzLTc3MzQnLCBuYW1lOiAnUm9uJyB9LAorICAgICAgICB7IHNzOiAn
MjM3LTIzLTc3MzUnLCBuYW1lOiAnU3VlJyB9LAorICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzYn
LCBuYW1lOiAnSm9lJyB9LAorICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzcnLCBuYW1lOiAnUGF0
JyB9CisgICAgXQorb2JqZWN0U3RvcmUuYWRkKG9iamVjdFN0b3JlRGF0YVswXSkKK29iamVjdFN0
b3JlLmFkZChvYmplY3RTdG9yZURhdGFbMV0pCitvYmplY3RTdG9yZS5hZGQob2JqZWN0U3RvcmVE
YXRhWzJdKQorb2JqZWN0U3RvcmUuYWRkKG9iamVjdFN0b3JlRGF0YVszXSkKK29iamVjdFN0b3Jl
LmFkZChvYmplY3RTdG9yZURhdGFbNF0pCit0cmFucy5vbmNvbXBsZXRlID0gY2hlY2tDdXJzb3JS
ZXN1bHRzCisKK3NldHVwQ3Vyc29yKCk6Citjb3VudCA9IDAKK3Nhd0FkZGVkID0gZmFsc2UKK3Nh
d1JlbW92ZWQgPSBmYWxzZQorcmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKQorCitp
dGVyYXRlQ3Vyc29yKCk6CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGN1cnNv
ci52YWx1ZS5uYW1lIGlzICJCb2IiCitzYXdSZW1vdmVkID0gdHJ1ZQorY291bnQrKworY3Vyc29y
LmNvbnRpbnVlKCkKKworaXRlcmF0ZUN1cnNvcigpOgorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorUEFTUyBjdXJzb3IudmFsdWUubmFtZSBpcyAiQW5uIgorY291bnQrKworY3Vyc29yLmNv
bnRpbnVlKCkKKworaXRlcmF0ZUN1cnNvcigpOgorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAorUEFTUyBjdXJzb3IudmFsdWUubmFtZSBpcyAiUm9uIgorY291bnQrKworY3Vyc29yLmNvbnRp
bnVlKCkKKworaXRlcmF0ZUN1cnNvcigpOgorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
UEFTUyBjdXJzb3IudmFsdWUubmFtZSBpcyAiU3VlIgorY291bnQrKworY3Vyc29yLmNvbnRpbnVl
KCkKKworaXRlcmF0ZUN1cnNvcigpOgorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFT
UyBjdXJzb3IudmFsdWUubmFtZSBpcyAiSm9lIgorY291bnQrKworY3Vyc29yLmNvbnRpbnVlKCkK
KworaXRlcmF0ZUN1cnNvcigpOgorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorCitjaGVj
a0N1cnNvclJlc3VsdHMoKToKK1BBU1MgY291bnQgaXMgb2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAt
IDEKK1BBU1Mgc2F3QWRkZWQgaXMgZmFsc2UKK1BBU1Mgc2F3UmVtb3ZlZCBpcyB0cnVlCisKK3Nl
dHVwTXV0YXRpbmdDdXJzb3IoKToKK2NvdW50ID0gMAorc2F3QWRkZWQgPSBmYWxzZQorc2F3UmVt
b3ZlZCA9IGZhbHNlCitbb2JqZWN0U3RvcmVEYXRhTmFtZVNvcnQgaXMgYW4gYXJyYXkgb2YgaW5k
ZXhlcyBpbnRvIG9iamVjdFN0b3JlRGF0YSBpbiBhbHBoYWJldGljYWwgb3JkZXIgYnkgbmFtZV0K
K29iamVjdFN0b3JlRGF0YU5hbWVTb3J0ID0gWyAxLCA0LCA1LCAyLCAzIF0KKwordHJhbnMgPSBk
Yi50cmFuc2FjdGlvbignZm9vJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK29iamVjdFN0
b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ2ZvbycpCityZXF1ZXN0ID0gb2JqZWN0U3RvcmUuaW5k
ZXgoJ25hbWUnKS5vcGVuQ3Vyc29yKCkKK3RyYW5zLm9uY29tcGxldGUgPSBjaGVja011dGF0aW5n
Q3Vyc29yUmVzdWx0cworCitpdGVyYXRlTXV0YXRpbmdDdXJzb3IoKToKK2N1cnNvciA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKK1BBU1MgY3Vyc29yLnZhbHVlLm5hbWUgaXMgIkFubiIKK2NvdW50KysK
KworTXV0YXRpbmcgdGhlIG9iamVjdCBzdG9yZToKK1JlbW92aW5nIEJvYgorcmVxdWVzdCA9IG9i
amVjdFN0b3JlLmRlbGV0ZShvYmplY3RTdG9yZURhdGFbMF0uc3MpCisKK2FkZEZpbmFsRGF0YSgp
OgorQWRkaW5nIFBhdAorcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChvYmplY3RTdG9yZURhdGFb
b2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAtIDFdKQorCitpdGVyYXRlTXV0YXRpbmdDdXJzb3IoKToK
K2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgY3Vyc29yLnZhbHVlLm5hbWUgaXMg
IkpvZSIKK2NvdW50KysKKworaXRlcmF0ZU11dGF0aW5nQ3Vyc29yKCk6CitjdXJzb3IgPSBldmVu
dC50YXJnZXQucmVzdWx0CitQQVNTIGN1cnNvci52YWx1ZS5uYW1lIGlzICJQYXQiCitzYXdBZGRl
ZCA9IHRydWUKK2NvdW50KysKKworaXRlcmF0ZU11dGF0aW5nQ3Vyc29yKCk6CitjdXJzb3IgPSBl
dmVudC50YXJnZXQucmVzdWx0CitQQVNTIGN1cnNvci52YWx1ZS5uYW1lIGlzICJSb24iCitjb3Vu
dCsrCisKK2l0ZXJhdGVNdXRhdGluZ0N1cnNvcigpOgorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorUEFTUyBjdXJzb3IudmFsdWUubmFtZSBpcyAiU3VlIgorY291bnQrKworCitpdGVyYXRl
TXV0YXRpbmdDdXJzb3IoKToKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKKworY2hlY2tN
dXRhdGluZ0N1cnNvclJlc3VsdHMoKToKK1BBU1MgY291bnQgaXMgb2JqZWN0U3RvcmVEYXRhLmxl
bmd0aCAtIDEKK1BBU1Mgc2F3QWRkZWQgaXMgdHJ1ZQorUEFTUyBzYXdSZW1vdmVkIGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0
YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29y
LW11dGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiMDlmMWNlMWRjNDRiOWJiOTU5YzVmMjFhZDE0
NjEwNTllZGQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwKQEAgLTAsMCArMSwxOTkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPCEtLQorICBvcmlnaW5hbCB0ZXN0OiBodHRwOi8vbXhyLm1vemlsbGEub3Jn
L21vemlsbGEyLjAvc291cmNlL2RvbS9pbmRleGVkREIvdGVzdC90ZXN0X2N1cnNvcl9tdXRhdGlv
bi5odG1sP2ZvcmNlPTEKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55IGNv
cHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRwOi8v
Y3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYXJlZC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyBjdXJzb3IgbXV0YXRpb24iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBpbmRleGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5k
b3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4
ZWREQiIpOworICAgIHNob3VsZEJlRmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7CisgICAgSURC
RGF0YWJhc2VFeGNlcHRpb24gPSBldmFsQW5kTG9nKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IHdp
bmRvdy5JREJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0SURCRGF0YWJhc2VFeGNl
cHRpb24iKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxs
Iik7CisgICAgSURCVHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJJREJUcmFuc2FjdGlvbiA9IHdp
bmRvdy5JREJUcmFuc2FjdGlvbiB8fCB3aW5kb3cud2Via2l0SURCVHJhbnNhY3Rpb24iKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCJJREJUcmFuc2FjdGlvbiA9PSBudWxsIik7CisKKyAgICBkZWJ1Zygi
Iik7CisgICAgbmFtZSA9ICdjdXJzb3ItbXV0YXRpb24nOworICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UobmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KG5hbWUpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgICAgICAgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJzEnKSIpOworICAgICAgICAgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgICAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldHVwT2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRleDsgICAgICAg
ICAgCisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gc2V0dXBPYmplY3RTdG9yZUFu
ZENyZWF0ZUluZGV4KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldHVwT2JqZWN0
U3RvcmVBbmRDcmVhdGVJbmRleCgpOiIpOworCisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFu
cyA9IHJlcXVlc3QucmVzdWx0Iik7CisKKyAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9i
amVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHsga2V5UGF0aDogJ3NzJyB9
KSIpOworICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBvYmplY3RTdG9yZS5jcmVhdGVJ
bmRleCgnbmFtZScsICduYW1lJywgeyB1bmlxdWU6IHRydWUgfSkiKTsKKyAgICBvYmplY3RTdG9y
ZURhdGEgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZURhdGEgPSBbXG4iICsgCisgICAgICAgICAv
LyBUbyBiZSByZW1vdmVkLgorIiAgICAgICAgeyBzczogJzIzNy0yMy03NzMyJywgbmFtZTogJ0Jv
YicgfSxcbiIgKyAKKworICAgICAgICAgLy8gQWx3YXlzIHByZXNlbnQuCisiICAgICAgICB7IHNz
OiAnMjM3LTIzLTc3MzMnLCBuYW1lOiAnQW5uJyB9LFxuIiArCisiICAgICAgICB7IHNzOiAnMjM3
LTIzLTc3MzQnLCBuYW1lOiAnUm9uJyB9LFxuIiArCisiICAgICAgICB7IHNzOiAnMjM3LTIzLTc3
MzUnLCBuYW1lOiAnU3VlJyB9LFxuIiArCisiICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzYnLCBu
YW1lOiAnSm9lJyB9LFxuIiArCisKKyAgICAgICAgIC8vIFRvIGJlIGFkZGVkLgorIiAgICAgICAg
eyBzczogJzIzNy0yMy03NzM3JywgbmFtZTogJ1BhdCcgfVxuIiArCisiICAgIF0iKTsKKworICAg
IGZvciAoaSA9IDA7IGkgPCBvYmplY3RTdG9yZURhdGEubGVuZ3RoIC0gMTsgaSsrKSB7CisgICAg
ICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZChvYmplY3RTdG9yZURhdGFbIiArIGkgKyAi
XSkiKTsKKyAgICB9CisKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmNvbXBsZXRlID0gY2hlY2tD
dXJzb3JSZXN1bHRzIik7CisgICAgc2V0dXBDdXJzb3IoKTsKK30KKworZnVuY3Rpb24gc2V0dXBD
dXJzb3IoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2V0dXBDdXJzb3IoKToiKTsK
KworICAgIGNvdW50ID0gZXZhbEFuZExvZygiY291bnQgPSAwIik7CisgICAgc2F3QWRkZWQgPSBl
dmFsQW5kTG9nKCJzYXdBZGRlZCA9IGZhbHNlIik7CisgICAgc2F3UmVtb3ZlZCA9IGV2YWxBbmRM
b2coInNhd1JlbW92ZWQgPSBmYWxzZSIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJl
cXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGl0ZXJh
dGVDdXJzb3I7Cit9CisKK2Z1bmN0aW9uIGl0ZXJhdGVDdXJzb3IoKQoreworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygiaXRlcmF0ZUN1cnNvcigpOiIpOworICAgIGN1cnNvciA9IGV2YWxBbmRM
b2coImN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBpZiAoY3Vyc29yKSB7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3Vyc29yLnZhbHVlLm5hbWUiLCBvYmplY3RT
dG9yZURhdGFbY291bnRdLm5hbWUpOworICAgICAgICBpZiAoY3Vyc29yLnZhbHVlLm5hbWUgPT0g
b2JqZWN0U3RvcmVEYXRhWzBdLm5hbWUpIHsKKyAgICAgICAgICAgIHNhd1JlbW92ZWQgPSBldmFs
QW5kTG9nKCJzYXdSZW1vdmVkID0gdHJ1ZSIpOworICAgICAgICB9CisgICAgICAgIGlmIChjdXJz
b3IudmFsdWUubmFtZSA9PSBvYmplY3RTdG9yZURhdGFbb2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAt
IDFdLm5hbWUpIHsKKyAgICAgICAgICAgIHNhd0FkZGVkID0gZXZhbEFuZExvZygic2F3QWRkZWQg
PSB0cnVlIik7CisgICAgICAgIH0KKyAgICAgICAgZXZhbEFuZExvZygiY291bnQrKyIpOworICAg
ICAgICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKSIpOworICAgIH0KK30KKworZnVuY3Rp
b24gY2hlY2tDdXJzb3JSZXN1bHRzKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImNo
ZWNrQ3Vyc29yUmVzdWx0cygpOiIpOworICAgIHNob3VsZEJlKCJjb3VudCIsICJvYmplY3RTdG9y
ZURhdGEubGVuZ3RoIC0gMSIpOworICAgIHNob3VsZEJlKCJzYXdBZGRlZCIsICJmYWxzZSIpOwor
ICAgIHNob3VsZEJlKCJzYXdSZW1vdmVkIiwgInRydWUiKTsKKworICAgIHNldHVwTXV0YXRpbmdD
dXJzb3IoKTsKK30KKworZnVuY3Rpb24gc2V0dXBNdXRhdGluZ0N1cnNvcigpCit7CisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJzZXR1cE11dGF0aW5nQ3Vyc29yKCk6Iik7CisgICAKKyAgICBj
b3VudCA9IGV2YWxBbmRMb2coImNvdW50ID0gMCIpOworICAgIHNhd0FkZGVkID0gZXZhbEFuZExv
Zygic2F3QWRkZWQgPSBmYWxzZSIpOworICAgIHNhd1JlbW92ZWQgPSBldmFsQW5kTG9nKCJzYXdS
ZW1vdmVkID0gZmFsc2UiKTsKKyAgICBkZWJ1ZygiW29iamVjdFN0b3JlRGF0YU5hbWVTb3J0IGlz
IGFuIGFycmF5IG9mIGluZGV4ZXMgaW50byBvYmplY3RTdG9yZURhdGEgaW4gYWxwaGFiZXRpY2Fs
IG9yZGVyIGJ5IG5hbWVdIik7CisgICAgb2JqZWN0U3RvcmVEYXRhTmFtZVNvcnQgPSBldmFsQW5k
TG9nKCJvYmplY3RTdG9yZURhdGFOYW1lU29ydCA9IFsgMSwgNCwgNSwgMiwgMyBdIik7CisKKyAg
ICBkZWJ1ZygiIik7CisKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oJ2ZvbycsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgb2JqZWN0U3Rv
cmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdmb28nKSIp
OworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuaW5kZXgo
J25hbWUnKS5vcGVuQ3Vyc29yKCkiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGl0ZXJhdGVNdXRhdGluZ0N1
cnNvcjsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmNvbXBsZXRlID0gY2hlY2tNdXRhdGluZ0N1
cnNvclJlc3VsdHMiKTsKK30KKworZnVuY3Rpb24gaXRlcmF0ZU11dGF0aW5nQ3Vyc29yKCkKK3sK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIml0ZXJhdGVNdXRhdGluZ0N1cnNvcigpOiIpOwor
ICAgIGN1cnNvciA9IGV2YWxBbmRMb2coImN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
KyAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3Vyc29y
LnZhbHVlLm5hbWUiLCBvYmplY3RTdG9yZURhdGFbb2JqZWN0U3RvcmVEYXRhTmFtZVNvcnRbY291
bnRdXS5uYW1lKTsKKyAgICAgICAgaWYgKGN1cnNvci52YWx1ZS5uYW1lID09IG9iamVjdFN0b3Jl
RGF0YVswXS5uYW1lKSB7CisgICAgICAgICAgICBzYXdSZW1vdmVkID0gZXZhbEFuZExvZygic2F3
UmVtb3ZlZCA9IHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY3Vyc29yLnZhbHVlLm5h
bWUgPT0gb2JqZWN0U3RvcmVEYXRhW29iamVjdFN0b3JlRGF0YS5sZW5ndGggLSAxXS5uYW1lKSB7
CisgICAgICAgICAgICBzYXdBZGRlZCA9IGV2YWxBbmRMb2coInNhd0FkZGVkID0gdHJ1ZSIpOwor
ICAgICAgICB9CisgICAgICAgIGV2YWxBbmRMb2coImNvdW50KysiKTsKKworICAgICAgICBpZiAo
Y291bnQgPT0gMSkgeworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgZGVidWco
Ik11dGF0aW5nIHRoZSBvYmplY3Qgc3RvcmU6Iik7CisKKyAgICAgICAgICAgIGRlYnVnKCJSZW1v
dmluZyAiICsgb2JqZWN0U3RvcmVEYXRhWzBdLm5hbWUpOworICAgICAgICAgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5kZWxldGUob2JqZWN0U3RvcmVEYXRh
WzBdLnNzKSIpOworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGFkZEZpbmFsRGF0YTsK
KworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIGFkZEZpbmFsRGF0YSgpCit7CisgICAgZGVidWco
IiIpOworICAgIGRlYnVnKCJhZGRGaW5hbERhdGEoKToiKTsKKyAgICBkZWJ1ZygiQWRkaW5nICIg
KyBvYmplY3RTdG9yZURhdGFbb2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAtIDFdLm5hbWUpOworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKG9iamVjdFN0
b3JlRGF0YVtvYmplY3RTdG9yZURhdGEubGVuZ3RoIC0gMV0pIik7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbiAoKSB7CisgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgIH0KK30KKworZnVu
Y3Rpb24gY2hlY2tNdXRhdGluZ0N1cnNvclJlc3VsdHMoKQoreworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiY2hlY2tNdXRhdGluZ0N1cnNvclJlc3VsdHMoKToiKTsKKyAgICBzaG91bGRCZSgi
Y291bnQiLCAib2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAtIDEiKTsKKyAgICBzaG91bGRCZSgic2F3
QWRkZWQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJzYXdSZW1vdmVkIiwgImZhbHNlIik7Cisg
ICAgZG9uZSgpOworfQorCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgor
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>