<?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>40452</bug_id>
          
          <creation_ts>2010-06-10 16:22:05 -0700</creation_ts>
          <short_desc>REGRESSION: printing is broken if stylesheet has @page</short_desc>
          <delta_ts>2010-07-12 04:19:00 -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>Printing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Yuzo Fujishima">yuzo</assigned_to>
          <cc>ap</cc>
    
    <cc>hamaji</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>236578</commentid>
    <comment_count>0</comment_count>
      <attachid>58422</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-06-10 16:22:05 -0700</bug_when>
    <thetext>Created attachment 58422
Testcase

http://whatsthepointy.blogspot.com/2010/06/safari-5-has-some-printing-problems.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236581</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-06-10 16:23:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/8081713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236626</commentid>
    <comment_count>2</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-10 18:22:33 -0700</bug_when>
    <thetext>Sorry for the regression. I&apos;ll look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236661</commentid>
    <comment_count>3</comment_count>
      <attachid>58441</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-10 20:20:29 -0700</bug_when>
    <thetext>Created attachment 58441
Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236665</commentid>
    <comment_count>4</comment_count>
      <attachid>58441</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-10 20:54:33 -0700</bug_when>
    <thetext>Comment on attachment 58441
Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page

WebCore/css/CSSStyleSelector.cpp:2795
 +                          if (childItem-&gt;isPageRule()) {
Cannot we create a function to do this so we can share code?

WebCore/ChangeLog:8
 +          No new tests because currently there is no easy way to test print layout.
I&apos;m not 100% sure, but I guess we can test this patch by setPrinting though pixel dump isn&apos;t supported yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236678</commentid>
    <comment_count>5</comment_count>
      <attachid>58444</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-10 22:07:54 -0700</bug_when>
    <thetext>Created attachment 58444
Refactored and added a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236680</commentid>
    <comment_count>6</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-10 22:09:54 -0700</bug_when>
    <thetext>Thank you for the review. Can you take another look?

(In reply to comment #4)
&gt; (From update of attachment 58441 [details])
&gt; WebCore/css/CSSStyleSelector.cpp:2795
&gt;  +                          if (childItem-&gt;isPageRule()) {
&gt; Cannot we create a function to do this so we can share code?

Agreed. Extracted a method.

&gt; 
&gt; WebCore/ChangeLog:8
&gt;  +          No new tests because currently there is no easy way to test print layout.
&gt; I&apos;m not 100% sure, but I guess we can test this patch by setPrinting though pixel dump isn&apos;t supported yet.

Added a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236681</commentid>
    <comment_count>7</comment_count>
      <attachid>58444</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-10 22:18:10 -0700</bug_when>
    <thetext>Comment on attachment 58444
Refactored and added a test.

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236682</commentid>
    <comment_count>8</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-10 22:18:49 -0700</bug_when>
    <thetext>Ah, please add chromium&apos;s test_expectations.txt before you land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236699</commentid>
    <comment_count>9</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-06-10 22:51:55 -0700</bug_when>
    <thetext>Committed r60992: &lt;http://trac.webkit.org/changeset/60992&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249755</commentid>
    <comment_count>10</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-07-12 04:19:00 -0700</bug_when>
    <thetext>Committed r63070: &lt;http://trac.webkit.org/changeset/63070&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>58422</attachid>
            <date>2010-06-10 16:22:05 -0700</date>
            <delta_ts>2010-06-10 16:22:05 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>print_test.html</filename>
            <type>text/html</type>
            <size>4278</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHN0eWxlPgogICAgICBAbWVkaWEg
cHJpbnQgewogICAgICAgIEBwYWdlIHsgbWFyZ2luOiAxaW4gMS43NWluIDEuNWluIDEuNWluOyB9
CiAgICAgICAgQHBhZ2UgOmZpcnN0IHsgbWFyZ2luOiAyaW4gMS43NWluIDEuNWluIDEuNWluOyB9
CgogICAgICAgIGh0bWwsIGJvZHkgeyBoZWlnaHQ6IGF1dG87IG92ZXJmbG93OiB2aXNpYmxlOyB3
aWR0aDogNi41aW47IH0KCiAgICAgICAgaGVhZGVyIHsKICAgICAgICAgIG1hcmdpbjogMWluIGF1
dG87CiAgICAgICAgfQoKICAgICAgICBoMSB7IHRleHQtYWxpZ246IGNlbnRlcjsgfQoKICAgICAg
ICBhcnRpY2xlIHsKICAgICAgICAgIHBhZGRpbmc6IDAuNWluOyBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKICAgICAgICB9CgogICAgICAgIHAgewogICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlm
eTsKICAgICAgICB9CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9oZWFkPgogIDxib2R5PgogICAg
PGhlYWRlcj4KICAgICAgPGgxPkxvcmVtIElwc3VtPC9oMT4KICAgIDwvaGVhZGVyPgoKICAgIDxh
cnRpY2xlPgogICAgICA8cD4KICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNl
Y3RldHVyIGFkaXBpc2NpbmcgZWxpdC4KICAgICAgRG9uZWMgbG9yZW0gbWF1cmlzLCBwcmV0aXVt
IHZpdGFlIGZhdWNpYnVzIG5vbiwgZGlnbmlzc2ltIGVnZXQganVzdG8uCiAgICAgIE1vcmJpIHZh
cml1cyByaXN1cyBhYyBuaXNpIG1hdHRpcyBxdWlzIGhlbmRyZXJpdCBkdWkgdWx0cmljaWVzLgog
ICAgICBDcmFzIGRpYW0gbGVjdHVzLCB1bGxhbWNvcnBlciBpbiB1bGxhbWNvcnBlciBzYWdpdHRp
cywgYXVjdG9yIHZlaGljdWxhIG1pLgogICAgICBOdWxsYSBmYWNpbGlzaS4KICAgICAgVXQgZWxl
aWZlbmQsIGRvbG9yIGFjIHBvcnRhIHZvbHV0cGF0LCBkaWFtIHB1cnVzIGRpY3R1bSBuaWJoLCBl
dSBjb21tb2RvIGRpYW0gdG9ydG9yIGVnZXQgdGVsbHVzLgogICAgICBWZXN0aWJ1bHVtIGFjY3Vt
c2FuIHNlbXBlciBtYXVyaXMgaWQgbWFsZXN1YWRhLgogICAgICBTdXNwZW5kaXNzZSBmZWxpcyBz
ZW0sIHZhcml1cyBpbiBvcm5hcmUgZXUsIGxhY2luaWEgbmVjIG5pc2wuCiAgICAgIE51bGxhIGZh
Y2lsaXNpLgogICAgICBNYWVjZW5hcyBzb2RhbGVzIGludGVyZHVtIHF1YW0sIGNvbmRpbWVudHVt
IHJ1dHJ1bSBhdWd1ZSBtb2xlc3RpZSBhdC4KICAgICAgSW4gYWxpcXVldCBlbGl0IHZpdGFlIGp1
c3RvIHZ1bHB1dGF0ZSBsb2JvcnRpcy4KICAgICAgQ2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3Nx
dSBhZCBsaXRvcmEgdG9ycXVlbnQgcGVyIGNvbnViaWEgbm9zdHJhLCBwZXIgaW5jZXB0b3MgaGlt
ZW5hZW9zLgoKCiAgICAgIDxwPgogICAgICBOYW0gZXQgbmlzaSBhYyB2ZWxpdCBhdWN0b3IgcnV0
cnVtLgogICAgICBNYXVyaXMgc2VkIHJpc3VzIG5pYmgsIHZlbCB2b2x1dHBhdCBhdWd1ZS4KICAg
ICAgTWF1cmlzIHV0IG5pYmgganVzdG8sIHBsYWNlcmF0IHVsbGFtY29ycGVyIHNhcGllbi4KICAg
ICAgTnVuYyB2ZWwgYW50ZSBlZ2V0IGxlbyBmcmluZ2lsbGEgbW9sZXN0aWUuCiAgICAgIFZlc3Rp
YnVsdW0gYW50ZSBpcHN1bSBwcmltaXMgaW4gZmF1Y2lidXMgb3JjaSBsdWN0dXMgZXQgdWx0cmlj
ZXMgcG9zdWVyZSBjdWJpbGlhIEN1cmFlOyBFdGlhbSBhdWN0b3IgdWx0cmljaWVzIHVsbGFtY29y
cGVyLgogICAgICBGdXNjZSBwb3N1ZXJlIGR1aSBzaXQgYW1ldCBzZW0gYWNjdW1zYW4gYWNjdW1z
YW4uCiAgICAgIFNlZCBwbGFjZXJhdCBldWlzbW9kIGRvbG9yIGEgdGVtcHVzLgogICAgICBQcmFl
c2VudCB0aW5jaWR1bnQgbnVsbGEgcXVpcyBuaXNpIGRpY3R1bSBtYWxlc3VhZGEuCiAgICAgIE5h
bSB0ZW1wb3IgZWdlc3RhcyBwdWx2aW5hci4KICAgICAgQWVuZWFuIHV0IHRvcnRvciBxdWlzIHNl
bSB2ZXN0aWJ1bHVtIGZyaW5naWxsYSB1dCBpbXBlcmRpZXQgcXVhbS4KCgogICAgICA8cD4KICAg
ICAgRHVpcyBkaWN0dW0gb2RpbyBzZWQgbGVjdHVzIHBlbGxlbnRlc3F1ZSBhYyBhY2N1bXNhbiB0
dXJwaXMgdWx0cmljZXMuCiAgICAgIE5hbSB1dCBlcm9zIHRvcnRvciwgc2VkIHBoYXJldHJhIGF1
Z3VlLgogICAgICBNYXVyaXMgZmVybWVudHVtIGFjY3Vtc2FuIHByZXRpdW0uCiAgICAgIEV0aWFt
IGluIGxlY3R1cyBudW5jLCBhdCBpbnRlcmR1bSB0ZWxsdXMuCiAgICAgIERvbmVjIHNlbSBsZW8s
IGx1Y3R1cyB2ZWwgZmV1Z2lhdCBhLCBwaGFyZXRyYSBhYyBtZXR1cy4KICAgICAgQWxpcXVhbSBh
bnRlIGR1aSwgb3JuYXJlIHV0IHRpbmNpZHVudCBlZ2V0LCBtb2xlc3RpZSBpZCBuaXNpLgogICAg
ICBOdWxsYSBsb2JvcnRpcyBxdWFtIGFjIGFudGUgdWxsYW1jb3JwZXIgZmVybWVudHVtLgogICAg
ICBWaXZhbXVzIHRyaXN0aXF1ZSBsaWJlcm8gbGVvLgogICAgICBBZW5lYW4gZXQgZWxpdCBpZCBw
dXJ1cyBsYW9yZWV0IGNvbmd1ZSBpbiBub24gbmlzaS4KICAgICAgUGVsbGVudGVzcXVlIGNvbmd1
ZSBzY2VsZXJpc3F1ZSBhcmN1LgogICAgICBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0
IG1hZ25pcyBkaXMgcGFydHVyaWVudCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuCgoK
ICAgICAgPHA+CiAgICAgIEV0aWFtIHF1aXMgbG9yZW0gYXVndWUuCiAgICAgIE51bmMgbmVxdWUg
ZXN0LCBjb25zZWN0ZXR1ciBlZ2V0IGJsYW5kaXQgYXQsIGFjY3Vtc2FuIHF1aXMgYXVndWUuCiAg
ICAgIE51bmMgdml0YWUgcHVydXMgbmVjIG1ldHVzIGxhb3JlZXQgY3Vyc3VzIHNlZCBpZCBhdWd1
ZS4KICAgICAgTnVsbGEgc2VkIGFudGUgcmlzdXMsIHNlZCBzYWdpdHRpcyBtYXVyaXMuCiAgICAg
IFV0IGZhY2lsaXNpcyBvcmNpIHZpdGFlIGxpYmVybyBsYW9yZWV0IHBlbGxlbnRlc3F1ZS4KICAg
ICAgVmVzdGlidWx1bSBqdXN0byBtZXR1cywgY29uc2VxdWF0IGV0IHBsYWNlcmF0IGFjLCB0ZW1w
dXMgaW4gbnVsbGEuCiAgICAgIFNlZCBhIG1hZ25hIHZpdGFlIHB1cnVzIGFjY3Vtc2FuIHRpbmNp
ZHVudC4KICAgICAgTnVuYyB1dCB0b3J0b3IgbGVvLgogICAgICBTZWQgY29tbW9kbyBwcmV0aXVt
IG1pLCBhYyBzYWdpdHRpcyBsb3JlbSB0aW5jaWR1bnQgZXUuCiAgICAgIEFsaXF1YW0gZXJhdCB2
b2x1dHBhdC4KICAgICAgU2VkIGluIGxvcmVtIG5pc2kuCiAgICAgIEZ1c2NlIGV1aXNtb2QgZGln
bmlzc2ltIHZlbGl0IGFjIHJ1dHJ1bS4KICAgICAgU2VkIHNlZCBvcmNpIGVyb3MuCiAgICAgIEFs
aXF1YW0gZnJpbmdpbGxhLCBxdWFtIHF1aXMgcHVsdmluYXIgcG9ydGEsIG1hZ25hIG1hc3NhIG1v
bGxpcyBuaWJoLCBldSBjb25kaW1lbnR1bSBtaSBuaXNpIGluIGRvbG9yLgoKCiAgICAgIDxwPgog
ICAgICBDdXJhYml0dXIgdml0YWUgbWF1cmlzIGFudGUuCiAgICAgIFBoYXNlbGx1cyBwdXJ1cyBv
ZGlvLCBpbnRlcmR1bSBuZWMgc2VtcGVyIHNlZCwgcG9zdWVyZSBzb2RhbGVzIGxlby4KICAgICAg
VmVzdGlidWx1bSByaG9uY3VzLCBhcmN1IGlkIGNvbmd1ZSB0ZW1wdXMsIGp1c3RvIGxlbyBwb3N1
ZXJlIG1ldHVzLCB0cmlzdGlxdWUgZmFjaWxpc2lzIG1hdXJpcyBsaWJlcm8gYSBkb2xvci4KICAg
ICAgU3VzcGVuZGlzc2UgZHVpIGVyYXQsIHZlc3RpYnVsdW0gdHJpc3RpcXVlIHBlbGxlbnRlc3F1
ZSBzaXQgYW1ldCwgdHJpc3RpcXVlIHZlbCBzYXBpZW4uCiAgICAgIERvbmVjIHNhZ2l0dGlzIG51
bGxhIGV0IG1hZ25hIHB1bHZpbmFyIGluIGFsaXF1YW0gbmlzbCBwbGFjZXJhdC4KICAgICAgSW4g
c3VzY2lwaXQgbG9ib3J0aXMgYXVndWUsIGF0IHZ1bHB1dGF0ZSBtYXNzYSBibGFuZGl0IGF0Lgog
ICAgICBNYXVyaXMgc2NlbGVyaXNxdWUsIHB1cnVzIHZpdGFlIHN1c2NpcGl0IG1vbGxpcywgZXJh
dCBhbnRlIHNlbXBlciBsb3JlbSwgaWQgZmF1Y2lidXMgbGVjdHVzIGxlY3R1cyB2aXRhZSBhdWd1
ZS4KICAgICAgTnVsbGEgbWFnbmEgbGlndWxhLCBjb25zZXF1YXQgc2l0IGFtZXQgYWRpcGlzY2lu
ZyBlZ2V0LCBhdWN0b3IgYWMgYXVndWUuCiAgICAgIE51bGxhbSBydXRydW0gZWxpdCBldSBuZXF1
ZSBkYXBpYnVzIGF0IGZlcm1lbnR1bSB0dXJwaXMgc2VtcGVyLgogICAgICBNYWVjZW5hcyBhbGlx
dWFtLCBtYXNzYSBzZWQgZnJpbmdpbGxhIGFkaXBpc2NpbmcsIG1pIGVyYXQgcGVsbGVudGVzcXVl
IGVyYXQsIGEgYmliZW5kdW0gbWF1cmlzIGVyYXQgc2VkIGVuaW0uCiAgICAgIER1aXMgbmVjIG51
bmMgcHVydXMsIHZlbCBwb3J0YSBlcmF0LgogCiAgICA8L2FydGljbGU+CiAgPC9ib2R5Pgo8L2h0
bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58441</attachid>
            <date>2010-06-10 20:20:29 -0700</date>
            <delta_ts>2010-06-10 22:07:48 -0700</delta_ts>
            <desc>Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page</desc>
            <filename>bug-40452-20100610202028.patch</filename>
            <type>text/plain</type>
            <size>2268</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODY2NzJlY2JkNWFkZmZmMTgxYTA2YTg1YmE5MjY4NGM3YTkzMGJjMC4uMzRlOTQ0MTAwYzM3Y2Rk
MTBkNGM5ZGIyMjU2MGI5YmYzMmFmNTFiMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0xMCAgWXV6
byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IEJ1ZyA0MDQ1MjogUkVHUkVTU0lPTjogcHJpbnRp
bmcgaXMgYnJva2VuIGlmIHN0eWxlc2hlZXQgaGFzIEBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDQ1MgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBiZWNhdXNlIGN1cnJlbnRseSB0aGVyZSBpcyBubyBlYXN5IHdheSB0byB0ZXN0IHByaW50IGxh
eW91dC4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1J1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KToKKwogMjAxMC0wNi0xMCAgVG9u
eSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQg
VGFtdXJhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAzYjg2ZjBmYWNhMTliYzA5OTQw
ZDg5Y2E1ZDY5ZWZjNWQ0OTliNzM1Li4zNDY2YTIwNDk1MzJhMTZjZGYzNzQ1NDFlMWQ1OTVhMjU3
MDI0NGIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjc5Miw5ICsyNzkyLDE0IEBA
IHZvaWQgQ1NTUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoQ1NTU3R5bGVTaGVldCogc2hlZXQs
IGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0CiAgICAgICAgICAgICAgICAgICAgIENTU1J1bGUgKmNo
aWxkSXRlbSA9IHJ1bGVzLT5pdGVtKGopOwogICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRJ
dGVtLT5pc1N0eWxlUnVsZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJdCBpcyBh
IFN0eWxlUnVsZSwgc28gYXBwZW5kIGl0IHRvIG91ciBsaXN0Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihjaGls
ZEl0ZW0pOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChDU1NTZWxlY3RvciogcyA9IHJ1
bGUtPnNlbGVjdG9yTGlzdCgpLmZpcnN0KCk7IHM7IHMgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQo
cykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkUnVsZShydWxlLCBzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZEl0ZW0tPmlzUGFnZVJ1bGUoKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENTU1BhZ2VSdWxlKiBwYWdlUnVsZSA9IHN0YXRpY19jYXN0
PENTU1BhZ2VSdWxlKj4oY2hpbGRJdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
ZGRQYWdlUnVsZShwYWdlUnVsZSwgcGFnZVJ1bGUtPnNlbGVjdG9yTGlzdCgpLmZpcnN0KCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihjaGls
ZEl0ZW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoQ1NTU2VsZWN0b3IqIHMg
PSBydWxlLT5zZWxlY3Rvckxpc3QoKS5maXJzdCgpOyBzOyBzID0gQ1NTU2VsZWN0b3JMaXN0Ojpu
ZXh0KHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRSdWxlKHJ1bGUsIHMp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGNoaWxkSXRlbS0+aXNGb250RmFjZVJ1bGUoKSAmJiBzdHlsZVNlbGVjdG9yKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhpcyBmb250IGZhY2UgdG8gb3VyIHNldC4KICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENTU0ZvbnRGYWNlUnVsZSogZm9udEZhY2VSdWxl
ID0gc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4oY2hpbGRJdGVtKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58444</attachid>
            <date>2010-06-10 22:07:54 -0700</date>
            <delta_ts>2010-06-10 22:18:10 -0700</delta_ts>
            <desc>Refactored and added a test.</desc>
            <filename>bug-40452-20100610220753.patch</filename>
            <type>text/plain</type>
            <size>17546</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOWQ1ZDQ2ZmM5MDRmY2YyOTkzOTE1YzJlNmU0Y2MxZWFlMzQ0ZjI4Li40MTY1OGFi
ZjJhMWMzNTZkMDU2NDVhNzMyODdiYmRlZTI5M2E0NzQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDYtMTAgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBCdWcgNDA0NTI6IFJF
R1JFU1NJT046IHByaW50aW5nIGlzIGJyb2tlbiBpZiBzdHlsZXNoZWV0IGhhcyBAcGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA0NTIKKworICAg
ICAgICAqIHBsYXRmb3JtL21hYy9wcmludGluZy9wYWdlLXJ1bGUtaW4tbWVkaWEtcXVlcnktZXhw
ZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9wcmludGluZy9w
YWdlLXJ1bGUtaW4tbWVkaWEtcXVlcnktZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvcHJpbnRpbmcvcGFnZS1ydWxlLWluLW1lZGlhLXF1ZXJ5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcHJpbnRpbmcvcGFnZS1ydWxlLWluLW1lZGlhLXF1ZXJ5Lmh0
bWw6IEFkZGVkLgorCiAyMDEwLTA2LTEwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvcHJpbnRpbmcvcGFnZS1ydWxlLWluLW1lZGlhLXF1ZXJ5LWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3ByaW50aW5nL3BhZ2UtcnVs
ZS1pbi1tZWRpYS1xdWVyeS1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODdlZWUzMjc2
YzRjNWRkNDFmNDRiYzc3MTRlN2I4YTA5MWE4MmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3ByaW50aW5nL3BhZ2UtcnVsZS1pbi1tZWRpYS1xdWVyeS1leHBl
Y3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACis5NTA1M2VjYmQxMjEyYzkyZDUwZTJhMDNlMTUx
YjhiZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9wcmludGluZy9wYWdlLXJ1bGUtaW4tbWVkaWEtcXVlcnktZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3ByaW50aW5nL3BhZ2UtcnVsZS1pbi1tZWRp
YS1xdWVyeS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZkYjZkNTlhM2YxZWMzYzNjMWRkYjVj
ZTFjZTlkYWRhNzQ3YTNhZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTc0MTUKemNtZUh2WCpg
cmB7NjNPWVI3eShMcXFHcmBqMmV0bU4xWkk0SG5KfVhTJT5VcWg4OTloOVZaZkkmWiV0S3Z5NjJ7
Cnp3I2d9YEI3PyFpJFVlcWtYM1lNM3JhQzd0e3hBTTdleEtoZkA4PEsmdilzPnBVKkdGe1VEckxJ
TnhXIW5BLWllTQp6Q05WS0YrNEpZbFRvTXlvciFGUVlWSjlzRzlDO1JZQ2tRd0lfQXhpVmM7NEp4
e2JGJDdPJj5vYEZ8aTJvYCtye1cKej8hNzE8Rk1OM0RQU3VAKVlLMT8pb0tDTE5IMnNpdGs+cGR8
X1pZZ0hgJDZOYUw1U0JMdDdDZVppZlJ3ZW9mPX0+CnpDbj4ydE5JcER2eThkRU4/JmltKlhNS057
Z3l3MklJMVJlZ0E+Mj4zSmJYPWVBM0x9a0w3MHNmeVNudnFzPmZMYQp6KlolSD8mZURSZ3NmRX5A
MiNLbyZyO2dXTmlsM31IdSQ+RmJ5Sms5QkhqVE9YKCkwRUNqd0ZXNCkwSFpKMkxBJW0Kem9pPllO
YSFfbmVXWi1kfjlUR3t1Jkw7VWFKN3tpfFlQNFBLWSlzM2FjeVBueDtGSkJ9QG4xMHEyMk5wNUlY
eyE3Cnp5RlRiP0lUcmlNQEskZzxNYz98eWBucHsyOD1taWZlO3RyLW0xVjMrXiYjeGVpfDc5ZWV8
IUJ5I31sTUBpRXIjIwp6VTlCNE50LUc1eDd1Jm0zOVBic147Pkp9UiotMFkyZ3NBMCk0WlpVbG1g
a3wpPlA3TGlkRXMpMU4lX2oycWFvRS0KeklINSZYcDREfEo3Z0k3bDwlZ2JeZEFqfGhyQ3RFKT9e
QHxSVmdLTVJEKDMzdXB0TylWN2x9MzxGKE8xbE5tY0JmCnorUGNJJmV8Y0B0bT5kV1FgcjNZfGQ7
UWVnNlp1Wlp6PCZ9QVhFfFhkSVRsKH4wVk1CJC1iP0FaWSNwMUJgdi09ZQp6cDk2WEg5fWVtaypt
cCElbXElfTE+PWJCQi1vciR2S1k0dW5SYSlobFY8Z1RXM09ObShEZFcrS0F2VTE4SU8zSSMKejtV
MTsoKkJ7QDl2bX0rTERAJStCWEshaFFHRl5GTW5lPzVYSjF4RSU/P1huay1fXzN4Z3JwQjxzMXRp
byM7RH07CnpSITNNaElmXnIqaXMhRXRBMlV+PlV4IWxfez9Nbkx5ZnRyPkY2XnFUY15qZX16Z35R
WUE8ZldXLV5jcTBwTTdhUQp6eUcxZHxeMDF8U3VGSHA4RXY8Q2k7VW9NMFkweTRnem1PU2klOGo9
RXQ5ZSktdUojPUkmPiglVUh3Vm5tNjh3clEKekIhOSM/N3dRXlpHMlQxPmQoVW5oRjkrJipeTG9s
ZHJRVTstY2hCeXVORVB8IzZIbGwyeGpDUCphbFRITEZWKnBJCnpEYiRUTiRUVzkrWHA+TWN8RkA7
cD9pPERmKXBPVyRIN29taEYoQ3NBJnMzeyp5Rzt2PSMtbT1PcyQ+PyFwQHhwSwp6elFXMlAqSDVw
RDdSRk5ePUB8UnxVM3dLJUlEOUwpZSUtVkIzO3ZmS0szaWp7UzZDVjAlZlorN1RmWXYtXz8rSz0K
ekg+R0YhbnN2UnRnUVFSYXVFKjAyLVJNeDhfamYxNHlRUnoxXjFAMiQ3cDdZSElrcWxPUntaYD4q
X2FEcHUkWSotCnoqIWVUM3UwKTdhaGN7UTw0IXNVcEt1aGs8a2sqe2lrbGRLS0o8aDNpLTw0V1J2
K19CT290bDRFSjhuRGVgdHRnbgp6OyRSPVMrTX1EfmIlI0coT25QbzZhbWUjNT0qQDNoSV9LcCtU
QTk1d3lMZE5TMiF7KXFLQiFVMGlOO0F8U187OD0KejdVcVNAWShmdWtrQT9JTmtfV2gkJEA2SiR4
QXNkJk5eZXMpaXhtP0dLS016LWA1VShRTXI+U3RAT0dTa3o2eHNqCno8cEhhVmA1cGhCMzAmZ1pD
REMpaERPWVRKUENuWGtOejNRUUp3IUthLWVLPmBSOFAyRWp7MmFzTENOTyglfCh8YAp6SHU9ZWtr
TjJQaiVOPHdnd15sdipQaWJTRlNqWF87UTBmUXN0XlV4MEAkJUwheldGJn1fRihRQEJgTVBqSEs1
YkQKeiY9Tio7M2VWa0hIeVc9clNiPGsxT19DOHBLRktxfnNjKGNrIW01RVcybDYzZFZ+R2M5TlAj
JCpUYyg5LTxqV2p7CnpmWCVOdilAfTZTWSpYKVQpXklySHZXLWMjM1c3KCEmQH4yS15fbiY2YXJo
TVI2WjVye0teU1k4N3xfSiUzbWJgPwp6dFM8MH5Te1kzc28hI1pzeVhEMEFxcCtffVktP1UxUDNz
fT5faj5wJG1HR2c4dilkdiZGRjFkKUtKb1FXIUFjbSgKenBFeT82IzJoU0EzMkdNU1NGR3F4bjZT
c3dOWExuZUp2IUt4RzFXNSlzTzxXc0xMMW1DbGpSVFEpUkFiS0ticm1DCnpELVErRF9faFMhKSp8
bDYpaHwjQkdrMF4qNVU/Z2E+d1hPel52TXRGSn4zSTlXX198eT9RIWpOVUtZb2dQUyRDZAp6YCRS
KXhlbWBTJmcxNkFobTN1NmB5e0JpVnQ+Wl4pMiFDMCMpI0FPPFl8ejQrNFZXZ0BOYn4/Wms2WnQ5
RW49R3wKemorQT9nVEBRRmRGa3VaYmAjcTQxeX1SRmE/SU42Zzh2JEhHYGtMV194KFUzOUZEY28x
YFQ2cUdKRkE5UTteTypRCnp7MDdwNT5EQHJYTW1NbDB2VFM9I2pOYVF9e35qQCZvMXliUWROTD14
aFItQ0dRR3NSTGpJMTtONCo+dSklejxuNwp6Kj1mV01nJUNgJUh1PlpET3NjMUReenthNjRRVmpx
cFQzMz5NeWFYUGpyUkxwc3t3V0dLPjNXPTs/eFR5UV9EQHwKel9KPm07WmYjZUtZbGchfVZWIzs4
JWswM3F1anlncWsxZXtaaSEqPTFkMFQoSTxUVnZEVWA8bU1lJVl0PDhCQ359CnpMYDVee3M8dGsk
KDF3eztNVDJxeyU2YkklaUM9eWAlMmk5PT95NllnbkBPKm4mfSVzVCZxZENSUzlLQGNrNDktTAp6
PCRKVmlNcCYlXnQrQyNFUlRmek4lfGkzS3QrIUsqS0l2SzA/UmVeTCp7NEcoRFdEb0IwTD9NNGdh
UE58U3BaSTMKekpiSj1ZUHRGdkNlVG15MzhoNDQlWTstdzlZWiQzXl9+Qy1QIztPNmwrWkV2YG1n
dTV+bX58aXpWJio9ViE5JH4yCno0ZG1nUGZ0eShoNVNkeVVtUm5Qc2JUI3xoYWNpT3IwQG0+NSZn
TGteckgtdnpKOEY+dyhfZUtGazxwODNYaytmZQp6OX1GKURjWXVqdkhSZDxiVV5ITCFPNTFAIUZx
eiNnYz01bW5IZ2g/e3YxNy1veEE3YTF1ejRvYVE9M0ZAeT9nb1YKeiUwbTZudVlXIThJc1ZISEN1
aDRJdDE4N1h2KVFrcy0mXzFmbnQjUXZ7aV9DXncoLTV4cXBQeH4kdjFxZF9jd2s2Cnp2V1FmK14m
Z2ckZHtpPiNVblRlUlgqRHc5O3kyeiFwbz14WG9nJClAeFJUUmZwdGYoNE58S2hVRVB0TFV6MEVH
VQp6Kj9tezd5K0xlU3ZiTiFwejRPclBSb0B5ekNEVHQ5akxIYHU9PU4kKC1+Snl6Xl5aJDlTYzxW
JUBSMGRrQTM8ejwKemA9Kn0qdmRlMXpMd3ZrYHckd0w0SE9nQ1VZakQzP0xVb1RkeEZpUmw1YkZE
NTFpeEwqNXBFNSRyNDY2NyRVJntMCnpSRz5KaE9FakVOS3o7cEEkQ3E5LTFDV3ZwVnk8bjZqVVI+
Iz1lRm8walRnXj5nfWZ6aGgqdmlCKld7Pio+QVB3Pwp6KlhXVFk2Y09SWl9weW4jazhhbTt0ezg3
akswPyE1SihwXjZuKXExZEBGNkdfJWJvWWRqNzBmQFhebCh2eT9RMTwKekp5Vn0yPiljOUU0bkVo
Z18+VUlwcWxNYkE4ZjQ8QiQ2elhXekYqQCg8Rzd9LVBrd2dyWi1eTTZjNntrVyZlN0QqCnpUYTNR
TTNoYTJobVFYUV5veiFRKHI5UWh7VnhVXyFIcm9oaklYM1hjRy1eczxqN1JrRnRUUz1UJCpJNFhz
b3srOwp6YXpndkFgek5TYGM/VStjRCY2JDVUfUFUY25WWXBFQ0hNNy0zVk9aPlZpSjE7O04pQUEq
Jil7OD42ZEFQYmk1aWwKenBuZntmKVB7JDdyXy0+XnJURUxzVUVCaVVFeF54PXxEQipaTHFIMGhw
elMtVSVSTSRPMX5Gfk1uNCNiYzRkWmBZCno3ent4elduKj1xJVU/NElGKm1zJTU9OyRoZi1iQ0wz
NTkqLWVnSFJ0eTgmKTgtTT1eMHdiPGJRJX1mMmE8d2lYTAp6VVByP1ZPZWwmM1ohUSglNUBtVTYp
dmVOaERTentndGZvZjRPa0BRKkxvZTdFam93cE9hKjNNRy1Naj00WT52c2YKencmXlFOKUBiZ348
WHs0WEgrc0xQVlp5MDlXKTtmKFIzKCZAJkQ8SDNzV3hDaG0xRjZDdDclS1lkTFc5fUYhQzg2CnpU
VUApKUQrQiRmRldINFI3NiExV2ptZUQ4ZSpoUGthN2IjRitWSUZpNE9ab3tRQTtYO2E0YVdrcnFH
fHtrRCs+Owp6YlFrTzxMcSF4Oz41Wk9AK28wK1Z7cFh0RmlGYXBLenNWdXNPfiElTV9tKD83Y0J5
SH1HSjN3d09OfEMpZTc0MEQKem1EYXlmZndzdmxZND1TZ1VNX1J5NGljRn5vQFhFRSReQk9uPmdB
ckJ7NFI8YCZROyghVXhSPi1LeDRrTFpNcnBvCnoxbz52RiFZP35AWFUzUERAVDM+MlExPFkmXztm
ZksjJWZIP0xhdzZ5dH4wSSF0czl8KG1vMT8kSitqOXRSISs0VAp6LUpqYEQzaU5CM3ViKkFIQXs+
NW5hMn18VmB9alBYYSVrYEdSRGMpIzBCa3g0PDY1UkMpOVp5Ym41R2lnKmJjT30KejhoXkB5aXhh
WlohZkJrPDs/U2ZpIylMbUA8OG4oNnhmKjxtbn5aKCpFaCRtJEd9c3dNak5adURAdj14Tz9wcTdm
CnpQYmZ5UVNHOT1Ve0ltUlBlOSlaVXs2VjA4TlFsU0EpPHR7clhVbEx7cj1VME1zZUJwJnV+bilw
PUJ0KiZMKzthQAp6aztRYU8pZDJ7KmxiV2p3bzFWTGpFUF5iPVpDeGhJQ0JFMy1iRDV7WDBvbypx
PSo1QXVSPG9DfVdMezxhbTJ2TTIKelFqZXhIYCRCZUBhdDg+XkZ1QnZLSW0kMGI7PT1rem87R2hA
e2s2XmJARDt8c3w3Znc/UWAreD9gdGxLdm8+ZiNRCnpFfEhaTEVCM21zWD5WVmBmQWlhWE88TyhJ
dVJYQlRZVlhnaD5vI2hHclM/Z3NLMyZ6LSlYVnE4ZWJ3PTxfN2g5bwp6YnY8RDhiTWR7JSkjSyU/
empwRWdLIV8jNlczSFFqZSZKXipGfXVmWCV3bSZoKSp+d2lZTzlPU0BpLWl5T0k0PlUKel99Vmtj
TE96KmBKU281PGM9I21QNzt6TmZxMy0pXkx1UzEjanolWnhBdnBQbmBmXnhoXylRRmckK28mKUhX
Xkt5Cnp3bjVhI1Q8IX5qTyojISFWPCtyMChCVVJzN1QqekRqQkhMNEFIU35+PEhyNEAlbTJod0E9
NmM7RlZuMVZwOz9oPQp6QjRRJlNTYnJ8Sj5geSFgaXBNRHZNc1o4WG9EeCRxQVVtKzh6QlAjcisy
SkZSUjR7R3s0Qz1KIXdkbkZyYkUjd2oKejcyNS1BN1QtYHMkMUNrfSRpIzdxYUpPN29wKU4jYF9g
MDdEbmg9ZHVqcUBSNDVFUm8yKHE9bnIqWUchUSVYKlc7CnpofHJ3fTAxYEcrbXxzSWRMYTtIKGVJ
Nzh8aENoNV5VRFowY0xCP14mX2JNJG5qUHBjbkgwZFV2MWt9dStOTGl2NQp6fElBO3U5ZHRgajhE
em19dFFyXmc2UElhNXBrTn1mVyttTTtFRVlGWWduZjFQRDd6NU5EWGNFfWU2eEljRlZnc3YKellT
aCU8JXl0KUV5SGNxQypsYHhuS05RTjsxUn5VdmotbHVlSiZCX2hoLUN8KUBRMz5aM3ROVGQxV1gw
N2kzN3Q7CnpKeD9CRlBvbH1EJW5JYUBuV0dLLTxuRjNPUm1hKEFJZzFSenNHOHQhezx3fGMyNnl9
YnE7QnI8VXlTfj8+UVkqSwp6YXFCSVlyT15ibjBNUEw1cDN+fE0pSjNKJnNwJnM3JkJVJDt1PlJj
XnJxU1JxSkclNStLdU9uYUd3cnlhN2xgQU4KemE4MGwtVnZINVNUZnspUjI3RiF6UnRRTH0oaXpR
K0p2VlRhUkIqdD42fXdtRE1sQSpnIU5uWjBLOW1IfiZpbVNlCnpwRVBDRm5jNjVuOE44ViNqTWdl
NSFvcmtfJGdFdEJaWiUpVWF8YUw4Py1naUhQS0dqbzZgVH5ZOzVZZD5kUTh0MAp6NmI8SEwtPHZ7
Z24pKDx5QFJVZlIqWVBzODJ6ZE8+azhtcj1JSj0wIyYpVF4xND8kaWRqNGJDNCohTkU5TnxuJVoK
elVPKVJfWj5rO2hZN0hyJUEjQ2RKMWZCT2d6PVgyTUU/QGlYQip1RHxoNG9hP0BeQjcwPSRTd0N0
ekJyQD8ydjdeCnpnRkdQc3V5LWxDSXxObChKe05IUyVsSWEkIXJQRjU1QFlzMl8mdT02KnxCOFpm
Q19WRkorWX5qLS0rZyhrN21EZgp6ODNDa3JIbnUrbkd9MTN2KUReeV9KI2N8QksydHdrKDR+UntM
YF5LM0w+bFI5SihJMVlrUG04TkhQUVN4czdBUFEKekFGSHQrdENxVSsrRGFTZDJQWXdtWn0pT0o5
WF81b1pVY0BhOzFQdDRZUyRreTI3SnEhcVNQTSpRYXRpa1NPXzdECnpCKGcmU2o7JGx+RVZvUl5E
VERXcGhyPWhzKHxMS0VIeWhPRUVGUVMkQUhvaSNfSz0+RnQtO2hASTZESlQqRGpaZgp6U0IpLWkk
OGV4a2hmckJMVi05cCU/Qld4dU5OSXJoQjhIcXlWRzleOCFmTnooUCRAVCo9dFA4MUNCT15IeEQ5
MGYKekpsMDwlR0B8THJFPCs+cSliT2Y2YzZ5LUNRWWtsaD0/RHZ9aXxNTHA1e2Nodk12PT5Ldy1N
I3hjTG05O0Y3cWVBCno9MGl2aDBGNGU8KEhPeGJOSkh9X25sSjt3JmR9dnRjTyghLTxeWUApVDtu
S3JsP3NDeXZZPz80a1lsMkg4TDtVfAp6Q2l3QThJPUU0UVg8RWk1N3pKO3F5ZEwzQWZMSih1MjZq
MUBEazJeM15xLVlZI0NvaCYzQmpGcVJ7NEMmMk5Tcm4KenR2KkxvTWhie29BdX58ZUN6d1ZIM0sw
UWcyRjtOZk5kTUhtMlFUb2NoI25CRU0/M2wxY090YjVqMm1AbXpWOTxOCnpPZTJpd3lneGRgMklp
Z0R4bUVDR3QyTHg1TmNoKj9FemdWcjIxb0hlc197U0drWEF9XzxGJCtAQVhYQiVPUmJwSgp6RyFM
WG5uRXNyeGIkbnB5MHJRQmJheyU3Yit7QzZeN0FaTlJabzNHfkRJPzhvNjBSQCN3RFlLeGRvVy0o
dCs4V1QKelNhO0VaWk87NDQ1ZDdIIzZ7cmZIbSs0WXdYWmM8VHlMcDRAMk0zdXJQeUw3RkRPTihA
WmBAZkt2SWZoIVJXN0hxCnpvQzFtTCRyPj9HNDIkNiExND1UUXd6RFpBckBBeGZ3fUVqJEdORUhX
P3Q9WX01S3o+RkU4YC1lQm1+WGZ1IT5peQp6P3lMa0Y7Qys4Mz8zMGByRGlROUYxX19rSDdXVEpw
VlZeYmBOdTtWdTVYVjdxM1cjSXdydkVWVHNTRyVvcU1mRXkKeikpPWc+Kyt8bT10Nnw1fFI8SU1s
YUg8WSlMKUl1RVo7fS1pSGNXWnIjJXNPLUc8Xy1va0VwPTU3NnZ6PSFpT2BtCnowXyN7WGx6JUQl
JHFMREs9Zis8YWJfREI3NTtgK3RJeTFDOy19d3QkRVFRZnQ2KVlpNUZpJVY4WF9yb1YxdX5vTAp6
cmI3JUc9NmdhTDZYKmsoRDhXfTNmdjB9OU0hKFFISzhNP2g8YDFCKTtefTUtemRZND5aPHpoNjdl
WFJCaEZBJUMKelRmcXlQMzApKUNYRX4pK3JwWm1hU35IfUlJMWI2N0JWSzZPZXZ2cmslbWx0WXNt
c0RaZTRxYT85QGxoX1dAJmFyCnolYEdEKXNXT0NPeSE8Kig5OTs9bEFxIyVVY2JLRWtTaGlZKzN2
VkwmPHp+cGlfe1JAeHFxPz9UUSlSdHwpXzIrPgp6N2A3TzwxMzFfJDJKVENPYkUjWnZgUTRzd1F8
PXR8elJTdmVlYCNyMG9tKVokTTIkUmBudCFLIzNERD5rMilNTUEKenptVShPU3J8VmptTT91bytC
WXVjKEVRQXNyPFU0Zyt3NzFsM1ckRWlkNWcxUzcyPF51aC05d2VKdjchRGtiQWVlCnp1WFZZdnZI
bz1iTkszcntpbTF4REFDbjZfak5qTSNeLXw8NW9LMDhXWS1LYF4pOXNZY0NjZkF+QDFsMnMkajAz
QAp6YjV1MVVVNXluT282ITdtR1dse2ZBcEw2WmQlNzJRRlcyTERLd2xuQXQmc3Myel81VmNmeEQ/
cElJKjVnSUx5RyUKelVSZW5qdiNmUUtfQ2hGIXlmLVRgYXBCaG4xcTE5fChMemVXSER5b3h4eW83
O3hAbXlybz1mO1JTNl9Bb0ZJVD9PCnoycSQ0KzQmZD1lPTdUXmQ4SHJhWEJKYzNLJFVHfC1VS1dt
Pk1lMDAmOT5QQ3JgPE0mWkI+JkREVW5sYURLNDhAfgp6MVVLXmBXbE1XZiZgODxxbFYxaFFqNWZP
RGs1KEVXRnteNlVwPm8lKlJheWRDWipFeVpRT1IjPW83U01+TkA0SWoKelFgMWtqWWpHQEROek04
dURXVWhDS0doOXQ2d3VYIzc1cElyLXd7el9XYVg5Wno1eHtHbXpPV0MySGl0NllHM05mCnpjWF5L
JF9eRmdab081UD8xbXpZdFBIaVFRSVpXbWNRQEwwZ0g+eH1scyN0a0JuXlZQfFooeDFWR1l0b1A5
aXVAXwp6dSNrWEhOTi1BTVJzajFvJSlOZnM1KDdPK3RvbDR4LSFYbCY7X2phT3NXJG1JRlBTMyUw
c2dqUmclZDF1djh0clQKel4xb1lpQjVNIylmPzVieVBffSRNbzFwfnBeJm5URUNNIVdDLXhgIWFJ
ZlpXPHFRdVhgMyh1P3xuQHliYHNZaSk0CnpDKlBvMG4kZmVRISNyNnozdnd1ezY0NG56aT9jXyRk
bnlfM1dyfEE9ZCoqblJqSlpXRUp7MVdZeyRXXjtPSzdFdgp6VW9Yb0BxMDIkOXNPdTs7e0JuOERz
QjhZVkJ9KTs8WlVQSndyJDI1d05ZOHtFMHFJVD1xRylVc19Kc29ZdFglNHQKeih6dEJTaD03VH5o
fmshWiV+TnxWK2ZvLUo/cz84Qi11O3NYcSUpPWgmNXJDZ2BIWD4teX11O094fmdWbVZOKmlMCno2
Yzs8NE54ZGVeQT5gZzgoOXFYdGJ8IWs3ViZ6YGtZfThkYnVMbWY8NmN7RFVxJGFZUzkzTFJPanI8
SChBYVd9fgp6TyoqcU1OVUd7dF4lTWxmQXAzY0xTK1Q7WHZGUWY2SkR8Uiplb2lzbyo5TzZ+Qj9V
R0tuWUxXYyNEUS1yKjUtQ3gKekNgOTc1eSFUdS17eDluOE41PENCSihlPG1JTTIlOEMzcVotbENl
Z0k8TStXR0deQ3opR19VbFpZNSlRIVB7ZVdmCnpNfWdVITZ4SjB8bVFoPzk0JWRGanRNYW1QOyk1
XlM/bjNkMHF5K0tpI3ZwPXh6QkdSbEFARVlHMXJ2QV88SlI1Sgp6dXNJZCRfRT99aGRgM2RpO24p
Z1YxZWopK0BXIX1EXmJSeHpQZG5oUFM3NE09QTZJWWBSayZlQHs/PmpPZDVZaDwKelFsTVpfMFV0
WDZjVy1oRDkpS3M4NU1GUDcmbU1Rckh8bm5RN0NMMXpJM3pVZF9ga0IyaGktbClhYyp2M2htUXNR
CnpoYHt9RkhkRWVYZWFFMzBganZ0ZXh6PzQ1Nkpocn15aTdXNSs5RmJvaihiLWVhYHVZS0gjcHQw
IXFGMlJKeUBAKwp6ZkU8cGRIU3lzKmAhSnNVP1IoRlI3K1A0RW4kIyYpQiVVI0tZPlRrez5Qejxv
P05XKUlWQmdDOHl0YzQyTklUUUsKejI+JE45YHFwJF9NNmJyX3RCITdtXk5qTGd5WnkqekN5I2Y3
TjhyUzhuNWBPT0o0S2A4a2hPWDh5Vyk8aEh1K0h2Cno9YTR+WUhZbEp+d3soS2gwbTQ+NWx4Tzle
Wj1nNVM7YWgqbjh3Zj8+JEVwZmUrfWR8PCl8WGo4Q1U2WEJefH5OKAp6RnBYPFdRbDMyfmxSaUpJ
O3RAVnBEZmNFUWQoMT98Q09wZkZpfnJnfFN9Q0B+M0FKRGYjSEM2USpJQW8mVmg9SUEKemYpbyok
RkkzSCZPeHk7eGhUYm4mO2tBMW0mSisxam10MzY9dWVMJXZreG4wVVNNSXZoNklEekxvO304T1pp
Xn5yCno5O2VXbEdAKmJOe1MtOyl5cGBjSDlTQUEqRDFJKzhCPVR3YUA1VXZyVDNVdkBQc2g/NjRN
Izh5Umg2Wnh0PmZjSAp6Xyg+O1F6bEkpdzIkdnViTVR6IzcqUjVoaUkzdXN0eykqJGt7P2RxSkc2
SXkwJDFuUl5KKXp1fileNVRMQmg0NEEKei1QWT9lV2hfKF8oJFV4KndvOGRjczxNIWBwaHpLPzN7
aXd7dGFxdEMqeW41WD4we1pRPEpySVVhJUk0Xlg+Snk3CnpgZzFFUnQ9cUM1TkIxS1pIWHgyRlRB
IU0+eXxoUFhYQEd8UmQ/KV9oVGI7KUROUGEoKEAlNG9sUGY2ITQyQH19UQp6JlglI3oraSFrdzhp
e3tXRn5ZKktmT2ZxQyZuPmFUak93QFd8MW9jXlcyViZ9P2g4YDwyPV8jZGUhe15WNV5eIysKeiVQ
VlVhPzBkckYpbnRJbipLQEFNeE57U0ZubUplTispLTAxd2tNTXFrKXJmeVZQJHl7aXMmeiNuPzA2
b1hzOVVGCnpYQXwjSU5QOCFIKkg7WlFVdHZOcWMpMGx+WjtsfEN2dHlEWGlMZ1RVTD9rKGJHK356
KmZsU2FkTl49Vm0tc25HKAp6RWttfXAwVjJXNFAqUX5NU2QobTg/VlpiaGdrVGNkRnlMVlB5SG1P
eGZpQn5sbU1lZE9kbk1gKjdBQkpFb25gI04Kekc2cFZUdzVrcWswe3gxQ0NLYXtjQ2o+M34+bmwk
YFpUenhjY2doeDtKVzFpRjt3bmU9eUl7OztoT0ZYeWAxQFBHCnp6VHs1Y25BMDA2V3JqZD5LKEt9
KGp5QldUQDJ4S2lrVyYxbVpIUVNxMy1iKjMqXlVUdzRocDtXQEpQX1U+SU10ewp6QThGe2QxS1lV
JWRSLSVfUFM8I3YlUjx+LWBOfk52WHNeMDg1T0RZP0M+MW9OWEN3eXhMJjt1eEl1QEZUS2s9VGEK
ejY0dTVJYlpZfkJxUlphbT4yd0JkOTE+aVpyfGl0VG5Re0c5PlJ0dD9xLUlvYFolMUhNdXxZZWl3
dF4yMEVzQE99CnpKRHphaTVmaSQ8TFJLJTs2TGtuWGpORSZXMCNwTTVPenNEdXtrNyU8UnVURSkx
WUo8RkphVSNNSjFtJUgqYkBrMgp6d0BqbVpYM1A3eVApUik8KUhhVzNjYUB1WG02QkBWdHFpaT0+
QG1rcjVxQn02Qz4mcXAzU09pPnhuNUdxe3MhcGcKejNHSHA+OFhEJkJNXmF9U0tUNz9MKVpHbzlx
OTlvKiRQeXhUeDlNfG9AYVNIK2o4NXJ4YE1iYTg9Z1oxVVFsPWQhCnomNVA1aDMmVGpMdkBiQVBk
YD8kbnQzfjY7P1VlXm4tKUxeQ3VENUUpNWRTMnIhPjVpRmtuTHJUS3slUVEwMG5BOQp6Xjl0bEpo
KWVLJEJhd0cjUVBfIyNyZExFUy1rZElHT1JAPXdNaXo3Xjd2VEQlcThAJHwmVkY0SU4reio+VGJ9
QlAKem5aU0xGcjlBTGc+JkNKdXlOUWJ9eVJoWGhvd3F7bEVOMERJSFJGc24kJEtFJjlTSVhoe1Iz
dHpwQztuPz9OXkx7Cnp7cFJAJU9QaGEldG9Oa15qQz85blNUe3p3Ukh3JTYkOChVSWJYWmowQ25z
WmIqUGV8czlfSUV1QlFIem42K05rYAp6ejwrIX45TUhNaUpnVGxIPEA7Xy14djR+RHpIPHRyQUoj
NlctI3dON1VweFlRU2QjV3oqIV9zMThmIX1VPWhASFQKejFXMWw7VHw0I0VwI15RTChsVzYpaFA8
Nll0a0dmeHN4NHwmMnpHUTZ1K3dDO3NRME4+XlNfd0klKFpGI0J7QXJACnpNXmh4QFhaVHt+WVZW
cGctU1dlUWVvcjs3WT80LWdRWGpQe3JGc059K2lpZFU0QjU+N3hAMEMrKiF3eF89Zzh5cwp6c21K
Y3l2VksoJV8oVmVEVHlFKmVzKVRXJHhjRU5rIUJyX3dmJjRiSiE9YTItMGxXR31ZNHQ/JlJuZXdk
Wm1pZykKeiFYblZCOD1wNTVKRm1RSFJsPENEejJ1fGNvU0peLUstPG0lJm1PekBHWXdiMmN0fTA9
JUZLK18mIW98OGAhPSlmCnozOUVOfWVpSWplZEM0fCMpczZwJTc1bD9UZSReWVNQMGhiXng7OGM2
YVU4ZFhualohOHw1SCVZOTU+RnR6WGUhQgp6Jj5EaSlDfE9pSVl1KU9IdnstQjh8QjluRWpxX2J+
dDt4VENDSDkmIXstTkYxT3ZBck1ZfFQmb2EzZ0QwXk1eLVcKemJLeVU3ZzArQystPXQkTHlaSTQ7
dHp8Y0IrMDl6d0N1JFVIVmQlZjlfP3EpeGJLWXlhMyE+MHImMGVuQSVlQ3p+Cno1Z1Y+fnM1SzlA
dypVUSY0Y0U1bCowJClAdyY+UWo9dk10Qz02YFJDWllLQyNJUGZuVWZ1akVmXyZAdklqZDFKcQpZ
eyZrVVlHbUA4cU1+al81WWtqOGx3Q2tQITBpJVYzQ2piQmQKCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wcmludGluZy9wYWdlLXJ1
bGUtaW4tbWVkaWEtcXVlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3ByaW50aW5nL3BhZ2UtcnVsZS1pbi1tZWRpYS1xdWVyeS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODZlNzc0ZmU5YTBjMGQ0NjQwNzgxZGEwMmY3ZWI2OTJkODFkMzRjMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wcmludGluZy9wYWdlLXJ1bGUtaW4tbWVk
aWEtcXVlcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgMTAwMHg2OAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTAwMHg2OAorbGF5ZXIgYXQg
KDEsMSkgc2l6ZSA5OTh4NjYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgxLDEpIHNpemUgOTk4
eDY2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDEsMSkgc2l6ZSA5OTZ4NjQKKyAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgxLDApIHNpemUgOTk0eDY0IFtib3JkZXI6ICgxcHggc29saWQg
IzAwMDAwMCldCisgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgxLDEpIHNpemUg
OTkyeDE4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDF4MTgK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQxOiAiRElWIDEiCisgICAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyLDIwKSBzaXplIDk5MHg0MiBbYm9yZGVyOiAoMXB4IHNv
bGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgxLDEp
IHNpemUgOTg4eDE4CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0MXgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MTogIkRJViAy
IgorICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyLDIwKSBzaXplIDk4NngyMCBbYm9y
ZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxLDEpIHNpemUgMzMweDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdp
ZHRoIDMzMDogIlRoZSBtYXJnaW5zIG9mIGRpdnMgc2hvdWxkIHJlbWFpbiAxcHggaW4gcHJpbnRp
bmcuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1ydWxlLWluLW1lZGlh
LXF1ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtaW4tbWVkaWEtcXVl
cnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNjMyOTgwODY5YzgyMzMwMzNmNzhjZTk3MGNlOGQ3YTc3ZWQx
MzFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1ydWxlLWlu
LW1lZGlhLXF1ZXJ5Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgZm9yIEJ1ZyA0MDQ1MiAtIFJFR1JFU1NJT046IHByaW50
aW5nIGlzIGJyb2tlbiBpZiBzdHlsZXNoZWV0IGhhcyBAcGFnZTwvdGl0bGU+Cis8c3R5bGU+Cisq
IHsKKyAgICBtYXJnaW46IDFweDsKK30KK2RpdiB7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7Cit9CitAbWVkaWEgcHJpbnQgeworICAgIEBwYWdlIHsKKyAgICAgICAgbWFyZ2luOiAwLjVp
bjsKKyAgICB9Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpbnRpbmcoKTsKKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdj5ESVYgMQorICAgICAgICA8ZGl2PgorICAg
ICAgICAgICAgRElWIDIKKyAgICAgICAgICAgIDxkaXY+CisgICAgICAgICAgICAgICAgVGhlIG1h
cmdpbnMgb2YgZGl2cyBzaG91bGQgcmVtYWluIDFweCBpbiBwcmludGluZy4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY2
NzJlY2JkNWFkZmZmMTgxYTA2YTg1YmE5MjY4NGM3YTkzMGJjMC4uODYyMmUwMjY3OGJiNjMwMTdj
YTlhN2NkZDI4ZDg2YmZkOTIxOGJiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNi0xMCAgWXV6byBG
dWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4IEJ1ZyA0MDQ1MjogUkVHUkVTU0lPTjogcHJpbnRpbmcg
aXMgYnJva2VuIGlmIHN0eWxlc2hlZXQgaGFzIEBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDQ1MgorCisgICAgICAgIFRlc3Q6IHByaW50aW5n
L3BhZ2UtcnVsZS1pbi1tZWRpYS1xdWVyeS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NSdWxlU2V0OjphZGRSdWxlc0Zyb21T
aGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NSdWxlU2V0OjphZGRTdHlsZVJ1bGUpOgorCiAy
MDEwLTA2LTEwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDNiODZm
MGZhY2ExOWJjMDk5NDBkODljYTVkNjllZmM1ZDQ5OWI3MzUuLmZjMWE3NWJjZDA3OWE2OTJkY2Uy
MmVhYTJlYTZjZGJlYmM0M2I0MTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0zNTcs
NyArMzU3LDggQEAgcHVibGljOgogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBs
KiwgQ1NTUnVsZURhdGFMaXN0Kj4gQXRvbVJ1bGVNYXA7CiAgICAgCiAgICAgdm9pZCBhZGRSdWxl
c0Zyb21TaGVldChDU1NTdHlsZVNoZWV0KiwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYsIENT
U1N0eWxlU2VsZWN0b3IqID0gMCk7Ci0gICAgCisKKyAgICB2b2lkIGFkZFN0eWxlUnVsZShTdHls
ZUJhc2UqIGl0ZW0pOwogICAgIHZvaWQgYWRkUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUsIENTU1Nl
bGVjdG9yKiBzZWwpOwogICAgIHZvaWQgYWRkUGFnZVJ1bGUoQ1NTU3R5bGVSdWxlKiBydWxlLCBD
U1NTZWxlY3Rvciogc2VsKTsKICAgICB2b2lkIGFkZFRvUnVsZVNldChBdG9taWNTdHJpbmdJbXBs
KiBrZXksIEF0b21SdWxlTWFwJiBtYXAsCkBAIC0yNzY4LDE0ICsyNzY5LDcgQEAgdm9pZCBDU1NS
dWxlU2V0OjphZGRSdWxlc0Zyb21TaGVldChDU1NTdHlsZVNoZWV0KiBzaGVldCwgY29uc3QgTWVk
aWFRdWVyeUV2YWx1YXQKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAgICAg
ICAgIFN0eWxlQmFzZSogaXRlbSA9IHNoZWV0LT5pdGVtKGkpOwogICAgICAgICBpZiAoaXRlbS0+
aXNTdHlsZVJ1bGUoKSkgewotICAgICAgICAgICAgaWYgKGl0ZW0tPmlzUGFnZVJ1bGUoKSkgewot
ICAgICAgICAgICAgICAgIENTU1BhZ2VSdWxlKiBwYWdlUnVsZSA9IHN0YXRpY19jYXN0PENTU1Bh
Z2VSdWxlKj4oaXRlbSk7Ci0gICAgICAgICAgICAgICAgYWRkUGFnZVJ1bGUocGFnZVJ1bGUsIHBh
Z2VSdWxlLT5zZWxlY3Rvckxpc3QoKS5maXJzdCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVS
dWxlKj4oaXRlbSk7Ci0gICAgICAgICAgICAgICAgZm9yIChDU1NTZWxlY3RvciogcyA9IHJ1bGUt
PnNlbGVjdG9yTGlzdCgpLmZpcnN0KCk7IHM7IHMgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQocykp
Ci0gICAgICAgICAgICAgICAgICAgIGFkZFJ1bGUocnVsZSwgcyk7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICBhZGRTdHlsZVJ1bGUoaXRlbSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBp
ZiAoaXRlbS0+aXNJbXBvcnRSdWxlKCkpIHsKICAgICAgICAgICAgIENTU0ltcG9ydFJ1bGUqIGlt
cG9ydCA9IHN0YXRpY19jYXN0PENTU0ltcG9ydFJ1bGUqPihpdGVtKTsKQEAgLTI3OTIsOSArMjc4
Niw3IEBAIHZvaWQgQ1NTUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoQ1NTU3R5bGVTaGVldCog
c2hlZXQsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0CiAgICAgICAgICAgICAgICAgICAgIENTU1J1
bGUgKmNoaWxkSXRlbSA9IHJ1bGVzLT5pdGVtKGopOwogICAgICAgICAgICAgICAgICAgICBpZiAo
Y2hpbGRJdGVtLT5pc1N0eWxlUnVsZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJ
dCBpcyBhIFN0eWxlUnVsZSwgc28gYXBwZW5kIGl0IHRvIG91ciBsaXN0Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUq
PihjaGlsZEl0ZW0pOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChDU1NTZWxlY3Rvciog
cyA9IHJ1bGUtPnNlbGVjdG9yTGlzdCgpLmZpcnN0KCk7IHM7IHMgPSBDU1NTZWxlY3Rvckxpc3Q6
Om5leHQocykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkUnVsZShydWxlLCBzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFN0eWxlUnVsZShjaGlsZEl0ZW0pOwogICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkSXRlbS0+aXNGb250RmFjZVJ1bGUoKSAmJiBz
dHlsZVNlbGVjdG9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhpcyBmb250
IGZhY2UgdG8gb3VyIHNldC4KICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENTU0ZvbnRG
YWNlUnVsZSogZm9udEZhY2VSdWxlID0gc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4oY2hp
bGRJdGVtKTsKQEAgLTI4MTksNiArMjgxMSwxOCBAQCB2b2lkIENTU1J1bGVTZXQ6OmFkZFJ1bGVz
RnJvbVNoZWV0KENTU1N0eWxlU2hlZXQqIHNoZWV0LCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdAog
ICAgIH0KIH0KIAordm9pZCBDU1NSdWxlU2V0OjphZGRTdHlsZVJ1bGUoU3R5bGVCYXNlKiBpdGVt
KQoreworICAgIGlmIChpdGVtLT5pc1BhZ2VSdWxlKCkpIHsKKyAgICAgICAgQ1NTUGFnZVJ1bGUq
IHBhZ2VSdWxlID0gc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihpdGVtKTsKKyAgICAgICAgYWRk
UGFnZVJ1bGUocGFnZVJ1bGUsIHBhZ2VSdWxlLT5zZWxlY3Rvckxpc3QoKS5maXJzdCgpKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NT
dHlsZVJ1bGUqPihpdGVtKTsKKyAgICAgICAgZm9yIChDU1NTZWxlY3RvciogcyA9IHJ1bGUtPnNl
bGVjdG9yTGlzdCgpLmZpcnN0KCk7IHM7IHMgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQocykpCisg
ICAgICAgICAgICBhZGRSdWxlKHJ1bGUsIHMpOworICAgIH0KK30KKwogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogLy8gdGhpcyBpcyBtb3N0bHkgYm9yaW5nIHN0dWZmIG9uIGhvdyB0
byBhcHBseSBhIGNlcnRhaW4gcnVsZSB0byB0aGUgcmVuZGVyc3R5bGUuLi4KIAo=
</data>
<flag name="review"
          id="44163"
          type_id="1"
          status="+"
          setter="hamaji"
    />
          </attachment>
      

    </bug>

</bugzilla>