<?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>28036</bug_id>
          
          <creation_ts>2009-08-05 21:20:28 -0700</creation_ts>
          <short_desc>[Qt] Public API to configure the storage path for HTML5 localStorage</short_desc>
          <delta_ts>2009-08-14 07:21:18 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>137509</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-05 21:20:28 -0700</bug_when>
    <thetext>This API allows to change the path for the HTML5 localstorage per page. The proposal essentially converts the existing private API into a public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137510</commentid>
    <comment_count>1</comment_count>
      <attachid>34198</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-05 21:27:57 -0700</bug_when>
    <thetext>Created attachment 34198
proposed api</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137560</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-06 05:18:39 -0700</bug_when>
    <thetext>Actually the database part is just the way it is stored, but AFAIK you dont rerally use it as a database (as with the WebDatabase API) and as such I think we should just call it LocalStorage and mention in the docs that it is the local part of the WebStorage API.

Input Simon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137571</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-08-06 07:57:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Actually the database part is just the way it is stored, but AFAIK you dont
&gt; rerally use it as a database (as with the WebDatabase API) and as such I think
&gt; we should just call it LocalStorage and mention in the docs that it is the
&gt; local part of the WebStorage API.

Right, only the local storge as part of WebStorage is persistent and therefore requires disk access.

One thing I&apos;m concerned about though in this context is that we&apos;re providing this path setting per QWebPage, where as all our existing path settings are global.

In WebKit however the local storage is not a property of the page, it is a property of the page group.

If we want to introduce support for page groups in the future, then we have to decide what we want to do with these path settings per page.

Should a page group result in all associated QWebPage instances also sharing the same QWebSettings object, i.e. QWebPage::settings() on all the pages in the group returning the same shared object?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137572</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-08-06 07:58:55 -0700</bug_when>
    <thetext>More generally speaking get the impression that need to have support for page grouping in our API, to make some of the newer features more controllable in environments where sandboxing is important.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137587</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-06 09:24:36 -0700</bug_when>
    <thetext>Yes, I also think that we need that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137903</commentid>
    <comment_count>6</comment_count>
      <attachid>34198</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 08:45:39 -0700</bug_when>
    <thetext>Comment on attachment 34198
proposed api

Looks fine to me.  I&apos;m not a Qt guy.  One of the Qt guys can (and should!) make noises if they disagree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137914</commentid>
    <comment_count>7</comment_count>
      <attachid>34198</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-07 09:04:58 -0700</bug_when>
    <thetext>Comment on attachment 34198
proposed api

Remove review+ for now as Kenneth would like to change the name (remove the &quot;Database&quot; part) before this gets landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137970</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-07 10:45:46 -0700</bug_when>
    <thetext>..as well as update the documentation and link to the webstorage spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138632</commentid>
    <comment_count>9</comment_count>
      <attachid>34448</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-10 05:50:08 -0700</bug_when>
    <thetext>Created attachment 34448
second try

- remove the &quot;Database&quot; part from the name (e.g. renamed setLocalStorageDatabasePath to setLocalStoragePath)
- add reference to webstorage spec

Note that WebAttribute enum is still called LocalStorageDatabaseEnabled; since the enum has been part of the QtWebKit 4.5 API and changing it would be compatibility break I believe. This means that with this proposal there will be some inconsistency between the name of the WebAttribute enum and the rest of the APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138635</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-10 06:09:13 -0700</bug_when>
    <thetext>Regarding LocalStorageDatabaseEnabled. It would be possible to hide the enum from the docs and add a new one. Effectively deprecate it. What do you think Simon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138697</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-10 09:39:40 -0700</bug_when>
    <thetext>&lt;tronical&gt; kenneth: we could deprecated the old and hide it in the docs and add new functions.

I have talked with Simon earlier about default paths. If you enable the feature, you should not have to set a path. If you don&apos;t it should default to [quoting Simon]

   &lt;base path&gt;/IconDatabase/
   &lt;base path&gt;/WebDatabase/
   &lt;base path&gt;/ApplicationCache/
   &lt;base path&gt;/WebStorage/          &lt;- this one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138888</commentid>
    <comment_count>12</comment_count>
      <attachid>34537</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-10 20:12:01 -0700</bug_when>
    <thetext>Created attachment 34537
3rd try

Additional changes in the 3rd revision of the patch:
 - LocalStorageDatabaseEnabled enum value is now deprecated, the new name is LocalStorageEnabled
 - LocalStoragePath now has a default (&lt;base path&gt;/LocalStorage/)

Here are some reasons to keep the LocalStorage name (instead of switching to WebStorage).
 - The LocalStorageEnabled setting does not control SessionStorage and as such WebStorageEnabled name would be misleading
 - WebStorage is indeed the name of the specification, but the relevant JS interface is called window.localStrorage - I believe the JS interface name is equally/more relevant 
 - WebStorage spec is referenced not only in the HTML5 spec but also in Widgets APIs and Events spec (see http://www.w3.org/TR/widgets-apis, widget.preferences). Since the interface that is defined in this patch is only for the HTML5 LocalStorage I think the name of the interface should be also specific to HTML5 to distinguish it from other WebStorage use-cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138890</commentid>
    <comment_count>13</comment_count>
      <attachid>34538</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-10 20:24:14 -0700</bug_when>
    <thetext>Created attachment 34538
4th try.

Found a typo in the 3rd path, please review this one instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138948</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-11 06:42:50 -0700</bug_when>
    <thetext>I guess on Mac you should add the organization name to the path? like mentioned in the docs for QString QDesktopServices::storageLocation ( StandardLocation type )

Any mac guy have some input?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138949</commentid>
    <comment_count>15</comment_count>
      <attachid>34538</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-11 06:48:52 -0700</bug_when>
    <thetext>Comment on attachment 34538
4th try.


&gt; +    // Set HTML5 Application Cache default location
&gt; +    QWebSettings::setOfflineWebApplicationCachePath(defaultCachePath());

I think we want to append /ApplicationCache or so.

Simon, how do we hide the deprecated methods from the docs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139322</commentid>
    <comment_count>16</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-12 07:51:40 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 34538 [details])
&gt; &gt; +    // Set HTML5 Application Cache default location
&gt; &gt; +    QWebSettings::setOfflineWebApplicationCachePath(defaultCachePath());
&gt; I think we want to append /ApplicationCache or so.
&gt; Simon, how do we hide the deprecated methods from the docs?

Kenneth, I&apos;d like to keep this patch focused on LocalStorage. I would prefer to create a separate patch for the HTML5 Application Cache changes (which I plan to do).

My proposal for deprecating follows Qt conventions I belive (see for example http://qt.gitorious.org/+qt-s60-developers/qt/qt-s60/blobs/master/src/gui/dialogs/qfiledialog.h )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139828</commentid>
    <comment_count>17</comment_count>
      <attachid>34538</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-08-13 06:48:29 -0700</bug_when>
    <thetext>Comment on attachment 34538
4th try.

r- as discussed.

It would be best to have one isolated patch that

1) Fixes the naming of the enum
2) and introduces the storage path without any defaults or without enabling it by default.

&gt; @@ -62,7 +62,10 @@ public:
&gt;          PrintElementBackgrounds,
&gt;          OfflineStorageDatabaseEnabled,
&gt;          OfflineWebApplicationCacheEnabled,
&gt; +#ifdef QT_DEPRECATED
&gt;          LocalStorageDatabaseEnabled,
&gt; +#endif
&gt; +        LocalStorageEnabled,
&gt;          LocalContentCanAccessRemoteUrls
&gt;      };

A slighty more backwards-compatible way of deprecating the old value would be to use the following notation:

enum {
    ...
    LocalStorageEnabled,
#ifdef QT_DEPRECATED
    LocalStorageDatabaseEnabled = LocalStorageEnabled,
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140204</commentid>
    <comment_count>18</comment_count>
      <attachid>34829</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-14 05:05:25 -0700</bug_when>
    <thetext>Created attachment 34829
5th try

Disables LocalStorage for QtWebKit by default by setting QWebSettings::LocalStorageEnabled to false.

Sets up a default for the LocalStorage path so that clients would only need to enable the LocalStorageEnabled setting to turn on LocalStoragre support.

Turn on LocalStorage support for QtLauncher and the relevant test since LocalStorage is now disabled by default for QtWebkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140218</commentid>
    <comment_count>19</comment_count>
      <attachid>34837</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-14 06:33:02 -0700</bug_when>
    <thetext>Created attachment 34837
6th try

Documentation for LocalStorageEnabled now mentions that it&apos;s disabled by default
Enable qdocs for setLocalStoragePath and localStoragePath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140224</commentid>
    <comment_count>20</comment_count>
      <attachid>34837</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-08-14 07:19:06 -0700</bug_when>
    <thetext>Comment on attachment 34837
6th try

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140226</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-08-14 07:21:18 -0700</bug_when>
    <thetext>Landed in r47283</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34198</attachid>
            <date>2009-08-05 21:27:57 -0700</date>
            <delta_ts>2009-08-10 05:50:08 -0700</delta_ts>
            <desc>proposed api</desc>
            <filename>patch_28036.txt</filename>
            <type>text/plain</type>
            <size>4147</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDY4MjkpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDgtMDUgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUHVibGljIEFQSSB0byBjb25maWd1cmUgdGhlIHN0b3JhZ2UgcGF0
aCBmb3IgSFRNTDUgbG9jYWxTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAzNgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6
CisgICAgICAgIChRV2ViU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCk6Cisg
ICAgICAgIChRV2ViU2V0dGluZ3M6OmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCk6CisgICAgICAg
ICogQXBpL3F3ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIHRlc3RzL3F3ZWJwYWdlL3RzdF9xd2Vi
cGFnZS5jcHA6CisgICAgICAgICh0c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZExv
Y2FsU3RvcmFnZSk6CisKIDIwMDktMDgtMDUgIENzYWJhIE9zenRyb2dvbmFjICA8b3N6aUBpbmYu
dS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCkluZGV4
OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lvbiA0NjcyNikKKysrIFdlYktpdC9xdC9BcGkv
cXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODU2LDcgKzg1Niw3IEBAIHFpbnQ2
NCBRV2ViU2V0dGluZ3M6Om9mZmxpbmVXZWJBcHBsaWNhdGkKIH0KIAogLyoKLSAgICBcc2luY2Ug
NC41CisgICAgXHNpbmNlIDQuNgogICAgIFxyZWxhdGVzIFFXZWJTZXR0aW5ncwogCiAgICAgU2V0
cyB0aGUgcGF0aCBmb3IgSFRNTDUgbG9jYWwgc3RvcmFnZSBkYXRhYmFzZXMgdG8gXGEgcGF0aC4K
QEAgLTg2NywxNSArODY3LDE0IEBAIHFpbnQ2NCBRV2ViU2V0dGluZ3M6Om9mZmxpbmVXZWJBcHBs
aWNhdGkKIAogICAgIFxzYSBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKQogKi8KLXZvaWQgUVdF
QktJVF9FWFBPUlQgcXRfd2Vic2V0dGluZ3Nfc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKFFX
ZWJTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IFFTdHJpbmcmIHBhdGgpCit2b2lkIFFXZWJTZXR0
aW5nczo6c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFFTdHJpbmcmIHBhdGgpCiB7
Ci0gICAgUVdlYlNldHRpbmdzUHJpdmF0ZSogZCA9IHNldHRpbmdzLT5oYW5kbGUoKTsKICAgICBk
LT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwogICAgIGQtPmFwcGx5KCk7CiB9CiAK
IC8qCi0gICAgXHNpbmNlIDQuNQorICAgIFxzaW5jZSA0LjYKICAgICBccmVsYXRlcyBRV2ViU2V0
dGluZ3MKIAogICAgIFJldHVybnMgdGhlIHBhdGggZm9yIEhUTUw1IGxvY2FsIHN0b3JhZ2UgZGF0
YWJhc2VzCkBAIC04ODMsOSArODgyLDkgQEAgdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93ZWJzZXR0
aW5nc19zZXRMbwogCiAgICAgXHNhIHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpCiAqLwot
UVN0cmluZyBRV0VCS0lUX0VYUE9SVCBxdF93ZWJzZXR0aW5nc19sb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGgoUVdlYlNldHRpbmdzKiBzZXR0aW5ncykKK1FTdHJpbmcgUVdlYlNldHRpbmdzOjpsb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGgoKSBjb25zdAogewotICAgIHJldHVybiBzZXR0aW5ncy0+aGFu
ZGxlKCktPmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKKyAgICByZXR1cm4gZC0+bG9jYWxTdG9y
YWdlRGF0YWJhc2VQYXRoOwogfQogCiAvKiEKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnNldHRp
bmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkocmV2aXNp
b24gNDY3MjYpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTgsNiArMTE4LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBRU3RyaW5nIG9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlUGF0aCgpOwogICAgIHN0YXRpYyB2b2lkIHNldE9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlUXVvdGEocWludDY0IG1heGltdW1TaXplKTsKICAgICBzdGF0aWMgcWlu
dDY0IG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKKyAgICAKKyAgICB2b2lkIHNl
dExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBRU3RyaW5nJiBwYXRoKTsKKyAgICBRU3Ry
aW5nIGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpIGNvbnN0OyAKIAogICAgIHN0YXRpYyB2b2lk
IGNsZWFyTWVtb3J5Q2FjaGVzKCk7CiAKSW5kZXg6IFdlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA0NjcyNikKKysrIFdlYktpdC9xdC90ZXN0cy9xd2Vi
cGFnZS90c3RfcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjcsNyArNjI3LDYgQEAg
dm9pZCB0c3RfUVdlYlBhZ2U6OmNyZWF0ZVZpZXdsZXNzUGx1Z2luKAogLy8gaW1wb3J0IHByaXZh
dGUgQVBJCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnBhZ2Vfc2V0R3JvdXBOYW1lKFFXZWJQ
YWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBncm91cE5hbWUpOwogUVN0cmluZyBRV0VCS0lUX0VY
UE9SVCBxdF93ZWJwYWdlX2dyb3VwTmFtZShRV2ViUGFnZSogcGFnZSk7Ci12b2lkIFFXRUJLSVRf
RVhQT1JUIHF0X3dlYnNldHRpbmdzX3NldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChRV2ViU2V0
dGluZ3MqIHNldHRpbmdzLCBjb25zdCBRU3RyaW5nJiBwYXRoKTsKIAogdm9pZCB0c3RfUVdlYlBh
Z2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZExvY2FsU3RvcmFnZSgpCiB7CkBAIC02MzgsOSArNjM3
LDkgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZAogICAgIFFXZWJW
aWV3IHZpZXcxOwogICAgIFFXZWJWaWV3IHZpZXcyOwogCi0gICAgcXRfd2Vic2V0dGluZ3Nfc2V0
TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHZpZXcxLnBhZ2UoKS0+c2V0dGluZ3MoKSwgUURpcjo6
dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRoKCkgKyAiL3BhdGgxIikpOworICAg
IHZpZXcxLnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKFFE
aXI6OnRvTmF0aXZlU2VwYXJhdG9ycyhRRGlyOjpjdXJyZW50UGF0aCgpICsgIi9wYXRoMSIpKTsK
ICAgICBxdF93ZWJwYWdlX3NldEdyb3VwTmFtZSh2aWV3MS5wYWdlKCksICJncm91cDEiKTsKLSAg
ICBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgodmlldzIucGFnZSgp
LT5zZXR0aW5ncygpLCBRRGlyOjp0b05hdGl2ZVNlcGFyYXRvcnMoUURpcjo6Y3VycmVudFBhdGgo
KSArICIvcGF0aDIiKSk7CisgICAgdmlldzIucGFnZSgpLT5zZXR0aW5ncygpLT5zZXRMb2NhbFN0
b3JhZ2VEYXRhYmFzZVBhdGgoUURpcjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQ
YXRoKCkgKyAiL3BhdGgyIikpOwogICAgIHF0X3dlYnBhZ2Vfc2V0R3JvdXBOYW1lKHZpZXcyLnBh
Z2UoKSwgImdyb3VwMiIpOwogICAgIFFDT01QQVJFKHF0X3dlYnBhZ2VfZ3JvdXBOYW1lKHZpZXcx
LnBhZ2UoKSksIFFTdHJpbmcoImdyb3VwMSIpKTsKICAgICBRQ09NUEFSRShxdF93ZWJwYWdlX2dy
b3VwTmFtZSh2aWV3Mi5wYWdlKCkpLCBRU3RyaW5nKCJncm91cDIiKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34448</attachid>
            <date>2009-08-10 05:50:08 -0700</date>
            <delta_ts>2009-08-10 20:12:01 -0700</delta_ts>
            <desc>second try</desc>
            <filename>patch_28036_2.txt</filename>
            <type>text/plain</type>
            <size>5534</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDY5NzIpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDgtMTAgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUHVibGljIEFQSSB0byBjb25maWd1cmUgdGhlIHN0b3JhZ2UgcGF0
aCBmb3IgSFRNTDUgbG9jYWxTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAzNgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6
CisgICAgICAgIChRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChRV2ViU2V0
dGluZ3M6OnNldExvY2FsU3RvcmFnZVBhdGgpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpsb2Nh
bFN0b3JhZ2VQYXRoKToKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmg6CisgICAgICAgICog
dGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6
bXVsdGlwbGVQYWdlR3JvdXBzQW5kTG9jYWxTdG9yYWdlKToKKwogMjAwOS0wOC0wOCAgVm9sa2Vy
IEhpbHNoZWltZXIgIDx2b2xrZXIuaGlsc2hlaW1lckBub2tpYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZp
c2lvbiA0Njk2OSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgUUhhc2g8aW50LCBib29sPiBhdHRy
aWJ1dGVzOwogICAgIFFVcmwgdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKICAgICBRU3RyaW5nIGRl
ZmF1bHRUZXh0RW5jb2Rpbmc7Ci0gICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7
CisgICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VQYXRoOwogICAgIFFTdHJpbmcgb2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVQYXRoOwogICAgIHFpbnQ2NCBvZmZsaW5lU3RvcmFnZURlZmF1bHRRdW90
YTsKIApAQCAtMTY3LDggKzE2Nyw4IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHko
KQogICAgICAgICBRU3RyaW5nIGVuY29kaW5nID0gIWRlZmF1bHRUZXh0RW5jb2RpbmcuaXNFbXB0
eSgpID8gZGVmYXVsdFRleHRFbmNvZGluZzogZ2xvYmFsLT5kZWZhdWx0VGV4dEVuY29kaW5nOwog
ICAgICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmcpOwog
Ci0gICAgICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aCA9ICFsb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGguaXNFbXB0eSgpID8gbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoIDogZ2xvYmFsLT5sb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGg7Ci0gICAgICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VE
YXRhYmFzZVBhdGgobG9jYWxTdG9yYWdlUGF0aCk7CisgICAgICAgIFFTdHJpbmcgc3RvcmFnZVBh
dGggPSAhbG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgPyBsb2NhbFN0b3JhZ2VQYXRoIDogZ2xv
YmFsLT5sb2NhbFN0b3JhZ2VQYXRoOworICAgICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdl
RGF0YWJhc2VQYXRoKHN0b3JhZ2VQYXRoKTsKIAogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMu
dmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4
dE9ubHkpKTsKQEAgLTg2OCwzNiArODY4LDM4IEBAIHFpbnQ2NCBRV2ViU2V0dGluZ3M6Om9mZmxp
bmVXZWJBcHBsaWNhdGkKIH0KIAogLyoKLSAgICBcc2luY2UgNC41CisgICAgXHNpbmNlIDQuNgog
ICAgIFxyZWxhdGVzIFFXZWJTZXR0aW5ncwogCiAgICAgU2V0cyB0aGUgcGF0aCBmb3IgSFRNTDUg
bG9jYWwgc3RvcmFnZSBkYXRhYmFzZXMgdG8gXGEgcGF0aC4KKyAgICAKKyAgICBGb3IgbW9yZSBp
bmZvcm1hdGlvbiBvbiBIVE1MNSBsb2NhbCBzdG9yYWdlIHNlZSB0aGUKKyAgICBcbHtodHRwOi8v
d3d3LnczLm9yZy9UUi93ZWJzdG9yYWdlLyN0aGUtbG9jYWxzdG9yYWdlLWF0dHJpYnV0ZX17V2Vi
IFN0b3JhZ2Ugc3RhbmRhcmR9LgogCi0gICAgXGEgcGF0aCBtdXN0IHBvaW50IHRvIGFuIGV4aXN0
aW5nIGRpcmVjdG9yeSB3aGVyZSB0aGUgY2FjaGUgaXMgc3RvcmVkLgorICAgIFxhIHBhdGggbXVz
dCBwb2ludCB0byBhbiBleGlzdGluZyBkaXJlY3Rvcnkgd2hlcmUgdGhlIHN0b3JhZ2UgaXMgc2F2
ZWQuCiAKICAgICBTZXR0aW5nIGFuIGVtcHR5IHBhdGggZGlzYWJsZXMgdGhlIGZlYXR1cmUuCiAK
LSAgICBcc2EgbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCkKKyAgICBcc2EgbG9jYWxTdG9yYWdl
UGF0aCgpCiAqLwotdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0
b3JhZ2VEYXRhYmFzZVBhdGgoUVdlYlNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgUVN0cmluZyYg
cGF0aCkKK3ZvaWQgUVdlYlNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VQYXRoKGNvbnN0IFFTdHJp
bmcmIHBhdGgpCiB7Ci0gICAgUVdlYlNldHRpbmdzUHJpdmF0ZSogZCA9IHNldHRpbmdzLT5oYW5k
bGUoKTsKLSAgICBkLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOworICAgIGQtPmxv
Y2FsU3RvcmFnZVBhdGggPSBwYXRoOwogICAgIGQtPmFwcGx5KCk7CiB9CiAKIC8qCi0gICAgXHNp
bmNlIDQuNQorICAgIFxzaW5jZSA0LjYKICAgICBccmVsYXRlcyBRV2ViU2V0dGluZ3MKIAogICAg
IFJldHVybnMgdGhlIHBhdGggZm9yIEhUTUw1IGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2VzCiAgICAg
b3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgogCi0gICAgXHNh
IHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpCisgICAgXHNhIHNldExvY2FsU3RvcmFnZVBh
dGgoKQogKi8KLVFTdHJpbmcgUVdFQktJVF9FWFBPUlQgcXRfd2Vic2V0dGluZ3NfbG9jYWxTdG9y
YWdlRGF0YWJhc2VQYXRoKFFXZWJTZXR0aW5ncyogc2V0dGluZ3MpCitRU3RyaW5nIFFXZWJTZXR0
aW5nczo6bG9jYWxTdG9yYWdlUGF0aCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNldHRpbmdzLT5o
YW5kbGUoKS0+bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOworICAgIHJldHVybiBkLT5sb2NhbFN0
b3JhZ2VQYXRoOwogfQogCiAvKiEKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkocmV2aXNpb24gNDY5
NjkpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjEsNiArMTIxLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBRU3RyaW5nIG9mZmxpbmVXZWJBcHBs
aWNhdGlvbkNhY2hlUGF0aCgpOwogICAgIHN0YXRpYyB2b2lkIHNldE9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlUXVvdGEocWludDY0IG1heGltdW1TaXplKTsKICAgICBzdGF0aWMgcWludDY0IG9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKKyAgICAKKyAgICB2b2lkIHNldExvY2Fs
U3RvcmFnZVBhdGgoY29uc3QgUVN0cmluZyYgcGF0aCk7CisgICAgUVN0cmluZyBsb2NhbFN0b3Jh
Z2VQYXRoKCkgY29uc3Q7IAogCiAgICAgc3RhdGljIHZvaWQgY2xlYXJNZW1vcnlDYWNoZXMoKTsK
IApJbmRleDogV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAJKHJldmlz
aW9uIDQ2OTY5KQorKysgV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYyNyw3ICs2MjcsNiBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6Y3Jl
YXRlVmlld2xlc3NQbHVnaW4oCiAvLyBpbXBvcnQgcHJpdmF0ZSBBUEkKIHZvaWQgUVdFQktJVF9F
WFBPUlQgcXRfd2VicGFnZV9zZXRHcm91cE5hbWUoUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFFTdHJp
bmcmIGdyb3VwTmFtZSk7CiBRU3RyaW5nIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnBhZ2VfZ3JvdXBO
YW1lKFFXZWJQYWdlKiBwYWdlKTsKLXZvaWQgUVdFQktJVF9FWFBPUlQgcXRfd2Vic2V0dGluZ3Nf
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKFFXZWJTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0
IFFTdHJpbmcmIHBhdGgpOwogCiB2b2lkIHRzdF9RV2ViUGFnZTo6bXVsdGlwbGVQYWdlR3JvdXBz
QW5kTG9jYWxTdG9yYWdlKCkKIHsKQEAgLTYzOCw5ICs2MzcsOSBAQCB2b2lkIHRzdF9RV2ViUGFn
ZTo6bXVsdGlwbGVQYWdlR3JvdXBzQW5kCiAgICAgUVdlYlZpZXcgdmlldzE7CiAgICAgUVdlYlZp
ZXcgdmlldzI7CiAKLSAgICBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGgodmlldzEucGFnZSgpLT5zZXR0aW5ncygpLCBRRGlyOjp0b05hdGl2ZVNlcGFyYXRvcnMoUURp
cjo6Y3VycmVudFBhdGgoKSArICIvcGF0aDEiKSk7CisgICAgdmlldzEucGFnZSgpLT5zZXR0aW5n
cygpLT5zZXRMb2NhbFN0b3JhZ2VQYXRoKFFEaXI6OnRvTmF0aXZlU2VwYXJhdG9ycyhRRGlyOjpj
dXJyZW50UGF0aCgpICsgIi9wYXRoMSIpKTsKICAgICBxdF93ZWJwYWdlX3NldEdyb3VwTmFtZSh2
aWV3MS5wYWdlKCksICJncm91cDEiKTsKLSAgICBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVBhdGgodmlldzIucGFnZSgpLT5zZXR0aW5ncygpLCBRRGlyOjp0b05hdGl2ZVNl
cGFyYXRvcnMoUURpcjo6Y3VycmVudFBhdGgoKSArICIvcGF0aDIiKSk7CisgICAgdmlldzIucGFn
ZSgpLT5zZXR0aW5ncygpLT5zZXRMb2NhbFN0b3JhZ2VQYXRoKFFEaXI6OnRvTmF0aXZlU2VwYXJh
dG9ycyhRRGlyOjpjdXJyZW50UGF0aCgpICsgIi9wYXRoMiIpKTsKICAgICBxdF93ZWJwYWdlX3Nl
dEdyb3VwTmFtZSh2aWV3Mi5wYWdlKCksICJncm91cDIiKTsKICAgICBRQ09NUEFSRShxdF93ZWJw
YWdlX2dyb3VwTmFtZSh2aWV3MS5wYWdlKCkpLCBRU3RyaW5nKCJncm91cDEiKSk7CiAgICAgUUNP
TVBBUkUocXRfd2VicGFnZV9ncm91cE5hbWUodmlldzIucGFnZSgpKSwgUVN0cmluZygiZ3JvdXAy
IikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34537</attachid>
            <date>2009-08-10 20:12:01 -0700</date>
            <delta_ts>2009-08-10 20:24:14 -0700</delta_ts>
            <desc>3rd try</desc>
            <filename>patch_28036_3.txt</filename>
            <type>text/plain</type>
            <size>10695</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDcwMTcpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDgtMTAgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUHVibGljIEFQSSB0byBjb25maWd1cmUgdGhlIHN0b3JhZ2UgcGF0
aCBmb3IgSFRNTDUgbG9jYWxTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAzNgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAg
ICAgICAgKGRlZmF1bHRDYWNoZVBhdGgpOgorICAgICAgICAoaW5pdGlhbGl6ZUFwcGxpY2F0aW9u
Q2FjaGVQYXRoSWZOZWNlc3NhcnkpOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFn
ZVByaXZhdGUpOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdl
YlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpRV2ViU2V0
dGluZ3MpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VQYXRoKToKKyAg
ICAgICAgKFFXZWJTZXR0aW5nczo6bG9jYWxTdG9yYWdlUGF0aCk6CisgICAgICAgICogQXBpL3F3
ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIHRlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6
CisgICAgICAgICh0c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZExvY2FsU3RvcmFn
ZSk6CisKIDIwMDktMDgtMTAgIEthdmluZHJhIFBhbGFyYWphICA8a2F2aW5kcmEucGFsYXJhamFA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDog
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAJKHJldmlzaW9uIDQ2OTY5KQorKysgV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NSwyOCArMjY1LDM1IEBAIHN0YXRpYyBpbmxpbmUgUXQ6
OkRyb3BBY3Rpb24gZHJhZ09wVG9Ecm8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMg
dm9pZCBpbml0aWFsaXplQXBwbGljYXRpb25DYWNoZVBhdGhJZk5lY2Vzc2FyeSgpCitzdGF0aWMg
UVN0cmluZyBkZWZhdWx0Q2FjaGVQYXRoKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgICAg
IAotICAgIGlmIChpbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRGV0ZXJt
aW5lIHRoZSBwYXRoIGZvciBIVE1MNSBBcHBsaWNhdGlvbiBDYWNoZSBEQgotICAgIFFTdHJpbmcg
YXBwQ2FjaGVQYXRoOworICAgIC8vIERldGVybWluZSB0aGUgZGVmYXVsdCBjYWNoZSBsb2NhdGlv
bgorICAgIFFTdHJpbmcgY2FjaGVQYXRoOworICAgIAogI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA1
MDAKLSAgICBhcHBDYWNoZVBhdGggPSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdlTG9jYXRpb24o
UURlc2t0b3BTZXJ2aWNlczo6Q2FjaGVMb2NhdGlvbik7CisgICAgY2FjaGVQYXRoID0gUURlc2t0
b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRp
b24pOwogI2Vsc2UKLSAgICBhcHBDYWNoZVBhdGggPSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdl
TG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6RGF0YUxvY2F0aW9uKTsKKyAgICBjYWNoZVBhdGgg
PSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdlTG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6RGF0
YUxvY2F0aW9uKTsKICNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICBpZiAoY2FjaGVQYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgV2ViQ29yZTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KFFEaXI6OmhvbWVQYXRoKCksIFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0
aW9uTmFtZSgpKTsKKyAgICAgICAgCisgICByZXR1cm4gY2FjaGVQYXRoOworfQogCi0gICAgaWYg
KGFwcENhY2hlUGF0aC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcENhY2hlUGF0aCA9IFFEaXI6Omhv
bWVQYXRoKCkgKyBRTGF0aW4xU3RyaW5nKCIvLiIpICsgUUNvcmVBcHBsaWNhdGlvbjo6YXBwbGlj
YXRpb25OYW1lKCk7CitzdGF0aWMgdm9pZCBpbml0aWFsaXplQXBwbGljYXRpb25DYWNoZVBhdGhJ
Zk5lY2Vzc2FyeSgpCit7CiAKLSAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURp
cmVjdG9yeShhcHBDYWNoZVBhdGgpOworICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFs
c2U7CisgICAgCisgICAgaWYgKGluaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBTZXQgSFRNTDUgQXBwbGljYXRpb24gQ2FjaGUgZGVmYXVsdCBsb2NhdGlvbgorICAgIFFXZWJT
ZXR0aW5nczo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRoKGRlZmF1bHRDYWNoZVBh
dGgoKSk7CisgICAgCiAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotI2VuZGlmCiB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKIFFXZWJQYWdlUHJpdmF0
ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKQEAgLTMwOSw2ICszMTYsOSBAQCBRV2Vi
UGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnCiAgICAgcGFnZS0+c2V0dGluZ3Mo
KS0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoImlzby04ODU5LTEiKTsKIAogICAgIHNldHRp
bmdzID0gbmV3IFFXZWJTZXR0aW5ncyhwYWdlLT5zZXR0aW5ncygpKTsKKyAgICAKKyAgICAvLyBT
ZXQgSFRNTDUgbG9jYWxTdG9yYWdlIGRlZmF1bHQgbG9jYXRpb24KKyAgICBzZXR0aW5ncy0+c2V0
TG9jYWxTdG9yYWdlUGF0aChXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGVmYXVs
dENhY2hlUGF0aCgpLCAiTG9jYWxTdG9yYWdlIikpOwogCiAjaWZuZGVmIFFUX05PX1VORE9TVEFD
SwogICAgIHVuZG9TdGFjayA9IDA7CkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lv
biA0Njk2OSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgUUhhc2g8aW50LCBib29sPiBhdHRyaWJ1
dGVzOwogICAgIFFVcmwgdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKICAgICBRU3RyaW5nIGRlZmF1
bHRUZXh0RW5jb2Rpbmc7Ci0gICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7Cisg
ICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VQYXRoOwogICAgIFFTdHJpbmcgb2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVQYXRoOwogICAgIHFpbnQ2NCBvZmZsaW5lU3RvcmFnZURlZmF1bHRRdW90YTsK
IApAQCAtMTY3LDggKzE2Nyw4IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQog
ICAgICAgICBRU3RyaW5nIGVuY29kaW5nID0gIWRlZmF1bHRUZXh0RW5jb2RpbmcuaXNFbXB0eSgp
ID8gZGVmYXVsdFRleHRFbmNvZGluZzogZ2xvYmFsLT5kZWZhdWx0VGV4dEVuY29kaW5nOwogICAg
ICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmcpOwogCi0g
ICAgICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aCA9ICFsb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGguaXNFbXB0eSgpID8gbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoIDogZ2xvYmFsLT5sb2NhbFN0
b3JhZ2VEYXRhYmFzZVBhdGg7Ci0gICAgICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgobG9jYWxTdG9yYWdlUGF0aCk7CisgICAgICAgIFFTdHJpbmcgc3RvcmFnZVBhdGgg
PSAhbG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgPyBsb2NhbFN0b3JhZ2VQYXRoIDogZ2xvYmFs
LT5sb2NhbFN0b3JhZ2VQYXRoOworICAgICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRGF0
YWJhc2VQYXRoKHN0b3JhZ2VQYXRoKTsKIAogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMudmFs
dWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9u
bHkpKTsKQEAgLTE4Niw4ICsxODYsMTQgQEAgdm9pZCBRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBs
eSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmli
dXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZCkpOwogICAgICAgICBzZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFi
bGVkKHZhbHVlKTsKIAorI2lmZGVmIFFUX0RFUFJFQ0FURUQKICAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRGF0YWJhc2VFbmFibGVkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMu
dmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQpKTsKKyNlbmRp
ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFX
ZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZCh2YWx1ZSk7CiAKICAgICAgICAg
dmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6TG9jYWxDb250ZW50Q2FuQWNj
ZXNzUmVtb3RlVXJscywKQEAgLTMyNiw3ICszMzIsNyBAQCBRV2ViU2V0dGluZ3MqIFFXZWJTZXR0
aW5nczo6Z2xvYmFsU2V0dGluCiAgICAgICAgIG9mZmxpbmUgc3RvcmFnZSBmZWF0dXJlIGlzIGVu
YWJsZWQgb3Igbm90LgogICAgIFx2YWx1ZSBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQgU3BlY2lmaWVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgdGhlIEhUTUwgNQogICAgICAgICB3ZWIg
YXBwbGljYXRpb24gY2FjaGUgZmVhdHVyZSBpcyBlbmFibGVkIG9yIG5vdC4KLSAgICBcdmFsdWUg
TG9jYWxTdG9yYWdlRGF0YWJhc2VFbmFibGVkIFNwZWNpZmllcyB3aGV0aGVyIHN1cHBvcnQgZm9y
IHRoZSBIVE1MIDUKKyAgICBcdmFsdWUgTG9jYWxTdG9yYWdlRW5hYmxlZCBTcGVjaWZpZXMgd2hl
dGhlciBzdXBwb3J0IGZvciB0aGUgSFRNTCA1CiAgICAgICAgIGxvY2FsIHN0b3JhZ2UgZmVhdHVy
ZSBpcyBlbmFibGVkIG9yIG5vdC4KICAgICBcdmFsdWUgTG9jYWxDb250ZW50Q2FuQWNjZXNzUmVt
b3RlVXJscyBTcGVjaWZpZXMgd2hldGhlciBsb2NhbGx5IGxvYWRlZCBkb2N1bWVudHMgYXJlIGFs
bG93ZWQgdG8gYWNjZXNzIHJlbW90ZSB1cmxzLgogKi8KQEAgLTM1Niw3ICszNjIsMTAgQEAgUVdl
YlNldHRpbmdzOjpRV2ViU2V0dGluZ3MoKQogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJT
ZXR0aW5nczo6UHJpbnRFbGVtZW50QmFja2dyb3VuZHMsIHRydWUpOwogICAgIGQtPmF0dHJpYnV0
ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6T2ZmbGluZVN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsIHRy
dWUpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkLCB0cnVlKTsKKyNpZmRlZiBRVF9ERVBSRUNBVEVECiAgICAg
ZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZUVu
YWJsZWQsIHRydWUpOworI2VuZGlmCisgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRp
bmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2Vy
dChRV2ViU2V0dGluZ3M6OkxvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsIHRydWUpOwog
ICAgIGQtPm9mZmxpbmVTdG9yYWdlRGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwogfQpA
QCAtODY4LDM2ICs4NzcsNDIgQEAgcWludDY0IFFXZWJTZXR0aW5nczo6b2ZmbGluZVdlYkFwcGxp
Y2F0aQogfQogCiAvKgotICAgIFxzaW5jZSA0LjUKKyAgICBcc2luY2UgNC42CiAgICAgXHJlbGF0
ZXMgUVdlYlNldHRpbmdzCiAKLSAgICBTZXRzIHRoZSBwYXRoIGZvciBIVE1MNSBsb2NhbCBzdG9y
YWdlIGRhdGFiYXNlcyB0byBcYSBwYXRoLgorICAgIFNldHMgdGhlIHBhdGggZm9yIEhUTUw1IGxv
Y2FsIHN0b3JhZ2UgdG8gXGEgcGF0aC4KKyAgICAKKyAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBv
biBIVE1MNSBsb2NhbCBzdG9yYWdlIHNlZSB0aGUKKyAgICBcbHtodHRwOi8vd3d3LnczLm9yZy9U
Ui93ZWJzdG9yYWdlLyN0aGUtbG9jYWxzdG9yYWdlLWF0dHJpYnV0ZX17V2ViIFN0b3JhZ2Ugc3Rh
bmRhcmR9LgogCi0gICAgXGEgcGF0aCBtdXN0IHBvaW50IHRvIGFuIGV4aXN0aW5nIGRpcmVjdG9y
eSB3aGVyZSB0aGUgY2FjaGUgaXMgc3RvcmVkLgorICAgIFxhIHBhdGggbXVzdCBwb2ludCB0byBh
biBleGlzdGluZyBkaXJlY3Rvcnkgd2hlcmUgdGhlIHN0b3JhZ2UgaXMgc2F2ZWQuCiAKICAgICBT
ZXR0aW5nIGFuIGVtcHR5IHBhdGggZGlzYWJsZXMgdGhlIGZlYXR1cmUuCiAKLSAgICBcc2EgbG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoKCkKKyAgICBcc2EgbG9jYWxTdG9yYWdlUGF0aCgpCiAqLwot
dm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGgoUVdlYlNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgUVN0cmluZyYgcGF0aCkKK3ZvaWQg
UVdlYlNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VQYXRoKGNvbnN0IFFTdHJpbmcmIHBhdGgpCiB7
Ci0gICAgUVdlYlNldHRpbmdzUHJpdmF0ZSogZCA9IHNldHRpbmdzLT5oYW5kbGUoKTsKLSAgICBk
LT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOworICAgIGQtPmxvY2FsU3RvcmFnZVBh
dGggPSBwYXRoOwogICAgIGQtPmFwcGx5KCk7CiB9CiAKIC8qCi0gICAgXHNpbmNlIDQuNQorICAg
IFxzaW5jZSA0LjYKICAgICBccmVsYXRlcyBRV2ViU2V0dGluZ3MKIAotICAgIFJldHVybnMgdGhl
IHBhdGggZm9yIEhUTUw1IGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2VzCisgICAgUmV0dXJucyB0aGUg
cGF0aCBmb3IgSFRNTDUgbG9jYWwgc3RvcmFnZQogICAgIG9yIGFuIGVtcHR5IHN0cmluZyBpZiB0
aGUgZmVhdHVyZSBpcyBkaXNhYmxlZC4KLQotICAgIFxzYSBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGgoKQorICAgIAorICAgIFRoZSBwYXRoIGlzIGluaXRpYWxpemVkIHRvIGEgZGlyZWN0b3J5
IGNhbGxlZCBMb2NhbFN0b3JhZ2UgdW5kZXIKKyAgICB0aGUgdXNlci1zcGVjaWZpYyBjYWNoZSBk
YXRhIGxvY2F0aW9uIHNwZWNpZmllZCBieQorICAgIFxse1FEZXNrdG9wU2VydmljZXM6OkNhY2hl
TG9jYXRpb259e0NhY2hlTG9jYXRpb259LgorICAgIAorICAgIFxzYSBzZXRMb2NhbFN0b3JhZ2VQ
YXRoKCkKICovCi1RU3RyaW5nIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnNldHRpbmdzX2xvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aChRV2ViU2V0dGluZ3MqIHNldHRpbmdzKQorUVN0cmluZyBRV2ViU2V0
dGluZ3M6OmxvY2FsU3RvcmFnZVBhdGgoKSBjb25zdAogewotICAgIHJldHVybiBzZXR0aW5ncy0+
aGFuZGxlKCktPmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKKyAgICByZXR1cm4gZC0+bG9jYWxT
dG9yYWdlUGF0aDsKIH0KIAogLyohCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgJKHJldmlzaW9uIDQ2
OTY5KQorKysgV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAt
NjIsNyArNjIsMTAgQEAgcHVibGljOgogICAgICAgICBQcmludEVsZW1lbnRCYWNrZ3JvdW5kcywK
ICAgICAgICAgT2ZmbGluZVN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsCiAgICAgICAgIE9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCwKKyNpZmRlZiBRVF9ERVBSRUNBVEVECiAgICAgICAg
IExvY2FsU3RvcmFnZURhdGFiYXNlRW5hYmxlZCwKKyNlbmRpZgorICAgICAgICBMb2NhbFN0b3Jh
Z2VFbmFibGVkLAogICAgICAgICBMb2NhbENvbnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzCiAgICAg
fTsKICAgICBlbnVtIFdlYkdyYXBoaWMgewpAQCAtMTIxLDYgKzEyNCw5IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUVN0cmluZyBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGgoKTsKICAgICBz
dGF0aWMgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhKHFpbnQ2NCBtYXhp
bXVtU2l6ZSk7CiAgICAgc3RhdGljIHFpbnQ2NCBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVF1
b3RhKCk7CisgICAgCisgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VQYXRoKGNvbnN0IFFTdHJpbmcm
IHBhdGgpOworICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aCgpIGNvbnN0OyAKIAogICAgIHN0
YXRpYyB2b2lkIGNsZWFyTWVtb3J5Q2FjaGVzKCk7CiAKSW5kZXg6IFdlYktpdC9xdC90ZXN0cy9x
d2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC90ZXN0cy9x
d2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA0Njk2OSkKKysrIFdlYktpdC9xdC90
ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjcsNyAr
NjI3LDYgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OmNyZWF0ZVZpZXdsZXNzUGx1Z2luKAogLy8gaW1w
b3J0IHByaXZhdGUgQVBJCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnBhZ2Vfc2V0R3JvdXBO
YW1lKFFXZWJQYWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBncm91cE5hbWUpOwogUVN0cmluZyBR
V0VCS0lUX0VYUE9SVCBxdF93ZWJwYWdlX2dyb3VwTmFtZShRV2ViUGFnZSogcGFnZSk7Ci12b2lk
IFFXRUJLSVRfRVhQT1JUIHF0X3dlYnNldHRpbmdzX3NldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aChRV2ViU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBRU3RyaW5nJiBwYXRoKTsKIAogdm9pZCB0
c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZExvY2FsU3RvcmFnZSgpCiB7CkBAIC02
MzgsOSArNjM3LDkgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZAog
ICAgIFFXZWJWaWV3IHZpZXcxOwogICAgIFFXZWJWaWV3IHZpZXcyOwogCi0gICAgcXRfd2Vic2V0
dGluZ3Nfc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHZpZXcxLnBhZ2UoKS0+c2V0dGluZ3Mo
KSwgUURpcjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRoKCkgKyAiL3BhdGgx
IikpOworICAgIHZpZXcxLnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0TG9jYWxTdG9yYWdlUGF0aChR
RGlyOjp0b05hdGl2ZVNlcGFyYXRvcnMoUURpcjo6Y3VycmVudFBhdGgoKSArICIvcGF0aDEiKSk7
CiAgICAgcXRfd2VicGFnZV9zZXRHcm91cE5hbWUodmlldzEucGFnZSgpLCAiZ3JvdXAxIik7Ci0g
ICAgcXRfd2Vic2V0dGluZ3Nfc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHZpZXcyLnBhZ2Uo
KS0+c2V0dGluZ3MoKSwgUURpcjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRo
KCkgKyAiL3BhdGgyIikpOworICAgIHZpZXcyLnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0TG9jYWxT
dG9yYWdlUGF0aChRRGlyOjp0b05hdGl2ZVNlcGFyYXRvcnMoUURpcjo6Y3VycmVudFBhdGgoKSAr
ICIvcGF0aDIiKSk7CiAgICAgcXRfd2VicGFnZV9zZXRHcm91cE5hbWUodmlldzIucGFnZSgpLCAi
Z3JvdXAyIik7CiAgICAgUUNPTVBBUkUocXRfd2VicGFnZV9ncm91cE5hbWUodmlldzEucGFnZSgp
KSwgUVN0cmluZygiZ3JvdXAxIikpOwogICAgIFFDT01QQVJFKHF0X3dlYnBhZ2VfZ3JvdXBOYW1l
KHZpZXcyLnBhZ2UoKSksIFFTdHJpbmcoImdyb3VwMiIpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34538</attachid>
            <date>2009-08-10 20:24:14 -0700</date>
            <delta_ts>2009-08-14 05:05:25 -0700</delta_ts>
            <desc>4th try.</desc>
            <filename>patch_28036_4.txt</filename>
            <type>text/plain</type>
            <size>10695</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDcwMTcpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDgtMTAgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUHVibGljIEFQSSB0byBjb25maWd1cmUgdGhlIHN0b3JhZ2UgcGF0
aCBmb3IgSFRNTDUgbG9jYWxTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAzNgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAg
ICAgICAgKGRlZmF1bHRDYWNoZVBhdGgpOgorICAgICAgICAoaW5pdGlhbGl6ZUFwcGxpY2F0aW9u
Q2FjaGVQYXRoSWZOZWNlc3NhcnkpOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFn
ZVByaXZhdGUpOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdl
YlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpRV2ViU2V0
dGluZ3MpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VQYXRoKToKKyAg
ICAgICAgKFFXZWJTZXR0aW5nczo6bG9jYWxTdG9yYWdlUGF0aCk6CisgICAgICAgICogQXBpL3F3
ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIHRlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6
CisgICAgICAgICh0c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZExvY2FsU3RvcmFn
ZSk6CisKIDIwMDktMDgtMTAgIEthdmluZHJhIFBhbGFyYWphICA8a2F2aW5kcmEucGFsYXJhamFA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDog
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAJKHJldmlzaW9uIDQ2OTY5KQorKysgV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NSwyOCArMjY1LDM1IEBAIHN0YXRpYyBpbmxpbmUgUXQ6
OkRyb3BBY3Rpb24gZHJhZ09wVG9Ecm8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMg
dm9pZCBpbml0aWFsaXplQXBwbGljYXRpb25DYWNoZVBhdGhJZk5lY2Vzc2FyeSgpCitzdGF0aWMg
UVN0cmluZyBkZWZhdWx0Q2FjaGVQYXRoKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgICAg
IAotICAgIGlmIChpbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRGV0ZXJt
aW5lIHRoZSBwYXRoIGZvciBIVE1MNSBBcHBsaWNhdGlvbiBDYWNoZSBEQgotICAgIFFTdHJpbmcg
YXBwQ2FjaGVQYXRoOworICAgIC8vIERldGVybWluZSB0aGUgZGVmYXVsdCBjYWNoZSBsb2NhdGlv
bgorICAgIFFTdHJpbmcgY2FjaGVQYXRoOworICAgIAogI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA1
MDAKLSAgICBhcHBDYWNoZVBhdGggPSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdlTG9jYXRpb24o
UURlc2t0b3BTZXJ2aWNlczo6Q2FjaGVMb2NhdGlvbik7CisgICAgY2FjaGVQYXRoID0gUURlc2t0
b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRp
b24pOwogI2Vsc2UKLSAgICBhcHBDYWNoZVBhdGggPSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdl
TG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6RGF0YUxvY2F0aW9uKTsKKyAgICBjYWNoZVBhdGgg
PSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdlTG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6RGF0
YUxvY2F0aW9uKTsKICNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICBpZiAoY2FjaGVQYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgY2FjaGVQYXRoID0gUURpcjo6aG9t
ZVBhdGgoKSArIFFMYXRpbjFTdHJpbmcoIi8uIikgKyBRQ29yZUFwcGxpY2F0aW9uOjphcHBsaWNh
dGlvbk5hbWUoKTsKKyAgICAgICAgCisgICByZXR1cm4gY2FjaGVQYXRoOworfQogCi0gICAgaWYg
KGFwcENhY2hlUGF0aC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcENhY2hlUGF0aCA9IFFEaXI6Omhv
bWVQYXRoKCkgKyBRTGF0aW4xU3RyaW5nKCIvLiIpICsgUUNvcmVBcHBsaWNhdGlvbjo6YXBwbGlj
YXRpb25OYW1lKCk7CitzdGF0aWMgdm9pZCBpbml0aWFsaXplQXBwbGljYXRpb25DYWNoZVBhdGhJ
Zk5lY2Vzc2FyeSgpCit7CiAKLSAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURp
cmVjdG9yeShhcHBDYWNoZVBhdGgpOworICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFs
c2U7CisgICAgCisgICAgaWYgKGluaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBTZXQgSFRNTDUgQXBwbGljYXRpb24gQ2FjaGUgZGVmYXVsdCBsb2NhdGlvbgorICAgIFFXZWJT
ZXR0aW5nczo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRoKGRlZmF1bHRDYWNoZVBh
dGgoKSk7CisgICAgCiAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotI2VuZGlmCiB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKIFFXZWJQYWdlUHJpdmF0
ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKQEAgLTMwOSw2ICszMTYsOSBAQCBRV2Vi
UGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnCiAgICAgcGFnZS0+c2V0dGluZ3Mo
KS0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoImlzby04ODU5LTEiKTsKIAogICAgIHNldHRp
bmdzID0gbmV3IFFXZWJTZXR0aW5ncyhwYWdlLT5zZXR0aW5ncygpKTsKKyAgICAKKyAgICAvLyBT
ZXQgSFRNTDUgbG9jYWxTdG9yYWdlIGRlZmF1bHQgbG9jYXRpb24KKyAgICBzZXR0aW5ncy0+c2V0
TG9jYWxTdG9yYWdlUGF0aChXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGVmYXVs
dENhY2hlUGF0aCgpLCAiTG9jYWxTdG9yYWdlIikpOwogCiAjaWZuZGVmIFFUX05PX1VORE9TVEFD
SwogICAgIHVuZG9TdGFjayA9IDA7CkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lv
biA0Njk2OSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgUUhhc2g8aW50LCBib29sPiBhdHRyaWJ1
dGVzOwogICAgIFFVcmwgdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKICAgICBRU3RyaW5nIGRlZmF1
bHRUZXh0RW5jb2Rpbmc7Ci0gICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7Cisg
ICAgUVN0cmluZyBsb2NhbFN0b3JhZ2VQYXRoOwogICAgIFFTdHJpbmcgb2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVQYXRoOwogICAgIHFpbnQ2NCBvZmZsaW5lU3RvcmFnZURlZmF1bHRRdW90YTsK
IApAQCAtMTY3LDggKzE2Nyw4IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQog
ICAgICAgICBRU3RyaW5nIGVuY29kaW5nID0gIWRlZmF1bHRUZXh0RW5jb2RpbmcuaXNFbXB0eSgp
ID8gZGVmYXVsdFRleHRFbmNvZGluZzogZ2xvYmFsLT5kZWZhdWx0VGV4dEVuY29kaW5nOwogICAg
ICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmcpOwogCi0g
ICAgICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aCA9ICFsb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGguaXNFbXB0eSgpID8gbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoIDogZ2xvYmFsLT5sb2NhbFN0
b3JhZ2VEYXRhYmFzZVBhdGg7Ci0gICAgICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgobG9jYWxTdG9yYWdlUGF0aCk7CisgICAgICAgIFFTdHJpbmcgc3RvcmFnZVBhdGgg
PSAhbG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgPyBsb2NhbFN0b3JhZ2VQYXRoIDogZ2xvYmFs
LT5sb2NhbFN0b3JhZ2VQYXRoOworICAgICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRGF0
YWJhc2VQYXRoKHN0b3JhZ2VQYXRoKTsKIAogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMudmFs
dWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9u
bHkpKTsKQEAgLTE4Niw4ICsxODYsMTQgQEAgdm9pZCBRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBs
eSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmli
dXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZCkpOwogICAgICAgICBzZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFi
bGVkKHZhbHVlKTsKIAorI2lmZGVmIFFUX0RFUFJFQ0FURUQKICAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRGF0YWJhc2VFbmFibGVkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMu
dmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQpKTsKKyNlbmRp
ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFX
ZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZCh2YWx1ZSk7CiAKICAgICAgICAg
dmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6TG9jYWxDb250ZW50Q2FuQWNj
ZXNzUmVtb3RlVXJscywKQEAgLTMyNiw3ICszMzIsNyBAQCBRV2ViU2V0dGluZ3MqIFFXZWJTZXR0
aW5nczo6Z2xvYmFsU2V0dGluCiAgICAgICAgIG9mZmxpbmUgc3RvcmFnZSBmZWF0dXJlIGlzIGVu
YWJsZWQgb3Igbm90LgogICAgIFx2YWx1ZSBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQgU3BlY2lmaWVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgdGhlIEhUTUwgNQogICAgICAgICB3ZWIg
YXBwbGljYXRpb24gY2FjaGUgZmVhdHVyZSBpcyBlbmFibGVkIG9yIG5vdC4KLSAgICBcdmFsdWUg
TG9jYWxTdG9yYWdlRGF0YWJhc2VFbmFibGVkIFNwZWNpZmllcyB3aGV0aGVyIHN1cHBvcnQgZm9y
IHRoZSBIVE1MIDUKKyAgICBcdmFsdWUgTG9jYWxTdG9yYWdlRW5hYmxlZCBTcGVjaWZpZXMgd2hl
dGhlciBzdXBwb3J0IGZvciB0aGUgSFRNTCA1CiAgICAgICAgIGxvY2FsIHN0b3JhZ2UgZmVhdHVy
ZSBpcyBlbmFibGVkIG9yIG5vdC4KICAgICBcdmFsdWUgTG9jYWxDb250ZW50Q2FuQWNjZXNzUmVt
b3RlVXJscyBTcGVjaWZpZXMgd2hldGhlciBsb2NhbGx5IGxvYWRlZCBkb2N1bWVudHMgYXJlIGFs
bG93ZWQgdG8gYWNjZXNzIHJlbW90ZSB1cmxzLgogKi8KQEAgLTM1Niw3ICszNjIsMTAgQEAgUVdl
YlNldHRpbmdzOjpRV2ViU2V0dGluZ3MoKQogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJT
ZXR0aW5nczo6UHJpbnRFbGVtZW50QmFja2dyb3VuZHMsIHRydWUpOwogICAgIGQtPmF0dHJpYnV0
ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6T2ZmbGluZVN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsIHRy
dWUpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkLCB0cnVlKTsKKyNpZmRlZiBRVF9ERVBSRUNBVEVECiAgICAg
ZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZUVu
YWJsZWQsIHRydWUpOworI2VuZGlmCisgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRp
bmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2Vy
dChRV2ViU2V0dGluZ3M6OkxvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsIHRydWUpOwog
ICAgIGQtPm9mZmxpbmVTdG9yYWdlRGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwogfQpA
QCAtODY4LDM2ICs4NzcsNDIgQEAgcWludDY0IFFXZWJTZXR0aW5nczo6b2ZmbGluZVdlYkFwcGxp
Y2F0aQogfQogCiAvKgotICAgIFxzaW5jZSA0LjUKKyAgICBcc2luY2UgNC42CiAgICAgXHJlbGF0
ZXMgUVdlYlNldHRpbmdzCiAKLSAgICBTZXRzIHRoZSBwYXRoIGZvciBIVE1MNSBsb2NhbCBzdG9y
YWdlIGRhdGFiYXNlcyB0byBcYSBwYXRoLgorICAgIFNldHMgdGhlIHBhdGggZm9yIEhUTUw1IGxv
Y2FsIHN0b3JhZ2UgdG8gXGEgcGF0aC4KKyAgICAKKyAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBv
biBIVE1MNSBsb2NhbCBzdG9yYWdlIHNlZSB0aGUKKyAgICBcbHtodHRwOi8vd3d3LnczLm9yZy9U
Ui93ZWJzdG9yYWdlLyN0aGUtbG9jYWxzdG9yYWdlLWF0dHJpYnV0ZX17V2ViIFN0b3JhZ2Ugc3Rh
bmRhcmR9LgogCi0gICAgXGEgcGF0aCBtdXN0IHBvaW50IHRvIGFuIGV4aXN0aW5nIGRpcmVjdG9y
eSB3aGVyZSB0aGUgY2FjaGUgaXMgc3RvcmVkLgorICAgIFxhIHBhdGggbXVzdCBwb2ludCB0byBh
biBleGlzdGluZyBkaXJlY3Rvcnkgd2hlcmUgdGhlIHN0b3JhZ2UgaXMgc2F2ZWQuCiAKICAgICBT
ZXR0aW5nIGFuIGVtcHR5IHBhdGggZGlzYWJsZXMgdGhlIGZlYXR1cmUuCiAKLSAgICBcc2EgbG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoKCkKKyAgICBcc2EgbG9jYWxTdG9yYWdlUGF0aCgpCiAqLwot
dm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGgoUVdlYlNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgUVN0cmluZyYgcGF0aCkKK3ZvaWQg
UVdlYlNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VQYXRoKGNvbnN0IFFTdHJpbmcmIHBhdGgpCiB7
Ci0gICAgUVdlYlNldHRpbmdzUHJpdmF0ZSogZCA9IHNldHRpbmdzLT5oYW5kbGUoKTsKLSAgICBk
LT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOworICAgIGQtPmxvY2FsU3RvcmFnZVBh
dGggPSBwYXRoOwogICAgIGQtPmFwcGx5KCk7CiB9CiAKIC8qCi0gICAgXHNpbmNlIDQuNQorICAg
IFxzaW5jZSA0LjYKICAgICBccmVsYXRlcyBRV2ViU2V0dGluZ3MKIAotICAgIFJldHVybnMgdGhl
IHBhdGggZm9yIEhUTUw1IGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2VzCisgICAgUmV0dXJucyB0aGUg
cGF0aCBmb3IgSFRNTDUgbG9jYWwgc3RvcmFnZQogICAgIG9yIGFuIGVtcHR5IHN0cmluZyBpZiB0
aGUgZmVhdHVyZSBpcyBkaXNhYmxlZC4KLQotICAgIFxzYSBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGgoKQorICAgIAorICAgIFRoZSBwYXRoIGlzIGluaXRpYWxpemVkIHRvIGEgZGlyZWN0b3J5
IGNhbGxlZCBMb2NhbFN0b3JhZ2UgdW5kZXIKKyAgICB0aGUgdXNlci1zcGVjaWZpYyBjYWNoZSBk
YXRhIGxvY2F0aW9uIHNwZWNpZmllZCBieQorICAgIFxse1FEZXNrdG9wU2VydmljZXM6OkNhY2hl
TG9jYXRpb259e0NhY2hlTG9jYXRpb259LgorICAgIAorICAgIFxzYSBzZXRMb2NhbFN0b3JhZ2VQ
YXRoKCkKICovCi1RU3RyaW5nIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnNldHRpbmdzX2xvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aChRV2ViU2V0dGluZ3MqIHNldHRpbmdzKQorUVN0cmluZyBRV2ViU2V0
dGluZ3M6OmxvY2FsU3RvcmFnZVBhdGgoKSBjb25zdAogewotICAgIHJldHVybiBzZXR0aW5ncy0+
aGFuZGxlKCktPmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKKyAgICByZXR1cm4gZC0+bG9jYWxT
dG9yYWdlUGF0aDsKIH0KIAogLyohCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgJKHJldmlzaW9uIDQ2
OTY5KQorKysgV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAt
NjIsNyArNjIsMTAgQEAgcHVibGljOgogICAgICAgICBQcmludEVsZW1lbnRCYWNrZ3JvdW5kcywK
ICAgICAgICAgT2ZmbGluZVN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsCiAgICAgICAgIE9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCwKKyNpZmRlZiBRVF9ERVBSRUNBVEVECiAgICAgICAg
IExvY2FsU3RvcmFnZURhdGFiYXNlRW5hYmxlZCwKKyNlbmRpZgorICAgICAgICBMb2NhbFN0b3Jh
Z2VFbmFibGVkLAogICAgICAgICBMb2NhbENvbnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzCiAgICAg
fTsKICAgICBlbnVtIFdlYkdyYXBoaWMgewpAQCAtMTIxLDYgKzEyNCw5IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUVN0cmluZyBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGgoKTsKICAgICBz
dGF0aWMgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhKHFpbnQ2NCBtYXhp
bXVtU2l6ZSk7CiAgICAgc3RhdGljIHFpbnQ2NCBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVF1
b3RhKCk7CisgICAgCisgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VQYXRoKGNvbnN0IFFTdHJpbmcm
IHBhdGgpOworICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aCgpIGNvbnN0OyAKIAogICAgIHN0
YXRpYyB2b2lkIGNsZWFyTWVtb3J5Q2FjaGVzKCk7CiAKSW5kZXg6IFdlYktpdC9xdC90ZXN0cy9x
d2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC90ZXN0cy9x
d2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA0Njk2OSkKKysrIFdlYktpdC9xdC90
ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjcsNyAr
NjI3LDYgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OmNyZWF0ZVZpZXdsZXNzUGx1Z2luKAogLy8gaW1w
b3J0IHByaXZhdGUgQVBJCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnBhZ2Vfc2V0R3JvdXBO
YW1lKFFXZWJQYWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBncm91cE5hbWUpOwogUVN0cmluZyBR
V0VCS0lUX0VYUE9SVCBxdF93ZWJwYWdlX2dyb3VwTmFtZShRV2ViUGFnZSogcGFnZSk7Ci12b2lk
IFFXRUJLSVRfRVhQT1JUIHF0X3dlYnNldHRpbmdzX3NldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aChRV2ViU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBRU3RyaW5nJiBwYXRoKTsKIAogdm9pZCB0
c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZExvY2FsU3RvcmFnZSgpCiB7CkBAIC02
MzgsOSArNjM3LDkgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZAog
ICAgIFFXZWJWaWV3IHZpZXcxOwogICAgIFFXZWJWaWV3IHZpZXcyOwogCi0gICAgcXRfd2Vic2V0
dGluZ3Nfc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHZpZXcxLnBhZ2UoKS0+c2V0dGluZ3Mo
KSwgUURpcjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRoKCkgKyAiL3BhdGgx
IikpOworICAgIHZpZXcxLnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0TG9jYWxTdG9yYWdlUGF0aChR
RGlyOjp0b05hdGl2ZVNlcGFyYXRvcnMoUURpcjo6Y3VycmVudFBhdGgoKSArICIvcGF0aDEiKSk7
CiAgICAgcXRfd2VicGFnZV9zZXRHcm91cE5hbWUodmlldzEucGFnZSgpLCAiZ3JvdXAxIik7Ci0g
ICAgcXRfd2Vic2V0dGluZ3Nfc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHZpZXcyLnBhZ2Uo
KS0+c2V0dGluZ3MoKSwgUURpcjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRo
KCkgKyAiL3BhdGgyIikpOworICAgIHZpZXcyLnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0TG9jYWxT
dG9yYWdlUGF0aChRRGlyOjp0b05hdGl2ZVNlcGFyYXRvcnMoUURpcjo6Y3VycmVudFBhdGgoKSAr
ICIvcGF0aDIiKSk7CiAgICAgcXRfd2VicGFnZV9zZXRHcm91cE5hbWUodmlldzIucGFnZSgpLCAi
Z3JvdXAyIik7CiAgICAgUUNPTVBBUkUocXRfd2VicGFnZV9ncm91cE5hbWUodmlldzEucGFnZSgp
KSwgUVN0cmluZygiZ3JvdXAxIikpOwogICAgIFFDT01QQVJFKHF0X3dlYnBhZ2VfZ3JvdXBOYW1l
KHZpZXcyLnBhZ2UoKSksIFFTdHJpbmcoImdyb3VwMiIpKTsK
</data>
<flag name="review"
          id="18694"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34829</attachid>
            <date>2009-08-14 05:05:25 -0700</date>
            <delta_ts>2009-08-14 06:33:02 -0700</delta_ts>
            <desc>5th try</desc>
            <filename>patch_28036_5.txt</filename>
            <type>text/plain</type>
            <size>13488</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDcyNTQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMDktMDgtMTMgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUHVibGljIEFQSSB0byBjb25maWd1cmUgdGhlIHN0b3JhZ2UgcGF0
aCBmb3IgSFRNTDUgbG9jYWxTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAzNgorCisgICAgICAgIERpc2FibGVzIExvY2FsU3RvcmFnZSBm
b3IgUXRXZWJLaXQgYnkgZGVmYXVsdCBieSBzZXR0aW5nCisgICAgICAgIFFXZWJTZXR0aW5nczo6
TG9jYWxTdG9yYWdlRW5hYmxlZCB0byBmYWxzZS4KKworICAgICAgICBTZXRzIHVwIGEgZGVmYXVs
dCBmb3IgdGhlIExvY2FsU3RvcmFnZSBwYXRoIHNvIHRoYXQgY2xpZW50cyB3b3VsZCBvbmx5Cisg
ICAgICAgIG5lZWQgdG8gZW5hYmxlIHRoZSBMb2NhbFN0b3JhZ2VFbmFibGVkIHNldHRpbmcgdG8g
dHVybiBvbiBMb2NhbFN0b3JhZ3JlCisgICAgICAgIHN1cHBvcnQuCisKKyAgICAgICAgVHVybiBv
biBMb2NhbFN0b3JhZ2Ugc3VwcG9ydCBmb3IgUXRMYXVuY2hlciBhbmQgdGhlIHJlbGV2YW50IHRl
c3QKKyAgICAgICAgc2luY2UgTG9jYWxTdG9yYWdlIGlzIG5vdyBkaXNhYmxlZCBieSBkZWZhdWx0
IGZvciBRdFdlYmtpdC4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChk
ZWZhdWx0Q2FjaGVQYXRoKToKKyAgICAgICAgKGluaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlUGF0
aElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KToKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5n
c1ByaXZhdGU6OmFwcGx5KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKToK
KyAgICAgICAgKFFXZWJTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlUGF0aCk6CisgICAgICAgIChR
V2ViU2V0dGluZ3M6OmxvY2FsU3RvcmFnZVBhdGgpOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGlu
Z3MuaDoKKyAgICAgICAgKiBRdExhdW5jaGVyL21haW4uY3BwOgorICAgICAgICAobWFpbik6Cisg
ICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHRzdF9R
V2ViUGFnZTo6bXVsdGlwbGVQYWdlR3JvdXBzQW5kTG9jYWxTdG9yYWdlKToKKwogMjAwOS0wOC0x
MyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSBhbmQgZml4IHRo
ZSBRdCBidWlsZC4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA0NzEzNSkKKysrIFdlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjUsMjggKzI2NSwzNSBA
QCBzdGF0aWMgaW5saW5lIFF0OjpEcm9wQWN0aW9uIGRyYWdPcFRvRHJvCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZO
ZWNlc3NhcnkoKQorc3RhdGljIFFTdHJpbmcgZGVmYXVsdENhY2hlUGF0aCgpCiB7Ci0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXpl
ZCA9IGZhbHNlOwotICAgICAgICAKLSAgICBpZiAoaW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIC8vIERldGVybWluZSB0aGUgcGF0aCBmb3IgSFRNTDUgQXBwbGljYXRpb24gQ2Fj
aGUgREIKLSAgICBRU3RyaW5nIGFwcENhY2hlUGF0aDsKKyAgICAvLyBEZXRlcm1pbmUgdGhlIGRl
ZmF1bHQgY2FjaGUgbG9jYXRpb24KKyAgICBRU3RyaW5nIGNhY2hlUGF0aDsKKyAgICAKICNpZiBR
VF9WRVJTSU9OID49IDB4MDQwNTAwCi0gICAgYXBwQ2FjaGVQYXRoID0gUURlc2t0b3BTZXJ2aWNl
czo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRpb24pOworICAg
IGNhY2hlUGF0aCA9IFFEZXNrdG9wU2VydmljZXM6OnN0b3JhZ2VMb2NhdGlvbihRRGVza3RvcFNl
cnZpY2VzOjpDYWNoZUxvY2F0aW9uKTsKICNlbHNlCi0gICAgYXBwQ2FjaGVQYXRoID0gUURlc2t0
b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkRhdGFMb2NhdGlv
bik7CisgICAgY2FjaGVQYXRoID0gUURlc2t0b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFE
ZXNrdG9wU2VydmljZXM6OkRhdGFMb2NhdGlvbik7CiAjZW5kaWYKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgaWYgKGNhY2hlUGF0aC5pc0VtcHR5KCkpCisgICAgICAgIGNh
Y2hlUGF0aCA9IFFEaXI6OmhvbWVQYXRoKCkgKyBRTGF0aW4xU3RyaW5nKCIvLiIpICsgUUNvcmVB
cHBsaWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCk7CisgICAgICAgIAorICAgcmV0dXJuIGNhY2hl
UGF0aDsKK30KIAotICAgIGlmIChhcHBDYWNoZVBhdGguaXNFbXB0eSgpKQotICAgICAgICBhcHBD
YWNoZVBhdGggPSBRRGlyOjpob21lUGF0aCgpICsgUUxhdGluMVN0cmluZygiLy4iKSArIFFDb3Jl
QXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpOworc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUFw
cGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3NhcnkoKQorewogCi0gICAgV2ViQ29yZTo6Y2FjaGVT
dG9yYWdlKCkuc2V0Q2FjaGVEaXJlY3RvcnkoYXBwQ2FjaGVQYXRoKTsKKyAgICBzdGF0aWMgYm9v
bCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIAorICAgIGlmIChpbml0aWFsaXplZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gU2V0IEhUTUw1IEFwcGxpY2F0aW9uIENhY2hlIGRlZmF1bHQg
bG9jYXRpb24KKyAgICBRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
UGF0aChkZWZhdWx0Q2FjaGVQYXRoKCkpOworICAgIAogICAgIGluaXRpYWxpemVkID0gdHJ1ZTsK
LSNlbmRpZgogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogCiBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCkBAIC0z
MDksNiArMzE2LDkgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZwog
ICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKCJpc28tODg1
OS0xIik7CiAKICAgICBzZXR0aW5ncyA9IG5ldyBRV2ViU2V0dGluZ3MocGFnZS0+c2V0dGluZ3Mo
KSk7CisgICAgCisgICAgLy8gU2V0IEhUTUw1IGxvY2FsU3RvcmFnZSBkZWZhdWx0IGxvY2F0aW9u
CisgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZVBhdGgoV2ViQ29yZTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGRlZmF1bHRDYWNoZVBhdGgoKSwgIkxvY2FsU3RvcmFnZSIpKTsKIAogI2lm
bmRlZiBRVF9OT19VTkRPU1RBQ0sKICAgICB1bmRvU3RhY2sgPSAwOwpJbmRleDogV2ViS2l0L3F0
L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnNl
dHRpbmdzLmNwcAkocmV2aXNpb24gNDcxMzUpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIFFIYXNo
PGludCwgYm9vbD4gYXR0cmlidXRlczsKICAgICBRVXJsIHVzZXJTdHlsZVNoZWV0TG9jYXRpb247
CiAgICAgUVN0cmluZyBkZWZhdWx0VGV4dEVuY29kaW5nOwotICAgIFFTdHJpbmcgbG9jYWxTdG9y
YWdlRGF0YWJhc2VQYXRoOworICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aDsKICAgICBRU3Ry
aW5nIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aDsKICAgICBxaW50NjQgb2ZmbGluZVN0
b3JhZ2VEZWZhdWx0UXVvdGE7CiAKQEAgLTE2Nyw4ICsxNjcsOCBAQCB2b2lkIFFXZWJTZXR0aW5n
c1ByaXZhdGU6OmFwcGx5KCkKICAgICAgICAgUVN0cmluZyBlbmNvZGluZyA9ICFkZWZhdWx0VGV4
dEVuY29kaW5nLmlzRW1wdHkoKSA/IGRlZmF1bHRUZXh0RW5jb2Rpbmc6IGdsb2JhbC0+ZGVmYXVs
dFRleHRFbmNvZGluZzsKICAgICAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKGVuY29kaW5nKTsKIAotICAgICAgICBRU3RyaW5nIGxvY2FsU3RvcmFnZVBhdGggPSAhbG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoLmlzRW1wdHkoKSA/IGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOwotICAgICAgICBzZXR0aW5ncy0+
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGxvY2FsU3RvcmFnZVBhdGgpOworICAgICAgICBR
U3RyaW5nIHN0b3JhZ2VQYXRoID0gIWxvY2FsU3RvcmFnZVBhdGguaXNFbXB0eSgpID8gbG9jYWxT
dG9yYWdlUGF0aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlUGF0aDsKKyAgICAgICAgc2V0dGluZ3Mt
PnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7CiAKICAgICAgICAgdmFs
dWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJT
ZXR0aW5nczo6Wm9vbVRleHRPbmx5KSk7CkBAIC0xODYsOCArMTg2LDkgQEAgdm9pZCBRV2ViU2V0
dGluZ3NQcml2YXRlOjphcHBseSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6Ok9mZmxpbmVXZWJBcHBs
aWNhdGlvbkNhY2hlRW5hYmxlZCkpOwogICAgICAgICBzZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkKHZhbHVlKTsKIAotICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0
ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1
ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFnZURhdGFiYXNlRW5hYmxlZCkpOworICAgICAgICB2
YWx1ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0
ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHZhbHVlKTsK
IAogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbENv
bnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzLApAQCAtMzI2LDcgKzMyNyw3IEBAIFFXZWJTZXR0aW5n
cyogUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW4KICAgICAgICAgb2ZmbGluZSBzdG9yYWdlIGZl
YXR1cmUgaXMgZW5hYmxlZCBvciBub3QuCiAgICAgXHZhbHVlIE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZCBTcGVjaWZpZXMgd2hldGhlciBzdXBwb3J0IGZvciB0aGUgSFRNTCA1CiAg
ICAgICAgIHdlYiBhcHBsaWNhdGlvbiBjYWNoZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90Lgot
ICAgIFx2YWx1ZSBMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQgU3BlY2lmaWVzIHdoZXRoZXIg
c3VwcG9ydCBmb3IgdGhlIEhUTUwgNQorICAgIFx2YWx1ZSBMb2NhbFN0b3JhZ2VFbmFibGVkIFNw
ZWNpZmllcyB3aGV0aGVyIHN1cHBvcnQgZm9yIHRoZSBIVE1MIDUKICAgICAgICAgbG9jYWwgc3Rv
cmFnZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90LgogICAgIFx2YWx1ZSBMb2NhbENvbnRlbnRD
YW5BY2Nlc3NSZW1vdGVVcmxzIFNwZWNpZmllcyB3aGV0aGVyIGxvY2FsbHkgbG9hZGVkIGRvY3Vt
ZW50cyBhcmUgYWxsb3dlZCB0byBhY2Nlc3MgcmVtb3RlIHVybHMuCiAqLwpAQCAtMzU2LDcgKzM1
Nyw3IEBAIFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKCkKICAgICBkLT5hdHRyaWJ1dGVzLmlu
c2VydChRV2ViU2V0dGluZ3M6OlByaW50RWxlbWVudEJhY2tncm91bmRzLCB0cnVlKTsKICAgICBk
LT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Ok9mZmxpbmVTdG9yYWdlRGF0YWJhc2VF
bmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Ok9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCwgdHJ1ZSk7Ci0gICAgZC0+YXR0cmlidXRl
cy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsIHRydWUp
OworICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5h
YmxlZCwgZmFsc2UpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6TG9j
YWxDb250ZW50Q2FuQWNjZXNzUmVtb3RlVXJscywgdHJ1ZSk7CiAgICAgZC0+b2ZmbGluZVN0b3Jh
Z2VEZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CiB9CkBAIC04NjgsMzYgKzg2OSw0MCBA
QCBxaW50NjQgUVdlYlNldHRpbmdzOjpvZmZsaW5lV2ViQXBwbGljYXRpCiB9CiAKIC8qCi0gICAg
XHNpbmNlIDQuNQorICAgIFxzaW5jZSA0LjYKICAgICBccmVsYXRlcyBRV2ViU2V0dGluZ3MKIAot
ICAgIFNldHMgdGhlIHBhdGggZm9yIEhUTUw1IGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2VzIHRvIFxh
IHBhdGguCi0KLSAgICBcYSBwYXRoIG11c3QgcG9pbnQgdG8gYW4gZXhpc3RpbmcgZGlyZWN0b3J5
IHdoZXJlIHRoZSBjYWNoZSBpcyBzdG9yZWQuCi0KLSAgICBTZXR0aW5nIGFuIGVtcHR5IHBhdGgg
ZGlzYWJsZXMgdGhlIGZlYXR1cmUuCisgICAgU2V0cyB0aGUgcGF0aCBmb3IgSFRNTDUgbG9jYWwg
c3RvcmFnZSB0byBcYSBwYXRoLgorICAgIAorICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIEhU
TUw1IGxvY2FsIHN0b3JhZ2Ugc2VlIHRoZQorICAgIFxse2h0dHA6Ly93d3cudzMub3JnL1RSL3dl
YnN0b3JhZ2UvI3RoZS1sb2NhbHN0b3JhZ2UtYXR0cmlidXRlfXtXZWIgU3RvcmFnZSBzdGFuZGFy
ZH0uCisgICAgCisgICAgU3VwcG9ydCBmb3IgbG9jYWwgc3RvcmFnZSBjYW4gZW5hYmxlZCBieSBz
ZXR0aW5nIHRoZQorICAgIFxse1FXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZH17TG9j
YWxTdG9yYWdlRW5hYmxlZH0gYXR0cmlidXRlLiAgICAgCiAKLSAgICBcc2EgbG9jYWxTdG9yYWdl
RGF0YWJhc2VQYXRoKCkKKyAgICBcc2EgbG9jYWxTdG9yYWdlUGF0aCgpCiAqLwotdm9pZCBRV0VC
S0lUX0VYUE9SVCBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoUVdl
YlNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgUVN0cmluZyYgcGF0aCkKK3ZvaWQgUVdlYlNldHRp
bmdzOjpzZXRMb2NhbFN0b3JhZ2VQYXRoKGNvbnN0IFFTdHJpbmcmIHBhdGgpCiB7Ci0gICAgUVdl
YlNldHRpbmdzUHJpdmF0ZSogZCA9IHNldHRpbmdzLT5oYW5kbGUoKTsKLSAgICBkLT5sb2NhbFN0
b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOworICAgIGQtPmxvY2FsU3RvcmFnZVBhdGggPSBwYXRo
OwogICAgIGQtPmFwcGx5KCk7CiB9CiAKIC8qCi0gICAgXHNpbmNlIDQuNQorICAgIFxzaW5jZSA0
LjYKICAgICBccmVsYXRlcyBRV2ViU2V0dGluZ3MKIAotICAgIFJldHVybnMgdGhlIHBhdGggZm9y
IEhUTUw1IGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2VzCi0gICAgb3IgYW4gZW1wdHkgc3RyaW5nIGlm
IHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgotCi0gICAgXHNhIHNldExvY2FsU3RvcmFnZURhdGFi
YXNlUGF0aCgpCisgICAgUmV0dXJucyB0aGUgcGF0aCBmb3IgSFRNTDUgbG9jYWwgc3RvcmFnZS4K
KyAgICAKKyAgICBUaGUgcGF0aCBpcyBpbml0aWFsaXplZCB0byBhIGRpcmVjdG9yeSBjYWxsZWQg
TG9jYWxTdG9yYWdlIHVuZGVyCisgICAgdGhlIHVzZXItc3BlY2lmaWMgY2FjaGUgZGF0YSBsb2Nh
dGlvbiBzcGVjaWZpZWQgYnkKKyAgICBcbHtRRGVza3RvcFNlcnZpY2VzOjpDYWNoZUxvY2F0aW9u
fXtDYWNoZUxvY2F0aW9ufS4KKyAgICAKKyAgICBcc2Egc2V0TG9jYWxTdG9yYWdlUGF0aCgpCiAq
LwotUVN0cmluZyBRV0VCS0lUX0VYUE9SVCBxdF93ZWJzZXR0aW5nc19sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoUVdlYlNldHRpbmdzKiBzZXR0aW5ncykKK1FTdHJpbmcgUVdlYlNldHRpbmdzOjps
b2NhbFN0b3JhZ2VQYXRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc2V0dGluZ3MtPmhhbmRsZSgp
LT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7CisgICAgcmV0dXJuIGQtPmxvY2FsU3RvcmFnZVBh
dGg7CiB9CiAKIC8qIQpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCShyZXZpc2lvbiA0NzEzNSkKKysr
IFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYy
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgUHJpbnRFbGVtZW50QmFja2dyb3VuZHMsCiAgICAgICAg
IE9mZmxpbmVTdG9yYWdlRGF0YWJhc2VFbmFibGVkLAogICAgICAgICBPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQsCi0gICAgICAgIExvY2FsU3RvcmFnZURhdGFiYXNlRW5hYmxlZCwK
KyAgICAgICAgTG9jYWxTdG9yYWdlRW5hYmxlZCwKKyNpZmRlZiBRVF9ERVBSRUNBVEVECisgICAg
ICAgIExvY2FsU3RvcmFnZURhdGFiYXNlRW5hYmxlZCA9IExvY2FsU3RvcmFnZUVuYWJsZWQsCisj
ZW5kaWYKICAgICAgICAgTG9jYWxDb250ZW50Q2FuQWNjZXNzUmVtb3RlVXJscwogICAgIH07CiAg
ICAgZW51bSBXZWJHcmFwaGljIHsKQEAgLTEyMSw2ICsxMjQsOSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFFTdHJpbmcgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRoKCk7CiAgICAgc3RhdGlj
IHZvaWQgc2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YShxaW50NjQgbWF4aW11bVNp
emUpOwogICAgIHN0YXRpYyBxaW50NjQgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YSgp
OworICAgIAorICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlUGF0aChjb25zdCBRU3RyaW5nJiBwYXRo
KTsKKyAgICBRU3RyaW5nIGxvY2FsU3RvcmFnZVBhdGgoKSBjb25zdDsgCiAKICAgICBzdGF0aWMg
dm9pZCBjbGVhck1lbW9yeUNhY2hlcygpOwogCkluZGV4OiBXZWJLaXQvcXQvUXRMYXVuY2hlci9t
YWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvUXRMYXVuY2hlci9tYWluLmNwcAkocmV2
aXNpb24gNDcxMzUpCisrKyBXZWJLaXQvcXQvUXRMYXVuY2hlci9tYWluLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQyLDYgKzQ0Miw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK
IAogICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJT
ZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHRydWUpOwogICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFs
U2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6RGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZCwgdHJ1ZSk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5zZXRBdHRy
aWJ1dGUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkLCB0cnVlKTsKIAogICAgIGNv
bnN0IFFTdHJpbmdMaXN0IGFyZ3MgPSBhcHAuYXJndW1lbnRzKCk7CiAKSW5kZXg6IFdlYktpdC9x
dC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9x
dC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA0NzEzNSkKKysrIFdl
YktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MjcsNyArNjI3LDYgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OmNyZWF0ZVZpZXdsZXNzUGx1Z2lu
KAogLy8gaW1wb3J0IHByaXZhdGUgQVBJCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnBhZ2Vf
c2V0R3JvdXBOYW1lKFFXZWJQYWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBncm91cE5hbWUpOwog
UVN0cmluZyBRV0VCS0lUX0VYUE9SVCBxdF93ZWJwYWdlX2dyb3VwTmFtZShRV2ViUGFnZSogcGFn
ZSk7Ci12b2lkIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnNldHRpbmdzX3NldExvY2FsU3RvcmFnZURh
dGFiYXNlUGF0aChRV2ViU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBRU3RyaW5nJiBwYXRoKTsK
IAogdm9pZCB0c3RfUVdlYlBhZ2U6Om11bHRpcGxlUGFnZUdyb3Vwc0FuZExvY2FsU3RvcmFnZSgp
CiB7CkBAIC02MzgsOSArNjM3LDExIEBAIHZvaWQgdHN0X1FXZWJQYWdlOjptdWx0aXBsZVBhZ2VH
cm91cHNBbmQKICAgICBRV2ViVmlldyB2aWV3MTsKICAgICBRV2ViVmlldyB2aWV3MjsKIAotICAg
IHF0X3dlYnNldHRpbmdzX3NldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCh2aWV3MS5wYWdlKCkt
PnNldHRpbmdzKCksIFFEaXI6OnRvTmF0aXZlU2VwYXJhdG9ycyhRRGlyOjpjdXJyZW50UGF0aCgp
ICsgIi9wYXRoMSIpKTsKKyAgICB2aWV3MS5wYWdlKCktPnNldHRpbmdzKCktPnNldEF0dHJpYnV0
ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFnZUVuYWJsZWQsIHRydWUpOworICAgIHZpZXcxLnBh
Z2UoKS0+c2V0dGluZ3MoKS0+c2V0TG9jYWxTdG9yYWdlUGF0aChRRGlyOjp0b05hdGl2ZVNlcGFy
YXRvcnMoUURpcjo6Y3VycmVudFBhdGgoKSArICIvcGF0aDEiKSk7CiAgICAgcXRfd2VicGFnZV9z
ZXRHcm91cE5hbWUodmlldzEucGFnZSgpLCAiZ3JvdXAxIik7Ci0gICAgcXRfd2Vic2V0dGluZ3Nf
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHZpZXcyLnBhZ2UoKS0+c2V0dGluZ3MoKSwgUURp
cjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRoKCkgKyAiL3BhdGgyIikpOwor
ICAgIHZpZXcyLnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6
TG9jYWxTdG9yYWdlRW5hYmxlZCwgdHJ1ZSk7ICAgIAorICAgIHZpZXcyLnBhZ2UoKS0+c2V0dGlu
Z3MoKS0+c2V0TG9jYWxTdG9yYWdlUGF0aChRRGlyOjp0b05hdGl2ZVNlcGFyYXRvcnMoUURpcjo6
Y3VycmVudFBhdGgoKSArICIvcGF0aDIiKSk7CiAgICAgcXRfd2VicGFnZV9zZXRHcm91cE5hbWUo
dmlldzIucGFnZSgpLCAiZ3JvdXAyIik7CiAgICAgUUNPTVBBUkUocXRfd2VicGFnZV9ncm91cE5h
bWUodmlldzEucGFnZSgpKSwgUVN0cmluZygiZ3JvdXAxIikpOwogICAgIFFDT01QQVJFKHF0X3dl
YnBhZ2VfZ3JvdXBOYW1lKHZpZXcyLnBhZ2UoKSksIFFTdHJpbmcoImdyb3VwMiIpKTsKSW5kZXg6
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQ3MjU0KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDgtMTMgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUHVibGljIEFQSSB0byBjb25maWd1cmUgdGhlIHN0b3JhZ2UgcGF0
aCBmb3IgSFRNTDUgbG9jYWxTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAzNgorCisgICAgICAgIFR1cm4gb24gTG9jYWxTdG9yYWdlIHN1
cHBvcnQgZm9yIFF0IER1bXBSZW5kZXJUcmVlIHNpbmNlCisgICAgICAgIExvY2FsU3RvcmFnZSBp
cyBub3cgZGlzYWJsZWQgYnkgZGVmdWx0IGZvciBRdFdlYmtpdC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLmNwcDogCisgICAgICAgIChXZWJDb3JlOjpXZWJQ
YWdlOjpXZWJQYWdlKToKKwogMjAwOS0wOC0xMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCBjb3JyZWN0aW5nIG9idmlvdXMgcHl0aG9uIGVycm9y
IHNlZW4gaW4gdGhlIGNvbW1pdCBxdWV1ZS4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5jcHAJKHJldmlzaW9uIDQ3MTM1KQorKysgV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDksNiArMTA5LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShRV2lkZ2V0ICpwYXJlbnQs
IER1bXBSZQogICAgIHNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFz
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIHRydWUpOwogICAgIHNldHRpbmdzKCktPnNldEF0dHJp
YnV0ZShRV2ViU2V0dGluZ3M6OkxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4sIGZhbHNlKTsKICAg
ICBzZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCwg
dHJ1ZSk7CisgICAgc2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6TG9jYWxT
dG9yYWdlRW5hYmxlZCwgdHJ1ZSk7CiAgICAgY29ubmVjdCh0aGlzLCBTSUdOQUwoZ2VvbWV0cnlD
aGFuZ2VSZXF1ZXN0ZWQoY29uc3QgUVJlY3QgJikpLAogICAgICAgICAgICAgdGhpcywgU0xPVChz
ZXRWaWV3R2VvbWV0cnkoY29uc3QgUVJlY3QgJiApKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34837</attachid>
            <date>2009-08-14 06:33:02 -0700</date>
            <delta_ts>2009-08-14 07:19:06 -0700</delta_ts>
            <desc>6th try</desc>
            <filename>patch_28036_5.txt</filename>
            <type>text/plain</type>
            <size>13579</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDcyNTQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMDktMDgtMTMgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUHVibGljIEFQSSB0byBjb25maWd1cmUgdGhlIHN0b3JhZ2UgcGF0
aCBmb3IgSFRNTDUgbG9jYWxTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAzNgorCisgICAgICAgIERpc2FibGVzIExvY2FsU3RvcmFnZSBm
b3IgUXRXZWJLaXQgYnkgZGVmYXVsdCBieSBzZXR0aW5nCisgICAgICAgIFFXZWJTZXR0aW5nczo6
TG9jYWxTdG9yYWdlRW5hYmxlZCB0byBmYWxzZS4KKworICAgICAgICBTZXRzIHVwIGEgZGVmYXVs
dCBmb3IgdGhlIExvY2FsU3RvcmFnZSBwYXRoIHNvIHRoYXQgY2xpZW50cyB3b3VsZCBvbmx5Cisg
ICAgICAgIG5lZWQgdG8gZW5hYmxlIHRoZSBMb2NhbFN0b3JhZ2VFbmFibGVkIHNldHRpbmcgdG8g
dHVybiBvbiBMb2NhbFN0b3JhZ3JlCisgICAgICAgIHN1cHBvcnQuCisKKyAgICAgICAgVHVybiBv
biBMb2NhbFN0b3JhZ2Ugc3VwcG9ydCBmb3IgUXRMYXVuY2hlciBhbmQgdGhlIHJlbGV2YW50IHRl
c3QKKyAgICAgICAgc2luY2UgTG9jYWxTdG9yYWdlIGlzIG5vdyBkaXNhYmxlZCBieSBkZWZhdWx0
IGZvciBRdFdlYmtpdC4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChk
ZWZhdWx0Q2FjaGVQYXRoKToKKyAgICAgICAgKGluaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlUGF0
aElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KToKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5n
c1ByaXZhdGU6OmFwcGx5KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKToK
KyAgICAgICAgKFFXZWJTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlUGF0aCk6CisgICAgICAgIChR
V2ViU2V0dGluZ3M6OmxvY2FsU3RvcmFnZVBhdGgpOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGlu
Z3MuaDoKKyAgICAgICAgKiBRdExhdW5jaGVyL21haW4uY3BwOgorICAgICAgICAobWFpbik6Cisg
ICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHRzdF9R
V2ViUGFnZTo6bXVsdGlwbGVQYWdlR3JvdXBzQW5kTG9jYWxTdG9yYWdlKToKKwogMjAwOS0wOC0x
MyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSBhbmQgZml4IHRo
ZSBRdCBidWlsZC4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA0NzEzNSkKKysrIFdlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjUsMjggKzI2NSwzNSBA
QCBzdGF0aWMgaW5saW5lIFF0OjpEcm9wQWN0aW9uIGRyYWdPcFRvRHJvCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZO
ZWNlc3NhcnkoKQorc3RhdGljIFFTdHJpbmcgZGVmYXVsdENhY2hlUGF0aCgpCiB7Ci0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXpl
ZCA9IGZhbHNlOwotICAgICAgICAKLSAgICBpZiAoaW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIC8vIERldGVybWluZSB0aGUgcGF0aCBmb3IgSFRNTDUgQXBwbGljYXRpb24gQ2Fj
aGUgREIKLSAgICBRU3RyaW5nIGFwcENhY2hlUGF0aDsKKyAgICAvLyBEZXRlcm1pbmUgdGhlIGRl
ZmF1bHQgY2FjaGUgbG9jYXRpb24KKyAgICBRU3RyaW5nIGNhY2hlUGF0aDsKKyAgICAKICNpZiBR
VF9WRVJTSU9OID49IDB4MDQwNTAwCi0gICAgYXBwQ2FjaGVQYXRoID0gUURlc2t0b3BTZXJ2aWNl
czo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRpb24pOworICAg
IGNhY2hlUGF0aCA9IFFEZXNrdG9wU2VydmljZXM6OnN0b3JhZ2VMb2NhdGlvbihRRGVza3RvcFNl
cnZpY2VzOjpDYWNoZUxvY2F0aW9uKTsKICNlbHNlCi0gICAgYXBwQ2FjaGVQYXRoID0gUURlc2t0
b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkRhdGFMb2NhdGlv
bik7CisgICAgY2FjaGVQYXRoID0gUURlc2t0b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFE
ZXNrdG9wU2VydmljZXM6OkRhdGFMb2NhdGlvbik7CiAjZW5kaWYKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgaWYgKGNhY2hlUGF0aC5pc0VtcHR5KCkpCisgICAgICAgIGNh
Y2hlUGF0aCA9IFFEaXI6OmhvbWVQYXRoKCkgKyBRTGF0aW4xU3RyaW5nKCIvLiIpICsgUUNvcmVB
cHBsaWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCk7CisgICAgICAgIAorICAgcmV0dXJuIGNhY2hl
UGF0aDsKK30KIAotICAgIGlmIChhcHBDYWNoZVBhdGguaXNFbXB0eSgpKQotICAgICAgICBhcHBD
YWNoZVBhdGggPSBRRGlyOjpob21lUGF0aCgpICsgUUxhdGluMVN0cmluZygiLy4iKSArIFFDb3Jl
QXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpOworc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUFw
cGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3NhcnkoKQorewogCi0gICAgV2ViQ29yZTo6Y2FjaGVT
dG9yYWdlKCkuc2V0Q2FjaGVEaXJlY3RvcnkoYXBwQ2FjaGVQYXRoKTsKKyAgICBzdGF0aWMgYm9v
bCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIAorICAgIGlmIChpbml0aWFsaXplZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gU2V0IEhUTUw1IEFwcGxpY2F0aW9uIENhY2hlIGRlZmF1bHQg
bG9jYXRpb24KKyAgICBRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
UGF0aChkZWZhdWx0Q2FjaGVQYXRoKCkpOworICAgIAogICAgIGluaXRpYWxpemVkID0gdHJ1ZTsK
LSNlbmRpZgogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogCiBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCkBAIC0z
MDksNiArMzE2LDkgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZwog
ICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKCJpc28tODg1
OS0xIik7CiAKICAgICBzZXR0aW5ncyA9IG5ldyBRV2ViU2V0dGluZ3MocGFnZS0+c2V0dGluZ3Mo
KSk7CisgICAgCisgICAgLy8gU2V0IEhUTUw1IGxvY2FsU3RvcmFnZSBkZWZhdWx0IGxvY2F0aW9u
CisgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZVBhdGgoV2ViQ29yZTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGRlZmF1bHRDYWNoZVBhdGgoKSwgIkxvY2FsU3RvcmFnZSIpKTsKIAogI2lm
bmRlZiBRVF9OT19VTkRPU1RBQ0sKICAgICB1bmRvU3RhY2sgPSAwOwpJbmRleDogV2ViS2l0L3F0
L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnNl
dHRpbmdzLmNwcAkocmV2aXNpb24gNDcxMzUpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIFFIYXNo
PGludCwgYm9vbD4gYXR0cmlidXRlczsKICAgICBRVXJsIHVzZXJTdHlsZVNoZWV0TG9jYXRpb247
CiAgICAgUVN0cmluZyBkZWZhdWx0VGV4dEVuY29kaW5nOwotICAgIFFTdHJpbmcgbG9jYWxTdG9y
YWdlRGF0YWJhc2VQYXRoOworICAgIFFTdHJpbmcgbG9jYWxTdG9yYWdlUGF0aDsKICAgICBRU3Ry
aW5nIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aDsKICAgICBxaW50NjQgb2ZmbGluZVN0
b3JhZ2VEZWZhdWx0UXVvdGE7CiAKQEAgLTE2Nyw4ICsxNjcsOCBAQCB2b2lkIFFXZWJTZXR0aW5n
c1ByaXZhdGU6OmFwcGx5KCkKICAgICAgICAgUVN0cmluZyBlbmNvZGluZyA9ICFkZWZhdWx0VGV4
dEVuY29kaW5nLmlzRW1wdHkoKSA/IGRlZmF1bHRUZXh0RW5jb2Rpbmc6IGdsb2JhbC0+ZGVmYXVs
dFRleHRFbmNvZGluZzsKICAgICAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKGVuY29kaW5nKTsKIAotICAgICAgICBRU3RyaW5nIGxvY2FsU3RvcmFnZVBhdGggPSAhbG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoLmlzRW1wdHkoKSA/IGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOwotICAgICAgICBzZXR0aW5ncy0+
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGxvY2FsU3RvcmFnZVBhdGgpOworICAgICAgICBR
U3RyaW5nIHN0b3JhZ2VQYXRoID0gIWxvY2FsU3RvcmFnZVBhdGguaXNFbXB0eSgpID8gbG9jYWxT
dG9yYWdlUGF0aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlUGF0aDsKKyAgICAgICAgc2V0dGluZ3Mt
PnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7CiAKICAgICAgICAgdmFs
dWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJT
ZXR0aW5nczo6Wm9vbVRleHRPbmx5KSk7CkBAIC0xODYsOCArMTg2LDkgQEAgdm9pZCBRV2ViU2V0
dGluZ3NQcml2YXRlOjphcHBseSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6Ok9mZmxpbmVXZWJBcHBs
aWNhdGlvbkNhY2hlRW5hYmxlZCkpOwogICAgICAgICBzZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkKHZhbHVlKTsKIAotICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0
ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1
ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFnZURhdGFiYXNlRW5hYmxlZCkpOworICAgICAgICB2
YWx1ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0
ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHZhbHVlKTsK
IAogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpMb2NhbENv
bnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzLApAQCAtMzI2LDggKzMyNyw4IEBAIFFXZWJTZXR0aW5n
cyogUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW4KICAgICAgICAgb2ZmbGluZSBzdG9yYWdlIGZl
YXR1cmUgaXMgZW5hYmxlZCBvciBub3QuCiAgICAgXHZhbHVlIE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZCBTcGVjaWZpZXMgd2hldGhlciBzdXBwb3J0IGZvciB0aGUgSFRNTCA1CiAg
ICAgICAgIHdlYiBhcHBsaWNhdGlvbiBjYWNoZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90Lgot
ICAgIFx2YWx1ZSBMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQgU3BlY2lmaWVzIHdoZXRoZXIg
c3VwcG9ydCBmb3IgdGhlIEhUTUwgNQotICAgICAgICBsb2NhbCBzdG9yYWdlIGZlYXR1cmUgaXMg
ZW5hYmxlZCBvciBub3QuCisgICAgXHZhbHVlIExvY2FsU3RvcmFnZUVuYWJsZWQgU3BlY2lmaWVz
IHdoZXRoZXIgc3VwcG9ydCBmb3IgdGhlIEhUTUwgNQorICAgICAgICBsb2NhbCBzdG9yYWdlIGZl
YXR1cmUgaXMgZW5hYmxlZCBvciBub3QuIERpc2FibGVkIGJ5IGRlZmF1bHQuCiAgICAgXHZhbHVl
IExvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMgU3BlY2lmaWVzIHdoZXRoZXIgbG9jYWxs
eSBsb2FkZWQgZG9jdW1lbnRzIGFyZSBhbGxvd2VkIHRvIGFjY2VzcyByZW1vdGUgdXJscy4KICov
CiAKQEAgLTM1Niw3ICszNTcsNyBAQCBRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncygpCiAgICAg
ZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpQcmludEVsZW1lbnRCYWNrZ3JvdW5k
cywgdHJ1ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpPZmZsaW5l
U3RvcmFnZURhdGFiYXNlRW5hYmxlZCwgdHJ1ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQo
UVdlYlNldHRpbmdzOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsIHRydWUpOwot
ICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRGF0YWJh
c2VFbmFibGVkLCB0cnVlKTsKKyAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6
OkxvY2FsU3RvcmFnZUVuYWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChR
V2ViU2V0dGluZ3M6OkxvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsIHRydWUpOwogICAg
IGQtPm9mZmxpbmVTdG9yYWdlRGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwogfQpAQCAt
ODY3LDM3ICs4NjgsNDEgQEAgcWludDY0IFFXZWJTZXR0aW5nczo6b2ZmbGluZVdlYkFwcGxpY2F0
aQogI2VuZGlmCiB9CiAKLS8qCi0gICAgXHNpbmNlIDQuNQorLyohCisgICAgXHNpbmNlIDQuNgog
ICAgIFxyZWxhdGVzIFFXZWJTZXR0aW5ncwogCi0gICAgU2V0cyB0aGUgcGF0aCBmb3IgSFRNTDUg
bG9jYWwgc3RvcmFnZSBkYXRhYmFzZXMgdG8gXGEgcGF0aC4KLQotICAgIFxhIHBhdGggbXVzdCBw
b2ludCB0byBhbiBleGlzdGluZyBkaXJlY3Rvcnkgd2hlcmUgdGhlIGNhY2hlIGlzIHN0b3JlZC4K
LQotICAgIFNldHRpbmcgYW4gZW1wdHkgcGF0aCBkaXNhYmxlcyB0aGUgZmVhdHVyZS4KKyAgICBT
ZXRzIHRoZSBwYXRoIGZvciBIVE1MNSBsb2NhbCBzdG9yYWdlIHRvIFxhIHBhdGguCisgICAgCisg
ICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gSFRNTDUgbG9jYWwgc3RvcmFnZSBzZWUgdGhlCisg
ICAgXGx7aHR0cDovL3d3dy53My5vcmcvVFIvd2Vic3RvcmFnZS8jdGhlLWxvY2Fsc3RvcmFnZS1h
dHRyaWJ1dGV9e1dlYiBTdG9yYWdlIHN0YW5kYXJkfS4KKyAgICAKKyAgICBTdXBwb3J0IGZvciBs
b2NhbCBzdG9yYWdlIGNhbiBlbmFibGVkIGJ5IHNldHRpbmcgdGhlCisgICAgXGx7UVdlYlNldHRp
bmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkfXtMb2NhbFN0b3JhZ2VFbmFibGVkfSBhdHRyaWJ1dGUu
ICAgICAKIAotICAgIFxzYSBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKQorICAgIFxzYSBsb2Nh
bFN0b3JhZ2VQYXRoKCkKICovCi12b2lkIFFXRUJLSVRfRVhQT1JUIHF0X3dlYnNldHRpbmdzX3Nl
dExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChRV2ViU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBR
U3RyaW5nJiBwYXRoKQordm9pZCBRV2ViU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVBhdGgoY29u
c3QgUVN0cmluZyYgcGF0aCkKIHsKLSAgICBRV2ViU2V0dGluZ3NQcml2YXRlKiBkID0gc2V0dGlu
Z3MtPmhhbmRsZSgpOwotICAgIGQtPmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCA9IHBhdGg7Cisg
ICAgZC0+bG9jYWxTdG9yYWdlUGF0aCA9IHBhdGg7CiAgICAgZC0+YXBwbHkoKTsKIH0KIAotLyoK
LSAgICBcc2luY2UgNC41CisvKiEKKyAgICBcc2luY2UgNC42CiAgICAgXHJlbGF0ZXMgUVdlYlNl
dHRpbmdzCiAKLSAgICBSZXR1cm5zIHRoZSBwYXRoIGZvciBIVE1MNSBsb2NhbCBzdG9yYWdlIGRh
dGFiYXNlcwotICAgIG9yIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgZmVhdHVyZSBpcyBkaXNhYmxl
ZC4KLQotICAgIFxzYSBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKQorICAgIFJldHVybnMg
dGhlIHBhdGggZm9yIEhUTUw1IGxvY2FsIHN0b3JhZ2UuCisgICAgCisgICAgVGhlIHBhdGggaXMg
aW5pdGlhbGl6ZWQgdG8gYSBkaXJlY3RvcnkgY2FsbGVkIExvY2FsU3RvcmFnZSB1bmRlcgorICAg
IHRoZSB1c2VyLXNwZWNpZmljIGNhY2hlIGRhdGEgbG9jYXRpb24gc3BlY2lmaWVkIGJ5CisgICAg
XGx7UURlc2t0b3BTZXJ2aWNlczo6Q2FjaGVMb2NhdGlvbn17Q2FjaGVMb2NhdGlvbn0uCisgICAg
CisgICAgXHNhIHNldExvY2FsU3RvcmFnZVBhdGgoKQogKi8KLVFTdHJpbmcgUVdFQktJVF9FWFBP
UlQgcXRfd2Vic2V0dGluZ3NfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKFFXZWJTZXR0aW5ncyog
c2V0dGluZ3MpCitRU3RyaW5nIFFXZWJTZXR0aW5nczo6bG9jYWxTdG9yYWdlUGF0aCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHNldHRpbmdzLT5oYW5kbGUoKS0+bG9jYWxTdG9yYWdlRGF0YWJhc2VQ
YXRoOworICAgIHJldHVybiBkLT5sb2NhbFN0b3JhZ2VQYXRoOwogfQogCiAvKiEKSW5kZXg6IFdl
YktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuaAkocmV2aXNpb24gNDcxMzUpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0
aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2MiwxMCBAQCBwdWJsaWM6CiAgICAgICAg
IFByaW50RWxlbWVudEJhY2tncm91bmRzLAogICAgICAgICBPZmZsaW5lU3RvcmFnZURhdGFiYXNl
RW5hYmxlZCwKICAgICAgICAgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkLAotICAg
ICAgICBMb2NhbFN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsCisgICAgICAgIExvY2FsU3RvcmFnZUVu
YWJsZWQsCisjaWZkZWYgUVRfREVQUkVDQVRFRAorICAgICAgICBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZUVuYWJsZWQgPSBMb2NhbFN0b3JhZ2VFbmFibGVkLAorI2VuZGlmCiAgICAgICAgIExvY2FsQ29u
dGVudENhbkFjY2Vzc1JlbW90ZVVybHMKICAgICB9OwogICAgIGVudW0gV2ViR3JhcGhpYyB7CkBA
IC0xMjEsNiArMTI0LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBRU3RyaW5nIG9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlUGF0aCgpOwogICAgIHN0YXRpYyB2b2lkIHNldE9mZmxpbmVXZWJBcHBs
aWNhdGlvbkNhY2hlUXVvdGEocWludDY0IG1heGltdW1TaXplKTsKICAgICBzdGF0aWMgcWludDY0
IG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKKyAgICAKKyAgICB2b2lkIHNldExv
Y2FsU3RvcmFnZVBhdGgoY29uc3QgUVN0cmluZyYgcGF0aCk7CisgICAgUVN0cmluZyBsb2NhbFN0
b3JhZ2VQYXRoKCkgY29uc3Q7IAogCiAgICAgc3RhdGljIHZvaWQgY2xlYXJNZW1vcnlDYWNoZXMo
KTsKIApJbmRleDogV2ViS2l0L3F0L1F0TGF1bmNoZXIvbWFpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3F0L1F0TGF1bmNoZXIvbWFpbi5jcHAJKHJldmlzaW9uIDQ3MTM1KQorKysgV2ViS2l0
L3F0L1F0TGF1bmNoZXIvbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0Miw2ICs0NDIsNyBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgICBRV2ViU2V0dGluZ3M6Omds
b2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBsdWdpbnNFbmFibGVk
LCB0cnVlKTsKICAgICBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0
ZShRV2ViU2V0dGluZ3M6OkRldmVsb3BlckV4dHJhc0VuYWJsZWQsIHRydWUpOworICAgIFFXZWJT
ZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6TG9j
YWxTdG9yYWdlRW5hYmxlZCwgdHJ1ZSk7CiAKICAgICBjb25zdCBRU3RyaW5nTGlzdCBhcmdzID0g
YXBwLmFyZ3VtZW50cygpOwogCkluZGV4OiBXZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3
ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3
ZWJwYWdlLmNwcAkocmV2aXNpb24gNDcxMzUpCisrKyBXZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2Uv
dHN0X3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjI3LDcgKzYyNyw2IEBAIHZvaWQg
dHN0X1FXZWJQYWdlOjpjcmVhdGVWaWV3bGVzc1BsdWdpbigKIC8vIGltcG9ydCBwcml2YXRlIEFQ
SQogdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93ZWJwYWdlX3NldEdyb3VwTmFtZShRV2ViUGFnZSog
cGFnZSwgY29uc3QgUVN0cmluZyYgZ3JvdXBOYW1lKTsKIFFTdHJpbmcgUVdFQktJVF9FWFBPUlQg
cXRfd2VicGFnZV9ncm91cE5hbWUoUVdlYlBhZ2UqIHBhZ2UpOwotdm9pZCBRV0VCS0lUX0VYUE9S
VCBxdF93ZWJzZXR0aW5nc19zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoUVdlYlNldHRpbmdz
KiBzZXR0aW5ncywgY29uc3QgUVN0cmluZyYgcGF0aCk7CiAKIHZvaWQgdHN0X1FXZWJQYWdlOjpt
dWx0aXBsZVBhZ2VHcm91cHNBbmRMb2NhbFN0b3JhZ2UoKQogewpAQCAtNjM4LDkgKzYzNywxMSBA
QCB2b2lkIHRzdF9RV2ViUGFnZTo6bXVsdGlwbGVQYWdlR3JvdXBzQW5kCiAgICAgUVdlYlZpZXcg
dmlldzE7CiAgICAgUVdlYlZpZXcgdmlldzI7CiAKLSAgICBxdF93ZWJzZXR0aW5nc19zZXRMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGgodmlldzEucGFnZSgpLT5zZXR0aW5ncygpLCBRRGlyOjp0b05h
dGl2ZVNlcGFyYXRvcnMoUURpcjo6Y3VycmVudFBhdGgoKSArICIvcGF0aDEiKSk7CisgICAgdmll
dzEucGFnZSgpLT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpMb2NhbFN0
b3JhZ2VFbmFibGVkLCB0cnVlKTsKKyAgICB2aWV3MS5wYWdlKCktPnNldHRpbmdzKCktPnNldExv
Y2FsU3RvcmFnZVBhdGgoUURpcjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRo
KCkgKyAiL3BhdGgxIikpOwogICAgIHF0X3dlYnBhZ2Vfc2V0R3JvdXBOYW1lKHZpZXcxLnBhZ2Uo
KSwgImdyb3VwMSIpOwotICAgIHF0X3dlYnNldHRpbmdzX3NldExvY2FsU3RvcmFnZURhdGFiYXNl
UGF0aCh2aWV3Mi5wYWdlKCktPnNldHRpbmdzKCksIFFEaXI6OnRvTmF0aXZlU2VwYXJhdG9ycyhR
RGlyOjpjdXJyZW50UGF0aCgpICsgIi9wYXRoMiIpKTsKKyAgICB2aWV3Mi5wYWdlKCktPnNldHRp
bmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFnZUVuYWJsZWQsIHRy
dWUpOyAgICAKKyAgICB2aWV3Mi5wYWdlKCktPnNldHRpbmdzKCktPnNldExvY2FsU3RvcmFnZVBh
dGgoUURpcjo6dG9OYXRpdmVTZXBhcmF0b3JzKFFEaXI6OmN1cnJlbnRQYXRoKCkgKyAiL3BhdGgy
IikpOwogICAgIHF0X3dlYnBhZ2Vfc2V0R3JvdXBOYW1lKHZpZXcyLnBhZ2UoKSwgImdyb3VwMiIp
OwogICAgIFFDT01QQVJFKHF0X3dlYnBhZ2VfZ3JvdXBOYW1lKHZpZXcxLnBhZ2UoKSksIFFTdHJp
bmcoImdyb3VwMSIpKTsKICAgICBRQ09NUEFSRShxdF93ZWJwYWdlX2dyb3VwTmFtZSh2aWV3Mi5w
YWdlKCkpLCBRU3RyaW5nKCJncm91cDIiKSk7CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NzI1NCkKKysr
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisy
MDA5LTA4LTEzICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFB1Ymxp
YyBBUEkgdG8gY29uZmlndXJlIHRoZSBzdG9yYWdlIHBhdGggZm9yIEhUTUw1IGxvY2FsU3RvcmFn
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgwMzYK
KworICAgICAgICBUdXJuIG9uIExvY2FsU3RvcmFnZSBzdXBwb3J0IGZvciBRdCBEdW1wUmVuZGVy
VHJlZSBzaW5jZQorICAgICAgICBMb2NhbFN0b3JhZ2UgaXMgbm93IGRpc2FibGVkIGJ5IGRlZnVs
dCBmb3IgUXRXZWJraXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVy
VHJlZS5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6V2ViUGFnZTo6V2ViUGFnZSk6CisKIDIwMDkt
MDgtMTMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIE5vIHJldmll
dywgY29ycmVjdGluZyBvYnZpb3VzIHB5dGhvbiBlcnJvciBzZWVuIGluIHRoZSBjb21taXQgcXVl
dWUuCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWUuY3BwCShyZXZpc2lvbiA0NzEzNSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0R1bXBSZW5kZXJUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBA
IFdlYlBhZ2U6OldlYlBhZ2UoUVdpZGdldCAqcGFyZW50LCBEdW1wUmUKICAgICBzZXR0aW5ncygp
LT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
LCB0cnVlKTsKICAgICBzZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpMaW5r
c0luY2x1ZGVkSW5Gb2N1c0NoYWluLCBmYWxzZSk7CiAgICAgc2V0dGluZ3MoKS0+c2V0QXR0cmli
dXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHRydWUpOworICAgIHNldHRpbmdzKCkt
PnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFnZUVuYWJsZWQsIHRydWUpOwog
ICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKGdlb21ldHJ5Q2hhbmdlUmVxdWVzdGVkKGNvbnN0IFFS
ZWN0ICYpKSwKICAgICAgICAgICAgIHRoaXMsIFNMT1Qoc2V0Vmlld0dlb21ldHJ5KGNvbnN0IFFS
ZWN0ICYgKSkpOwogCg==
</data>
<flag name="review"
          id="19034"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>