<?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>51061</bug_id>
          
          <creation_ts>2010-12-14 14:47:56 -0800</creation_ts>
          <short_desc>REGRESSION (64275): Shape pattern-image fill turns black</short_desc>
          <delta_ts>2011-09-13 14:53:16 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matthew Delaney">mdelaney7</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>krit</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>322240</commentid>
    <comment_count>0</comment_count>
      <attachid>76576</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-12-14 14:47:56 -0800</bug_when>
    <thetext>Created attachment 76576
testcase1

Open test case and click. It goes black but shouldn&apos;t.

Working on making an even more reduced test case right now, though this one isn&apos;t too bad to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331056</commentid>
    <comment_count>1</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-01-07 15:29:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/8504705&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391345</commentid>
    <comment_count>2</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2011-04-22 19:57:40 -0700</bug_when>
    <thetext>We&apos;re pretty sure this was caused by http://trac.webkit.org/changeset/64275.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391432</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-04-22 23:26:25 -0700</bug_when>
    <thetext>Hm, I didn&apos;t investigate yet, I only noticed that when zooming in/out the pattern reappers.
Seems like a simple invalidation problem, i&apos;ll look at it soon, if no one else does :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424125</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-06-20 17:45:46 -0700</bug_when>
    <thetext>Nikolas: have you had a chance to look at this one again? The only interesting thing I noticed was that if the id of the image changes, it works fine, so I agree - some kind of invalidation or caching thing. Also, if you null out the fill attribute, recreate the image, and reset the fill after a setTimeout with 0 delay (via Matt), that fixes it, but if you fail to null out the fill, no amount of time will fix it, so I don&apos;t think it&apos;s a timing thing. (Seems like setFill isn&apos;t getting called in the case where the value of the fill property hasn&apos;t changed, even if the thing it&apos;s referencing has, and some important stuff happens downwind of setFill)

If you don&apos;t get a chance, I&apos;ll get back to playing with it at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424289</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-20 23:21:38 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Nikolas: have you had a chance to look at this one again? The only interesting thing I noticed was that if the id of the image changes, it works fine, so I agree - some kind of invalidation or caching thing. Also, if you null out the fill attribute, recreate the image, and reset the fill after a setTimeout with 0 delay (via Matt), that fixes it, but if you fail to null out the fill, no amount of time will fix it, so I don&apos;t think it&apos;s a timing thing. (Seems like setFill isn&apos;t getting called in the case where the value of the fill property hasn&apos;t changed, even if the thing it&apos;s referencing has, and some important stuff happens downwind of setFill)
&gt; 
&gt; If you don&apos;t get a chance, I&apos;ll get back to playing with it at some point.


Hi Tim, I&apos;d highly appreciate if you could give it a try - still blocked by CSS / SVG Font patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466011</commentid>
    <comment_count>6</comment_count>
      <attachid>107122</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-12 18:18:25 -0700</bug_when>
    <thetext>Created attachment 107122
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466022</commentid>
    <comment_count>7</comment_count>
      <attachid>107122</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-09-12 18:44:11 -0700</bug_when>
    <thetext>Comment on attachment 107122
patch

Attachment 107122 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9646270</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466026</commentid>
    <comment_count>8</comment_count>
      <attachid>107122</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-09-12 18:56:50 -0700</bug_when>
    <thetext>Comment on attachment 107122
patch

Attachment 107122 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9649283</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466027</commentid>
    <comment_count>9</comment_count>
      <attachid>107122</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-12 18:58:16 -0700</bug_when>
    <thetext>Comment on attachment 107122
patch

Attachment 107122 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9641753</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466047</commentid>
    <comment_count>10</comment_count>
      <attachid>107122</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-12 19:41:06 -0700</bug_when>
    <thetext>Comment on attachment 107122
patch

Attachment 107122 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/9647290</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466194</commentid>
    <comment_count>11</comment_count>
      <attachid>107122</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-09-13 01:49:55 -0700</bug_when>
    <thetext>Comment on attachment 107122
patch

Attachment 107122 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9655051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466379</commentid>
    <comment_count>12</comment_count>
      <attachid>107192</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-13 10:36:17 -0700</bug_when>
    <thetext>Created attachment 107192
patch which should build more places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466380</commentid>
    <comment_count>13</comment_count>
      <attachid>107193</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-13 10:39:13 -0700</bug_when>
    <thetext>Created attachment 107193
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466394</commentid>
    <comment_count>14</comment_count>
      <attachid>107192</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-13 10:54:51 -0700</bug_when>
    <thetext>Comment on attachment 107192
patch which should build more places

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

&gt; Source/WebCore/rendering/svg/SVGResourcesCache.cpp:170
&gt; +        SVGStyledElement* clientElement = static_cast&lt;SVGStyledElement*&gt;(it-&gt;first-&gt;node());

How do you know that the first node is a SVGStyledElement? Is that always true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466405</commentid>
    <comment_count>15</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-13 11:16:17 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 107192 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107192&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGResourcesCache.cpp:170
&gt; &gt; +        SVGStyledElement* clientElement = static_cast&lt;SVGStyledElement*&gt;(it-&gt;first-&gt;node());
&gt; 
&gt; How do you know that the first node is a SVGStyledElement? Is that always true?

The only way something can get into the cache which we&apos;re iterating through here is through the clientUpdateFromElement ---&gt; addResourcesForRenderObject path. There are a few calls to clientUpdateFromElement:

* in RenderSVGBlock, which adds itself (so that&apos;s safe)
* in RenderSVGInline, which adds itself (so that&apos;s safe)
* in RenderSVGModelObject, which adds itself (so that&apos;s safe)
* in RenderSVGResourceContainer, which is adding from a HashSet of SVGStyledElements (so that&apos;s safe)
* in RenderSVGRoot, which adds itself (so that&apos;s safe)
* in SVGResourcesCache, via clientStyleChanged, which is called:
     * from RenderSVGBlock, which adds itself
     * from RenderSVGInline, which adds itself
     * from RenderSVGModelObject, which adds itself
     * from RenderSVGRoot, which adds itself
     * from SVGInlineTextBox, which adds its parent

So, I&apos;m *pretty* sure it has to be an SVGStyledElement. Should I use a different cast/check the type/add an ASSERT()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466453</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-13 12:05:11 -0700</bug_when>
    <thetext>A pattern we use elsewhere is to create a toFoo() function which first asserts that the element is the expected type, and then does the cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466493</commentid>
    <comment_count>17</comment_count>
      <attachid>107218</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-13 13:10:22 -0700</bug_when>
    <thetext>Created attachment 107218
patch with casting functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466570</commentid>
    <comment_count>18</comment_count>
      <attachid>107218</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-13 14:53:11 -0700</bug_when>
    <thetext>Comment on attachment 107218
patch with casting functions

Clearing flags on attachment: 107218

Committed r95047: &lt;http://trac.webkit.org/changeset/95047&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466571</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-13 14:53:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>76576</attachid>
            <date>2010-12-14 14:47:56 -0800</date>
            <delta_ts>2010-12-14 14:47:56 -0800</delta_ts>
            <desc>testcase1</desc>
            <filename>svgbugz.zip</filename>
            <type>application/zip</type>
            <size>6752</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">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
59OU8kfvN287+1/afzotSNct/YIjXHu/4OaAmSGY6xV3RB7rwuUp1KKvGKP8afqgeuHIkPKAalug
fCSB4xW3dgrjYw7FAll4q9TFAdzT9/JRyeT4tMneoskOuqPL/wDrcbE3IgEz4ro+8YmE5rLZtp7R
DdX8DA9G4KBovNlfw6899vVkRNrQuc37lVaycrlo5W/5a3vPF3CcEnKBVZopJ5qugZGjIFTGlTWF
L+ru9hlF6OLtKPpv+YPCJWDVV0TTN395XfemiMHXvCEgocyxZAC23tw6SHO7z/9d7k6wdPBr2eXA
TE5RQRAOaOvR30Ko+MvdXkpAVVFLofqZTcS/AFBLBwjS7AmGOg4AANsRAABQSwMEFAAIAAgAwHKO
PQAAAAAAAAAAAAAAAB4AEABfX01BQ09TWC9zdmdidWd6Ly5fcGF0dGVybi5qcGdVWAwAM/MHTQfu
B031ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGzEwMAoDaSCf0ZUBB/Blf8eO4DmGhARBWGAd
L4A4Fk0DE1RcC4iS83P1EgsKclL1clNLElMSSxKtsn1dPEtScz2Lg5OLUlPznBMLSkqLUqFmCgEJ
YwYGHdz6UHSFVBYAdSYV5GQWlxgYcHJATWGEuoQRzWWcMJWRxak5qcklmfl5hLQIAQBQSwcICFdB
954AAABFAQAAUEsDBBQACAAIAIF1jj0AAAAAAAAAAAAAAAASABAAX19NQUNPU1gvLl9zdmdidWd6
VVgMACrzB00x8wdN9QEUAGNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsBsQIQg/hBDDiAL/tnfRgb
AFBLBwgcspe/KgAAAFIAAABQSwECFQMKAAAAAACBdY49AAAAAAAAAAAAAAAACAAMAAAAAAAAAABA
7UEAAAAAc3ZnYnVnei9VWAgAKvMHTTHzB01QSwECFQMUAAgACAApdY49sUdgD/IFAAAMEgAAEwAM
AAAAAAAAAABApIE2AAAAc3ZnYnVnei9pbmRleC54aHRtbFVYCAAz8wdNjfIHTVBLAQIVAwoAAAAA
AIh1jj0AAAAAAAAAAAAAAAAJAAwAAAAAAAAAAED9QXkGAABfX01BQ09TWC9VWAgAQPMHTUDzB01Q
SwECFQMKAAAAAACIdY49AAAAAAAAAAAAAAAAEQAMAAAAAAAAAABA/UGwBgAAX19NQUNPU1gvc3Zn
YnVnei9VWAgAQPMHTUDzB01QSwECFQMUAAgACAApdY49lG7v3poAAADsAAAAHgAMAAAAAAAAAABA
pIHvBgAAX19NQUNPU1gvc3ZnYnVnei8uX2luZGV4LnhodG1sVVgIADPzB02N8gdNUEsBAhUDFAAI
AAgAwHKOPdLsCYY6DgAA2xEAABMADAAAAAAAAAAAQKSB5QcAAHN2Z2J1Z3ovcGF0dGVybi5qcGdV
WAgAM/MHTQfuB01QSwECFQMUAAgACADAco49CFdB954AAABFAQAAHgAMAAAAAAAAAABApIFwFgAA
X19NQUNPU1gvc3ZnYnVnei8uX3BhdHRlcm4uanBnVVgIADPzB00H7gdNUEsBAhUDFAAIAAgAgXWO
PRyyl78qAAAAUgAAABIADAAAAAAAAAAAQKSBahcAAF9fTUFDT1NYLy5fc3ZnYnVnelVYCAAq8wdN
MfMHTVBLBQYAAAAACAAIAGYCAADkFwAAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107122</attachid>
            <date>2011-09-12 18:18:25 -0700</date>
            <delta_ts>2011-09-13 10:36:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>51061.patch</filename>
            <type>text/plain</type>
            <size>8098</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZGE0NDU3Li4xMjZmYzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MTIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAoNjQyNzUpOiBTaGFwZSBwYXR0ZXJuLWltYWdlIGZpbGwgdHVybnMgYmxhY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NTA0NzA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZW5zdXJpbmcgdGhhdCByZXBsYWNpbmcg
YSBTVkcgcGF0dGVybiB3aXRob3V0IGNoYW5naW5nCisgICAgICAgIHRoZSBpZCBjYXVzZXMgdGhl
IGNsaWVudHMgdG8gYmUgdXBkYXRlZCBwcm9wZXJseS4KKworICAgICAgICAqIHN2Zy9jdXN0b20v
cGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXIt
cmVtb3ZhbC54aHRtbDogQWRkZWQuCisKIDIwMTEtMDktMTIgIEFya28gU2FoYSAgPGFya29AbW90
b3JvbGEuY29tPgogCiAgICAgICAgIFNlbGVjdHN0YXJ0IGlzIG5vdCBmaXJlZCB3aGVuIHNlbGVj
dGlvbiB3YXMgY3JlYXRlZCBieSBhcnJvdyBrZXlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhw
ZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Njc2YzllNjgyNTY2YTdmNDZiZTY3MWI3M2QwY2Q2ZDg1
NjZkZjMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMjc2CnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVVnTQp6aUgyczAyOWAh
P3NZYSRJaEd0MHkjK0p6YCM7Sil3NXlSQlA2IVk4RDxBQTJmV2paP3Rjc2VeUDFRZ3xgVyMqKFoK
ekZqTyRNaFRQQS05M2ItVlJfZmRoNTQpfD4xdiV8OUNnIUNDbXBJU2FtTDB6OVl9Nn5XP1RRfD1t
KnZMSEk7UWZyCnpaVWcoeD90SDdHPHNhR1llek5vMll8Z0txI0N1RjZAeUQ3REM3KjlmbzlFM29A
bF85SS11WnBee2gja0YpdF42IQp6VGt4fG0+YXZKRnplczRYfEl0SCNqeXdeJHxBe2U5IyMjR01o
SHJQOW4zdE5uMU9NZXNtRzN1eT05ND4/UX1RblYKentfMjBwUzclTS01JlImZHV5MmEjNXY3TmIz
bz5KX2xuNmgjKjc8Jn1xM05Oc0tFKUJzU3Zjaj5FJUs4YUFOS1NyCnpQZklmfmIocUNAaTJiT09t
Rz0kQGl5NF5AS0oocjwqQ19IdFUyV3dneT42Uzt1MGlAd1EoUU9rZUVUM0AtMjVxaQp6IS1ePntY
Um0hTygzPzk7KChodFQqRkFhNStKY15FM3w5fUAkNGwmVyslZE54IXRDKjQoPmtaS0QoZUsqX0M5
fUMKemt+IW1UPmE2TEpubkoyRkR0blNiKSowdHlLSTNOWW9ifk1UK2I7bz1IcTFCS1ooPHp6YFNJ
STtzVnVKemtBRDU7Cno/ZT1CWS1zYHN+UEcpfj5ZUFZlVFREYC0rejJDblVidj48fF54XmR1eCEk
V15xOTw4fS1NOzxnPkB3eFVONkd7Mwp6bkxWN0VgZWFmeDkhenhOTnR+NUBXWXJISkYtYXdfQzZf
V3dMTWtefFQoajFnSm5nTkZkJlM5a3o4IUk1VSF5bmUKemAxYXVVeXR9SGBgfVQ7bzleSm45TSZS
NDZqVzJnPzV9cVlwVXopZ2RhbyQ3b29saj49PWRSfUYyPmpSZWJmWlVICno+TTglRyEwVi1FJm41
Jjx8NU02Ky1lfTRAKWlSKzdvP1VBYCNRbzY5O3FxQDRLUXcqK2xAc1VndHJhfW9QXmU/Swp6ZFMz
OV5We2NTMWBDTkxQdlNXWU9TRXBrVktQTVBFTjZwPSo7eWI2eV4zJHlWWmdzWnVycXxDTiNwcXZX
cFNTeD0Kej84OUY+SW85ZUdEZmItYHxMUighXytnKiVLRCtxc2A1bFNOWnx9UkRAX01taClhJWBz
Qys9RmJ2MSZeSFpTYC1xCnplWEUyZUgqTVV2dWBZfjVkJntFYUVVKFFhe3RWMmp4cWowPnZyY3w1
KnVxYFl1fS0oTWV8MXYkMWI9Tz17Rnl2KQp6KHxKN0NkKShDOVZCUDxnZDBYKGMqa19zWCNnP0Q3
M1NMVjhKXldoRkpkYGE/XjEjSm5KQEV5YHJCNjZGKVdxcSQKejdRSFFSR2pEc3RNQztxaFlpKUJB
Y1hpdV50LWY4TjdjSXhRbn03QXlgUjcrJXo1RCEwSiRKPzhLV3I8Tnh2bXtyCno3O25WRHB1cGhp
O3V1b0ZgMWE7VC1vcGtBJSNQT0c+YShAdzQpRUBgbzY1QSQodCZtMT9fYVVjaSNQLS1MQG5hYQp6
S05kWnYlRS1qUkEpdyUoeipVb151SSRqajBPZEN2JmBEQEdsZm5kJTFxLWlnVTxgVSUwIyolQ2M3
fT1WZ3BabTYKekxlbH4rMzU4SFVfZmJQZSEoPXBfak9MeHVxRn1VbTlJWX0mdEleUmAhRHZmfld3
aUE7K007JEM/STNXUlZmdFFxCnpFYH00LT1Zc1c8MVgldHd1JFhZZGRTMVhUbkN9Nkclc2VmbXpF
QEtOcXRGRXZxYHNGNEJsRDctRTBJaiRVfUUhZAp6bjJjb1YxczB3TyZ6MzJ7WkU7WkdrV2dVc2Il
TlJJKEJMMyE7NG9gOzdyZXtJKDVSM3c+WDZZODhCSFVqeGR1QD4KempnfSokQ0ZeS2lHZ3x3T3du
cyk9WHJvTzxjbkZMKG89M1lBcWFDYyNGNlU/YGR+e2YxdW5wOUZgSytxVHpgJjZLCnpTXz1UR3V0
ckNaTSNzfWUybGhxPl9DXlF4TWhFc3IybG43MEZnaiZJbH1WJUAlO3g/KSVWJGg2dmo7QmtXJDwr
TQpLYjZNdzwmOyRVKjMzXyhgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXItcmVtb3ZhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXIt
cmVtb3ZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NmJiZjc5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGlu
Zy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDgKKyAgUmVuZGVyQmxvY2sge2h0bWx9IGF0
ICgwLDApIHNpemUgODAweDgKKyAgICBSZW5kZXJCb2R5IHtib2R5fSBhdCAoOCw4KSBzaXplIDc4
NHgwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoMCwwKSBzaXplIDIwMHgyMDAKKyAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9
IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3BhdHRl
cm59IFtpZD0icGF0Il0gW3BhdHRlcm5Vbml0cz11c2VyU3BhY2VPblVzZV0gW3BhdHRlcm5Db250
ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCisgICAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1d
IFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAwLjAwXQorICAgIFJl
bmRlclNWR1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9UEFU
VEVSTl0gW2lkPSJwYXQiXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWln
aHQ9MjAwLjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJl
c291cmNlLWFmdGVyLXJlbW92YWwueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BlbmRp
bmctcmVzb3VyY2UtYWZ0ZXItcmVtb3ZhbC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hYTMzOWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwueGh0bWwKQEAgLTAsMCArMSw2MiBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisiaHR0cDovL3d3dy53
My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD48dGl0bGU+VGhlIHJlY3RhbmdsZSBz
aG91bGQgYmUgZ3JlZW4uPC90aXRsZT48L2hlYWQ+Cis8c2NyaXB0PgorCit2YXIgVyA9IDIwMDsK
K3ZhciBIID0gMjAwOwordmFyIFNWR05TID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsK
K3ZhciBjdXJyZW50Q29sb3IgPSAwOwordmFyIGNvbG9ycyA9IFsicmVkIiwgImdyZWVuIl07CisK
K2Z1bmN0aW9uIHJlc2V0RmlsbChwYXJlbnROb2RlKSB7CisgICAgdmFyIHJvb3RQYXR0ZXJuID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR05TLCAicGF0dGVybiIpOworICAgIHJvb3RQYXR0
ZXJuLnNldEF0dHJpYnV0ZSgiaWQiLCAicGF0Iik7CisgICAgcm9vdFBhdHRlcm4uc2V0QXR0cmli
dXRlKCJwYXR0ZXJuVW5pdHMiLCAidXNlclNwYWNlT25Vc2UiKTsKKyAgICByb290UGF0dGVybi5z
ZXRBdHRyaWJ1dGUoIndpZHRoIiwgVyk7CisgICAgcm9vdFBhdHRlcm4uc2V0QXR0cmlidXRlKCJo
ZWlnaHQiLCBIKTsKKyAgICBwYXJlbnROb2RlLmFwcGVuZENoaWxkKHJvb3RQYXR0ZXJuKTsKKwor
ICAgIHZhciByZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR05TLCAicmVjdCIpOwor
ICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIFcpOworICAgIHJlY3Quc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCBIKTsKKyAgICByZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsIGNvbG9yc1tjdXJy
ZW50Q29sb3IrK10pOworICAgIHJvb3RQYXR0ZXJuLmFwcGVuZENoaWxkKHJlY3QpOworICAgIAor
ICAgIHJldHVybiByZWN0OworfQorCitmdW5jdGlvbiB1cGRhdGVGaWxsKCkgeworICAgIHZhciBl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaGFwZSIpOworICAgIHZhciBkZWZzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlZnMiKTsKKworICAgIHdoaWxlIChkZWZzLmZpcnN0Q2hp
bGQpCisgICAgICAgIGRlZnMucmVtb3ZlQ2hpbGQoZGVmcy5maXJzdENoaWxkKTsKKworICAgIHJl
c2V0RmlsbChkZWZzKTsKKworICAgIGVsLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJ1cmwoI3BhdCki
KTsKKworICAgIGlmKGN1cnJlbnRDb2xvciA9PSAyKQorICAgICAgICBpZih3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisKKyAgICB1cGRhdGVGaWxsKCk7CisKKyAgICBzZXRUaW1lb3V0KCJ1cGRhdGVGaWxsKCkiLCAw
KTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHN2ZyB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hsaW5rIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDogMHB4
OyBib3R0b206IDBweDsgcmlnaHQ6IDBweCI+Cis8ZGVmcyBpZD0iZGVmcyI+PC9kZWZzPgorPHJl
Y3QgaWQ9InNoYXBlIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PC9yZWN0PgorPC9zdmc+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRlOTg1Mi4uNGM3NDRhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA5LTEyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKDY0Mjc1KTogU2hhcGUgcGF0dGVy
bi1pbWFnZSBmaWxsIHR1cm5zIGJsYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTA2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUwNDcwNT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRl
c3Ryb3lpbmcgYSByZXNvdXJjZSwgcmVnaXN0ZXIgY2xpZW50cyB3aG8gYXJlIGxvc2luZyB0aGVp
cgorICAgICAgICByZXNvdXJjZSBhcyBoYXZpbmcgcGVuZGluZyByZXNvdXJjZXMsIHNvIHRoZXkg
Y2FuIGJlIHJlc29sdmVkIGluIHRoZSBjYXNlIGEKKyAgICAgICAgcmVzb3VyY2Ugd2l0aCB0aGF0
IGlkIGlzIHJlLXJlZ2lzdGVyZWQuCisKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9wZW5kaW5n
LXJlc291cmNlLWFmdGVyLXJlbW92YWwueGh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9zdmcv
U1ZHUmVzb3VyY2VzQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVzb3VyY2VzQ2Fj
aGU6OnJlc291cmNlRGVzdHJveWVkKToKKwogMjAxMS0wOS0xMiAgQXJrbyBTYWhhICA8YXJrb0Bt
b3Rvcm9sYS5jb20+CiAKICAgICAgICAgU2VsZWN0c3RhcnQgaXMgbm90IGZpcmVkIHdoZW4gc2Vs
ZWN0aW9uIHdhcyBjcmVhdGVkIGJ5IGFycm93IGtleXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCmluZGV4IDc0ZDI5NTAuLjY2NWVl
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
Q2FjaGUuY3BwCkBAIC0xNjAsOCArMTYwLDE2IEBAIHZvaWQgU1ZHUmVzb3VyY2VzQ2FjaGU6OnJl
c291cmNlRGVzdHJveWVkKFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKiByZXNvdXJjZSkKICAg
ICBjYWNoZS0+cmVtb3ZlUmVzb3VyY2VzRnJvbVJlbmRlck9iamVjdChyZXNvdXJjZSk7CiAKICAg
ICBIYXNoTWFwPFJlbmRlck9iamVjdCosIFNWR1Jlc291cmNlcyo+OjppdGVyYXRvciBlbmQgPSBj
YWNoZS0+bV9jYWNoZS5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgU1ZH
UmVzb3VyY2VzKj46Oml0ZXJhdG9yIGl0ID0gY2FjaGUtPm1fY2FjaGUuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KQorICAgIGZvciAoSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBTVkdSZXNvdXJjZXMq
Pjo6aXRlcmF0b3IgaXQgPSBjYWNoZS0+bV9jYWNoZS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgaXQtPnNlY29uZC0+cmVzb3VyY2VEZXN0cm95ZWQocmVzb3VyY2UpOworCisg
ICAgICAgIFNWR1N0eWxlZEVsZW1lbnQqIHJlc291cmNlRWxlbWVudCA9IHN0YXRpY19jYXN0PFNW
R1N0eWxlZEVsZW1lbnQqPihyZXNvdXJjZS0+bm9kZSgpKTsKKyAgICAgICAgU1ZHU3R5bGVkRWxl
bWVudCogY2xpZW50RWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR1N0eWxlZEVsZW1lbnQqPihpdC0+
Zmlyc3QtPm5vZGUoKSk7CisKKyAgICAgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBleHRlbnNp
b25zID0gc3ZnRXh0ZW5zaW9uc0Zyb21Ob2RlKGl0LT5maXJzdC0+bm9kZSgpKTsKKworICAgICAg
ICBleHRlbnNpb25zLT5hZGRQZW5kaW5nUmVzb3VyY2UocmVzb3VyY2VFbGVtZW50LT5mYXN0R2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6aWRBdHRyKSwgY2xpZW50RWxlbWVudCk7CisgICAgfQogfQog
CiB9Cg==
</data>
<flag name="commit-queue"
          id="103748"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107192</attachid>
            <date>2011-09-13 10:36:17 -0700</date>
            <delta_ts>2011-09-13 10:54:51 -0700</delta_ts>
            <desc>patch which should build more places</desc>
            <filename>51061.patch</filename>
            <type>text/plain</type>
            <size>6714</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZTY2OTAyLi40MjE1MGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MTMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAoNjQyNzUpOiBTaGFwZSBwYXR0ZXJuLWltYWdlIGZpbGwgdHVybnMgYmxhY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NTA0NzA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZW5zdXJpbmcgdGhhdCByZXBsYWNpbmcg
YSBTVkcgcGF0dGVybiB3aXRob3V0IGNoYW5naW5nCisgICAgICAgIHRoZSBpZCBjYXVzZXMgdGhl
IGNsaWVudHMgdG8gYmUgdXBkYXRlZCBwcm9wZXJseS4KKworICAgICAgICAqIHN2Zy9jdXN0b20v
cGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXIt
cmVtb3ZhbC54aHRtbDogQWRkZWQuCisKIDIwMTEtMDktMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4
aWFuemh1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRl
ci1yZW1vdmFsLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1y
ZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zODY3NmM5CkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQu
cG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJl
c291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiYmY3OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXItcmVtb3ZhbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4
CisgIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg4CisgICAgUmVuZGVyQm9k
eSB7Ym9keX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdCJdIFtwYXR0ZXJuVW5pdHM9dXNl
clNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQorICAgICAg
ICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MjAwLjAw
XSBbaGVpZ2h0PTIwMC4wMF0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXpl
IDIwMHgyMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0Il19XSBbeD0wLjAwXSBbeT0w
LjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLnhodG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwueGh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEzMzllMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1v
dmFsLnhodG1sCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmlj
dC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhl
YWQ+PHRpdGxlPlRoZSByZWN0YW5nbGUgc2hvdWxkIGJlIGdyZWVuLjwvdGl0bGU+PC9oZWFkPgor
PHNjcmlwdD4KKwordmFyIFcgPSAyMDA7Cit2YXIgSCA9IDIwMDsKK3ZhciBTVkdOUyA9ICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Cit2YXIgY3VycmVudENvbG9yID0gMDsKK3ZhciBjb2xv
cnMgPSBbInJlZCIsICJncmVlbiJdOworCitmdW5jdGlvbiByZXNldEZpbGwocGFyZW50Tm9kZSkg
eworICAgIHZhciByb290UGF0dGVybiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdOUywg
InBhdHRlcm4iKTsKKyAgICByb290UGF0dGVybi5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdCIpOwor
ICAgIHJvb3RQYXR0ZXJuLnNldEF0dHJpYnV0ZSgicGF0dGVyblVuaXRzIiwgInVzZXJTcGFjZU9u
VXNlIik7CisgICAgcm9vdFBhdHRlcm4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIFcpOworICAgIHJv
b3RQYXR0ZXJuLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgSCk7CisgICAgcGFyZW50Tm9kZS5hcHBl
bmRDaGlsZChyb290UGF0dGVybik7CisKKyAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUyhTVkdOUywgInJlY3QiKTsKKyAgICByZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBX
KTsKKyAgICByZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgSCk7CisgICAgcmVjdC5zZXRBdHRy
aWJ1dGUoImZpbGwiLCBjb2xvcnNbY3VycmVudENvbG9yKytdKTsKKyAgICByb290UGF0dGVybi5h
cHBlbmRDaGlsZChyZWN0KTsKKyAgICAKKyAgICByZXR1cm4gcmVjdDsKK30KKworZnVuY3Rpb24g
dXBkYXRlRmlsbCgpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hh
cGUiKTsKKyAgICB2YXIgZGVmcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWZzIik7CisK
KyAgICB3aGlsZSAoZGVmcy5maXJzdENoaWxkKQorICAgICAgICBkZWZzLnJlbW92ZUNoaWxkKGRl
ZnMuZmlyc3RDaGlsZCk7CisKKyAgICByZXNldEZpbGwoZGVmcyk7CisKKyAgICBlbC5zZXRBdHRy
aWJ1dGUoImZpbGwiLCAidXJsKCNwYXQpIik7CisKKyAgICBpZihjdXJyZW50Q29sb3IgPT0gMikK
KyAgICAgICAgaWYod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIGlmKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgdXBkYXRlRmlsbCgpOworCisgICAgc2V0
VGltZW91dCgidXBkYXRlRmlsbCgpIiwgMCk7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4
bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsgYm90dG9tOiAwcHg7IHJpZ2h0OiAwcHgiPgorPGRl
ZnMgaWQ9ImRlZnMiPjwvZGVmcz4KKzxyZWN0IGlkPSJzaGFwZSIgd2lkdGg9IjIwMCIgaGVpZ2h0
PSIyMDAiPjwvcmVjdD4KKzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMx
ZTYxZDAuLmNiZWFjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wOS0xMyAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OICg2NDI3NSk6IFNoYXBlIHBhdHRlcm4taW1hZ2UgZmlsbCB0dXJucyBibGFjaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEwNjEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg1MDQ3MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBkZXN0cm95aW5nIGEgcmVzb3VyY2UsIHJlZ2lzdGVyIGNs
aWVudHMgd2hvIGFyZSBsb3NpbmcgdGhlaXIKKyAgICAgICAgcmVzb3VyY2UgYXMgaGF2aW5nIHBl
bmRpbmcgcmVzb3VyY2VzLCBzbyB0aGV5IGNhbiBiZSByZXNvbHZlZCBpbiB0aGUgY2FzZSBhCisg
ICAgICAgIHJlc291cmNlIHdpdGggdGhhdCBpZCBpcyByZS1yZWdpc3RlcmVkLgorCisgICAgICAg
IFRlc3Q6IHN2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLnhodG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Jlc291cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZCk6CisKIDIwMTEt
MDktMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAKaW5kZXggNzRkMjk1MC4uMTZiMjkzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5j
cHAKQEAgLTIxLDEwICsyMSwxMiBAQAogI2luY2x1ZGUgIlNWR1Jlc291cmNlc0NhY2hlLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ3lj
bGVTb2x2ZXIuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTYwLDggKzE2MiwxNiBAQCB2b2lkIFNWR1Jlc291cmNlc0NhY2hlOjpy
ZXNvdXJjZURlc3Ryb3llZChSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogcmVzb3VyY2UpCiAg
ICAgY2FjaGUtPnJlbW92ZVJlc291cmNlc0Zyb21SZW5kZXJPYmplY3QocmVzb3VyY2UpOwogCiAg
ICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBTVkdSZXNvdXJjZXMqPjo6aXRlcmF0b3IgZW5kID0g
Y2FjaGUtPm1fY2FjaGUuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPFJlbmRlck9iamVjdCosIFNW
R1Jlc291cmNlcyo+OjppdGVyYXRvciBpdCA9IGNhY2hlLT5tX2NhY2hlLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkKKyAgICBmb3IgKEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgU1ZHUmVzb3VyY2Vz
Kj46Oml0ZXJhdG9yIGl0ID0gY2FjaGUtPm1fY2FjaGUuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CiAgICAgICAgIGl0LT5zZWNvbmQtPnJlc291cmNlRGVzdHJveWVkKHJlc291cmNlKTsKKwor
ICAgICAgICAvLyBNYXJrIHVzZXJzIG9mIGRlc3Ryb3llZCByZXNvdXJjZXMgYXMgcGVuZGluZyBy
ZXNvbHV0aW9uIGJhc2VkIG9uIHRoZSBpZCBvZiB0aGUgb2xkIHJlc291cmNlLgorICAgICAgICBF
bGVtZW50KiByZXNvdXJjZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocmVzb3VyY2Ut
Pm5vZGUoKSk7CisgICAgICAgIFNWR1N0eWxlZEVsZW1lbnQqIGNsaWVudEVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxTVkdTdHlsZWRFbGVtZW50Kj4oaXQtPmZpcnN0LT5ub2RlKCkpOworICAgICAgICBT
VkdEb2N1bWVudEV4dGVuc2lvbnMqIGV4dGVuc2lvbnMgPSBpdC0+Zmlyc3QtPm5vZGUoKS0+ZG9j
dW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpOworCisgICAgICAgIGV4dGVuc2lvbnMtPmFk
ZFBlbmRpbmdSZXNvdXJjZShyZXNvdXJjZUVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjppZEF0dHIpLCBjbGllbnRFbGVtZW50KTsKKyAgICB9CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107193</attachid>
            <date>2011-09-13 10:39:13 -0700</date>
            <delta_ts>2011-09-13 13:10:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>51061.patch</filename>
            <type>text/plain</type>
            <size>8424</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZTY2OTAyLi40MjE1MGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MTMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAoNjQyNzUpOiBTaGFwZSBwYXR0ZXJuLWltYWdlIGZpbGwgdHVybnMgYmxhY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NTA0NzA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZW5zdXJpbmcgdGhhdCByZXBsYWNpbmcg
YSBTVkcgcGF0dGVybiB3aXRob3V0IGNoYW5naW5nCisgICAgICAgIHRoZSBpZCBjYXVzZXMgdGhl
IGNsaWVudHMgdG8gYmUgdXBkYXRlZCBwcm9wZXJseS4KKworICAgICAgICAqIHN2Zy9jdXN0b20v
cGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXIt
cmVtb3ZhbC54aHRtbDogQWRkZWQuCisKIDIwMTEtMDktMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4
aWFuemh1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRl
ci1yZW1vdmFsLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1y
ZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODY3NmM5ZTY4
MjU2NmE3ZjQ2YmU2NzFiNzNkMGNkNmQ4NTY2ZGYzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAx
MTI3Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdD
Q000NyQ9U3VGeGVVZ00KemlIMnMwMjlgIT9zWWEkSWhHdDB5IytKemAjO0opdzV5UkJQNiFZOEQ8
QUEyZldqWj90Y3NlXlAxUWd8YFcjKihaCnpGak8kTWhUUEEtOTNiLVZSX2ZkaDU0KXw+MXYlfDlD
ZyFDQ21wSVNhbUwwejlZfTZ+Vz9UUXw9bSp2TEhJO1Fmcgp6WlVnKHg/dEg3RzxzYUdZZXpObzJZ
fGdLcSNDdUY2QHlEN0RDNyo5Zm85RTNvQGxfOUktdVpwXntoI2tGKXReNiEKelRreHxtPmF2SkZ6
ZXM0WHxJdEgjanl3XiR8QXtlOSMjI0dNaEhyUDluM3RObjFPTWVzbUczdXk9OTQ+P1F9UW5WCnp7
XzIwcFM3JU0tNSZSJmR1eTJhIzV2N05iM28+Sl9sbjZoIyo3PCZ9cTNOTnNLRSlCc1N2Y2o+RSVL
OGFBTktTcgp6UGZJZn5iKHFDQGkyYk9PbUc9JEBpeTReQEtKKHI8KkNfSHRVMld3Z3k+NlM7dTBp
QHdRKFFPa2VFVDNALTI1cWkKeiEtXj57WFJtIU8oMz85OygoaHRUKkZBYTUrSmNeRTN8OX1AJDRs
JlcrJWROeCF0Qyo0KD5rWktEKGVLKl9DOX1DCnprfiFtVD5hNkxKbm5KMkZEdG5TYikqMHR5S0kz
TllvYn5NVCtiO289SHExQktaKDx6emBTSUk7c1Z1SnprQUQ1Owp6P2U9Qlktc2BzflBHKX4+WVBW
ZVRURGAtK3oyQ25VYnY+PHxeeF5kdXghJFdecTk8OH0tTTs8Zz5Ad3hVTjZHezMKem5MVjdFYGVh
Zng5IXp4Tk50fjVAV1lySEpGLWF3X0M2X1d3TE1rXnxUKGoxZ0puZ05GZCZTOWt6OCFJNVUheW5l
CnpgMWF1VXl0fUhgYH1UO285XkpuOU0mUjQ2alcyZz81fXFZcFV6KWdkYW8kN29vbGo+PT1kUn1G
Mj5qUmViZlpVSAp6Pk04JUchMFYtRSZuNSY8fDVNNistZX00QClpUis3bz9VQWAjUW82OTtxcUA0
S1F3KitsQHNVZ3RyYX1vUF5lP0sKemRTMzleVntjUzFgQ05MUHZTV1lPU0Vwa1ZLUE1QRU42cD0q
O3liNnleMyR5Vlpnc1p1cnF8Q04jcHF2V3BTU3g9Cno/ODlGPklvOWVHRGZiLWB8TFIoIV8rZyol
S0QrcXNgNWxTTlp8fVJEQF9NbWgpYSVgc0MrPUZidjEmXkhaU2AtcQp6ZVhFMmVIKk1VdnVgWX41
ZCZ7RWFFVShRYXt0VjJqeHFqMD52cmN8NSp1cWBZdX0tKE1lfDF2JDFiPU89e0Z5dikKeih8SjdD
ZCkoQzlWQlA8Z2QwWChjKmtfc1gjZz9ENzNTTFY4Sl5XaEZKZGBhP14xI0puSkBFeWByQjY2RilX
cXEkCno3UUhRUkdqRHN0TUM7cWhZaSlCQWNYaXVedC1mOE43Y0l4UW59N0F5YFI3KyV6NUQhMEok
Sj84S1dyPE54dm17cgp6NztuVkRwdXBoaTt1dW9GYDFhO1Qtb3BrQSUjUE9HPmEoQHc0KUVAYG82
NUEkKHQmbTE/X2FVY2kjUC0tTEBuYWEKektOZFp2JUUtalJBKXclKHoqVW9edUkkamowT2RDdiZg
REBHbGZuZCUxcS1pZ1U8YFUlMCMqJUNjN309VmdwWm02CnpMZWx+KzM1OEhVX2ZiUGUhKD1wX2pP
THh1cUZ9VW05SVl9JnRJXlJgIUR2Zn5Xd2lBOytNOyRDP0kzV1JWZnRRcQp6RWB9NC09WXNXPDFY
JXR3dSRYWWRkUzFYVG5DfTZHJXNlZm16RUBLTnF0RkV2cWBzRjRCbEQ3LUUwSWokVX1FIWQKem4y
Y29WMXMwd08mejMye1pFO1pHa1dnVXNiJU5SSShCTDMhOzRvYDs3cmV7SSg1UjN3Plg2WTg4QkhV
anhkdUA+CnpqZ30qJENGXktpR2d8d093bnMpPVhyb088Y25GTChvPTNZQXFhQ2MjRjZVP2Bkfntm
MXVucDlGYEsrcVR6YCY2Swp6U189VEd1dHJDWk0jc31lMmxocT5fQ15ReE1oRXNyMmxuNzBGZ2om
SWx9ViVAJTt4PyklViRoNnZqO0JrVyQ8K00KS2I2TXc8JjskVSozM18oYAoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJl
c291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiYmY3OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXItcmVtb3ZhbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4
CisgIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg4CisgICAgUmVuZGVyQm9k
eSB7Ym9keX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdCJdIFtwYXR0ZXJuVW5pdHM9dXNl
clNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQorICAgICAg
ICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MjAwLjAw
XSBbaGVpZ2h0PTIwMC4wMF0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXpl
IDIwMHgyMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0Il19XSBbeD0wLjAwXSBbeT0w
LjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLnhodG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwueGh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEzMzllMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1v
dmFsLnhodG1sCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmlj
dC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhl
YWQ+PHRpdGxlPlRoZSByZWN0YW5nbGUgc2hvdWxkIGJlIGdyZWVuLjwvdGl0bGU+PC9oZWFkPgor
PHNjcmlwdD4KKwordmFyIFcgPSAyMDA7Cit2YXIgSCA9IDIwMDsKK3ZhciBTVkdOUyA9ICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Cit2YXIgY3VycmVudENvbG9yID0gMDsKK3ZhciBjb2xv
cnMgPSBbInJlZCIsICJncmVlbiJdOworCitmdW5jdGlvbiByZXNldEZpbGwocGFyZW50Tm9kZSkg
eworICAgIHZhciByb290UGF0dGVybiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdOUywg
InBhdHRlcm4iKTsKKyAgICByb290UGF0dGVybi5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdCIpOwor
ICAgIHJvb3RQYXR0ZXJuLnNldEF0dHJpYnV0ZSgicGF0dGVyblVuaXRzIiwgInVzZXJTcGFjZU9u
VXNlIik7CisgICAgcm9vdFBhdHRlcm4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIFcpOworICAgIHJv
b3RQYXR0ZXJuLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgSCk7CisgICAgcGFyZW50Tm9kZS5hcHBl
bmRDaGlsZChyb290UGF0dGVybik7CisKKyAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUyhTVkdOUywgInJlY3QiKTsKKyAgICByZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBX
KTsKKyAgICByZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgSCk7CisgICAgcmVjdC5zZXRBdHRy
aWJ1dGUoImZpbGwiLCBjb2xvcnNbY3VycmVudENvbG9yKytdKTsKKyAgICByb290UGF0dGVybi5h
cHBlbmRDaGlsZChyZWN0KTsKKyAgICAKKyAgICByZXR1cm4gcmVjdDsKK30KKworZnVuY3Rpb24g
dXBkYXRlRmlsbCgpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hh
cGUiKTsKKyAgICB2YXIgZGVmcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWZzIik7CisK
KyAgICB3aGlsZSAoZGVmcy5maXJzdENoaWxkKQorICAgICAgICBkZWZzLnJlbW92ZUNoaWxkKGRl
ZnMuZmlyc3RDaGlsZCk7CisKKyAgICByZXNldEZpbGwoZGVmcyk7CisKKyAgICBlbC5zZXRBdHRy
aWJ1dGUoImZpbGwiLCAidXJsKCNwYXQpIik7CisKKyAgICBpZihjdXJyZW50Q29sb3IgPT0gMikK
KyAgICAgICAgaWYod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIGlmKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgdXBkYXRlRmlsbCgpOworCisgICAgc2V0
VGltZW91dCgidXBkYXRlRmlsbCgpIiwgMCk7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4
bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsgYm90dG9tOiAwcHg7IHJpZ2h0OiAwcHgiPgorPGRl
ZnMgaWQ9ImRlZnMiPjwvZGVmcz4KKzxyZWN0IGlkPSJzaGFwZSIgd2lkdGg9IjIwMCIgaGVpZ2h0
PSIyMDAiPjwvcmVjdD4KKzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMx
ZTYxZDAuLmNiZWFjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wOS0xMyAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OICg2NDI3NSk6IFNoYXBlIHBhdHRlcm4taW1hZ2UgZmlsbCB0dXJucyBibGFjaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEwNjEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg1MDQ3MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBkZXN0cm95aW5nIGEgcmVzb3VyY2UsIHJlZ2lzdGVyIGNs
aWVudHMgd2hvIGFyZSBsb3NpbmcgdGhlaXIKKyAgICAgICAgcmVzb3VyY2UgYXMgaGF2aW5nIHBl
bmRpbmcgcmVzb3VyY2VzLCBzbyB0aGV5IGNhbiBiZSByZXNvbHZlZCBpbiB0aGUgY2FzZSBhCisg
ICAgICAgIHJlc291cmNlIHdpdGggdGhhdCBpZCBpcyByZS1yZWdpc3RlcmVkLgorCisgICAgICAg
IFRlc3Q6IHN2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLnhodG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Jlc291cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZCk6CisKIDIwMTEt
MDktMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAKaW5kZXggNzRkMjk1MC4uMTZiMjkzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5j
cHAKQEAgLTIxLDEwICsyMSwxMiBAQAogI2luY2x1ZGUgIlNWR1Jlc291cmNlc0NhY2hlLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ3lj
bGVTb2x2ZXIuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTYwLDggKzE2MiwxNiBAQCB2b2lkIFNWR1Jlc291cmNlc0NhY2hlOjpy
ZXNvdXJjZURlc3Ryb3llZChSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogcmVzb3VyY2UpCiAg
ICAgY2FjaGUtPnJlbW92ZVJlc291cmNlc0Zyb21SZW5kZXJPYmplY3QocmVzb3VyY2UpOwogCiAg
ICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBTVkdSZXNvdXJjZXMqPjo6aXRlcmF0b3IgZW5kID0g
Y2FjaGUtPm1fY2FjaGUuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPFJlbmRlck9iamVjdCosIFNW
R1Jlc291cmNlcyo+OjppdGVyYXRvciBpdCA9IGNhY2hlLT5tX2NhY2hlLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkKKyAgICBmb3IgKEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgU1ZHUmVzb3VyY2Vz
Kj46Oml0ZXJhdG9yIGl0ID0gY2FjaGUtPm1fY2FjaGUuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CiAgICAgICAgIGl0LT5zZWNvbmQtPnJlc291cmNlRGVzdHJveWVkKHJlc291cmNlKTsKKwor
ICAgICAgICAvLyBNYXJrIHVzZXJzIG9mIGRlc3Ryb3llZCByZXNvdXJjZXMgYXMgcGVuZGluZyBy
ZXNvbHV0aW9uIGJhc2VkIG9uIHRoZSBpZCBvZiB0aGUgb2xkIHJlc291cmNlLgorICAgICAgICBF
bGVtZW50KiByZXNvdXJjZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocmVzb3VyY2Ut
Pm5vZGUoKSk7CisgICAgICAgIFNWR1N0eWxlZEVsZW1lbnQqIGNsaWVudEVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxTVkdTdHlsZWRFbGVtZW50Kj4oaXQtPmZpcnN0LT5ub2RlKCkpOworICAgICAgICBT
VkdEb2N1bWVudEV4dGVuc2lvbnMqIGV4dGVuc2lvbnMgPSBpdC0+Zmlyc3QtPm5vZGUoKS0+ZG9j
dW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpOworCisgICAgICAgIGV4dGVuc2lvbnMtPmFk
ZFBlbmRpbmdSZXNvdXJjZShyZXNvdXJjZUVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjppZEF0dHIpLCBjbGllbnRFbGVtZW50KTsKKyAgICB9CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107218</attachid>
            <date>2011-09-13 13:10:22 -0700</date>
            <delta_ts>2011-09-13 14:53:10 -0700</delta_ts>
            <desc>patch with casting functions</desc>
            <filename>51061.patch</filename>
            <type>text/plain</type>
            <size>8995</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZTY2OTAyLi40MjE1MGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MTMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAoNjQyNzUpOiBTaGFwZSBwYXR0ZXJuLWltYWdlIGZpbGwgdHVybnMgYmxhY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NTA0NzA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZW5zdXJpbmcgdGhhdCByZXBsYWNpbmcg
YSBTVkcgcGF0dGVybiB3aXRob3V0IGNoYW5naW5nCisgICAgICAgIHRoZSBpZCBjYXVzZXMgdGhl
IGNsaWVudHMgdG8gYmUgdXBkYXRlZCBwcm9wZXJseS4KKworICAgICAgICAqIHN2Zy9jdXN0b20v
cGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXIt
cmVtb3ZhbC54aHRtbDogQWRkZWQuCisKIDIwMTEtMDktMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4
aWFuemh1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRl
ci1yZW1vdmFsLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1y
ZXNvdXJjZS1hZnRlci1yZW1vdmFsLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODY3NmM5ZTY4
MjU2NmE3ZjQ2YmU2NzFiNzNkMGNkNmQ4NTY2ZGYzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAx
MTI3Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdD
Q000NyQ9U3VGeGVVZ00KemlIMnMwMjlgIT9zWWEkSWhHdDB5IytKemAjO0opdzV5UkJQNiFZOEQ8
QUEyZldqWj90Y3NlXlAxUWd8YFcjKihaCnpGak8kTWhUUEEtOTNiLVZSX2ZkaDU0KXw+MXYlfDlD
ZyFDQ21wSVNhbUwwejlZfTZ+Vz9UUXw9bSp2TEhJO1Fmcgp6WlVnKHg/dEg3RzxzYUdZZXpObzJZ
fGdLcSNDdUY2QHlEN0RDNyo5Zm85RTNvQGxfOUktdVpwXntoI2tGKXReNiEKelRreHxtPmF2SkZ6
ZXM0WHxJdEgjanl3XiR8QXtlOSMjI0dNaEhyUDluM3RObjFPTWVzbUczdXk9OTQ+P1F9UW5WCnp7
XzIwcFM3JU0tNSZSJmR1eTJhIzV2N05iM28+Sl9sbjZoIyo3PCZ9cTNOTnNLRSlCc1N2Y2o+RSVL
OGFBTktTcgp6UGZJZn5iKHFDQGkyYk9PbUc9JEBpeTReQEtKKHI8KkNfSHRVMld3Z3k+NlM7dTBp
QHdRKFFPa2VFVDNALTI1cWkKeiEtXj57WFJtIU8oMz85OygoaHRUKkZBYTUrSmNeRTN8OX1AJDRs
JlcrJWROeCF0Qyo0KD5rWktEKGVLKl9DOX1DCnprfiFtVD5hNkxKbm5KMkZEdG5TYikqMHR5S0kz
TllvYn5NVCtiO289SHExQktaKDx6emBTSUk7c1Z1SnprQUQ1Owp6P2U9Qlktc2BzflBHKX4+WVBW
ZVRURGAtK3oyQ25VYnY+PHxeeF5kdXghJFdecTk8OH0tTTs8Zz5Ad3hVTjZHezMKem5MVjdFYGVh
Zng5IXp4Tk50fjVAV1lySEpGLWF3X0M2X1d3TE1rXnxUKGoxZ0puZ05GZCZTOWt6OCFJNVUheW5l
CnpgMWF1VXl0fUhgYH1UO285XkpuOU0mUjQ2alcyZz81fXFZcFV6KWdkYW8kN29vbGo+PT1kUn1G
Mj5qUmViZlpVSAp6Pk04JUchMFYtRSZuNSY8fDVNNistZX00QClpUis3bz9VQWAjUW82OTtxcUA0
S1F3KitsQHNVZ3RyYX1vUF5lP0sKemRTMzleVntjUzFgQ05MUHZTV1lPU0Vwa1ZLUE1QRU42cD0q
O3liNnleMyR5Vlpnc1p1cnF8Q04jcHF2V3BTU3g9Cno/ODlGPklvOWVHRGZiLWB8TFIoIV8rZyol
S0QrcXNgNWxTTlp8fVJEQF9NbWgpYSVgc0MrPUZidjEmXkhaU2AtcQp6ZVhFMmVIKk1VdnVgWX41
ZCZ7RWFFVShRYXt0VjJqeHFqMD52cmN8NSp1cWBZdX0tKE1lfDF2JDFiPU89e0Z5dikKeih8SjdD
ZCkoQzlWQlA8Z2QwWChjKmtfc1gjZz9ENzNTTFY4Sl5XaEZKZGBhP14xI0puSkBFeWByQjY2RilX
cXEkCno3UUhRUkdqRHN0TUM7cWhZaSlCQWNYaXVedC1mOE43Y0l4UW59N0F5YFI3KyV6NUQhMEok
Sj84S1dyPE54dm17cgp6NztuVkRwdXBoaTt1dW9GYDFhO1Qtb3BrQSUjUE9HPmEoQHc0KUVAYG82
NUEkKHQmbTE/X2FVY2kjUC0tTEBuYWEKektOZFp2JUUtalJBKXclKHoqVW9edUkkamowT2RDdiZg
REBHbGZuZCUxcS1pZ1U8YFUlMCMqJUNjN309VmdwWm02CnpMZWx+KzM1OEhVX2ZiUGUhKD1wX2pP
THh1cUZ9VW05SVl9JnRJXlJgIUR2Zn5Xd2lBOytNOyRDP0kzV1JWZnRRcQp6RWB9NC09WXNXPDFY
JXR3dSRYWWRkUzFYVG5DfTZHJXNlZm16RUBLTnF0RkV2cWBzRjRCbEQ3LUUwSWokVX1FIWQKem4y
Y29WMXMwd08mejMye1pFO1pHa1dnVXNiJU5SSShCTDMhOzRvYDs3cmV7SSg1UjN3Plg2WTg4QkhV
anhkdUA+CnpqZ30qJENGXktpR2d8d093bnMpPVhyb088Y25GTChvPTNZQXFhQ2MjRjZVP2Bkfntm
MXVucDlGYEsrcVR6YCY2Swp6U189VEd1dHJDWk0jc31lMmxocT5fQ15ReE1oRXNyMmxuNzBGZ2om
SWx9ViVAJTt4PyklViRoNnZqO0JrVyQ8K00KS2I2TXc8JjskVSozM18oYAoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJl
c291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiYmY3OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3BlbmRpbmctcmVzb3VyY2UtYWZ0ZXItcmVtb3ZhbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4
CisgIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg4CisgICAgUmVuZGVyQm9k
eSB7Ym9keX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdCJdIFtwYXR0ZXJuVW5pdHM9dXNl
clNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQorICAgICAg
ICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MjAwLjAw
XSBbaGVpZ2h0PTIwMC4wMF0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXpl
IDIwMHgyMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0Il19XSBbeD0wLjAwXSBbeT0w
LjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLnhodG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9wZW5kaW5nLXJlc291cmNlLWFmdGVyLXJlbW92YWwueGh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEzMzllMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1v
dmFsLnhodG1sCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmlj
dC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhl
YWQ+PHRpdGxlPlRoZSByZWN0YW5nbGUgc2hvdWxkIGJlIGdyZWVuLjwvdGl0bGU+PC9oZWFkPgor
PHNjcmlwdD4KKwordmFyIFcgPSAyMDA7Cit2YXIgSCA9IDIwMDsKK3ZhciBTVkdOUyA9ICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Cit2YXIgY3VycmVudENvbG9yID0gMDsKK3ZhciBjb2xv
cnMgPSBbInJlZCIsICJncmVlbiJdOworCitmdW5jdGlvbiByZXNldEZpbGwocGFyZW50Tm9kZSkg
eworICAgIHZhciByb290UGF0dGVybiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdOUywg
InBhdHRlcm4iKTsKKyAgICByb290UGF0dGVybi5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdCIpOwor
ICAgIHJvb3RQYXR0ZXJuLnNldEF0dHJpYnV0ZSgicGF0dGVyblVuaXRzIiwgInVzZXJTcGFjZU9u
VXNlIik7CisgICAgcm9vdFBhdHRlcm4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIFcpOworICAgIHJv
b3RQYXR0ZXJuLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgSCk7CisgICAgcGFyZW50Tm9kZS5hcHBl
bmRDaGlsZChyb290UGF0dGVybik7CisKKyAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUyhTVkdOUywgInJlY3QiKTsKKyAgICByZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBX
KTsKKyAgICByZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgSCk7CisgICAgcmVjdC5zZXRBdHRy
aWJ1dGUoImZpbGwiLCBjb2xvcnNbY3VycmVudENvbG9yKytdKTsKKyAgICByb290UGF0dGVybi5h
cHBlbmRDaGlsZChyZWN0KTsKKyAgICAKKyAgICByZXR1cm4gcmVjdDsKK30KKworZnVuY3Rpb24g
dXBkYXRlRmlsbCgpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hh
cGUiKTsKKyAgICB2YXIgZGVmcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWZzIik7CisK
KyAgICB3aGlsZSAoZGVmcy5maXJzdENoaWxkKQorICAgICAgICBkZWZzLnJlbW92ZUNoaWxkKGRl
ZnMuZmlyc3RDaGlsZCk7CisKKyAgICByZXNldEZpbGwoZGVmcyk7CisKKyAgICBlbC5zZXRBdHRy
aWJ1dGUoImZpbGwiLCAidXJsKCNwYXQpIik7CisKKyAgICBpZihjdXJyZW50Q29sb3IgPT0gMikK
KyAgICAgICAgaWYod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIGlmKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgdXBkYXRlRmlsbCgpOworCisgICAgc2V0
VGltZW91dCgidXBkYXRlRmlsbCgpIiwgMCk7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4
bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsgYm90dG9tOiAwcHg7IHJpZ2h0OiAwcHgiPgorPGRl
ZnMgaWQ9ImRlZnMiPjwvZGVmcz4KKzxyZWN0IGlkPSJzaGFwZSIgd2lkdGg9IjIwMCIgaGVpZ2h0
PSIyMDAiPjwvcmVjdD4KKzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMx
ZTYxZDAuLmNhZmU4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wOS0xMyAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OICg2NDI3NSk6IFNoYXBlIHBhdHRlcm4taW1hZ2UgZmlsbCB0dXJucyBibGFjaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEwNjEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg1MDQ3MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBkZXN0cm95aW5nIGEgcmVzb3VyY2UsIHJlZ2lzdGVyIGNs
aWVudHMgd2hvIGFyZSBsb3NpbmcgdGhlaXIKKyAgICAgICAgcmVzb3VyY2UgYXMgaGF2aW5nIHBl
bmRpbmcgcmVzb3VyY2VzLCBzbyB0aGV5IGNhbiBiZSByZXNvbHZlZCBpbiB0aGUgY2FzZSBhCisg
ICAgICAgIHJlc291cmNlIHdpdGggdGhhdCBpZCBpcyByZS1yZWdpc3RlcmVkLgorCisgICAgICAg
IFRlc3Q6IHN2Zy9jdXN0b20vcGVuZGluZy1yZXNvdXJjZS1hZnRlci1yZW1vdmFsLnhodG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Jlc291cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZCk6CisgICAgICAg
ICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvU1ZHU3R5bGVk
RWxlbWVudCk6IEFkZGVkLgorCiAyMDExLTA5LTEzICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpo
dUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCmlu
ZGV4IDc0ZDI5NTAuLjMwZjg2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCkBAIC0yMSwxMCArMjEsMTIgQEAKICNpbmNsdWRl
ICJTVkdSZXNvdXJjZXNDYWNoZS5oIgogCiAjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oIgogI2luY2x1
ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgogI2luY2x1ZGUgIlNWR1Jlc291cmNlcy5oIgog
I2luY2x1ZGUgIlNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVk
RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE2MCw4ICsxNjIsMTYgQEAg
dm9pZCBTVkdSZXNvdXJjZXNDYWNoZTo6cmVzb3VyY2VEZXN0cm95ZWQoUmVuZGVyU1ZHUmVzb3Vy
Y2VDb250YWluZXIqIHJlc291cmNlKQogICAgIGNhY2hlLT5yZW1vdmVSZXNvdXJjZXNGcm9tUmVu
ZGVyT2JqZWN0KHJlc291cmNlKTsKIAogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgU1ZHUmVz
b3VyY2VzKj46Oml0ZXJhdG9yIGVuZCA9IGNhY2hlLT5tX2NhY2hlLmVuZCgpOwotICAgIGZvciAo
SGFzaE1hcDxSZW5kZXJPYmplY3QqLCBTVkdSZXNvdXJjZXMqPjo6aXRlcmF0b3IgaXQgPSBjYWNo
ZS0+bV9jYWNoZS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgZm9yIChIYXNoTWFwPFJl
bmRlck9iamVjdCosIFNWR1Jlc291cmNlcyo+OjppdGVyYXRvciBpdCA9IGNhY2hlLT5tX2NhY2hl
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBpdC0+c2Vjb25kLT5yZXNvdXJj
ZURlc3Ryb3llZChyZXNvdXJjZSk7CisKKyAgICAgICAgLy8gTWFyayB1c2VycyBvZiBkZXN0cm95
ZWQgcmVzb3VyY2VzIGFzIHBlbmRpbmcgcmVzb2x1dGlvbiBiYXNlZCBvbiB0aGUgaWQgb2YgdGhl
IG9sZCByZXNvdXJjZS4KKyAgICAgICAgRWxlbWVudCogcmVzb3VyY2VFbGVtZW50ID0gdG9FbGVt
ZW50KHJlc291cmNlLT5ub2RlKCkpOworICAgICAgICBTVkdTdHlsZWRFbGVtZW50KiBjbGllbnRF
bGVtZW50ID0gdG9TVkdTdHlsZWRFbGVtZW50KGl0LT5maXJzdC0+bm9kZSgpKTsKKyAgICAgICAg
U1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBleHRlbnNpb25zID0gY2xpZW50RWxlbWVudC0+ZG9jdW1l
bnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpOworCisgICAgICAgIGV4dGVuc2lvbnMtPmFkZFBl
bmRpbmdSZXNvdXJjZShyZXNvdXJjZUVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVz
OjppZEF0dHIpLCBjbGllbnRFbGVtZW50KTsKKyAgICB9CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3R5bGVkRWxlbWVudC5oCmluZGV4IDhmM2Q3ZmYuLjk5MThhMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlZEVsZW1lbnQuaApAQCAtOTYsNiArOTYsMTIgQEAgcHJpdmF0ZToKICAgICBF
TkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCitpbmxpbmUgU1ZHU3R5bGVkRWxl
bWVudCogdG9TVkdTdHlsZWRFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKCFub2Rl
IHx8IChub2RlLT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBub2RlLT5pc1NWR0VsZW1lbnQoKSkpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdTdHlsZWRFbGVtZW50Kj4obm9kZSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>