<?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>32334</bug_id>
          
          <creation_ts>2009-12-09 11:30:12 -0800</creation_ts>
          <short_desc>[GTK] Should provide an API to control the IconDatabase</short_desc>
          <delta_ts>2009-12-14 05:27:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>julian.navascues</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170072</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-09 11:30:12 -0800</bug_when>
    <thetext>WebKit has a full-blown icon database. We should probably take advantage of it, and implement a nice API on top of it. For now, I would like to at least allow applications to be notified of icon URLs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170074</commentid>
    <comment_count>1</comment_count>
      <attachid>44549</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-09 11:34:30 -0800</bug_when>
    <thetext>Created attachment 44549
first step

There are some caveats (the full blown icon database is enabled, but only a tiny bit is being used), but this allows us to move forward with implementing favicons, and is a first step towards adopting the internal icon database.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170081</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-09 11:37:40 -0800</bug_when>
    <thetext>Attachment 44549 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/gtk/webkit/webkitwebview.cpp:2398:  Use 0 instead of NULL.  [readability/null] [5]
WebKit/gtk/webkit/webkitwebview.cpp:4003:  Use 0 instead of NULL.  [readability/null] [5]
WebKit/gtk/webkit/webkitprivate.cpp:262:  Use 0 instead of NULL.  [readability/null] [5]
WebKit/gtk/webkit/webkitwebview.h:371:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170082</commentid>
    <comment_count>3</comment_count>
      <attachid>44550</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-09 11:38:00 -0800</bug_when>
    <thetext>Created attachment 44550
Epiphany patch using this API

As usual =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170091</commentid>
    <comment_count>4</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-09 12:01:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 44549 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
&gt; WebKit/gtk/webkit/webkitwebview.cpp:2398:  Use 0 instead of NULL. 
&gt; [readability/null] [5]
&gt; WebKit/gtk/webkit/webkitwebview.cpp:4003:  Use 0 instead of NULL. 
&gt; [readability/null] [5]
&gt; WebKit/gtk/webkit/webkitprivate.cpp:262:  Use 0 instead of NULL. 
&gt; [readability/null] [5]

This is caused by our convention that NULL should be used for any calls gcc checks for the sentinel, and for code inside WebKit/gtk/.

&gt; WebKit/gtk/webkit/webkitwebview.h:371:  Extra space before ( in function call 
&gt; [whitespace/parens] [4]
&gt; Total errors found: 4

This is caused by the GTK+ API convention of using vertical alignment for parameters. Any .h inside WebKit/gtk/webkit/ will have that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170145</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-09 13:34:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; Attachment 44549 [details] [details] did not pass style-queue:
&gt; &gt; 
&gt; &gt; Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
&gt; &gt; WebKit/gtk/webkit/webkitwebview.cpp:2398:  Use 0 instead of NULL. 
&gt; &gt; [readability/null] [5]
&gt; &gt; WebKit/gtk/webkit/webkitwebview.cpp:4003:  Use 0 instead of NULL. 
&gt; &gt; [readability/null] [5]
&gt; &gt; WebKit/gtk/webkit/webkitprivate.cpp:262:  Use 0 instead of NULL. 
&gt; &gt; [readability/null] [5]
&gt; 
&gt; This is caused by our convention that NULL should be used for any calls gcc
&gt; checks for the sentinel, and for code inside WebKit/gtk/.
&gt; 
&gt; &gt; WebKit/gtk/webkit/webkitwebview.h:371:  Extra space before ( in function call 
&gt; &gt; [whitespace/parens] [4]
&gt; &gt; Total errors found: 4
&gt; 
&gt; This is caused by the GTK+ API convention of using vertical alignment for
&gt; parameters. Any .h inside WebKit/gtk/webkit/ will have that.

If you believe check-webkit-style is wrong here, please file a bug an CC Dave Levin and Adam Barth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170149</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-09 13:38:12 -0800</bug_when>
    <thetext>Please file the bug.  We don&apos;t want the bot spamming suggestions we don&apos;t expect to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170322</commentid>
    <comment_count>7</comment_count>
      <attachid>44549</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-09 23:00:17 -0800</bug_when>
    <thetext>Comment on attachment 44549
first step

I realize it would be an API break, but seems to me it would be a lot more convenient to have &apos;icon-loaded&apos; carry the favicon URI, right? Any anyway you are already kind of changing the API to ack the fact that the signal was carrying a frame.

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170377</commentid>
    <comment_count>8</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-10 02:21:17 -0800</bug_when>
    <thetext>Also, per comments on IRC, seems you need to close the icon database somehow if you are opening it. The other ports seem to detect when the process is being terminated to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170382</commentid>
    <comment_count>9</comment_count>
    <who name="Julian de Navascues">julian.navascues</who>
    <bug_when>2009-12-10 02:39:32 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; WebKit has a full-blown icon database. We should probably take advantage of it,
&gt; and implement a nice API on top of it. 

Hi! I&apos;m working in this subject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170393</commentid>
    <comment_count>10</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-10 04:26:18 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #0)
&gt; &gt; WebKit has a full-blown icon database. We should probably take advantage of it,
&gt; &gt; and implement a nice API on top of it. 
&gt; 
&gt; Hi! I&apos;m working in this subject.

Good =) thoughts on the patch I posted? =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170405</commentid>
    <comment_count>11</comment_count>
      <attachid>44608</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-10 05:57:40 -0800</bug_when>
    <thetext>Created attachment 44608
second try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170408</commentid>
    <comment_count>12</comment_count>
      <attachid>44610</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-10 06:01:44 -0800</bug_when>
    <thetext>Created attachment 44610
real second try

Oops, forgot an important part of the test! Here it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170409</commentid>
    <comment_count>13</comment_count>
      <attachid>44610</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-10 06:12:49 -0800</bug_when>
    <thetext>Comment on attachment 44610
real second try

Looks good to me. The test has some style issues wrt pointer types and the &apos;*&apos;, try to go through it once before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170411</commentid>
    <comment_count>14</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-10 06:36:05 -0800</bug_when>
    <thetext>Landed as 51948, with the problems noticed by Xan fixed. I am going to report a bug on the style checker later today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171196</commentid>
    <comment_count>15</comment_count>
    <who name="Julian de Navascues">julian.navascues</who>
    <bug_when>2009-12-13 05:06:34 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=44608) [details]
&gt; second try

(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; WebKit has a full-blown icon database. We should probably take advantage of it,
&gt; &gt; &gt; and implement a nice API on top of it. 
&gt; &gt; 
&gt; &gt; Hi! I&apos;m working in this subject.
&gt; 
&gt; Good =) thoughts on the patch I posted? =)

I think we should use #if ENABLE (ICONDATABASE) directive in future patchs like WebCore does. In the case of Epiphany I guess icons will be cached twice, but that&apos;s not a big problem. Closing icondatabse with atexit seems a great idea to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171204</commentid>
    <comment_count>16</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-13 07:09:47 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; Good =) thoughts on the patch I posted? =)
&gt; 
&gt; I think we should use #if ENABLE (ICONDATABASE) directive in future patchs like
&gt; WebCore does. In the case of Epiphany I guess icons will be cached twice, but
&gt; that&apos;s not a big problem. Closing icondatabse with atexit seems a great idea to
&gt; me.

The reason I did not do this is because we already enable the icon database unconditionally for the gtk+ port, so it seemed unnecessary. This has to of course be revisited if we intend to support building with it disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171347</commentid>
    <comment_count>17</comment_count>
    <who name="Julian de Navascues">julian.navascues</who>
    <bug_when>2009-12-14 05:25:15 -0800</bug_when>
    <thetext>I have opened a new bug to discuss the API to control the Icon Database: https://bugs.webkit.org/show_bug.cgi?id=3251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171349</commentid>
    <comment_count>18</comment_count>
    <who name="Julian de Navascues">julian.navascues</who>
    <bug_when>2009-12-14 05:27:51 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I have opened a new bug to discuss the API to control the Icon Database:
&gt; https://bugs.webkit.org/show_bug.cgi?id=3251

The right link is: https://bugs.webkit.org/show_bug.cgi?id=32510

Sorry!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44549</attachid>
            <date>2009-12-09 11:34:30 -0800</date>
            <delta_ts>2009-12-10 05:57:40 -0800</delta_ts>
            <desc>first step</desc>
            <filename>0001-First-step-towards-an-IconDatabase-API.patch</filename>
            <type>text/plain</type>
            <size>8711</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA2YWY3MzRmNzc4ZjEyYWE1MmM4ODAyYmZiYmMxNDY0NDQ4ZTcyZGM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGd1c3Rhdm8ubm9yb25o
YUBjb2xsYWJvcmEuY28udWs+CkRhdGU6IFdlZCwgOSBEZWMgMjAwOSAxNzozMjozNCAtMDIwMApT
dWJqZWN0OiBbUEFUQ0hdIEZpcnN0IHN0ZXAgdG93YXJkcyBhbiBJY29uRGF0YWJhc2UgQVBJCgot
LS0KIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyNCArKysrKysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIHwgICAgNCArLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmggICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAgICAgICAgICAgICAgICAgfCAgIDU1ICsrKysrKysrKysrKysrKysrKy0tCiBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmggICAgICAgICAgICAgICAgICB8ICAgIDQgKysK
IDYgZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IGRmYWM5MzQuLjU5YjgyMTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMTItMDkgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU2hvdWxk
IHByb3ZpZGUgYW4gQVBJIHRvIGNvbnRyb2wgdGhlIEljb25EYXRhYmFzZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIzMzQKKworICAgICAgICBGaXJz
dCBzdGVwIHRvd2FyZHMgYSBmdWxsIEljb25EYXRhYmFzZSBBUEkuIFRoaXMgcHJvdmlkZXMKKyAg
ICAgICAgbm90aWZpY2F0aW9uIGZvciBwYWdlcyB3aXRoIGZhdmljb25zLCBhbmQgbGV0cyBjbGll
bnRzIGhhbmRsZQorICAgICAgICB0aGVtLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVu
dDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24pOgorICAgICAgICAqIHdlYmtpdC93
ZWJraXRwcml2YXRlLmNwcDoKKyAgICAgICAgKHdlYmtpdF9pbml0KToKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
KyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0
X3dlYl92aWV3X2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0
KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkpOgorICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3Lmg6CisKIDIwMDktMTItMDggIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhIFNpbHZhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcAppbmRleCBmZDEzNWU0Li4yZTA3ZTVjIDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtNTQ5LDcgKzU0
OSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24o
KSBjb25zdAogewogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25O
b3RpZmljYXRpb24oYm9vbCkKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnJlZ2lzdGVyRm9ySWNv
bk5vdGlmaWNhdGlvbihib29sIHNob3VsZFJlZ2lzdGVyKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CkBAIC03MDEsNyArNzAxLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hXaWxsQ2xvc2UoKQogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZl
SWNvbigpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUo
bV9mcmFtZSk7Ci0KKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpY29u
LXVyaSIpOwogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAiaWNvbi1sb2FkZWQi
LCBtX2ZyYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAppbmRleCAwODcw
ZDkwLi5mOWExM2ZiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnRHdGsuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSWNvbkRh
dGFiYXNlLmgiCiAjaW5jbHVkZSA8bGliaW50bC5oPgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJQYWdlQ2FjaGUuaCIKQEAgLTI1Niw2ICsyNTcsMTEgQEAgdm9pZCB3ZWJraXRfaW5p
dCgpCiAKICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT5zZXRIZWxwZXIoV2Vi
S2l0OjpwYXN0ZWJvYXJkSGVscGVySW5zdGFuY2UoKSk7CiAKKyAgICBpY29uRGF0YWJhc2UoKS0+
c2V0RW5hYmxlZCh0cnVlKTsKKworICAgIEdPd25QdHI8Z2NoYXI+IGljb25EYXRhYmFzZVBhdGgo
Z19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXQiLCAiaWNvbmRh
dGFiYXNlIiwgTlVMTCkpOworICAgIGljb25EYXRhYmFzZSgpLT5vcGVuKGljb25EYXRhYmFzZVBh
dGguZ2V0KCkpOworCiAgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSB3ZWJraXRfZ2V0X2RlZmF1
bHRfc2Vzc2lvbigpOwogCiAgICAgU291cFNlc3Npb25GZWF0dXJlKiBhdXRoRGlhbG9nID0gc3Rh
dGljX2Nhc3Q8U291cFNlc3Npb25GZWF0dXJlKj4oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1NP
VVBfQVVUSF9ESUFMT0csIE5VTEwpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCBi
ZDk1ODk2Li5lMTdlNzllIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2
YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0xNDIsNiAr
MTQyLDggQEAgZXh0ZXJuICJDIiB7CiAgICAgICAgIGNoYXIqIGVuY29kaW5nOwogICAgICAgICBj
aGFyKiBjdXN0b21FbmNvZGluZzsKIAorICAgICAgICBjaGFyKiBpY29uVVJJOworCiAgICAgICAg
IGdib29sZWFuIGRpc3Bvc2luZzsKICAgICAgICAgZ2Jvb2xlYW4gdXNlUHJpbWFyeUZvclBhc3Rl
OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDJjNTVkMDkuLjU1MjMyMjAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5j
bHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTEzMyw3ICsxMzQsNyBAQCBlbnVtIHsKICAgICBIT1ZF
UklOR19PVkVSX0xJTkssCiAgICAgUE9QVUxBVEVfUE9QVVAsCiAgICAgU1RBVFVTX0JBUl9URVhU
X0NIQU5HRUQsCi0gICAgSUNPTkRfTE9BREVELAorICAgIElDT05fTE9BREVELAogICAgIFNFTEVD
VElPTl9DSEFOR0VELAogICAgIENPTlNPTEVfTUVTU0FHRSwKICAgICBTQ1JJUFRfQUxFUlQsCkBA
IC0xNzIsNyArMTczLDggQEAgZW51bSB7CiAgICAgUFJPUF9MT0FEX1NUQVRVUywKICAgICBQUk9Q
X1BST0dSRVNTLAogICAgIFBST1BfRU5DT0RJTkcsCi0gICAgUFJPUF9DVVNUT01fRU5DT0RJTkcK
KyAgICBQUk9QX0NVU1RPTV9FTkNPRElORywKKyAgICBQUk9QX0lDT05fVVJJCiB9OwogCiBzdGF0
aWMgZ3VpbnQgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwpA
QCAtMzU0LDYgKzM1Niw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqCiAgICAgY2FzZSBQUk9Q
X1BST0dSRVNTOgogICAgICAgICBnX3ZhbHVlX3NldF9kb3VibGUodmFsdWUsIHdlYmtpdF93ZWJf
dmlld19nZXRfcHJvZ3Jlc3Mod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfSUNPTl9VUkk6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X3dl
Yl92aWV3X2dldF9pY29uX3VyaSh3ZWJWaWV3KSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHBy
b3BfaWQsIHBzcGVjKTsKICAgICB9CkBAIC0xMDI2LDYgKzEwMzEsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIGdfZnJlZShwcml2
LT5tYWluUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBnX2ZyZWUocHJpdi0+ZW5jb2RpbmcpOwog
ICAgIGdfZnJlZShwcml2LT5jdXN0b21FbmNvZGluZyk7CisgICAgZ19mcmVlKHByaXYtPmljb25V
UkkpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcykt
PmZpbmFsaXplKG9iamVjdCk7CiB9CkBAIC0xNzI5LDE0ICsxNzM1LDE1IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0Ns
YXNzKQogICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCiAgICAgICAgICAgICBHX1RZUEVfU1RS
SU5HKTsKIAotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0lDT05EX0xPQURFRF0gPSBnX3Np
Z25hbF9uZXcoImljb24tbG9hZGVkIiwKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tJQ09O
X0xPQURFRF0gPSBnX3NpZ25hbF9uZXcoImljb24tbG9hZGVkIiwKICAgICAgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCiAgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKUdf
U0lHTkFMX1JVTl9MQVNULAogICAgICAgICAgICAgMCwKICAgICAgICAgICAgIE5VTEwsCiAgICAg
ICAgICAgICBOVUxMLAotICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQs
Ci0gICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7CisgICAgICAgICAgICBnX2NjbG9zdXJlX21h
cnNoYWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAg
ICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUpOwogCiAgICAgd2Via2l0X3dlYl92aWV3X3NpZ25h
bHNbU0VMRUNUSU9OX0NIQU5HRURdID0gZ19zaWduYWxfbmV3KCJzZWxlY3Rpb24tY2hhbmdlZCIs
CiAgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLApAQCAtMjM3Nyw2
ICsyMzg0LDIwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktp
dFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjAsIDEuMCwgMS4wLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6aWNvbi11cmk6Cisg
ICAgICoKKyAgICAgKiBUaGUgVVJJIGZvciB0aGUgZmF2aWNvbiBmb3IgdGhlICNXZWJLaXRXZWJW
aWV3LgorICAgICAqCisgICAgICogU2luY2U6IDEuMS4xOAorICAgICAqLworICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfSUNPTl9VUkksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJpY29u
LXVyaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIkljb24gVVJJIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgZm9yIHRoZSBmYXZpY29uIGZvciB0aGUg
I1dlYktpdFdlYlZpZXcuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCiAgICAg
Z190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHdlYlZpZXdDbGFzcywgc2l6ZW9mKFdlYktpdFdlYlZp
ZXdQcml2YXRlKSk7CiB9CiAKQEAgLTM5NjUsMyArMzk4NiwyNyBAQCBXZWJLaXRIaXRUZXN0UmVz
dWx0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hpdF90ZXN0X3Jlc3VsdChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LAogCiAgICAgcmV0dXJuIGtpdChtZXYuaGl0VGVzdFJlc3VsdCgpKTsKIH0KKworLyoq
CisgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJpOgorICogQHdlYl92aWV3OiB0aGUgI1dl
YktpdFdlYlZpZXcgb2JqZWN0CisgKgorICogT2J0YWlucyB0aGUgVVJJIGZvciB0aGUgZmF2aWNv
biBmb3IgdGhlIGdpdmVuICNXZWJLaXRXZWJWaWV3LCBvcgorICogJU5VTEwgaWYgdGhlcmUgaXMg
bm9uZS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBVUkkgZm9yIHRoZSBmYXZpY29uLCBvciAl
TlVMTAorICoKKyAqIFNpbmNlOiAxLjEuMTgKKyAqLworR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdl
YmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwp
OworCisgICAgUGFnZSogY29yZVBhZ2UgPSBjb3JlKHdlYlZpZXcpOworICAgIFN0cmluZyBpY29u
VVJMID0gaWNvbkRhdGFiYXNlKCktPmljb25VUkxGb3JQYWdlVVJMKGNvcmVQYWdlLT5tYWluRnJh
bWUoKS0+bG9hZGVyKCktPnVybCgpLnByZXR0eVVSTCgpKTsKKworICAgIFdlYktpdFdlYlZpZXdQ
cml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKKyAgICBnX2ZyZWUocHJpdi0+aWNvblVSSSk7
CisgICAgcHJpdi0+aWNvblVSSSA9IGdfc3RyZHVwKGljb25VUkwudXRmOCgpLmRhdGEoKSk7Cisg
ICAgcmV0dXJuIHByaXYtPmljb25VUkk7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKaW5k
ZXggMTI5NzY5NS4uOGRkN2YzOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaApAQCAtMzY2
LDYgKzM2NiwxMCBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdfc291cmNlX21vZGUgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KQogV0VCS0lUX0FQSSBXZWJLaXRI
aXRUZXN0UmVzdWx0Kgogd2Via2l0X3dlYl92aWV3X2dldF9oaXRfdGVzdF9yZXN1bHQgICAgICAg
ICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJWaWV3LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50QnV0dG9uICAgICAgICpldmVu
dCk7CisKK1dFQktJVF9BUEkgR19DT05TVF9SRVRVUk4gZ2NoYXIgKgord2Via2l0X3dlYl92aWV3
X2dldF9pY29uX3VyaSAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3
ZWJWaWV3KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCi0tIAoxLjYuNS4zCgo=
</data>
<flag name="commit-queue"
          id="26432"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44550</attachid>
            <date>2009-12-09 11:38:00 -0800</date>
            <delta_ts>2009-12-09 11:38:00 -0800</delta_ts>
            <desc>Epiphany patch using this API</desc>
            <filename>0001-Make-the-favicon-cache-work-on-top-of-new-WebKit-API.patch</filename>
            <type>text/plain</type>
            <size>7493</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA0MWE2OWY5Y2Q2ZGI3N2IyNWFjOTEwMzZiYmVlYmNjMWQ5NjIyYjEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFdlZCwgOSBEZWMgMjAwOSAxNzozNTo1OSAtMDIwMApTdWJqZWN0OiBbUEFUQ0hdIE1h
a2UgdGhlIGZhdmljb24gY2FjaGUgd29yayBvbiB0b3Agb2YgbmV3IFdlYktpdCBBUEksIGFuZCBX
ZWJLaXREb3dubG9hZAoKVGhpcyByZXN0b3JlcyBiYXNpYyBmYXZpY29uIGZ1bmN0aW9uYWxpdHku
IEluIHRoZSBmdXR1cmUgd2Ugd2lsbCB3YW50CnRvIHJlcGxhY2Ugb3VyIGZhdmljb24gY2FjaGUg
d2l0aCB0aGUgSWNvbkRhdGFiYXNlIHRoYXQgaXMgYXZhaWxhYmxlCmluIFdlYktpdC4KCkJ1ZyAj
NjAxODU5Ci0tLQogZW1iZWQvZXBoeS1lbWJlZC5jICAgICAgICAgfCAgICA5ICsrKysKIGVtYmVk
L2VwaHktZmF2aWNvbi1jYWNoZS5jIHwgICA4OCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogZW1iZWQvZXBoeS13ZWItdmlldy5jICAgICAgfCAgIDE0ICsrKy0t
LQogMyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9lbWJlZC9lcGh5LWVtYmVkLmMgYi9lbWJlZC9lcGh5LWVtYmVkLmMKaW5kZXgg
YjgzOWM2Yi4uODg5YTJlMCAxMDA2NDQKLS0tIGEvZW1iZWQvZXBoeS1lbWJlZC5jCisrKyBiL2Vt
YmVkL2VwaHktZW1iZWQuYwpAQCAtNzcyLDYgKzc3MiwxNCBAQCBsb2FkX2Vycm9yX2NiIChXZWJL
aXRXZWJWaWV3ICp3ZWJfdmlldywKIH0KIAogc3RhdGljIHZvaWQKK2ljb25fbG9hZGVkX2NiIChX
ZWJLaXRXZWJWaWV3ICp3ZWJfdmlldykKK3sKKyAgZ19zaWduYWxfZW1pdF9ieV9uYW1lIChFUEhZ
X1dFQl9WSUVXICh3ZWJfdmlldyksCisgICAgICAgICAgICAgICAgICAgICAgICAgImZhdmljb24i
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkg
KHdlYl92aWV3KSk7Cit9CisKK3N0YXRpYyB2b2lkCiBlcGh5X2VtYmVkX2NvbnN0cnVjdGVkIChH
T2JqZWN0ICpvYmplY3QpCiB7CiAgIEVwaHlFbWJlZCAqZW1iZWQgPSAoRXBoeUVtYmVkKilvYmpl
Y3Q7CkBAIC03OTQsNiArODAyLDcgQEAgZXBoeV9lbWJlZF9jb25zdHJ1Y3RlZCAoR09iamVjdCAq
b2JqZWN0KQogICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpub3RpZnk6OnRpdGxlIiwgR19D
QUxMQkFDSyAodGl0bGVfY2hhbmdlZF9jYiksIGVtYmVkLAogICAgICAgICAgICAgICAgICAgICAi
c2lnbmFsOjpub3RpZnk6OnVyaSIsIEdfQ0FMTEJBQ0sgKHVyaV9jaGFuZ2VkX2NiKSwgZW1iZWQs
CiAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OmxvYWQtZXJyb3IiLCBHX0NBTExCQUNLIChs
b2FkX2Vycm9yX2NiKSwgZW1iZWQsCisgICAgICAgICAgICAgICAgICAgICJzaWduYWw6Omljb24t
bG9hZGVkIiwgR19DQUxMQkFDSyAoaWNvbl9sb2FkZWRfY2IpLCBlbWJlZCwKICAgICAgICAgICAg
ICAgICAgICAgTlVMTCk7CiAKICAgZW1iZWQtPnByaXYtPmluc3BlY3Rvcl93aW5kb3cgPSBndGtf
d2luZG93X25ldyAoR1RLX1dJTkRPV19UT1BMRVZFTCk7CmRpZmYgLS1naXQgYS9lbWJlZC9lcGh5
LWZhdmljb24tY2FjaGUuYyBiL2VtYmVkL2VwaHktZmF2aWNvbi1jYWNoZS5jCmluZGV4IGMxZTNj
ZjcuLmY4ZWQ5NDQgMTAwNjQ0Ci0tLSBhL2VtYmVkL2VwaHktZmF2aWNvbi1jYWNoZS5jCisrKyBi
L2VtYmVkL2VwaHktZmF2aWNvbi1jYWNoZS5jCkBAIC00NDUsNTAgKzQ0NSw0MiBAQCBlcGh5X2Zh
dmljb25fY2FjaGVfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKIH0KIAogc3RhdGljIHZvaWQK
LWZhdmljb25fZG93bmxvYWRfY29tcGxldGVkX2NiIChFcGh5RW1iZWRQZXJzaXN0ICpwZXJzaXN0
LAotCQkJICAgICAgIEVwaHlGYXZpY29uQ2FjaGUgKmNhY2hlKQorZmF2aWNvbl9kb3dubG9hZF9z
dGF0dXNfY2hhbmdlZF9jYiAoV2ViS2l0RG93bmxvYWQgKmRvd25sb2FkLAorCQkJCSAgICBHUGFy
YW1TcGVjICpzcGVjLAorCQkJCSAgICBFcGh5RmF2aWNvbkNhY2hlICpjYWNoZSkKIHsKLQljb25z
dCBjaGFyICp1cmw7CisJV2ViS2l0RG93bmxvYWRTdGF0dXMgc3RhdHVzID0gd2Via2l0X2Rvd25s
b2FkX2dldF9zdGF0dXMgKGRvd25sb2FkKTsKKwljaGFyKiB1cmwgPSB3ZWJraXRfZG93bmxvYWRf
Z2V0X3VyaSAoZG93bmxvYWQpOwogCi0JdXJsID0gZXBoeV9lbWJlZF9wZXJzaXN0X2dldF9zb3Vy
Y2UgKHBlcnNpc3QpOwotCWdfcmV0dXJuX2lmX2ZhaWwgKHVybCAhPSBOVUxMKTsKKwlzd2l0Y2gg
KHN0YXR1cykgeworCWNhc2UgV0VCS0lUX0RPV05MT0FEX1NUQVRVU19GSU5JU0hFRDoKKwkJTE9H
ICgiRmF2aWNvbiBjYWNoZSBkb3dubG9hZCBjb21wbGV0ZWQgZm9yICVzIiwgdXJsKTsKIAotCUxP
RyAoIkZhdmljb24gY2FjaGUgZG93bmxvYWQgY29tcGxldGVkIGZvciAlcyIsIHVybCk7CisJCWdf
aGFzaF90YWJsZV9yZW1vdmUgKGNhY2hlLT5wcml2LT5kb3dubG9hZHNfaGFzaCwgdXJsKTsKIAot
CWdfaGFzaF90YWJsZV9yZW1vdmUgKGNhY2hlLT5wcml2LT5kb3dubG9hZHNfaGFzaCwgdXJsKTsK
KwkJZ19zaWduYWxfZW1pdCAoR19PQkpFQ1QgKGNhY2hlKSwgc2lnbmFsc1tDSEFOR0VEXSwgMCwg
dXJsKTsKIAotCWdfc2lnbmFsX2VtaXQgKEdfT0JKRUNUIChjYWNoZSksIHNpZ25hbHNbQ0hBTkdF
RF0sIDAsIHVybCk7CisJCWdfb2JqZWN0X3VucmVmIChkb3dubG9hZCk7CiAKLQlnX29iamVjdF91
bnJlZiAocGVyc2lzdCk7CisJCWNhY2hlLT5wcml2LT5kaXJ0eSA9IFRSVUU7CiAKLQljYWNoZS0+
cHJpdi0+ZGlydHkgPSBUUlVFOwotfQorCQlicmVhazsKKwljYXNlIFdFQktJVF9ET1dOTE9BRF9T
VEFUVVNfRVJST1I6CisJY2FzZSBXRUJLSVRfRE9XTkxPQURfU1RBVFVTX0NBTkNFTExFRDoKKwkJ
TE9HICgiRmF2aWNvbiBjYWNoZSBkb3dubG9hZCBjYW5jZWxsZWQgJXMiLCB1cmwpOwogCi1zdGF0
aWMgdm9pZAotZmF2aWNvbl9kb3dubG9hZF9jYW5jZWxsZWRfY2IgKEVwaHlFbWJlZFBlcnNpc3Qg
KnBlcnNpc3QsCi0JCQkgICAgICAgRXBoeUZhdmljb25DYWNoZSAqY2FjaGUpCi17Ci0JY29uc3Qg
Y2hhciAqdXJsLCAqZGVzdDsKKwkJZ19oYXNoX3RhYmxlX3JlbW92ZSAoY2FjaGUtPnByaXYtPmRv
d25sb2Fkc19oYXNoLCB1cmwpOwogCi0JdXJsID0gZXBoeV9lbWJlZF9wZXJzaXN0X2dldF9zb3Vy
Y2UgKHBlcnNpc3QpOwotCWdfcmV0dXJuX2lmX2ZhaWwgKHVybCAhPSBOVUxMKTsKKwkJLyogVE9E
TzogcmVtb3ZlIGEgcGFydGlhbGx5IGRvd25sb2FkZWQgZmlsZSAqLworCQkvKiBGSVhNRTogcmUt
c2NoZWR1bGUgdG8gdHJ5IGFnYWluIGFmdGVyIG4gZGF5cz8gKi8KIAotCUxPRyAoIkZhdmljb24g
Y2FjaGUgZG93bmxvYWQgY2FuY2VsbGVkICVzIiwgdXJsKTsKKwkJZ19vYmplY3RfdW5yZWYgKGRv
d25sb2FkKTsKIAotCWdfaGFzaF90YWJsZV9yZW1vdmUgKGNhY2hlLT5wcml2LT5kb3dubG9hZHNf
aGFzaCwgdXJsKTsKLQotCS8qIHJlbW92ZSBhIHBhcnRpYWxseSBkb3dubG9hZGVkIGZpbGUgKi8K
LQkJZGVzdCA9IGVwaHlfZW1iZWRfcGVyc2lzdF9nZXRfZGVzdCAocGVyc2lzdCk7Ci0JaWYgKGdf
dW5saW5rIChkZXN0KSA8IDApCi0JewotCQlMT0cgKCJVbmFibGUgdG8gZGVsZXRlICVzIiwgZGVz
dCk7CisJCWNhY2hlLT5wcml2LT5kaXJ0eSA9IFRSVUU7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJ
CWJyZWFrOwogCX0KLQotCS8qIEZJWE1FOiByZS1zY2hlZHVsZSB0byB0cnkgYWdhaW4gYWZ0ZXIg
biBkYXlzPyAqLwotCi0JZ19vYmplY3RfdW5yZWYgKHBlcnNpc3QpOwotCi0JY2FjaGUtPnByaXYt
PmRpcnR5ID0gVFJVRTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQ5Niw4ICs0ODgsMTAgQEAgZXBo
eV9mYXZpY29uX2NhY2hlX2Rvd25sb2FkIChFcGh5RmF2aWNvbkNhY2hlICpjYWNoZSwKIAkJCSAg
ICAgY29uc3QgY2hhciAqZmF2aWNvbl91cmwsCiAJCQkgICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1l
KQogewotCUVwaHlFbWJlZFBlcnNpc3QgKnBlcnNpc3Q7CisJV2ViS2l0TmV0d29ya1JlcXVlc3Qg
KnJlcXVlc3Q7CisJV2ViS2l0RG93bmxvYWQgKmRvd25sb2FkOwogCWNoYXIgKmRlc3Q7CisJY2hh
ciAqZGVzdF91cmk7CiAKIAlMT0cgKCJEb3dubG9hZCBmYXZpY29uOiAlcyIsIGZhdmljb25fdXJs
KTsKIApAQCAtNTA1LDMxICs0OTksMjUgQEAgZXBoeV9mYXZpY29uX2NhY2hlX2Rvd25sb2FkIChF
cGh5RmF2aWNvbkNhY2hlICpjYWNoZSwKIAlnX3JldHVybl9pZl9mYWlsIChmYXZpY29uX3VybCAh
PSBOVUxMKTsKIAlnX3JldHVybl9pZl9mYWlsIChmaWxlbmFtZSAhPSBOVUxMKTsKIAotCWRlc3Qg
PSBnX2J1aWxkX2ZpbGVuYW1lIChjYWNoZS0+cHJpdi0+ZGlyZWN0b3J5LCBmaWxlbmFtZSwgTlVM
TCk7CisJcmVxdWVzdCA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3IChmYXZpY29uX3VybCk7
CisJZG93bmxvYWQgPSB3ZWJraXRfZG93bmxvYWRfbmV3IChyZXF1ZXN0KTsKKwlnX29iamVjdF91
bnJlZiAocmVxdWVzdCk7CiAKLQlwZXJzaXN0ID0gRVBIWV9FTUJFRF9QRVJTSVNUCi0JCShnX29i
amVjdF9uZXcgKEVQSFlfVFlQRV9FTUJFRF9QRVJTSVNULCBOVUxMKSk7CisJZGVzdCA9IGdfYnVp
bGRfZmlsZW5hbWUgKGNhY2hlLT5wcml2LT5kaXJlY3RvcnksIGZpbGVuYW1lLCBOVUxMKTsKKwlk
ZXN0X3VyaSA9IGdfZmlsZW5hbWVfdG9fdXJpIChkZXN0LCBOVUxMLCBOVUxMKTsKIAotCWVwaHlf
ZW1iZWRfcGVyc2lzdF9zZXRfZGVzdCAocGVyc2lzdCwgZGVzdCk7Ci0JZXBoeV9lbWJlZF9wZXJz
aXN0X3NldF9mbGFncyAocGVyc2lzdCwgRVBIWV9FTUJFRF9QRVJTSVNUX05PX1ZJRVcgfAotCQkJ
CQkgICAgICAgRVBIWV9FTUJFRF9QRVJTSVNUX05PX0NFUlRESUFMT0dTIHwKLQkJCQkJICAgICAg
IEVQSFlfRU1CRURfUEVSU0lTVF9ET19DT05WRVJTSU9OIHwKLQkJCQkJICAgICAgIEVQSFlfRU1C
RURfUEVSU0lTVF9OT19DT09LSUVTCi0JCQkJICAgICAgICAgICAgICAgKTsKLQllcGh5X2VtYmVk
X3BlcnNpc3Rfc2V0X21heF9zaXplIChwZXJzaXN0LCBFUEhZX0ZBVklDT05fTUFYX1NJWkUpOwot
CWVwaHlfZW1iZWRfcGVyc2lzdF9zZXRfc291cmNlIChwZXJzaXN0LCBmYXZpY29uX3VybCk7CisJ
d2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlvbl91cmkgKGRvd25sb2FkLCBkZXN0X3VyaSk7
CiAKIAlnX2ZyZWUgKGRlc3QpOworCWdfZnJlZSAoZGVzdF91cmkpOwogCi0JZ19zaWduYWxfY29u
bmVjdCAoR19PQkpFQ1QgKHBlcnNpc3QpLCAiY29tcGxldGVkIiwKLQkJCSAgR19DQUxMQkFDSyAo
ZmF2aWNvbl9kb3dubG9hZF9jb21wbGV0ZWRfY2IpLCBjYWNoZSk7Ci0JZ19zaWduYWxfY29ubmVj
dCAoR19PQkpFQ1QgKHBlcnNpc3QpLCAiY2FuY2VsbGVkIiwKLQkJCSAgR19DQUxMQkFDSyAoZmF2
aWNvbl9kb3dubG9hZF9jYW5jZWxsZWRfY2IpLCBjYWNoZSk7CisJZ19zaWduYWxfY29ubmVjdCAo
R19PQkpFQ1QgKGRvd25sb2FkKSwgIm5vdGlmeTo6c3RhdHVzIiwKKwkJCSAgR19DQUxMQkFDSyAo
ZmF2aWNvbl9kb3dubG9hZF9zdGF0dXNfY2hhbmdlZF9jYiksIGNhY2hlKTsKIAogCWdfaGFzaF90
YWJsZV9pbnNlcnQgKGNhY2hlLT5wcml2LT5kb3dubG9hZHNfaGFzaCwKLQkJCSAgICAgZ19zdHJk
dXAgKGZhdmljb25fdXJsKSwgcGVyc2lzdCk7CisJCQkgICAgIGdfc3RyZHVwIChmYXZpY29uX3Vy
bCksIGRvd25sb2FkKTsKIAotCWVwaHlfZW1iZWRfcGVyc2lzdF9zYXZlIChwZXJzaXN0KTsKKwl3
ZWJraXRfZG93bmxvYWRfc3RhcnQgKGRvd25sb2FkKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9l
bWJlZC9lcGh5LXdlYi12aWV3LmMgYi9lbWJlZC9lcGh5LXdlYi12aWV3LmMKaW5kZXggYTBhN2Mz
YS4uMDRkMzE3MiAxMDA2NDQKLS0tIGEvZW1iZWQvZXBoeS13ZWItdmlldy5jCisrKyBiL2VtYmVk
L2VwaHktd2ViLXZpZXcuYwpAQCAtNjk0LDE0ICs2OTQsMTQgQEAgZXBoeV93ZWJfdmlld19jbGFz
c19pbml0IChFcGh5V2ViVmlld0NsYXNzICprbGFzcykKICAgICAgICAgICAgIEdfVFlQRV9TVFJJ
TkcgfCBHX1NJR05BTF9UWVBFX1NUQVRJQ19TQ09QRSk7CiAKIC8qKgotICogRXBoeVdlYlZpZXc6
OmdlLWZhdmljb246CisgKiBFcGh5V2ViVmlldzo6ZmF2aWNvbjoKICAqIEB2aWV3OiB0aGUgI0Vw
aHlXZWJWaWV3IHRoYXQgcmVjZWl2ZWQgdGhlIHNpZ25hbAogICogQGFkZHJlc3M6IHRoZSBVUkwg
dG8gQGVtYmVkJ3Mgd2ViIHNpdGUncyBmYXZpY29uCiAgKgogICogVGhlIDo6Z2VfZmF2aWNvbiBz
aWduYWwgaXMgZW1pdHRlZCB3aGVuIEBlbWJlZCBkaXNjb3ZlcnMgdGhhdCBhIGZhdm91cml0ZQog
ICogaWNvbiAoZmF2aWNvbikgaXMgYXZhaWxhYmxlIGZvciB0aGUgc2l0ZSBpdCBpcyB2aXNpdGlu
Zy4KICAqKi8KLSAgICBnX3NpZ25hbF9uZXcgKCJnZV9mYXZpY29uIiwKKyAgICBnX3NpZ25hbF9u
ZXcgKCJmYXZpY29uIiwKICAgICAgICAgICAgIEVQSFlfVFlQRV9XRUJfVklFVywKICAgICAgICAg
ICAgIEdfU0lHTkFMX1JVTl9GSVJTVCwKICAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVCAoRXBo
eVdlYlZpZXdDbGFzcywgZmF2aWNvbiksCkBAIC05MjksOSArOTI5LDkgQEAgaWNvbl9jYWNoZV9j
aGFuZ2VkX2NiIChFcGh5RmF2aWNvbkNhY2hlICpjYWNoZSwKIH0KIAogc3RhdGljIHZvaWQKLWdl
X2Zhdmljb25fY2IgKEVwaHlXZWJWaWV3ICp2aWV3LAotICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAqYWRkcmVzcywKLSAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKK2Zhdmljb25f
Y2IgKEVwaHlXZWJWaWV3ICp2aWV3LAorICAgICAgICAgICAgY29uc3QgY2hhciAqYWRkcmVzcywK
KyAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKIHsKICAgZXBoeV93ZWJfdmlld19zZXRf
aWNvbl9hZGRyZXNzICh2aWV3LCBhZGRyZXNzKTsKIH0KQEAgLTEwNzcsOCArMTA3Nyw4IEBAIGVw
aHlfd2ViX3ZpZXdfaW5pdCAoRXBoeVdlYlZpZXcgKndlYl92aWV3KQogICAgICAgICAgICAgICAg
ICAgICBHX0NBTExCQUNLIChtaW1lX3R5cGVfcG9saWN5X2RlY2lzaW9uX3JlcXVlc3RlZF9jYiks
CiAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0
ICh3ZWJfdmlldywgImdlX2Zhdmljb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgR19D
QUxMQkFDSyAoZ2VfZmF2aWNvbl9jYiksCisgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0ICh3ZWJf
dmlldywgImZhdmljb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAo
ZmF2aWNvbl9jYiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJfdmlldywgKEdDb25u
ZWN0RmxhZ3MpMCk7CiAKICAgZ19zaWduYWxfY29ubmVjdF9vYmplY3QgKHdlYl92aWV3LCAiZ2Vf
bmV3X3dpbmRvdyIsCi0tIAoxLjYuNS4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44608</attachid>
            <date>2009-12-10 05:57:40 -0800</date>
            <delta_ts>2009-12-10 06:01:44 -0800</delta_ts>
            <desc>second try</desc>
            <filename>0001-First-step-towards-an-IconDatabase-API.patch</filename>
            <type>text/plain</type>
            <size>16564</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA3ZDBjMWQ0YzA4Y2Q5NmFmMzVhNDA5MzNmNjc5YmI0OGFjMDRiODdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGd1c3Rhdm8ubm9yb25o
YUBjb2xsYWJvcmEuY28udWs+CkRhdGU6IFdlZCwgOSBEZWMgMjAwOSAxNzozMjozNCAtMDIwMApT
dWJqZWN0OiBbUEFUQ0hdIEZpcnN0IHN0ZXAgdG93YXJkcyBhbiBJY29uRGF0YWJhc2UgQVBJCgot
LS0KIEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNiArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjQgKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcCB8ICAgIDkgKy0KIFdlYktpdC9ndGsvdGVzdHMvcmVzb3VyY2VzL2JsYW5rLmljbyAg
ICAgICAgICAgICAgIHwgIEJpbiAwIC0+IDE5OCBieXRlcwogV2ViS2l0L2d0ay90ZXN0cy90ZXN0
d2Vidmlldy5jICAgICAgICAgICAgICAgICAgICAgfCAgMTU3ICsrKysrKysrKysrKysrKysrKysr
CiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCAgICAgICAgICAgICAgICB8ICAg
MTQgKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCAgICAgICAgICAgICAgICAg
IHwgICAgMiArCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAg
ICAgICB8ICAgNjQgKysrKysrKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3Lmgg
ICAgICAgICAgICAgICAgICB8ICAgIDQgKwogOSBmaWxlcyBjaGFuZ2VkLCAyNzMgaW5zZXJ0aW9u
cygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvZ3RrL3Rlc3Rz
L3Jlc291cmNlcy9ibGFuay5pY28KIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3R3ZWJ2aWV3LmMKCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxl
LmFtCmluZGV4IGQ1ZmM2OTMuLjNhMGUzOTggMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisr
KyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01OTUsNiArNTk1LDcgQEAgVEVTVF9QUk9HUyArPSBQcm9n
cmFtcy91bml0dGVzdHMvdGVzdGh0dHBiYWNrZW5kIFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVz
dHdlYnNldHRpbmdzIFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdlYnJlc291cmNlIFwKIAlQ
cm9ncmFtcy91bml0dGVzdHMvdGVzdHdlYmRhdGFzb3VyY2UgXAorCVByb2dyYW1zL3VuaXR0ZXN0
cy90ZXN0d2VidmlldyBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3RrZXlldmVudHMKIAogIyBB
ZGQgYWRkaXRpb25hbCB0ZXN0cyBoZXJlCkBAIC02NjYsNiArNjY3LDExIEBAIFByb2dyYW1zX3Vu
aXR0ZXN0c190ZXN0d2ViZGF0YXNvdXJjZV9TT1VSQ0VTID0gV2ViS2l0L2d0ay90ZXN0cy90ZXN0
d2ViZGF0YXNvdXJjCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYmRhdGFzb3VyY2VfQ0ZMQUdT
ID0gJCh3ZWJraXRfdGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJkYXRh
c291cmNlX0xEQUREID0gJCh3ZWJraXRfdGVzdHNfbGRhZGQpCiAKK1Byb2dyYW1zX3VuaXR0ZXN0
c190ZXN0d2Vidmlld19TT1VSQ0VTID0gV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2Vidmlldy5jCitQ
cm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnZpZXdfQ0ZMQUdTID0gJCh3ZWJraXRfdGVzdHNfY2Zs
YWdzKQorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJ2aWV3X0xEQUREID0gJCh3ZWJraXRfdGVz
dHNfbGRhZGQpCitQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnZpZXdfTERGTEFHUyA9ICQod2Vi
a2l0X3Rlc3RzX2xkZmxhZ3MpCisKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0aGl0dGVzdHJlc3Vs
dF9TT1VSQ0VTID0gV2ViS2l0L2d0ay90ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdC5jCiBQcm9ncmFt
c191bml0dGVzdHNfdGVzdGhpdHRlc3RyZXN1bHRfQ0ZMQUdTID0gJCh3ZWJraXRfdGVzdHNfY2Zs
YWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3RoaXR0ZXN0cmVzdWx0X0xEQUREID0gJCh3ZWJr
aXRfdGVzdHNfbGRhZGQpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCmluZGV4IGRmYWM5MzQuLjU5YjgyMTYgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMDktMTItMDkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBj
b2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0dUS10gU2hvdWxkIHByb3ZpZGUgYW4gQVBJIHRvIGNvbnRyb2wgdGhlIEljb25E
YXRhYmFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzIzMzQKKworICAgICAgICBGaXJzdCBzdGVwIHRvd2FyZHMgYSBmdWxsIEljb25EYXRhYmFzZSBB
UEkuIFRoaXMgcHJvdmlkZXMKKyAgICAgICAgbm90aWZpY2F0aW9uIGZvciBwYWdlcyB3aXRoIGZh
dmljb25zLCBhbmQgbGV0cyBjbGllbnRzIGhhbmRsZQorICAgICAgICB0aGVtLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24p
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKKyAgICAgICAgKHdlYmtpdF9p
bml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVy
dHkpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfaWNv
bl91cmkpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6CisKIDIwMDktMTItMDgg
IENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBmZDEzNWU0Li5iZjY4NzAx
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcApAQCAtNTQ5LDcgKzU0OSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFBl
cmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdAogewogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50OjpyZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCkKK3ZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OnJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIHNob3VsZFJlZ2lzdGVyKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC03MDIsNyArNzAyLDEyIEBAIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24oKQogewogICAgIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwogCi0gICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJpY29uLWxvYWRlZCIsIG1fZnJhbWUpOworICAgIC8v
IEF2b2lkIHJlcG9ydGluZyBmYXZpY29ucyBmb3Igbm9uLW1haW4gZnJhbWVzLgorICAgIGlmICht
X2ZyYW1lICE9IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaWNv
bi11cmkiKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgImljb24tbG9hZGVk
Iiwgd2Via2l0X3dlYl92aWV3X2dldF9pY29uX3VyaSh3ZWJWaWV3KSk7CiB9CiAKIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay90ZXN0cy9yZXNvdXJjZXMvYmxhbmsuaWNvIGIvV2ViS2l0L2d0ay90
ZXN0cy9yZXNvdXJjZXMvYmxhbmsuaWNvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhODQ4Yjk5MTZlNTkwODQ0MTNm
YzFlN2EwOTBkZWJmNWY0OTE0ZGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE5OApwY21aUXpV
PDUofDBWWGlMZnF7V1I0MlUmPVNPQUM+ZkVYbD8zO2g1OEFEMHdlI1F9UlkxVmpKOwoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2Vidmll
dy5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2Vidmlldy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJlYzJiNTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3R3ZWJ2aWV3LmMKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOSBD
b2xsYWJvcmEgTHRkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNp
bmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxnbGliL2dz
dGRpby5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+
CisKKyNpZiBHTElCX0NIRUNLX1ZFUlNJT04oMiwgMTYsIDApICYmIEdUS19DSEVDS19WRVJTSU9O
KDIsIDE0LCAwKQorCitHTWFpbkxvb3AqIGxvb3A7CitTb3VwU2Vzc2lvbiAqc2Vzc2lvbjsKK2No
YXIqIGJhc2VfdXJpOworCisvKiBGb3IgcmVhbCByZXF1ZXN0IHRlc3RpbmcgKi8KK3N0YXRpYyB2
b2lkCitzZXJ2ZXJfY2FsbGJhY2soU291cFNlcnZlciAqc2VydmVyLCBTb3VwTWVzc2FnZSAqbXNn
LAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRoLCBHSGFzaFRhYmxlICpxdWVyeSwK
KyAgICAgICAgICAgICAgICAgU291cENsaWVudENvbnRleHQgKmNvbnRleHQsIGdwb2ludGVyIGRh
dGEpCit7CisgICAgaWYgKG1zZy0+bWV0aG9kICE9IFNPVVBfTUVUSE9EX0dFVCkgeworICAgICAg
ICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtc2csIFNPVVBfU1RBVFVTX05PVF9JTVBMRU1FTlRF
RCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1
cyhtc2csIFNPVVBfU1RBVFVTX09LKTsKKworICAgIGlmIChnX3N0cl9lcXVhbChwYXRoLCAiL2Zh
dmljb24uaWNvIikpIHsKKyAgICAgICAgY2hhciogY29udGVudHM7CisgICAgICAgIGdzaXplIGxl
bmd0aDsKKyAgICAgICAgR0Vycm9yKiBlcnJvciA9IE5VTEw7CisKKyAgICAgICAgZ19maWxlX2dl
dF9jb250ZW50cygiYmxhbmsuaWNvIiwgJmNvbnRlbnRzLCAmbGVuZ3RoLCAmZXJyb3IpOworICAg
ICAgICBnX2Fzc2VydCghZXJyb3IpOworCisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVu
ZChtc2ctPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZX1RBS0UsIGNvbnRlbnRzLCBsZW5ndGgp
OworICAgIH0gZWxzZSB7CisgICAgICAgIGNoYXIqIGNvbnRlbnRzID0gZ19zdHJkdXAoIjxodG1s
Pjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpOworICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9h
cHBlbmQobXNnLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9UQUtFLCBjb250ZW50cywgc3Ry
bGVuKGNvbnRlbnRzKSk7CisgICAgfQorCisgICAgc291cF9tZXNzYWdlX2JvZHlfY29tcGxldGUo
bXNnLT5yZXNwb25zZV9ib2R5KTsKK30KKworc3RhdGljIGdib29sZWFuIGlkbGVfcXVpdF9sb29w
X2NiKGdwb2ludGVyIGRhdGEpCit7CisgICAgZ19tYWluX2xvb3BfcXVpdChsb29wKTsKKyAgICBy
ZXR1cm4gRkFMU0U7Cit9CisKK3N0YXRpYyB2b2lkIGljb25fdXJpX2NoYW5nZWRfY2IoV2ViS2l0
V2ViVmlldyogd2ViX3ZpZXcsIEdQYXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQorewor
ICAgIGNoYXIqIGV4cGVjdGVkX3VyaTsKKworICAgIGdfYXNzZXJ0X2NtcHN0cihnX3BhcmFtX3Nw
ZWNfZ2V0X25hbWUocHNwZWMpLCA9PSwgImljb24tdXJpIik7CisKKyAgICBleHBlY3RlZF91cmkg
PSBnX3N0cmR1cF9wcmludGYoIiVzZmF2aWNvbi5pY28iLCBiYXNlX3VyaSk7CisgICAgZ19hc3Nl
cnRfY21wc3RyKHdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkod2ViX3ZpZXcpLCA9PSwgZXhw
ZWN0ZWRfdXJpKTsKKyAgICBnX2ZyZWUoZXhwZWN0ZWRfdXJpKTsKK30KKworc3RhdGljIHZvaWQg
aWNvbl9sb2FkZWRfY2IoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNoYXIqIGljb25fdXJpLCBn
cG9pbnRlciBkYXRhKQoreworICAgIGNoYXIqIGV4cGVjdGVkX3VyaSA9IGdfc3RyZHVwX3ByaW50
ZigiJXNmYXZpY29uLmljbyIsIGJhc2VfdXJpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIoaWNvbl91
cmksID09LCBleHBlY3RlZF91cmkpOworICAgIGdfZnJlZShleHBlY3RlZF91cmkpOworCisgICAg
Z19hc3NlcnRfY21wc3RyKGljb25fdXJpLCA9PSwgd2Via2l0X3dlYl92aWV3X2dldF9pY29uX3Vy
aSh3ZWJfdmlldykpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfdmlld19pY29u
X3VyaSgpCit7CisgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJr
aXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKEdfT0JKRUNUKHZpZXcp
KTsKKworICAgIGxvb3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX29i
amVjdF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25h
bDo6bG9hZC1maW5pc2hlZCIsIGlkbGVfcXVpdF9sb29wX2NiLCBOVUxMLAorICAgICAgICAgICAg
ICAgICAgICAgInNpZ25hbDo6bm90aWZ5OjppY29uLXVyaSIsIGljb25fdXJpX2NoYW5nZWRfY2Is
IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjppY29uLWxvYWRlZCIsIGljb25f
bG9hZGVkX2NiLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisKKyAgICB3ZWJr
aXRfd2ViX3ZpZXdfbG9hZF91cmkodmlldywgYmFzZV91cmkpOworCisgICAgZ19tYWluX2xvb3Bf
cnVuKGxvb3ApOworCisgICAgZ19vYmplY3RfdW5yZWYodmlldyk7Cit9CisKK2ludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBTb3VwU2VydmVyKiBzZXJ2ZXI7CisgICAgU291
cFVSSSogc291cF91cmk7CisgICAgY2hhciogdGVzdF9kaXI7CisgICAgY2hhciogcmVzb3VyY2Vz
X2RpcjsKKworICAgIGdfdGhyZWFkX2luaXQoTlVMTCk7CisgICAgZ3RrX3Rlc3RfaW5pdCgmYXJn
YywgJmFyZ3YsIE5VTEwpOworCisgICAgLyogSG9wZWZ1bGx5IG1ha2UgdGVzdCBpbmRlcGVuZGVu
dCBvZiB0aGUgcGF0aCBpdCdzIGNhbGxlZCBmcm9tLiAqLworICAgIHRlc3RfZGlyID0gZ19wYXRo
X2dldF9kaXJuYW1lKGFyZ3ZbMF0pOworICAgIHJlc291cmNlc19kaXIgPSBnX2J1aWxkX3BhdGgo
R19ESVJfU0VQQVJBVE9SX1MsIHRlc3RfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi4uIiwgIi4uIiwgIi4uIiwgIi4uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJXZWJLaXQiLCAiZ3RrIiwgInRlc3RzIiwgInJlc291cmNlcyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICBnX2ZyZWUodGVzdF9kaXIpOworCisg
ICAgZ19jaGRpcihyZXNvdXJjZXNfZGlyKTsKKyAgICBnX2ZyZWUocmVzb3VyY2VzX2Rpcik7CisK
KyAgICBzZXJ2ZXIgPSBzb3VwX3NlcnZlcl9uZXcoU09VUF9TRVJWRVJfUE9SVCwgMCwgTlVMTCk7
CisgICAgc291cF9zZXJ2ZXJfcnVuX2FzeW5jKHNlcnZlcik7CisKKyAgICBzb3VwX3NlcnZlcl9h
ZGRfaGFuZGxlcihzZXJ2ZXIsIE5VTEwsIHNlcnZlcl9jYWxsYmFjaywgTlVMTCwgTlVMTCk7CisK
KyAgICBzb3VwX3VyaSA9IHNvdXBfdXJpX25ldygiaHR0cDovLzEyNy4wLjAuMS8iKTsKKyAgICBz
b3VwX3VyaV9zZXRfcG9ydChzb3VwX3VyaSwgc291cF9zZXJ2ZXJfZ2V0X3BvcnQoc2VydmVyKSk7
CisKKyAgICBiYXNlX3VyaSA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwX3VyaSwgRkFMU0UpOwor
ICAgIHNvdXBfdXJpX2ZyZWUoc291cF91cmkpOworCisgICAgZ190ZXN0X2J1Z19iYXNlKCJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy8iKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvd2Vi
dmlldy9pY29uLXVyaSIsIHRlc3Rfd2Via2l0X3dlYl92aWV3X2ljb25fdXJpKTsKKworICAgIHJl
dHVybiBnX3Rlc3RfcnVuICgpOworfQorCisjZWxzZQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQoreworICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgYXQgbGVhc3QgZ2xpYi0y
LjE2LjAgYW5kIGd0ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5n
IG5vdy4iKTsKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuY3BwCmluZGV4IDA4NzBkOTAuLmM4MDE2MGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQu
aCIKKyNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlIDxsaWJpbnRsLmg+CiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgpAQCAtNDAsNiArNDEsNyBA
QAogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlIDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
PHN0ZGxpYi5oPgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5oIgogCiAjaWYgRU5B
QkxFKERBVEFCQVNFKQpAQCAtMjI1LDYgKzIyNywxMSBAQCBzdGF0aWMgR3RrV2lkZ2V0KiBjdXJy
ZW50VG9wbGV2ZWxDYWxsYmFjayhXZWJLaXRTb3VwQXV0aERpYWxvZyogZmVhdHVyZSwgU291cE1l
cwogICAgICAgICByZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQgY2xvc2VJY29uRGF0YWJh
c2VPbkV4aXQoKQoreworICAgIGljb25EYXRhYmFzZSgpLT5jbG9zZSgpOworfQorCiB2b2lkIHdl
YmtpdF9pbml0KCkKIHsKICAgICBzdGF0aWMgYm9vbCBpc0luaXRpYWxpemVkID0gZmFsc2U7CkBA
IC0yNTYsNiArMjYzLDEzIEBAIHZvaWQgd2Via2l0X2luaXQoKQogCiAgICAgUGFzdGVib2FyZDo6
Z2VuZXJhbFBhc3RlYm9hcmQoKS0+c2V0SGVscGVyKFdlYktpdDo6cGFzdGVib2FyZEhlbHBlcklu
c3RhbmNlKCkpOwogCisgICAgaWNvbkRhdGFiYXNlKCktPnNldEVuYWJsZWQodHJ1ZSk7CisKKyAg
ICBHT3duUHRyPGdjaGFyPiBpY29uRGF0YWJhc2VQYXRoKGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRf
dXNlcl9kYXRhX2RpcigpLCAid2Via2l0IiwgImljb25kYXRhYmFzZSIsIE5VTEwpKTsKKyAgICBp
Y29uRGF0YWJhc2UoKS0+b3BlbihpY29uRGF0YWJhc2VQYXRoLmdldCgpKTsKKworICAgIGF0ZXhp
dChjbG9zZUljb25EYXRhYmFzZU9uRXhpdCk7CisKICAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9
IHdlYmtpdF9nZXRfZGVmYXVsdF9zZXNzaW9uKCk7CiAKICAgICBTb3VwU2Vzc2lvbkZlYXR1cmUq
IGF1dGhEaWFsb2cgPSBzdGF0aWNfY2FzdDxTb3VwU2Vzc2lvbkZlYXR1cmUqPihnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfU09VUF9BVVRIX0RJQUxPRywgTlVMTCkpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
cHJpdmF0ZS5oCmluZGV4IGJkOTU4OTYuLmUxN2U3OWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2
YXRlLmgKQEAgLTE0Miw2ICsxNDIsOCBAQCBleHRlcm4gIkMiIHsKICAgICAgICAgY2hhciogZW5j
b2Rpbmc7CiAgICAgICAgIGNoYXIqIGN1c3RvbUVuY29kaW5nOwogCisgICAgICAgIGNoYXIqIGlj
b25VUkk7CisKICAgICAgICAgZ2Jvb2xlYW4gZGlzcG9zaW5nOwogICAgICAgICBnYm9vbGVhbiB1
c2VQcmltYXJ5Rm9yUGFzdGU7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXgg
MmM1NWQwOS4uYmViZDAxYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTU5
LDYgKzU5LDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSA8Z2xpYi9n
aTE4bi1saWIuaD4KICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJY29u
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRHdGsuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMTMzLDcgKzEzNCw3IEBA
IGVudW0gewogICAgIEhPVkVSSU5HX09WRVJfTElOSywKICAgICBQT1BVTEFURV9QT1BVUCwKICAg
ICBTVEFUVVNfQkFSX1RFWFRfQ0hBTkdFRCwKLSAgICBJQ09ORF9MT0FERUQsCisgICAgSUNPTl9M
T0FERUQsCiAgICAgU0VMRUNUSU9OX0NIQU5HRUQsCiAgICAgQ09OU09MRV9NRVNTQUdFLAogICAg
IFNDUklQVF9BTEVSVCwKQEAgLTE3Miw3ICsxNzMsOCBAQCBlbnVtIHsKICAgICBQUk9QX0xPQURf
U1RBVFVTLAogICAgIFBST1BfUFJPR1JFU1MsCiAgICAgUFJPUF9FTkNPRElORywKLSAgICBQUk9Q
X0NVU1RPTV9FTkNPRElORworICAgIFBST1BfQ1VTVE9NX0VOQ09ESU5HLAorICAgIFBST1BfSUNP
Tl9VUkkKIH07CiAKIHN0YXRpYyBndWludCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMQVNUX1NJ
R05BTF0gPSB7IDAsIH07CkBAIC0zNTQsNiArMzU2LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1
ZSoKICAgICBjYXNlIFBST1BfUFJPR1JFU1M6CiAgICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2
YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9wcm9ncmVzcyh3ZWJWaWV3KSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9JQ09OX1VSSToKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5n
KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJpKHdlYlZpZXcpKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BF
UlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgIH0KQEAgLTEwMjYsNiArMTAzMSw3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19maW5hbGl6ZShHT2JqZWN0KiBvYmplY3Qp
CiAgICAgZ19mcmVlKHByaXYtPm1haW5SZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIGdfZnJlZShw
cml2LT5lbmNvZGluZyk7CiAgICAgZ19mcmVlKHByaXYtPmN1c3RvbUVuY29kaW5nKTsKKyAgICBn
X2ZyZWUocHJpdi0+aWNvblVSSSk7CiAKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX3Zp
ZXdfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKIH0KQEAgLTE3MjksMTQgKzE3MzUs
MjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmll
d0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKICAgICAg
ICAgICAgIEdfVFlQRV9TVFJJTkcpOwogCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbSUNP
TkRfTE9BREVEXSA9IGdfc2lnbmFsX25ldygiaWNvbi1sb2FkZWQiLAorICAgIC8qKgorICAgICAq
IFdlYktpdFdlYlZpZXc6Omljb24tbG9hZGVkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVj
dCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAaWNvbl91cmk6IHRoZSBV
UkkgZm9yIHRoZSBpY29uCisgICAgICoKKyAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdo
ZW4gdGhlIG1haW4gZnJhbWUgaGFzIGdvdCBhIGZhdmljb24uCisgICAgICoKKyAgICAgKiBTaW5j
ZTogMS4xLjE4CisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbSUNPTl9MT0FE
RURdID0gZ19zaWduYWxfbmV3KCJpY29uLWxvYWRlZCIsCiAgICAgICAgICAgICBHX1RZUEVfRlJP
TV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAogICAgICAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05B
TF9SVU5fTEFTVCwKICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICBOVUxMLAogICAgICAgICAg
ICAgTlVMTCwKLSAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAotICAg
ICAgICAgICAgR19UWVBFX05PTkUsIDApOworICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFs
X1ZPSURfX1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAg
R19UWVBFX1NUUklORyk7CiAKICAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tTRUxFQ1RJT05f
Q0hBTkdFRF0gPSBnX3NpZ25hbF9uZXcoInNlbGVjdGlvbi1jaGFuZ2VkIiwKICAgICAgICAgICAg
IEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCkBAIC0yMzc3LDYgKzIzOTMsMjAgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNz
KiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAuMCwgMS4wLCAxLjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwog
CisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzppY29uLXVyaToKKyAgICAgKgorICAgICAq
IFRoZSBVUkkgZm9yIHRoZSBmYXZpY29uIGZvciB0aGUgI1dlYktpdFdlYlZpZXcuCisgICAgICoK
KyAgICAgKiBTaW5jZTogMS4xLjE4CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9JQ09OX1VSSSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoImljb24tdXJpIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiSWNv
biBVUkkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiVGhlIFVSSSBmb3IgdGhlIGZhdmljb24gZm9yIHRoZSAjV2ViS2l0V2ViVmll
dy4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKICAgICBnX3R5cGVfY2xhc3Nf
YWRkX3ByaXZhdGUod2ViVmlld0NsYXNzLCBzaXplb2YoV2ViS2l0V2ViVmlld1ByaXZhdGUpKTsK
IH0KIApAQCAtMzk2NSwzICszOTk1LDI3IEBAIFdlYktpdEhpdFRlc3RSZXN1bHQqIHdlYmtpdF93
ZWJfdmlld19nZXRfaGl0X3Rlc3RfcmVzdWx0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsCiAKICAg
ICByZXR1cm4ga2l0KG1ldi5oaXRUZXN0UmVzdWx0KCkpOwogfQorCisvKioKKyAqIHdlYmtpdF93
ZWJfdmlld19nZXRfaWNvbl91cmk6CisgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBv
YmplY3QKKyAqCisgKiBPYnRhaW5zIHRoZSBVUkkgZm9yIHRoZSBmYXZpY29uIGZvciB0aGUgZ2l2
ZW4gI1dlYktpdFdlYlZpZXcsIG9yCisgKiAlTlVMTCBpZiB0aGVyZSBpcyBub25lLgorICoKKyAq
IFJldHVybiB2YWx1ZTogdGhlIFVSSSBmb3IgdGhlIGZhdmljb24sIG9yICVOVUxMCisgKgorICog
U2luY2U6IDEuMS4xOAorICovCitHX0NPTlNUX1JFVFVSTiBnY2hhciogd2Via2l0X3dlYl92aWV3
X2dldF9pY29uX3VyaShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7CisKKyAgICBQYWdl
KiBjb3JlUGFnZSA9IGNvcmUod2ViVmlldyk7CisgICAgU3RyaW5nIGljb25VUkwgPSBpY29uRGF0
YWJhc2UoKS0+aWNvblVSTEZvclBhZ2VVUkwoY29yZVBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIo
KS0+dXJsKCkucHJldHR5VVJMKCkpOworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYg
PSB3ZWJWaWV3LT5wcml2OworICAgIGdfZnJlZShwcml2LT5pY29uVVJJKTsKKyAgICBwcml2LT5p
Y29uVVJJID0gZ19zdHJkdXAoaWNvblVSTC51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gcHJp
di0+aWNvblVSSTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAppbmRleCAxMjk3Njk1Li44
ZGQ3ZjM5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKKysr
IGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCkBAIC0zNjYsNiArMzY2LDEwIEBA
IHdlYmtpdF93ZWJfdmlld19nZXRfdmlld19zb3VyY2VfbW9kZSAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpCiBXRUJLSVRfQVBJIFdlYktpdEhpdFRlc3RSZXN1bHQq
CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hpdF90ZXN0X3Jlc3VsdCAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgKndlYlZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR2RrRXZlbnRCdXR0b24gICAgICAgKmV2ZW50KTsKKworV0VCS0lU
X0FQSSBHX0NPTlNUX1JFVFVSTiBnY2hhciAqCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJp
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYlZpZXcpOworCiBH
X0VORF9ERUNMUwogCiAjZW5kaWYKLS0gCjEuNi41LjMKCg==
</data>
<flag name="commit-queue"
          id="26508"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44610</attachid>
            <date>2009-12-10 06:01:44 -0800</date>
            <delta_ts>2009-12-10 06:12:47 -0800</delta_ts>
            <desc>real second try</desc>
            <filename>0001-First-step-towards-an-IconDatabase-API.patch</filename>
            <type>text/plain</type>
            <size>16895</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA0NjA4Nzc1ZDVlZWRlYjA2MTA4YjU4MGFlNGI2Njk3Nzc4Njc1ZWRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGd1c3Rhdm8ubm9yb25o
YUBjb2xsYWJvcmEuY28udWs+CkRhdGU6IFdlZCwgOSBEZWMgMjAwOSAxNzozMjozNCAtMDIwMApT
dWJqZWN0OiBbUEFUQ0hdIEZpcnN0IHN0ZXAgdG93YXJkcyBhbiBJY29uRGF0YWJhc2UgQVBJCgot
LS0KIEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNiArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjQgKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcCB8ICAgIDkgKy0KIFdlYktpdC9ndGsvdGVzdHMvcmVzb3VyY2VzL2JsYW5rLmljbyAg
ICAgICAgICAgICAgIHwgIEJpbiAwIC0+IDE5OCBieXRlcwogV2ViS2l0L2d0ay90ZXN0cy90ZXN0
d2Vidmlldy5jICAgICAgICAgICAgICAgICAgICAgfCAgMTY4ICsrKysrKysrKysrKysrKysrKysr
CiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCAgICAgICAgICAgICAgICB8ICAg
MTQgKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCAgICAgICAgICAgICAgICAg
IHwgICAgMiArCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAg
ICAgICB8ICAgNjQgKysrKysrKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaCAg
ICAgICAgICAgICAgICAgIHwgICAgNCArCiA5IGZpbGVzIGNoYW5nZWQsIDI4NCBpbnNlcnRpb25z
KCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvdGVzdHMv
cmVzb3VyY2VzL2JsYW5rLmljbwogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvdGVzdHMv
dGVzdHdlYnZpZXcuYwoKZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUu
YW0KaW5kZXggZDVmYzY5My4uM2EwZTM5OCAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysr
IGIvR05VbWFrZWZpbGUuYW0KQEAgLTU5NSw2ICs1OTUsNyBAQCBURVNUX1BST0dTICs9IFByb2dy
YW1zL3VuaXR0ZXN0cy90ZXN0aHR0cGJhY2tlbmQgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0
d2Vic2V0dGluZ3MgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2VicmVzb3VyY2UgXAogCVBy
b2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViZGF0YXNvdXJjZSBcCisJUHJvZ3JhbXMvdW5pdHRlc3Rz
L3Rlc3R3ZWJ2aWV3IFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdGtleWV2ZW50cwogCiAjIEFk
ZCBhZGRpdGlvbmFsIHRlc3RzIGhlcmUKQEAgLTY2Niw2ICs2NjcsMTEgQEAgUHJvZ3JhbXNfdW5p
dHRlc3RzX3Rlc3R3ZWJkYXRhc291cmNlX1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3
ZWJkYXRhc291cmMKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2ViZGF0YXNvdXJjZV9DRkxBR1Mg
PSAkKHdlYmtpdF90ZXN0c19jZmxhZ3MpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYmRhdGFz
b3VyY2VfTERBREQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKIAorUHJvZ3JhbXNfdW5pdHRlc3Rz
X3Rlc3R3ZWJ2aWV3X1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJ2aWV3LmMKK1By
b2dyYW1zX3VuaXR0ZXN0c190ZXN0d2Vidmlld19DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxh
Z3MpCitQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnZpZXdfTERBREQgPSAkKHdlYmtpdF90ZXN0
c19sZGFkZCkKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2Vidmlld19MREZMQUdTID0gJCh3ZWJr
aXRfdGVzdHNfbGRmbGFncykKKwogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3RoaXR0ZXN0cmVzdWx0
X1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RoaXR0ZXN0cmVzdWx0LmMKIFByb2dyYW1z
X3VuaXR0ZXN0c190ZXN0aGl0dGVzdHJlc3VsdF9DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxh
Z3MpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGhpdHRlc3RyZXN1bHRfTERBREQgPSAkKHdlYmtp
dF90ZXN0c19sZGFkZCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKaW5kZXggZGZhYzkzNC4uNTliODIxNiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAwOS0xMi0wOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbR1RLXSBTaG91bGQgcHJvdmlkZSBhbiBBUEkgdG8gY29udHJvbCB0aGUgSWNvbkRh
dGFiYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MjMzNAorCisgICAgICAgIEZpcnN0IHN0ZXAgdG93YXJkcyBhIGZ1bGwgSWNvbkRhdGFiYXNlIEFQ
SS4gVGhpcyBwcm92aWRlcworICAgICAgICBub3RpZmljYXRpb24gZm9yIHBhZ2VzIHdpdGggZmF2
aWNvbnMsIGFuZCBsZXRzIGNsaWVudHMgaGFuZGxlCisgICAgICAgIHRoZW0uCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbik6
CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgorICAgICAgICAod2Via2l0X2lu
aXQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0
eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUpOgorICAgICAgICAod2Via2l0
X3dlYl92aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9pY29u
X3VyaSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwOS0xMi0wOCAg
Q2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IGZkMTM1ZTQuLmJmNjg3MDEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwCkBAIC01NDksNyArNTQ5LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVy
Zm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiB7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OnJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sKQordm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgc2hvdWxkUmVnaXN0ZXIpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTcwMiw3ICs3MDIsMTIgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCiB7CiAgICAgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CiAKLSAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUod2ViVmlldywgImljb24tbG9hZGVkIiwgbV9mcmFtZSk7CisgICAgLy8g
QXZvaWQgcmVwb3J0aW5nIGZhdmljb25zIGZvciBub24tbWFpbiBmcmFtZXMuCisgICAgaWYgKG1f
ZnJhbWUgIT0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpY29u
LXVyaSIpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAiaWNvbi1sb2FkZWQi
LCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJpKHdlYlZpZXcpKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Jlc291cmNlcy9ibGFuay5pY28gYi9XZWJLaXQvZ3RrL3Rl
c3RzL3Jlc291cmNlcy9ibGFuay5pY28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE4NDhiOTkxNmU1OTA4NDQxM2Zj
MWU3YTA5MGRlYmY1ZjQ5MTRkYgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTk4CnBjbVpRelU8
NSh8MFZYaUxmcXtXUjQyVSY9U09BQz5mRVhsPzM7aDU4QUQwd2UjUX1SWTFWako7CgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJ2aWV3
LmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJ2aWV3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZjJlZDI5ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvdGVz
dHMvdGVzdHdlYnZpZXcuYwpAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA5IENv
bGxhYm9yYSBMdGQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2lu
Y2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGdsaWIvZ3N0
ZGlvLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4K
KworI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04o
MiwgMTQsIDApCisKK0dNYWluTG9vcCogbG9vcDsKK1NvdXBTZXNzaW9uICpzZXNzaW9uOworY2hh
ciogYmFzZV91cmk7CisKKy8qIEZvciByZWFsIHJlcXVlc3QgdGVzdGluZyAqLworc3RhdGljIHZv
aWQKK3NlcnZlcl9jYWxsYmFjayhTb3VwU2VydmVyICpzZXJ2ZXIsIFNvdXBNZXNzYWdlICptc2cs
CisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGgsIEdIYXNoVGFibGUgKnF1ZXJ5LAor
ICAgICAgICAgICAgICAgICBTb3VwQ2xpZW50Q29udGV4dCAqY29udGV4dCwgZ3BvaW50ZXIgZGF0
YSkKK3sKKyAgICBpZiAobXNnLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CisgICAgICAg
IHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1zZywgU09VUF9TVEFUVVNfTk9UX0lNUExFTUVOVEVE
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVz
KG1zZywgU09VUF9TVEFUVVNfT0spOworCisgICAgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvZmF2
aWNvbi5pY28iKSkgeworICAgICAgICBjaGFyKiBjb250ZW50czsKKyAgICAgICAgZ3NpemUgbGVu
Z3RoOworICAgICAgICBHRXJyb3IqIGVycm9yID0gTlVMTDsKKworICAgICAgICBnX2ZpbGVfZ2V0
X2NvbnRlbnRzKCJibGFuay5pY28iLCAmY29udGVudHMsICZsZW5ndGgsICZlcnJvcik7CisgICAg
ICAgIGdfYXNzZXJ0KCFlcnJvcik7CisKKyAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5k
KG1zZy0+cmVzcG9uc2VfYm9keSwgU09VUF9NRU1PUllfVEFLRSwgY29udGVudHMsIGxlbmd0aCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2hhciogY29udGVudHMgPSBnX3N0cmR1cCgiPGh0bWw+
PGJvZHk+dGVzdDwvYm9keT48L2h0bWw+Iik7CisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2Fw
cGVuZChtc2ctPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZX1RBS0UsIGNvbnRlbnRzLCBzdHJs
ZW4oY29udGVudHMpKTsKKyAgICB9CisKKyAgICBzb3VwX21lc3NhZ2VfYm9keV9jb21wbGV0ZSht
c2ctPnJlc3BvbnNlX2JvZHkpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gaWRsZV9xdWl0X2xvb3Bf
Y2IoZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBnX21haW5fbG9vcF9xdWl0KGxvb3ApOworICAgIHJl
dHVybiBGQUxTRTsKK30KKworc3RhdGljIHZvaWQgaWNvbl91cmlfY2hhbmdlZF9jYihXZWJLaXRX
ZWJWaWV3KiB3ZWJfdmlldywgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEpCit7Cisg
ICAgZ2Jvb2xlYW4qIGJlZW5faGVyZSA9IChnYm9vbGVhbiopZGF0YTsKKyAgICBjaGFyKiBleHBl
Y3RlZF91cmk7CisKKyAgICBnX2Fzc2VydF9jbXBzdHIoZ19wYXJhbV9zcGVjX2dldF9uYW1lKHBz
cGVjKSwgPT0sICJpY29uLXVyaSIpOworCisgICAgZXhwZWN0ZWRfdXJpID0gZ19zdHJkdXBfcHJp
bnRmKCIlc2Zhdmljb24uaWNvIiwgYmFzZV91cmkpOworICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJpKHdlYl92aWV3KSwgPT0sIGV4cGVjdGVkX3VyaSk7Cisg
ICAgZ19mcmVlKGV4cGVjdGVkX3VyaSk7CisKKyAgICAqYmVlbl9oZXJlID0gVFJVRTsKK30KKwor
c3RhdGljIHZvaWQgaWNvbl9sb2FkZWRfY2IoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNoYXIq
IGljb25fdXJpLCBncG9pbnRlciBkYXRhKQoreworICAgIGdib29sZWFuKiBiZWVuX2hlcmUgPSAo
Z2Jvb2xlYW4qKWRhdGE7CisgICAgY2hhciogZXhwZWN0ZWRfdXJpID0gZ19zdHJkdXBfcHJpbnRm
KCIlc2Zhdmljb24uaWNvIiwgYmFzZV91cmkpOworICAgIGdfYXNzZXJ0X2NtcHN0cihpY29uX3Vy
aSwgPT0sIGV4cGVjdGVkX3VyaSk7CisgICAgZ19mcmVlKGV4cGVjdGVkX3VyaSk7CisKKyAgICBn
X2Fzc2VydF9jbXBzdHIoaWNvbl91cmksID09LCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJp
KHdlYl92aWV3KSk7CisKKyAgICAqYmVlbl9oZXJlID0gVFJVRTsKK30KKworc3RhdGljIHZvaWQg
dGVzdF93ZWJraXRfd2ViX3ZpZXdfaWNvbl91cmkoKQoreworICAgIGdib29sZWFuIGJlZW5fdG9f
dXJpX2NoYW5nZWQgPSBGQUxTRTsKKyAgICBnYm9vbGVhbiBiZWVuX3RvX2ljb25fbG9hZGVkID0g
RkFMU0U7CisgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRf
d2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKEdfT0JKRUNUKHZpZXcpKTsK
KworICAgIGxvb3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX29iamVj
dF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6
bG9hZC1maW5pc2hlZCIsIGlkbGVfcXVpdF9sb29wX2NiLCBOVUxMLAorICAgICAgICAgICAgICAg
ICAgICAgInNpZ25hbDo6bm90aWZ5OjppY29uLXVyaSIsIGljb25fdXJpX2NoYW5nZWRfY2IsICZi
ZWVuX3RvX3VyaV9jaGFuZ2VkLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6aWNvbi1s
b2FkZWQiLCBpY29uX2xvYWRlZF9jYiwgJmJlZW5fdG9faWNvbl9sb2FkZWQsCisgICAgICAgICAg
ICAgICAgICAgICBOVUxMKTsKKworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSh2aWV3LCBi
YXNlX3VyaSk7CisKKyAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICBnX2Fzc2VydChi
ZWVuX3RvX3VyaV9jaGFuZ2VkKTsKKyAgICBnX2Fzc2VydChiZWVuX3RvX2ljb25fbG9hZGVkKTsK
KworICAgIGdfb2JqZWN0X3VucmVmKHZpZXcpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hh
cioqIGFyZ3YpCit7CisgICAgU291cFNlcnZlciogc2VydmVyOworICAgIFNvdXBVUkkqIHNvdXBf
dXJpOworICAgIGNoYXIqIHRlc3RfZGlyOworICAgIGNoYXIqIHJlc291cmNlc19kaXI7CisKKyAg
ICBnX3RocmVhZF9pbml0KE5VTEwpOworICAgIGd0a190ZXN0X2luaXQoJmFyZ2MsICZhcmd2LCBO
VUxMKTsKKworICAgIC8qIEhvcGVmdWxseSBtYWtlIHRlc3QgaW5kZXBlbmRlbnQgb2YgdGhlIHBh
dGggaXQncyBjYWxsZWQgZnJvbS4gKi8KKyAgICB0ZXN0X2RpciA9IGdfcGF0aF9nZXRfZGlybmFt
ZShhcmd2WzBdKTsKKyAgICByZXNvdXJjZXNfZGlyID0gZ19idWlsZF9wYXRoKEdfRElSX1NFUEFS
QVRPUl9TLCB0ZXN0X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuLiIs
ICIuLiIsICIuLiIsICIuLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2Vi
S2l0IiwgImd0ayIsICJ0ZXN0cyIsICJyZXNvdXJjZXMiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCk7CisgICAgZ19mcmVlKHRlc3RfZGlyKTsKKworICAgIGdfY2hkaXIo
cmVzb3VyY2VzX2Rpcik7CisgICAgZ19mcmVlKHJlc291cmNlc19kaXIpOworCisgICAgc2VydmVy
ID0gc291cF9zZXJ2ZXJfbmV3KFNPVVBfU0VSVkVSX1BPUlQsIDAsIE5VTEwpOworICAgIHNvdXBf
c2VydmVyX3J1bl9hc3luYyhzZXJ2ZXIpOworCisgICAgc291cF9zZXJ2ZXJfYWRkX2hhbmRsZXIo
c2VydmVyLCBOVUxMLCBzZXJ2ZXJfY2FsbGJhY2ssIE5VTEwsIE5VTEwpOworCisgICAgc291cF91
cmkgPSBzb3VwX3VyaV9uZXcoImh0dHA6Ly8xMjcuMC4wLjEvIik7CisgICAgc291cF91cmlfc2V0
X3BvcnQoc291cF91cmksIHNvdXBfc2VydmVyX2dldF9wb3J0KHNlcnZlcikpOworCisgICAgYmFz
ZV91cmkgPSBzb3VwX3VyaV90b19zdHJpbmcoc291cF91cmksIEZBTFNFKTsKKyAgICBzb3VwX3Vy
aV9mcmVlKHNvdXBfdXJpKTsKKworICAgIGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvIik7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L3dlYnZpZXcvaWNvbi11
cmkiLCB0ZXN0X3dlYmtpdF93ZWJfdmlld19pY29uX3VyaSk7CisKKyAgICByZXR1cm4gZ190ZXN0
X3J1biAoKTsKK30KKworI2Vsc2UKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sK
KyAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVkIGF0IGxlYXN0IGdsaWItMi4xNi4wIGFuZCBn
dGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBub3cuIik7Cisg
ICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcApp
bmRleCAwODcwZDkwLi5jODAxNjBjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRwcml2YXRlLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVk
ZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSA8bGliaW50bC5oPgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKQEAgLTQwLDYgKzQxLDcgQEAKICNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDxzdGRsaWIuaD4K
ICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCIKIAogI2lmIEVOQUJMRShEQVRBQkFT
RSkKQEAgLTIyNSw2ICsyMjcsMTEgQEAgc3RhdGljIEd0a1dpZGdldCogY3VycmVudFRvcGxldmVs
Q2FsbGJhY2soV2ViS2l0U291cEF1dGhEaWFsb2cqIGZlYXR1cmUsIFNvdXBNZXMKICAgICAgICAg
cmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyB2b2lkIGNsb3NlSWNvbkRhdGFiYXNlT25FeGl0KCkK
K3sKKyAgICBpY29uRGF0YWJhc2UoKS0+Y2xvc2UoKTsKK30KKwogdm9pZCB3ZWJraXRfaW5pdCgp
CiB7CiAgICAgc3RhdGljIGJvb2wgaXNJbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtMjU2LDYgKzI2
MywxMyBAQCB2b2lkIHdlYmtpdF9pbml0KCkKIAogICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0
ZWJvYXJkKCktPnNldEhlbHBlcihXZWJLaXQ6OnBhc3RlYm9hcmRIZWxwZXJJbnN0YW5jZSgpKTsK
IAorICAgIGljb25EYXRhYmFzZSgpLT5zZXRFbmFibGVkKHRydWUpOworCisgICAgR093blB0cjxn
Y2hhcj4gaWNvbkRhdGFiYXNlUGF0aChnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9k
aXIoKSwgIndlYmtpdCIsICJpY29uZGF0YWJhc2UiLCBOVUxMKSk7CisgICAgaWNvbkRhdGFiYXNl
KCktPm9wZW4oaWNvbkRhdGFiYXNlUGF0aC5nZXQoKSk7CisKKyAgICBhdGV4aXQoY2xvc2VJY29u
RGF0YWJhc2VPbkV4aXQpOworCiAgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSB3ZWJraXRfZ2V0
X2RlZmF1bHRfc2Vzc2lvbigpOwogCiAgICAgU291cFNlc3Npb25GZWF0dXJlKiBhdXRoRGlhbG9n
ID0gc3RhdGljX2Nhc3Q8U291cFNlc3Npb25GZWF0dXJlKj4oZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX1NPVVBfQVVUSF9ESUFMT0csIE5VTEwpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaApp
bmRleCBiZDk1ODk2Li5lMTdlNzllIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0x
NDIsNiArMTQyLDggQEAgZXh0ZXJuICJDIiB7CiAgICAgICAgIGNoYXIqIGVuY29kaW5nOwogICAg
ICAgICBjaGFyKiBjdXN0b21FbmNvZGluZzsKIAorICAgICAgICBjaGFyKiBpY29uVVJJOworCiAg
ICAgICAgIGdib29sZWFuIGRpc3Bvc2luZzsKICAgICAgICAgZ2Jvb2xlYW4gdXNlUHJpbWFyeUZv
clBhc3RlOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDJjNTVkMDkuLmJl
YmQwMWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisr
KyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC01OSw2ICs1OSw3IEBA
CiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTEzMyw3ICsxMzQsNyBAQCBlbnVtIHsKICAg
ICBIT1ZFUklOR19PVkVSX0xJTkssCiAgICAgUE9QVUxBVEVfUE9QVVAsCiAgICAgU1RBVFVTX0JB
Ul9URVhUX0NIQU5HRUQsCi0gICAgSUNPTkRfTE9BREVELAorICAgIElDT05fTE9BREVELAogICAg
IFNFTEVDVElPTl9DSEFOR0VELAogICAgIENPTlNPTEVfTUVTU0FHRSwKICAgICBTQ1JJUFRfQUxF
UlQsCkBAIC0xNzIsNyArMTczLDggQEAgZW51bSB7CiAgICAgUFJPUF9MT0FEX1NUQVRVUywKICAg
ICBQUk9QX1BST0dSRVNTLAogICAgIFBST1BfRU5DT0RJTkcsCi0gICAgUFJPUF9DVVNUT01fRU5D
T0RJTkcKKyAgICBQUk9QX0NVU1RPTV9FTkNPRElORywKKyAgICBQUk9QX0lDT05fVVJJCiB9Owog
CiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAw
LCB9OwpAQCAtMzU0LDYgKzM1Niw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19nZXRf
cHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqCiAgICAgY2Fz
ZSBQUk9QX1BST0dSRVNTOgogICAgICAgICBnX3ZhbHVlX3NldF9kb3VibGUodmFsdWUsIHdlYmtp
dF93ZWJfdmlld19nZXRfcHJvZ3Jlc3Mod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBST1BfSUNPTl9VUkk6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Vi
a2l0X3dlYl92aWV3X2dldF9pY29uX3VyaSh3ZWJWaWV3KSk7CisgICAgICAgIGJyZWFrOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmpl
Y3QsIHByb3BfaWQsIHBzcGVjKTsKICAgICB9CkBAIC0xMDI2LDYgKzEwMzEsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIGdfZnJl
ZShwcml2LT5tYWluUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBnX2ZyZWUocHJpdi0+ZW5jb2Rp
bmcpOwogICAgIGdfZnJlZShwcml2LT5jdXN0b21FbmNvZGluZyk7CisgICAgZ19mcmVlKHByaXYt
Pmljb25VUkkpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CkBAIC0xNzI5LDE0ICsxNzM1LDI0IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2Vi
Vmlld0NsYXNzKQogICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCiAgICAgICAgICAgICBHX1RZ
UEVfU1RSSU5HKTsKIAotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0lDT05EX0xPQURFRF0g
PSBnX3NpZ25hbF9uZXcoImljb24tbG9hZGVkIiwKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJW
aWV3OjppY29uLWxvYWRlZDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hpY2gg
dGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQGljb25fdXJpOiB0aGUgVVJJIGZvciB0aGUg
aWNvbgorICAgICAqCisgICAgICogVGhpcyBzaWduYWwgaXMgZW1pdHRlZCB3aGVuIHRoZSBtYWlu
IGZyYW1lIGhhcyBnb3QgYSBmYXZpY29uLgorICAgICAqCisgICAgICogU2luY2U6IDEuMS4xOAor
ICAgICAqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0lDT05fTE9BREVEXSA9IGdfc2ln
bmFsX25ldygiaWNvbi1sb2FkZWQiLAogICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2Vi
Vmlld0NsYXNzKSwKICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxfUlVOX0xBU1Qs
CiAgICAgICAgICAgICAwLAogICAgICAgICAgICAgTlVMTCwKICAgICAgICAgICAgIE5VTEwsCi0g
ICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAgICAgICAgICAgIEdf
VFlQRV9OT05FLCAwKTsKKyAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19TVFJJ
TkcsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJ
TkcpOwogCiAgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbU0VMRUNUSU9OX0NIQU5HRURdID0g
Z19zaWduYWxfbmV3KCJzZWxlY3Rpb24tY2hhbmdlZCIsCiAgICAgICAgICAgICBHX1RZUEVfRlJP
TV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLApAQCAtMjM3Nyw2ICsyMzkzLDIwIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0Ns
YXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjAsIDEuMCwgMS4wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKIAorICAgIC8qKgor
ICAgICAqIFdlYktpdFdlYlZpZXc6aWNvbi11cmk6CisgICAgICoKKyAgICAgKiBUaGUgVVJJIGZv
ciB0aGUgZmF2aWNvbiBmb3IgdGhlICNXZWJLaXRXZWJWaWV3LgorICAgICAqCisgICAgICogU2lu
Y2U6IDEuMS4xOAorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
b2JqZWN0Q2xhc3MsIFBST1BfSUNPTl9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJpY29uLXVyaSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkljb24gVVJJIiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IlRoZSBVUkkgZm9yIHRoZSBmYXZpY29uIGZvciB0aGUgI1dlYktpdFdlYlZpZXcuIiksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRl
KHdlYlZpZXdDbGFzcywgc2l6ZW9mKFdlYktpdFdlYlZpZXdQcml2YXRlKSk7CiB9CiAKQEAgLTM5
NjUsMyArMzk5NSwyNyBAQCBXZWJLaXRIaXRUZXN0UmVzdWx0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2hpdF90ZXN0X3Jlc3VsdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LAogCiAgICAgcmV0dXJuIGtp
dChtZXYuaGl0VGVzdFJlc3VsdCgpKTsKIH0KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2ljb25fdXJpOgorICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb2JqZWN0CisgKgor
ICogT2J0YWlucyB0aGUgVVJJIGZvciB0aGUgZmF2aWNvbiBmb3IgdGhlIGdpdmVuICNXZWJLaXRX
ZWJWaWV3LCBvcgorICogJU5VTEwgaWYgdGhlcmUgaXMgbm9uZS4KKyAqCisgKiBSZXR1cm4gdmFs
dWU6IHRoZSBVUkkgZm9yIHRoZSBmYXZpY29uLCBvciAlTlVMTAorICoKKyAqIFNpbmNlOiAxLjEu
MTgKKyAqLworR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91
cmkoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwpOworCisgICAgUGFnZSogY29yZVBhZ2Ug
PSBjb3JlKHdlYlZpZXcpOworICAgIFN0cmluZyBpY29uVVJMID0gaWNvbkRhdGFiYXNlKCktPmlj
b25VUkxGb3JQYWdlVVJMKGNvcmVQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnBy
ZXR0eVVSTCgpKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+
cHJpdjsKKyAgICBnX2ZyZWUocHJpdi0+aWNvblVSSSk7CisgICAgcHJpdi0+aWNvblVSSSA9IGdf
c3RyZHVwKGljb25VUkwudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIHByaXYtPmljb25VUkk7
Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmggYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKaW5kZXggMTI5NzY5NS4uOGRkN2YzOSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCisrKyBiL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaApAQCAtMzY2LDYgKzM2NiwxMCBAQCB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3ZpZXdfc291cmNlX21vZGUgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgKndlYl92aWV3KQogV0VCS0lUX0FQSSBXZWJLaXRIaXRUZXN0UmVzdWx0Kgogd2Via2l0X3dl
Yl92aWV3X2dldF9oaXRfdGVzdF9yZXN1bHQgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICp3ZWJWaWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdka0V2ZW50QnV0dG9uICAgICAgICpldmVudCk7CisKK1dFQktJVF9BUEkgR19DT05T
VF9SRVRVUk4gZ2NoYXIgKgord2Via2l0X3dlYl92aWV3X2dldF9pY29uX3VyaSAgICAgICAgICAg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJWaWV3KTsKKwogR19FTkRfREVDTFMK
IAogI2VuZGlmCi0tIAoxLjYuNS4zCgo=
</data>
<flag name="review"
          id="26509"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
    <flag name="commit-queue"
          id="26510"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>