<?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>109562</bug_id>
          
          <creation_ts>2013-02-12 03:51:14 -0800</creation_ts>
          <short_desc>[Qt][WK2] Layer QtDownloadManager on the C API</short_desc>
          <delta_ts>2013-03-12 04:20:54 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>109564</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jocelyn Turcotte">jturcotte</reporter>
          <assigned_to name="Jocelyn Turcotte">jturcotte</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>jturcotte</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830763</commentid>
    <comment_count>0</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-12 03:51:14 -0800</bug_when>
    <thetext>[Qt][WK2] Layer QtDownloadManager on the C API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830764</commentid>
    <comment_count>1</comment_count>
      <attachid>187828</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-12 03:52:15 -0800</bug_when>
    <thetext>Created attachment 187828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830849</commentid>
    <comment_count>2</comment_count>
      <attachid>187828</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-12 05:54:12 -0800</bug_when>
    <thetext>Comment on attachment 187828
Patch

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

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:65
&gt; +    QtDownloadManager* q = toQtDownloadManager(clientInfo);

manager?

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:72
&gt; +    downloadItem-&gt;d-&gt;sourceUrl = WKURLCopyQUrl(WKURLResponseCopyURL(response));
&gt; +    downloadItem-&gt;d-&gt;mimeType = WKStringCopyQString(WKURLResponseCopyMIMEType(response));

I get confused when I see a Copy method and no adopt :-) but I get it, Qt types!

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:101
&gt; +    QtDownloadManager* q = toQtDownloadManager(clientInfo);

s/q/self/ ? that is what we use for EFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830851</commentid>
    <comment_count>3</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-12 06:00:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 187828 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187828&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:65
&gt; &gt; +    QtDownloadManager* q = toQtDownloadManager(clientInfo);
&gt; 
&gt; manager?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:101
&gt; &gt; +    QtDownloadManager* q = toQtDownloadManager(clientInfo);
&gt; 
&gt; s/q/self/ ? that is what we use for EFL

The goal is to mimic the effect of the Q_Q and Q_D macros, q for a main class, d if clientInfo is a private class. This is the convention we agreed on ATM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833838</commentid>
    <comment_count>4</comment_count>
      <attachid>188523</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-15 02:58:28 -0800</bug_when>
    <thetext>Created attachment 188523
Patch

Add some missing adoptWK(&lt;WK*Copy*()&gt;).get().
Also use the new WKURLCopyQString in QtWebError instead of doing WKStringCopyQString(WKURLCopyString(...)).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833883</commentid>
    <comment_count>5</comment_count>
      <attachid>188523</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-15 04:15:32 -0800</bug_when>
    <thetext>Comment on attachment 188523
Patch

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

LGTM

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:63
&gt; +void QtDownloadManager::didReceiveResponse(WKContextRef, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo)

* alignment

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:79
&gt; +void QtDownloadManager::didCreateDestination(WKContextRef, WKDownloadRef download, WKStringRef path, const void *clientInfo)

same</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848781</commentid>
    <comment_count>6</comment_count>
      <attachid>188523</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-03-06 06:04:28 -0800</bug_when>
    <thetext>Comment on attachment 188523
Patch

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

LGTM, too

&gt; Source/WebKit2/UIProcess/qt/QtWebError.cpp:60
&gt; -    return WKStringCopyQString(WKURLCopyString(WKErrorCopyFailingURL(error.get())));
&gt; +    return WKURLCopyQString(adoptWK(WKErrorCopyFailingURL(error.get())).get());

Nice catch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850457</commentid>
    <comment_count>7</comment_count>
      <attachid>188523</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-07 13:48:25 -0800</bug_when>
    <thetext>Comment on attachment 188523
Patch

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

Good for WebKit2.

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:71
&gt; +    downloadItem-&gt;d-&gt;sourceUrl = WKURLCopyQUrl(adoptWK(WKURLResponseCopyURL(response)).get());

a new adoptToQURL?

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:72
&gt; +    downloadItem-&gt;d-&gt;mimeType = WKStringCopyQString(adoptWK(WKURLResponseCopyMIMEType(response)).get());

adoptToQString?

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:74
&gt; +    downloadItem-&gt;d-&gt;suggestedFilename = WKStringCopyQString(adoptWK(WKURLResponseCopySuggestedFilename(response)).get());

adoptToQString?

&gt; Source/WebKit2/UIProcess/qt/QtWebError.cpp:65
&gt; -    return WKStringCopyQString(WKErrorCopyLocalizedDescription(error.get()));
&gt; +    return WKStringCopyQString(adoptWK(WKErrorCopyLocalizedDescription(error.get())).get());

adoptToQString instead of adoptWK().get()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852247</commentid>
    <comment_count>8</comment_count>
      <attachid>192459</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-11 06:54:45 -0700</bug_when>
    <thetext>Created attachment 192459
Patch

Added adoptToQURL(WKURLRef) and adoptToQString(WKURLRef).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853323</commentid>
    <comment_count>9</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-12 04:20:54 -0700</bug_when>
    <thetext>Committed r145519: &lt;http://trac.webkit.org/changeset/145519&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187828</attachid>
            <date>2013-02-12 03:52:15 -0800</date>
            <delta_ts>2013-02-15 02:58:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109562-20130212124845.patch</filename>
            <type>text/plain</type>
            <size>11729</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjM3OTNiOTc1ZmVmN2Rh
Y2ZmZGU1NzI1NjU1MTA1OTU0Yzg5MWU5NC4uZjFjMTcyY2Q2ZjI4NmQ3MDg3NDVjYTM4MmYwNWYx
NTg0YTFlMDdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEzLTAyLTEyICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XVtXSzJdIExheWVyIFF0RG93bmxvYWRNYW5hZ2VyIG9uIHRoZSBDIEFQSQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTYyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZURv
d25sb2FkUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9RdERvd25sb2FkTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFuYWdlcjo6UXREb3dubG9hZE1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFuYWdlcjo6YWRkRG93bmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9hZE1hbmFnZXI6OmRpZENyZWF0ZURlc3RpbmF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9hZE1hbmFnZXI6OmRpZEZpbmlzaERvd25s
b2FkKToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9hZE1hbmFnZXI6OmRpZEZhaWxEb3dubG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6OlF0RG93bmxvYWRNYW5hZ2VyOjpkaWRSZWNlaXZlRGF0YUZv
ckRvd25sb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChRdERvd25sb2FkTWFuYWdlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0V2Vi
Q29udGV4dDo6UXRXZWJDb250ZXh0KToKKworMjAxMy0wMi0xMiAgSm9jZWx5biBUdXJjb3R0ZSAg
PGpvY2VseW4udHVyY290dGVAZGlnaWEuY29tPgorCiAgICAgICAgIFtRdF0gUHJvcGVybHkgbGF5
ZXIgUXRXZWJDb250ZXh0IG9uIHRvcCBvZiB0aGUgQyBBUEkKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODQ3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCAyNjY3OTE4MTYwYjBl
NWJlZjhiNjAwMmE4Yjk3YzA3Y2YzZmYwNjM2Li45NzM0ZWU0M2U3YjYzNDJlMjI5N2ViMDM2ZTZi
MDU4MGRhNTVmYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAKQEAgLTYyMiw3ICs2MjIsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSogZG93bmxvYWQpCiAg
ICAgZG93bmxvYWRJdGVtLT5kLT5kb3dubG9hZFByb3h5ID0gZG93bmxvYWQ7CiAKICAgICBxLT5j
b25uZWN0KGRvd25sb2FkSXRlbS0+ZCwgU0lHTkFMKHJlY2VpdmVkUmVzcG9uc2UoUVdlYkRvd25s
b2FkSXRlbSopKSwgcSwgU0xPVChfcV9vblJlY2VpdmVkUmVzcG9uc2VGcm9tRG93bmxvYWQoUVdl
YkRvd25sb2FkSXRlbSopKSk7Ci0gICAgUXRXZWJDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpLT5k
b3dubG9hZE1hbmFnZXIoKS0+YWRkRG93bmxvYWQoZG93bmxvYWQsIGRvd25sb2FkSXRlbSk7Cisg
ICAgUXRXZWJDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpLT5kb3dubG9hZE1hbmFnZXIoKS0+YWRk
RG93bmxvYWQodG9BUEkoZG93bmxvYWQpLCBkb3dubG9hZEl0ZW0pOwogfQogCiB2b2lkIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpfcV9vblZpc2libGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4IGViNzZmMWFlZDcx
YThjOGYzYzc4OGRjMDhkM2ZkYjNlNDZkYjUzNTIuLjZlOWE3YWQ0ZGU1OTI4MDBkYTQ4ZjlkZDIx
NWIzNDIyMmQyYjIwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dERvd25sb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
RG93bmxvYWRNYW5hZ2VyLmNwcApAQCAtMjEsMTcgKzIxLDIzIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiUXREb3dubG9hZE1hbmFnZXIuaCIKIAotI2luY2x1ZGUgIkRvd25sb2Fk
UHJveHkuaCIKICNpbmNsdWRlICJRdFdlYkVycm9yLmgiCi0jaW5jbHVkZSAiV0tTdHJpbmdRdC5o
IgotI2luY2x1ZGUgIldLVVJMUXQuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVk
ZSAicXdlYmRvd25sb2FkaXRlbV9wLmgiCiAjaW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wX3Au
aCIKKyNpbmNsdWRlIDxXS0Rvd25sb2FkLmg+CisjaW5jbHVkZSA8V0tTdHJpbmdRdC5oPgorI2lu
Y2x1ZGUgPFdLVVJMUXQuaD4KKyNpbmNsdWRlIDxXS1VSTFJlc3BvbnNlLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1RdERvd25sb2FkTWFuYWdlcjo6UXREb3dubG9hZE1hbmFnZXIoV2ViQ29u
dGV4dCogY29udGV4dCkKK3N0YXRpYyBpbmxpbmUgUXREb3dubG9hZE1hbmFnZXIqIHRvUXREb3du
bG9hZE1hbmFnZXIoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBBU1NFUlQoY2xpZW50
SW5mbyk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXREb3dubG9hZE1hbmFnZXIqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Cit9CisKK1F0RG93bmxvYWRNYW5hZ2VyOjpR
dERvd25sb2FkTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICBXS0NvbnRleHRE
b3dubG9hZENsaWVudCBkb3dubG9hZENsaWVudDsKICAgICBtZW1zZXQoJmRvd25sb2FkQ2xpZW50
LCAwLCBzaXplb2YoV0tDb250ZXh0RG93bmxvYWRDbGllbnQpKTsKQEAgLTQyLDUyICs0OCw2MCBA
QCBRdERvd25sb2FkTWFuYWdlcjo6UXREb3dubG9hZE1hbmFnZXIoV2ViQ29udGV4dCogY29udGV4
dCkKICAgICBkb3dubG9hZENsaWVudC5kaWRDcmVhdGVEZXN0aW5hdGlvbiA9IGRpZENyZWF0ZURl
c3RpbmF0aW9uOwogICAgIGRvd25sb2FkQ2xpZW50LmRpZEZpbmlzaCA9IGRpZEZpbmlzaERvd25s
b2FkOwogICAgIGRvd25sb2FkQ2xpZW50LmRpZEZhaWwgPSBkaWRGYWlsRG93bmxvYWQ7Ci0gICAg
V0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQodG9BUEkoY29udGV4dCksICZkb3dubG9hZENsaWVu
dCk7CisgICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQoY29udGV4dCwgJmRvd25sb2FkQ2xp
ZW50KTsKIH0KIAogUXREb3dubG9hZE1hbmFnZXI6On5RdERvd25sb2FkTWFuYWdlcigpCiB7CiB9
CiAKLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmFkZERvd25sb2FkKERvd25sb2FkUHJveHkqIGRv
d25sb2FkLCBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pCit2b2lkIFF0RG93bmxvYWRN
YW5hZ2VyOjphZGREb3dubG9hZChXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBRV2ViRG93bmxvYWRJ
dGVtKiBkb3dubG9hZEl0ZW0pCiB7Ci0gICAgbV9kb3dubG9hZHNbZG93bmxvYWQtPmRvd25sb2Fk
SUQoKV0gPSBkb3dubG9hZEl0ZW07CisgICAgbV9kb3dubG9hZHNbV0tEb3dubG9hZEdldElEKGRv
d25sb2FkKV0gPSBkb3dubG9hZEl0ZW07CiB9CiAKLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRv
d25sb2FkUmVjZWl2ZWRSZXNwb25zZShEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFF0RG93bmxvYWRNYW5hZ2Vy
OjpkaWRSZWNlaXZlUmVzcG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIGRvd25sb2Fk
LCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewor
ICAgIFF0RG93bmxvYWRNYW5hZ2VyKiBxID0gdG9RdERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZv
KTsKKwogICAgIC8vIFdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIGhlYWRlcnMgYXJlIHJlYWQgYnkg
V2ViUHJvY2Vzcy4KLSAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBtX2Rvd25s
b2Fkcy52YWx1ZShkb3dubG9hZC0+ZG93bmxvYWRJRCgpKTsKKyAgICBRV2ViRG93bmxvYWRJdGVt
KiBkb3dubG9hZEl0ZW0gPSBxLT5tX2Rvd25sb2Fkcy52YWx1ZShXS0Rvd25sb2FkR2V0SUQoZG93
bmxvYWQpKTsKICAgICBBU1NFUlQoZG93bmxvYWRJdGVtKTsKIAotICAgIGRvd25sb2FkSXRlbS0+
ZC0+c291cmNlVXJsID0gcmVzcG9uc2UudXJsKCk7Ci0gICAgZG93bmxvYWRJdGVtLT5kLT5taW1l
VHlwZSA9IHJlc3BvbnNlLm1pbWVUeXBlKCk7Ci0gICAgZG93bmxvYWRJdGVtLT5kLT5leHBlY3Rl
ZENvbnRlbnRMZW5ndGggPSByZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKTsKLSAgICBk
b3dubG9hZEl0ZW0tPmQtPnN1Z2dlc3RlZEZpbGVuYW1lID0gcmVzcG9uc2Uuc3VnZ2VzdGVkRmls
ZW5hbWUoKTsKKyAgICBkb3dubG9hZEl0ZW0tPmQtPnNvdXJjZVVybCA9IFdLVVJMQ29weVFVcmwo
V0tVUkxSZXNwb25zZUNvcHlVUkwocmVzcG9uc2UpKTsKKyAgICBkb3dubG9hZEl0ZW0tPmQtPm1p
bWVUeXBlID0gV0tTdHJpbmdDb3B5UVN0cmluZyhXS1VSTFJlc3BvbnNlQ29weU1JTUVUeXBlKHJl
c3BvbnNlKSk7CisgICAgZG93bmxvYWRJdGVtLT5kLT5leHBlY3RlZENvbnRlbnRMZW5ndGggPSBX
S1VSTFJlc3BvbnNlR2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKHJlc3BvbnNlKTsKKyAgICBkb3du
bG9hZEl0ZW0tPmQtPnN1Z2dlc3RlZEZpbGVuYW1lID0gV0tTdHJpbmdDb3B5UVN0cmluZyhXS1VS
TFJlc3BvbnNlQ29weVN1Z2dlc3RlZEZpbGVuYW1lKHJlc3BvbnNlKSk7CiAKICAgICBkb3dubG9h
ZEl0ZW0tPmQtPmRpZFJlY2VpdmVSZXNwb25zZShkb3dubG9hZEl0ZW0pOwogfQogCi12b2lkIFF0
RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZENyZWF0ZWREZXN0aW5hdGlvbihEb3dubG9hZFByb3h5
KiBkb3dubG9hZCwgY29uc3QgUVN0cmluZyYgcGF0aCkKK3ZvaWQgUXREb3dubG9hZE1hbmFnZXI6
OmRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9h
ZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKLSAgICBRV2Vi
RG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fkcy52YWx1ZShkb3dubG9hZC0+
ZG93bmxvYWRJRCgpKTsKKyAgICBRdERvd25sb2FkTWFuYWdlciogcSA9IHRvUXREb3dubG9hZE1h
bmFnZXIoY2xpZW50SW5mbyk7CisKKyAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0g
PSBxLT5tX2Rvd25sb2Fkcy52YWx1ZShXS0Rvd25sb2FkR2V0SUQoZG93bmxvYWQpKTsKICAgICBB
U1NFUlQoZG93bmxvYWRJdGVtKTsKLSAgICBkb3dubG9hZEl0ZW0tPmQtPmRlc3RpbmF0aW9uUGF0
aCA9IHBhdGg7CisgICAgZG93bmxvYWRJdGVtLT5kLT5kZXN0aW5hdGlvblBhdGggPSBXS1N0cmlu
Z0NvcHlRU3RyaW5nKHBhdGgpOwogICAgIGVtaXQgZG93bmxvYWRJdGVtLT5kZXN0aW5hdGlvbkZp
bGVDcmVhdGVkKGRvd25sb2FkSXRlbS0+ZC0+ZGVzdGluYXRpb25QYXRoKTsKIH0KIAotdm9pZCBR
dERvd25sb2FkTWFuYWdlcjo6ZG93bmxvYWRGaW5pc2hlZChEb3dubG9hZFByb3h5KiBkb3dubG9h
ZCkKK3ZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZEZpbmlzaERvd25sb2FkKFdLQ29udGV4dFJl
ZiwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKKyAg
ICBRdERvd25sb2FkTWFuYWdlciogcSA9IHRvUXREb3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbyk7
CisKICAgICAvLyBXaWxsIGJlIGNhbGxlZCB3aGVuIGRvd25sb2FkIGZpbmlzaGVzIHdpdGggc3Vj
Y2Vzcy4KLSAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fkcy50
YWtlKGRvd25sb2FkLT5kb3dubG9hZElEKCkpOworICAgIFFXZWJEb3dubG9hZEl0ZW0qIGRvd25s
b2FkSXRlbSA9IHEtPm1fZG93bmxvYWRzLnRha2UoV0tEb3dubG9hZEdldElEKGRvd25sb2FkKSk7
CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAgICAgZW1pdCBkb3dubG9hZEl0ZW0tPnN1Y2Nl
ZWRlZCgpOwogfQogCi12b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZhaWxlZChEb3du
bG9hZFByb3h5KiBkb3dubG9hZCwgY29uc3QgUXRXZWJFcnJvciYgZXJyb3IpCit2b2lkIFF0RG93
bmxvYWRNYW5hZ2VyOjpkaWRGYWlsRG93bmxvYWQoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVm
IGRvd25sb2FkLCBXS0Vycm9yUmVmIGVycm9yLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewor
ICAgIFF0RG93bmxvYWRNYW5hZ2VyKiBxID0gdG9RdERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZv
KTsKKwogICAgIC8vIFdpbGwgYmUgY2FsbGVkIHdoZW4gZG93bmxvYWQgZmFpbHMgb3IgaXMgYWJv
cnRlZC4KLSAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fkcy50
YWtlKGRvd25sb2FkLT5kb3dubG9hZElEKCkpOworICAgIFFXZWJEb3dubG9hZEl0ZW0qIGRvd25s
b2FkSXRlbSA9IHEtPm1fZG93bmxvYWRzLnRha2UoV0tEb3dubG9hZEdldElEKGRvd25sb2FkKSk7
CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAKICAgICAvLyBJZiB0aGUgcGFyZW50IGlzIG51
bGwgYXQgdGhpcyBwb2ludCwgdGhlIGRvd25sb2FkIGZhaWxlZCBiZWZvcmUgaXQKQEAgLTk5LDQ3
ICsxMTMsMTkgQEAgdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6ZG93bmxvYWRGYWlsZWQoRG93bmxv
YWRQcm94eSogZG93bmxvYWQsIGNvbnN0IFF0V2ViRXJyb3IKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGVtaXQgZG93bmxvYWRJdGVtLT5mYWlsZWQoZXJyb3IuZXJyb3JDb2RlQXNEb3du
bG9hZEVycm9yKCksIGVycm9yLnVybCgpLCBlcnJvci5kZXNjcmlwdGlvbigpKTsKKyAgICBRdFdl
YkVycm9yIHF0RXJyb3IoZXJyb3IpOworICAgIGVtaXQgZG93bmxvYWRJdGVtLT5mYWlsZWQocXRF
cnJvci5lcnJvckNvZGVBc0Rvd25sb2FkRXJyb3IoKSwgcXRFcnJvci51cmwoKSwgcXRFcnJvci5k
ZXNjcmlwdGlvbigpKTsKIH0KIAotdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6ZG93bmxvYWREYXRh
UmVjZWl2ZWQoRG93bmxvYWRQcm94eSogZG93bmxvYWQsIHVpbnQ2NF90IGxlbmd0aCkKK3ZvaWQg
UXREb3dubG9hZE1hbmFnZXI6OmRpZFJlY2VpdmVEYXRhRm9yRG93bmxvYWQoV0tDb250ZXh0UmVm
LCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCB1aW50NjRfdCBsZW5ndGgsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pCiB7CisgICAgUXREb3dubG9hZE1hbmFnZXIqIHEgPSB0b1F0RG93bmxvYWRNYW5h
Z2VyKGNsaWVudEluZm8pOworCiAgICAgLy8gV2lsbCBiZSBjYWxsZWQgZXZlcnl0aW1lIGJ5dGVz
IHdlcmUgd3JpdHRlbiB0byBkZXN0aW5hdGlvbiBmaWxlIGJ5IFdlYlByb2Nlc3MuCi0gICAgUVdl
YkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtID0gbV9kb3dubG9hZHMudmFsdWUoZG93bmxvYWQt
PmRvd25sb2FkSUQoKSk7CisgICAgUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtID0gcS0+
bV9kb3dubG9hZHMudmFsdWUoV0tEb3dubG9hZEdldElEKGRvd25sb2FkKSk7CiAgICAgQVNTRVJU
KGRvd25sb2FkSXRlbSk7CiAgICAgZG93bmxvYWRJdGVtLT5kLT50b3RhbEJ5dGVzUmVjZWl2ZWQg
Kz0gbGVuZ3RoOwogICAgIGVtaXQgZG93bmxvYWRJdGVtLT50b3RhbEJ5dGVzUmVjZWl2ZWRDaGFu
Z2VkKGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUXREb3dubG9hZE1hbmFnZXIqIHRvUXRE
b3dubG9hZE1hbmFnZXIoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBBU1NFUlQoY2xp
ZW50SW5mbyk7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXREb3dubG9hZE1hbmFnZXIq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci19Ci0KLXZvaWQgUXREb3dubG9hZE1h
bmFnZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgZG93
bmxvYWQsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
Ci17Ci0gICAgdG9RdERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZvKS0+ZG93bmxvYWRSZWNlaXZl
ZFJlc3BvbnNlKHRvSW1wbChkb3dubG9hZCksIHRvSW1wbChyZXNwb25zZSktPnJlc291cmNlUmVz
cG9uc2UoKSk7Ci19Ci0KLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZENyZWF0ZURlc3RpbmF0
aW9uKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0
aCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKLXsKLSAgICB0b1F0RG93bmxvYWRNYW5hZ2VyKGNs
aWVudEluZm8pLT5kb3dubG9hZENyZWF0ZWREZXN0aW5hdGlvbih0b0ltcGwoZG93bmxvYWQpLCBX
S1N0cmluZ0NvcHlRU3RyaW5nKHBhdGgpKTsKLX0KLQotdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6
ZGlkRmluaXNoRG93bmxvYWQoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAgIHRvUXREb3dubG9hZE1hbmFnZXIoY2xpZW50
SW5mbyktPmRvd25sb2FkRmluaXNoZWQodG9JbXBsKGRvd25sb2FkKSk7Ci19Ci0KLXZvaWQgUXRE
b3dubG9hZE1hbmFnZXI6OmRpZEZhaWxEb3dubG9hZChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRS
ZWYgZG93bmxvYWQsIFdLRXJyb3JSZWYgZXJyb3IsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17
Ci0gICAgdG9RdERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZvKS0+ZG93bmxvYWRGYWlsZWQodG9J
bXBsKGRvd25sb2FkKSwgUXRXZWJFcnJvcihlcnJvcikpOwotfQotCi12b2lkIFF0RG93bmxvYWRN
YW5hZ2VyOjpkaWRSZWNlaXZlRGF0YUZvckRvd25sb2FkKFdLQ29udGV4dFJlZiwgV0tEb3dubG9h
ZFJlZiBkb3dubG9hZCwgdWludDY0X3QgbGVuZ3RoLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQot
ewotICAgIHRvUXREb3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbyktPmRvd25sb2FkRGF0YVJlY2Vp
dmVkKHRvSW1wbChkb3dubG9hZCksIGxlbmd0aCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaApp
bmRleCBhNDlmNWUyYTQwMmNmZGNlZTc3Njc3YzYzZTBhMDliNDg3NWU0YTk2Li40ZDZjZmMwMGQ5
ZWNhMTE2MjgxZTAzN2Q0YmRmOGJjZGI2NTFkMjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaApAQCAtMzQsMjMgKzM0LDE1IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgUXRXZWJFcnJvcjsK
LWNsYXNzIFdlYkNvbnRleHQ7CiAKIGNsYXNzIFF0RG93bmxvYWRNYW5hZ2VyIHsKIHB1YmxpYzoK
LSAgICBRdERvd25sb2FkTWFuYWdlcihXZWJDb250ZXh0Kik7CisgICAgUXREb3dubG9hZE1hbmFn
ZXIoV0tDb250ZXh0UmVmKTsKICAgICB+UXREb3dubG9hZE1hbmFnZXIoKTsKIAotICAgIHZvaWQg
YWRkRG93bmxvYWQoRG93bmxvYWRQcm94eSosIFFXZWJEb3dubG9hZEl0ZW0qKTsKKyAgICB2b2lk
IGFkZERvd25sb2FkKFdLRG93bmxvYWRSZWYsIFFXZWJEb3dubG9hZEl0ZW0qKTsKIAogcHJpdmF0
ZToKLSAgICB2b2lkIGRvd25sb2FkUmVjZWl2ZWRSZXNwb25zZShEb3dubG9hZFByb3h5KiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZG93bmxvYWRDcmVhdGVk
RGVzdGluYXRpb24oRG93bmxvYWRQcm94eSosIGNvbnN0IFFTdHJpbmcmIHBhdGgpOwotICAgIHZv
aWQgZG93bmxvYWRGaW5pc2hlZChEb3dubG9hZFByb3h5Kik7Ci0gICAgdm9pZCBkb3dubG9hZEZh
aWxlZChEb3dubG9hZFByb3h5KiwgY29uc3QgUXRXZWJFcnJvciYpOwotICAgIHZvaWQgZG93bmxv
YWREYXRhUmVjZWl2ZWQoRG93bmxvYWRQcm94eSosIHVpbnQ2NF90IGxlbmd0aCk7Ci0KLSAgICAv
LyBXS0NvbnRleHREb3dubG9hZENsaWVudCBjYWxsYmFja3MuCiAgICAgc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiwgV0tVUkxSZXNwb25z
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRl
RGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS1N0cmluZ1JlZiBwYXRo
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb3du
bG9hZChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcAppbmRleCAz
ZGVmNDRkOTFkNTYzNTllZGE0NDExMzFhNzMxNWU4NDVkZGFiYzEyLi4zZDdiY2U4YTk1NDlmYjc1
NzJiNjM5MWZkYzZlMDUwMGFkYTNmMDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJDb250ZXh0LmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAK
IFF0V2ViQ29udGV4dDo6UXRXZWJDb250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIDog
bV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBtX2Rvd25sb2FkTWFuYWdlcihuZXcgUXREb3dubG9h
ZE1hbmFnZXIodG9JbXBsKGNvbnRleHQpKSkKKyAgICAsIG1fZG93bmxvYWRNYW5hZ2VyKG5ldyBR
dERvd25sb2FkTWFuYWdlcihjb250ZXh0KSkKICAgICAsIG1faWNvbkRhdGFiYXNlKG5ldyBRdFdl
Ykljb25EYXRhYmFzZUNsaWVudCh0b0ltcGwoY29udGV4dCkpKQogewogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188523</attachid>
            <date>2013-02-15 02:58:28 -0800</date>
            <delta_ts>2013-03-11 06:54:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109562-20130215115455.patch</filename>
            <type>text/plain</type>
            <size>11900</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODdhODQ0NjA5Zjg2YmFi
NjQxNDFjZTdkNzA5NDQ1ZjU1YTdjMzc3Yi4uMTdiZWE5NjI0NDI3ZjNiN2NmNWEzYmRiMzhjYWM5
ZDNkODE1ZGU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTE1ICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIExheWVyIFF0RG93bmxvYWRNYW5hZ2VyIG9uIHRoZSBDIEFQSQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTYyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZURv
d25sb2FkUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9RdERvd25sb2FkTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFuYWdlcjo6UXREb3dubG9hZE1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFuYWdlcjo6YWRkRG93bmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9hZE1hbmFnZXI6OmRpZENyZWF0ZURlc3RpbmF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9hZE1hbmFnZXI6OmRpZEZpbmlzaERvd25s
b2FkKToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9hZE1hbmFnZXI6OmRpZEZhaWxEb3dubG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6OlF0RG93bmxvYWRNYW5hZ2VyOjpkaWRSZWNlaXZlRGF0YUZv
ckRvd25sb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChRdERvd25sb2FkTWFuYWdlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1F0V2ViRXJyb3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkVy
cm9yOjp1cmwpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkVycm9yOjpkZXNjcmlwdGlvbik6CisK
IDIwMTMtMDItMTQgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNv
bT4KIAogICAgICAgICBbUXRdW1dLMl0gTGF5ZXIgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQgb24g
dGhlIEMgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcAppbmRleCAwZWFjYzUzMzM2YjViOWEwZDk3YmUwYjQ4MTYwN2ZlZGQwMTk2MTY2
Li43MGVjNzUxYzhhNDM2NDNiODdiYzQ2ZWFlNWU0MzNhYjg0M2JjNDJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTYxOSw3
ICs2MTksNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpoYW5kbGVEb3dubG9hZFJlcXVl
c3QoRG93bmxvYWRQcm94eSogZG93bmxvYWQpCiAgICAgZG93bmxvYWRJdGVtLT5kLT5kb3dubG9h
ZFByb3h5ID0gZG93bmxvYWQ7CiAKICAgICBxLT5jb25uZWN0KGRvd25sb2FkSXRlbS0+ZCwgU0lH
TkFMKHJlY2VpdmVkUmVzcG9uc2UoUVdlYkRvd25sb2FkSXRlbSopKSwgcSwgU0xPVChfcV9vblJl
Y2VpdmVkUmVzcG9uc2VGcm9tRG93bmxvYWQoUVdlYkRvd25sb2FkSXRlbSopKSk7Ci0gICAgUXRX
ZWJDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpLT5kb3dubG9hZE1hbmFnZXIoKS0+YWRkRG93bmxv
YWQoZG93bmxvYWQsIGRvd25sb2FkSXRlbSk7CisgICAgUXRXZWJDb250ZXh0OjpkZWZhdWx0Q29u
dGV4dCgpLT5kb3dubG9hZE1hbmFnZXIoKS0+YWRkRG93bmxvYWQodG9BUEkoZG93bmxvYWQpLCBk
b3dubG9hZEl0ZW0pOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vblZpc2li
bGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERv
d25sb2FkTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9h
ZE1hbmFnZXIuY3BwCmluZGV4IGViNzZmMWFlZDcxYThjOGYzYzc4OGRjMDhkM2ZkYjNlNDZkYjUz
NTIuLmE1NjE5MDUyNWI3YjQxZDM0YzIzNjcyZGIzNGFjMWU4MDZiOGM3YTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcApAQCAtMjEs
MTcgKzIxLDIzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUXREb3dubG9hZE1h
bmFnZXIuaCIKIAotI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJRdFdlYkVy
cm9yLmgiCi0jaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgotI2luY2x1ZGUgIldLVVJMUXQuaCIKLSNp
bmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wLmgiCiAj
aW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wX3AuaCIKKyNpbmNsdWRlIDxXS0Rvd25sb2FkLmg+
CisjaW5jbHVkZSA8V0tTdHJpbmdRdC5oPgorI2luY2x1ZGUgPFdLVVJMUXQuaD4KKyNpbmNsdWRl
IDxXS1VSTFJlc3BvbnNlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1RdERvd25sb2FkTWFu
YWdlcjo6UXREb3dubG9hZE1hbmFnZXIoV2ViQ29udGV4dCogY29udGV4dCkKK3N0YXRpYyBpbmxp
bmUgUXREb3dubG9hZE1hbmFnZXIqIHRvUXREb3dubG9hZE1hbmFnZXIoY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3sKKyAgICBBU1NFUlQoY2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8UXREb3dubG9hZE1hbmFnZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSk7Cit9CisKK1F0RG93bmxvYWRNYW5hZ2VyOjpRdERvd25sb2FkTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dCkKIHsKICAgICBXS0NvbnRleHREb3dubG9hZENsaWVudCBkb3dubG9hZENsaWVu
dDsKICAgICBtZW1zZXQoJmRvd25sb2FkQ2xpZW50LCAwLCBzaXplb2YoV0tDb250ZXh0RG93bmxv
YWRDbGllbnQpKTsKQEAgLTQyLDUyICs0OCw2MCBAQCBRdERvd25sb2FkTWFuYWdlcjo6UXREb3du
bG9hZE1hbmFnZXIoV2ViQ29udGV4dCogY29udGV4dCkKICAgICBkb3dubG9hZENsaWVudC5kaWRD
cmVhdGVEZXN0aW5hdGlvbiA9IGRpZENyZWF0ZURlc3RpbmF0aW9uOwogICAgIGRvd25sb2FkQ2xp
ZW50LmRpZEZpbmlzaCA9IGRpZEZpbmlzaERvd25sb2FkOwogICAgIGRvd25sb2FkQ2xpZW50LmRp
ZEZhaWwgPSBkaWRGYWlsRG93bmxvYWQ7Ci0gICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQo
dG9BUEkoY29udGV4dCksICZkb3dubG9hZENsaWVudCk7CisgICAgV0tDb250ZXh0U2V0RG93bmxv
YWRDbGllbnQoY29udGV4dCwgJmRvd25sb2FkQ2xpZW50KTsKIH0KIAogUXREb3dubG9hZE1hbmFn
ZXI6On5RdERvd25sb2FkTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6
OmFkZERvd25sb2FkKERvd25sb2FkUHJveHkqIGRvd25sb2FkLCBRV2ViRG93bmxvYWRJdGVtKiBk
b3dubG9hZEl0ZW0pCit2b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjphZGREb3dubG9hZChXS0Rvd25s
b2FkUmVmIGRvd25sb2FkLCBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pCiB7Ci0gICAg
bV9kb3dubG9hZHNbZG93bmxvYWQtPmRvd25sb2FkSUQoKV0gPSBkb3dubG9hZEl0ZW07CisgICAg
bV9kb3dubG9hZHNbV0tEb3dubG9hZEdldElEKGRvd25sb2FkKV0gPSBkb3dubG9hZEl0ZW07CiB9
CiAKLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRvd25sb2FkUmVjZWl2ZWRSZXNwb25zZShEb3du
bG9hZFByb3h5KiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit2b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UoV0tDb250
ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNl
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogeworICAgIFF0RG93bmxvYWRNYW5hZ2VyKiBxID0g
dG9RdERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZvKTsKKwogICAgIC8vIFdpbGwgYmUgY2FsbGVk
IHdoZW4gdGhlIGhlYWRlcnMgYXJlIHJlYWQgYnkgV2ViUHJvY2Vzcy4KLSAgICBRV2ViRG93bmxv
YWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fkcy52YWx1ZShkb3dubG9hZC0+ZG93bmxv
YWRJRCgpKTsKKyAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBxLT5tX2Rvd25s
b2Fkcy52YWx1ZShXS0Rvd25sb2FkR2V0SUQoZG93bmxvYWQpKTsKICAgICBBU1NFUlQoZG93bmxv
YWRJdGVtKTsKIAotICAgIGRvd25sb2FkSXRlbS0+ZC0+c291cmNlVXJsID0gcmVzcG9uc2UudXJs
KCk7Ci0gICAgZG93bmxvYWRJdGVtLT5kLT5taW1lVHlwZSA9IHJlc3BvbnNlLm1pbWVUeXBlKCk7
Ci0gICAgZG93bmxvYWRJdGVtLT5kLT5leHBlY3RlZENvbnRlbnRMZW5ndGggPSByZXNwb25zZS5l
eHBlY3RlZENvbnRlbnRMZW5ndGgoKTsKLSAgICBkb3dubG9hZEl0ZW0tPmQtPnN1Z2dlc3RlZEZp
bGVuYW1lID0gcmVzcG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUoKTsKKyAgICBkb3dubG9hZEl0ZW0t
PmQtPnNvdXJjZVVybCA9IFdLVVJMQ29weVFVcmwoYWRvcHRXSyhXS1VSTFJlc3BvbnNlQ29weVVS
TChyZXNwb25zZSkpLmdldCgpKTsKKyAgICBkb3dubG9hZEl0ZW0tPmQtPm1pbWVUeXBlID0gV0tT
dHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLVVJMUmVzcG9uc2VDb3B5TUlNRVR5cGUocmVzcG9u
c2UpKS5nZXQoKSk7CisgICAgZG93bmxvYWRJdGVtLT5kLT5leHBlY3RlZENvbnRlbnRMZW5ndGgg
PSBXS1VSTFJlc3BvbnNlR2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKHJlc3BvbnNlKTsKKyAgICBk
b3dubG9hZEl0ZW0tPmQtPnN1Z2dlc3RlZEZpbGVuYW1lID0gV0tTdHJpbmdDb3B5UVN0cmluZyhh
ZG9wdFdLKFdLVVJMUmVzcG9uc2VDb3B5U3VnZ2VzdGVkRmlsZW5hbWUocmVzcG9uc2UpKS5nZXQo
KSk7CiAKICAgICBkb3dubG9hZEl0ZW0tPmQtPmRpZFJlY2VpdmVSZXNwb25zZShkb3dubG9hZEl0
ZW0pOwogfQogCi12b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZENyZWF0ZWREZXN0aW5h
dGlvbihEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgY29uc3QgUVN0cmluZyYgcGF0aCkKK3ZvaWQg
UXREb3dubG9hZE1hbmFnZXI6OmRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwgV0tE
b3dubG9hZFJlZiBkb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbykKIHsKLSAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fk
cy52YWx1ZShkb3dubG9hZC0+ZG93bmxvYWRJRCgpKTsKKyAgICBRdERvd25sb2FkTWFuYWdlciog
cSA9IHRvUXREb3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbyk7CisKKyAgICBRV2ViRG93bmxvYWRJ
dGVtKiBkb3dubG9hZEl0ZW0gPSBxLT5tX2Rvd25sb2Fkcy52YWx1ZShXS0Rvd25sb2FkR2V0SUQo
ZG93bmxvYWQpKTsKICAgICBBU1NFUlQoZG93bmxvYWRJdGVtKTsKLSAgICBkb3dubG9hZEl0ZW0t
PmQtPmRlc3RpbmF0aW9uUGF0aCA9IHBhdGg7CisgICAgZG93bmxvYWRJdGVtLT5kLT5kZXN0aW5h
dGlvblBhdGggPSBXS1N0cmluZ0NvcHlRU3RyaW5nKHBhdGgpOwogICAgIGVtaXQgZG93bmxvYWRJ
dGVtLT5kZXN0aW5hdGlvbkZpbGVDcmVhdGVkKGRvd25sb2FkSXRlbS0+ZC0+ZGVzdGluYXRpb25Q
YXRoKTsKIH0KIAotdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6ZG93bmxvYWRGaW5pc2hlZChEb3du
bG9hZFByb3h5KiBkb3dubG9hZCkKK3ZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZEZpbmlzaERv
d25sb2FkKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKIHsKKyAgICBRdERvd25sb2FkTWFuYWdlciogcSA9IHRvUXREb3dubG9hZE1h
bmFnZXIoY2xpZW50SW5mbyk7CisKICAgICAvLyBXaWxsIGJlIGNhbGxlZCB3aGVuIGRvd25sb2Fk
IGZpbmlzaGVzIHdpdGggc3VjY2Vzcy4KLSAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0
ZW0gPSBtX2Rvd25sb2Fkcy50YWtlKGRvd25sb2FkLT5kb3dubG9hZElEKCkpOworICAgIFFXZWJE
b3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSA9IHEtPm1fZG93bmxvYWRzLnRha2UoV0tEb3dubG9h
ZEdldElEKGRvd25sb2FkKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAgICAgZW1pdCBk
b3dubG9hZEl0ZW0tPnN1Y2NlZWRlZCgpOwogfQogCi12b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpk
b3dubG9hZEZhaWxlZChEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgY29uc3QgUXRXZWJFcnJvciYg
ZXJyb3IpCit2b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkaWRGYWlsRG93bmxvYWQoV0tDb250ZXh0
UmVmLCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBXS0Vycm9yUmVmIGVycm9yLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKQogeworICAgIFF0RG93bmxvYWRNYW5hZ2VyKiBxID0gdG9RdERvd25sb2Fk
TWFuYWdlcihjbGllbnRJbmZvKTsKKwogICAgIC8vIFdpbGwgYmUgY2FsbGVkIHdoZW4gZG93bmxv
YWQgZmFpbHMgb3IgaXMgYWJvcnRlZC4KLSAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0
ZW0gPSBtX2Rvd25sb2Fkcy50YWtlKGRvd25sb2FkLT5kb3dubG9hZElEKCkpOworICAgIFFXZWJE
b3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSA9IHEtPm1fZG93bmxvYWRzLnRha2UoV0tEb3dubG9h
ZEdldElEKGRvd25sb2FkKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAKICAgICAvLyBJ
ZiB0aGUgcGFyZW50IGlzIG51bGwgYXQgdGhpcyBwb2ludCwgdGhlIGRvd25sb2FkIGZhaWxlZCBi
ZWZvcmUgaXQKQEAgLTk5LDQ3ICsxMTMsMTkgQEAgdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6ZG93
bmxvYWRGYWlsZWQoRG93bmxvYWRQcm94eSogZG93bmxvYWQsIGNvbnN0IFF0V2ViRXJyb3IKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVtaXQgZG93bmxvYWRJdGVtLT5mYWlsZWQoZXJy
b3IuZXJyb3JDb2RlQXNEb3dubG9hZEVycm9yKCksIGVycm9yLnVybCgpLCBlcnJvci5kZXNjcmlw
dGlvbigpKTsKKyAgICBRdFdlYkVycm9yIHF0RXJyb3IoZXJyb3IpOworICAgIGVtaXQgZG93bmxv
YWRJdGVtLT5mYWlsZWQocXRFcnJvci5lcnJvckNvZGVBc0Rvd25sb2FkRXJyb3IoKSwgcXRFcnJv
ci51cmwoKSwgcXRFcnJvci5kZXNjcmlwdGlvbigpKTsKIH0KIAotdm9pZCBRdERvd25sb2FkTWFu
YWdlcjo6ZG93bmxvYWREYXRhUmVjZWl2ZWQoRG93bmxvYWRQcm94eSogZG93bmxvYWQsIHVpbnQ2
NF90IGxlbmd0aCkKK3ZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZFJlY2VpdmVEYXRhRm9yRG93
bmxvYWQoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCB1aW50NjRfdCBsZW5n
dGgsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CisgICAgUXREb3dubG9hZE1hbmFnZXIqIHEg
PSB0b1F0RG93bmxvYWRNYW5hZ2VyKGNsaWVudEluZm8pOworCiAgICAgLy8gV2lsbCBiZSBjYWxs
ZWQgZXZlcnl0aW1lIGJ5dGVzIHdlcmUgd3JpdHRlbiB0byBkZXN0aW5hdGlvbiBmaWxlIGJ5IFdl
YlByb2Nlc3MuCi0gICAgUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtID0gbV9kb3dubG9h
ZHMudmFsdWUoZG93bmxvYWQtPmRvd25sb2FkSUQoKSk7CisgICAgUVdlYkRvd25sb2FkSXRlbSog
ZG93bmxvYWRJdGVtID0gcS0+bV9kb3dubG9hZHMudmFsdWUoV0tEb3dubG9hZEdldElEKGRvd25s
b2FkKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAgICAgZG93bmxvYWRJdGVtLT5kLT50
b3RhbEJ5dGVzUmVjZWl2ZWQgKz0gbGVuZ3RoOwogICAgIGVtaXQgZG93bmxvYWRJdGVtLT50b3Rh
bEJ5dGVzUmVjZWl2ZWRDaGFuZ2VkKGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUXREb3du
bG9hZE1hbmFnZXIqIHRvUXREb3dubG9hZE1hbmFnZXIoY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
LXsKLSAgICBBU1NFUlQoY2xpZW50SW5mbyk7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
UXREb3dubG9hZE1hbmFnZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci19Ci0K
LXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRleHRSZWYs
IFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgdG9RdERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZv
KS0+ZG93bmxvYWRSZWNlaXZlZFJlc3BvbnNlKHRvSW1wbChkb3dubG9hZCksIHRvSW1wbChyZXNw
b25zZSktPnJlc291cmNlUmVzcG9uc2UoKSk7Ci19Ci0KLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6
OmRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9h
ZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKLXsKLSAgICB0b1F0
RG93bmxvYWRNYW5hZ2VyKGNsaWVudEluZm8pLT5kb3dubG9hZENyZWF0ZWREZXN0aW5hdGlvbih0
b0ltcGwoZG93bmxvYWQpLCBXS1N0cmluZ0NvcHlRU3RyaW5nKHBhdGgpKTsKLX0KLQotdm9pZCBR
dERvd25sb2FkTWFuYWdlcjo6ZGlkRmluaXNoRG93bmxvYWQoV0tDb250ZXh0UmVmLCBXS0Rvd25s
b2FkUmVmIGRvd25sb2FkLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAgIHRvUXREb3du
bG9hZE1hbmFnZXIoY2xpZW50SW5mbyktPmRvd25sb2FkRmluaXNoZWQodG9JbXBsKGRvd25sb2Fk
KSk7Ci19Ci0KLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZEZhaWxEb3dubG9hZChXS0NvbnRl
eHRSZWYsIFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIFdLRXJyb3JSZWYgZXJyb3IsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCi17Ci0gICAgdG9RdERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZvKS0+
ZG93bmxvYWRGYWlsZWQodG9JbXBsKGRvd25sb2FkKSwgUXRXZWJFcnJvcihlcnJvcikpOwotfQot
Ci12b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkaWRSZWNlaXZlRGF0YUZvckRvd25sb2FkKFdLQ29u
dGV4dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgdWludDY0X3QgbGVuZ3RoLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKQotewotICAgIHRvUXREb3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbykt
PmRvd25sb2FkRGF0YVJlY2VpdmVkKHRvSW1wbChkb3dubG9hZCksIGxlbmd0aCk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0RG93bmxvYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRE
b3dubG9hZE1hbmFnZXIuaAppbmRleCBhNDlmNWUyYTQwMmNmZGNlZTc3Njc3YzYzZTBhMDliNDg3
NWU0YTk2Li40ZDZjZmMwMGQ5ZWNhMTE2MjgxZTAzN2Q0YmRmOGJjZGI2NTFkMjRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaApAQCAtMzQs
MjMgKzM0LDE1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5Owog
Y2xhc3MgUXRXZWJFcnJvcjsKLWNsYXNzIFdlYkNvbnRleHQ7CiAKIGNsYXNzIFF0RG93bmxvYWRN
YW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBRdERvd25sb2FkTWFuYWdlcihXZWJDb250ZXh0Kik7Cisg
ICAgUXREb3dubG9hZE1hbmFnZXIoV0tDb250ZXh0UmVmKTsKICAgICB+UXREb3dubG9hZE1hbmFn
ZXIoKTsKIAotICAgIHZvaWQgYWRkRG93bmxvYWQoRG93bmxvYWRQcm94eSosIFFXZWJEb3dubG9h
ZEl0ZW0qKTsKKyAgICB2b2lkIGFkZERvd25sb2FkKFdLRG93bmxvYWRSZWYsIFFXZWJEb3dubG9h
ZEl0ZW0qKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRvd25sb2FkUmVjZWl2ZWRSZXNwb25zZShE
b3dubG9hZFByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZv
aWQgZG93bmxvYWRDcmVhdGVkRGVzdGluYXRpb24oRG93bmxvYWRQcm94eSosIGNvbnN0IFFTdHJp
bmcmIHBhdGgpOwotICAgIHZvaWQgZG93bmxvYWRGaW5pc2hlZChEb3dubG9hZFByb3h5Kik7Ci0g
ICAgdm9pZCBkb3dubG9hZEZhaWxlZChEb3dubG9hZFByb3h5KiwgY29uc3QgUXRXZWJFcnJvciYp
OwotICAgIHZvaWQgZG93bmxvYWREYXRhUmVjZWl2ZWQoRG93bmxvYWRQcm94eSosIHVpbnQ2NF90
IGxlbmd0aCk7Ci0KLSAgICAvLyBXS0NvbnRleHREb3dubG9hZENsaWVudCBjYWxsYmFja3MuCiAg
ICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4dFJlZiwgV0tEb3dubG9h
ZFJlZiwgV0tVUkxSZXNwb25zZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3Rh
dGljIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVm
LCBXS1N0cmluZ1JlZiBwYXRoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMg
dm9pZCBkaWRGaW5pc2hEb3dubG9hZChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViRXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViRXJy
b3IuY3BwCmluZGV4IGI1ODkxNTk3YWZjODk5NmNkMDk5ZTA2Y2FmZDQ1Mjc3NjQ1NDExOGEuLjZm
MmE2OGIyNmVhY2NkZjYxYmVmNDM4ZGEyNmUyZDA2MGIxYjM4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJFcnJvci5jcHAKQEAgLTU3LDEyICs1NywxMiBAQCBpbnQgUXRX
ZWJFcnJvcjo6ZXJyb3JDb2RlKCkgY29uc3QKIAogUVN0cmluZyBRdFdlYkVycm9yOjp1cmwoKSBj
b25zdAogewotICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLVVJMQ29weVN0cmluZyhX
S0Vycm9yQ29weUZhaWxpbmdVUkwoZXJyb3IuZ2V0KCkpKSk7CisgICAgcmV0dXJuIFdLVVJMQ29w
eVFTdHJpbmcoYWRvcHRXSyhXS0Vycm9yQ29weUZhaWxpbmdVUkwoZXJyb3IuZ2V0KCkpKS5nZXQo
KSk7CiB9CiAKIFFTdHJpbmcgUXRXZWJFcnJvcjo6ZGVzY3JpcHRpb24oKSBjb25zdAogewotICAg
IHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLRXJyb3JDb3B5TG9jYWxpemVkRGVzY3JpcHRp
b24oZXJyb3IuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdL
KFdLRXJyb3JDb3B5TG9jYWxpemVkRGVzY3JpcHRpb24oZXJyb3IuZ2V0KCkpKS5nZXQoKSk7CiB9
CiAKIGJvb2wgUXRXZWJFcnJvcjo6aXNDYW5jZWxsYXRpb24oKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192459</attachid>
            <date>2013-03-11 06:54:45 -0700</date>
            <delta_ts>2013-03-11 07:13:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109562-20130311145044.patch</filename>
            <type>text/plain</type>
            <size>14357</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODU5NTZmZDJlNTBjNGVj
NjgyYmVhYmE1NmJiYTQ3Yzk0M2Y3YjUxMy4uMmRkNDlmMmFlZTc1MGRhZWUzYjc4N2YyYjM2Njg1
NDQzNWE3NzkwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEzLTAzLTExICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XVtXSzJdIExheWVyIFF0RG93bmxvYWRNYW5hZ2VyIG9uIHRoZSBDIEFQSQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTYyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2NwcC9x
dC9XS1VSTFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6YWRvcHRUb1FTdHJpbmcpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6YWRvcHRUb1FVcmwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dl
YlZpZXdQcml2YXRlOjpoYW5kbGVEb3dubG9hZFJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnRvUXREb3dubG9h
ZE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9h
ZE1hbmFnZXI6OlF0RG93bmxvYWRNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9h
ZE1hbmFnZXI6OmFkZERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6UXREb3dubG9hZE1hbmFn
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlF0RG93bmxvYWRNYW5h
Z2VyOjpkaWRDcmVhdGVEZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlF0RG93bmxvYWRN
YW5hZ2VyOjpkaWRGaW5pc2hEb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlF0RG93bmxvYWRN
YW5hZ2VyOjpkaWRGYWlsRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFu
YWdlcjo6ZGlkUmVjZWl2ZURhdGFGb3JEb3dubG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1F0RG93bmxvYWRNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUXREb3du
bG9hZE1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpRdFdlYkNvbnRleHQ6OlF0V2ViQ29udGV4dCk6CisgICAgICAgICog
VUlQcm9jZXNzL3F0L1F0V2ViRXJyb3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkVycm9y
Ojp1cmwpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkVycm9yOjpkZXNjcmlwdGlvbik6CisKKzIw
MTMtMDMtMTEgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNvbT4K
KwogICAgICAgICBbUXRdW1dLMl0gTGF5ZXIgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQgb24gdGhl
IEMgQVBJCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDk1NjQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQv
V0tVUkxRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0
LmNwcAppbmRleCAwYmRhODgwYjI3NWUwZjNlMmVjN2U3MjIxNDIwYmVlZjVjYzVhOGQ5Li5mOTE3
N2ZkNTk1ZGJjOGMxNWU4ZGZjZTQzYWJiN2RlMTkzMDBhZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcApAQCAtMjIsNiArMjIsNyBAQAog
I2luY2x1ZGUgIldLVVJMUXQuaCIKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUg
IldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSA8UVN0cmluZz4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01MSwzICs1MiwxNSBAQCBR
VXJsIFdLVVJMQ29weVFVcmwoV0tVUkxSZWYgdXJsUmVmKQogICAgICAgICByZXR1cm4gUVVybCgp
OwogICAgIHJldHVybiBRVXJsKFdLVVJMQ29weVFTdHJpbmcodXJsUmVmKSk7CiB9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworUVN0cmluZyBhZG9wdFRvUVN0cmluZyhXS1VSTFJlZiB1cmxSZWYpCit7
CisgICAgcmV0dXJuIFdLVVJMQ29weVFTdHJpbmcoYWRvcHRXSyh1cmxSZWYpLmdldCgpKTsKK30K
KworUVVybCBhZG9wdFRvUVVybChXS1VSTFJlZiB1cmxSZWYpCit7CisgICAgcmV0dXJuIFdLVVJM
Q29weVFVcmwoYWRvcHRXSyh1cmxSZWYpLmdldCgpKTsKK30KK30gLyogbmFtZXNwYWNlIFdlYktp
dCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tV
UkxRdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5oCmlu
ZGV4IGE4NjFmN2QzMWExZmVkYWI2MzE1ZjU2N2EzOWM5OTMzMjI3YzE1YjkuLmIxMmY5NzQ1OTg2
YWNkZDc1ODUzZTQ4OTlhMjA2ZDliOTdkZTM4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmgKQEAgLTMxLDQgKzMxLDEyIEBAIFdLX0VYUE9SVCBR
U3RyaW5nIFdLVVJMQ29weVFTdHJpbmcoV0tVUkxSZWYgdXJsKTsKIFdLX0VYUE9SVCBXS1VSTFJl
ZiBXS1VSTENyZWF0ZVdpdGhRVXJsKGNvbnN0IFFVcmwmIHVybCk7CiBXS19FWFBPUlQgUVVybCBX
S1VSTENvcHlRVXJsKFdLVVJMUmVmIHVybCk7CiAKK25hbWVzcGFjZSBXZWJLaXQgeworUVN0cmlu
ZyBhZG9wdFRvUVN0cmluZyhXS1VSTFJlZik7CitRVXJsIGFkb3B0VG9RVXJsKFdLVVJMUmVmKTsK
K30gLyogbmFtZXNwYWNlIFdlYktpdCAqLworCit1c2luZyBXZWJLaXQ6OmFkb3B0VG9RU3RyaW5n
OwordXNpbmcgV2ViS2l0OjphZG9wdFRvUVVybDsKKwogI2VuZGlmIC8qIFdLVVJMQ0ZfaCAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAK
aW5kZXggZDczYmI0MWUyMWUyZDUyNTIzOTVjZjA2OGMyMjIxMzdmYWFkNGUwYi4uNzM3NWQ1NDEy
ODllYzNkYjQ0OWI5MjQ2NjNlZGM1NmYzMDlkZGZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC02MjcsNyArNjI3LDcgQEAg
dm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2Fk
UHJveHkqIGRvd25sb2FkKQogICAgIGRvd25sb2FkSXRlbS0+ZC0+ZG93bmxvYWRQcm94eSA9IGRv
d25sb2FkOwogCiAgICAgcS0+Y29ubmVjdChkb3dubG9hZEl0ZW0tPmQsIFNJR05BTChyZWNlaXZl
ZFJlc3BvbnNlKFFXZWJEb3dubG9hZEl0ZW0qKSksIHEsIFNMT1QoX3Ffb25SZWNlaXZlZFJlc3Bv
bnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0qKSkpOwotICAgIFF0V2ViQ29udGV4dDo6
ZGVmYXVsdENvbnRleHQoKS0+ZG93bmxvYWRNYW5hZ2VyKCktPmFkZERvd25sb2FkKGRvd25sb2Fk
LCBkb3dubG9hZEl0ZW0pOworICAgIFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKS0+ZG93
bmxvYWRNYW5hZ2VyKCktPmFkZERvd25sb2FkKHRvQVBJKGRvd25sb2FkKSwgZG93bmxvYWRJdGVt
KTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25WaXNpYmxlQ2hhbmdlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNw
cAppbmRleCBlYjc2ZjFhZWQ3MWE4YzhmM2M3ODhkYzA4ZDNmZGIzZTQ2ZGI1MzUyLi41MTRhM2U1
NTRiZmE1ZDMzNmE1OTQ1YTFiN2I2YjNmNzEwYmFlMDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHAKQEAgLTIxLDE3ICsyMSwyMyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlF0RG93bmxvYWRNYW5hZ2VyLmgiCiAK
LSNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiUXRXZWJFcnJvci5oIgotI2lu
Y2x1ZGUgIldLU3RyaW5nUXQuaCIKLSNpbmNsdWRlICJXS1VSTFF0LmgiCi0jaW5jbHVkZSAiV2Vi
Q29udGV4dC5oIgogI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW1fcC5oIgogI2luY2x1ZGUgInF3
ZWJkb3dubG9hZGl0ZW1fcF9wLmgiCisjaW5jbHVkZSA8V0tEb3dubG9hZC5oPgorI2luY2x1ZGUg
PFdLU3RyaW5nUXQuaD4KKyNpbmNsdWRlIDxXS1VSTFF0Lmg+CisjaW5jbHVkZSA8V0tVUkxSZXNw
b25zZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUXREb3dubG9hZE1hbmFnZXI6OlF0RG93
bmxvYWRNYW5hZ2VyKFdlYkNvbnRleHQqIGNvbnRleHQpCitzdGF0aWMgaW5saW5lIFF0RG93bmxv
YWRNYW5hZ2VyKiB0b1F0RG93bmxvYWRNYW5hZ2VyKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgQVNTRVJUKGNsaWVudEluZm8pOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFF0
RG93bmxvYWRNYW5hZ2VyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworfQorCitR
dERvd25sb2FkTWFuYWdlcjo6UXREb3dubG9hZE1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQp
CiB7CiAgICAgV0tDb250ZXh0RG93bmxvYWRDbGllbnQgZG93bmxvYWRDbGllbnQ7CiAgICAgbWVt
c2V0KCZkb3dubG9hZENsaWVudCwgMCwgc2l6ZW9mKFdLQ29udGV4dERvd25sb2FkQ2xpZW50KSk7
CkBAIC00Miw1MiArNDgsNjAgQEAgUXREb3dubG9hZE1hbmFnZXI6OlF0RG93bmxvYWRNYW5hZ2Vy
KFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgZG93bmxvYWRDbGllbnQuZGlkQ3JlYXRlRGVzdGlu
YXRpb24gPSBkaWRDcmVhdGVEZXN0aW5hdGlvbjsKICAgICBkb3dubG9hZENsaWVudC5kaWRGaW5p
c2ggPSBkaWRGaW5pc2hEb3dubG9hZDsKICAgICBkb3dubG9hZENsaWVudC5kaWRGYWlsID0gZGlk
RmFpbERvd25sb2FkOwotICAgIFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KHRvQVBJKGNvbnRl
eHQpLCAmZG93bmxvYWRDbGllbnQpOworICAgIFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KGNv
bnRleHQsICZkb3dubG9hZENsaWVudCk7CiB9CiAKIFF0RG93bmxvYWRNYW5hZ2VyOjp+UXREb3du
bG9hZE1hbmFnZXIoKQogewogfQogCi12b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjphZGREb3dubG9h
ZChEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVt
KQordm9pZCBRdERvd25sb2FkTWFuYWdlcjo6YWRkRG93bmxvYWQoV0tEb3dubG9hZFJlZiBkb3du
bG9hZCwgUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtKQogewotICAgIG1fZG93bmxvYWRz
W2Rvd25sb2FkLT5kb3dubG9hZElEKCldID0gZG93bmxvYWRJdGVtOworICAgIG1fZG93bmxvYWRz
W1dLRG93bmxvYWRHZXRJRChkb3dubG9hZCldID0gZG93bmxvYWRJdGVtOwogfQogCi12b2lkIFF0
RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZFJlY2VpdmVkUmVzcG9uc2UoRG93bmxvYWRQcm94eSog
ZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9p
ZCBRdERvd25sb2FkTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4dFJlZiwgV0tE
b3dubG9hZFJlZiBkb3dubG9hZCwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKKyAgICBRdERvd25sb2FkTWFuYWdlciogcSA9IHRvUXREb3dubG9h
ZE1hbmFnZXIoY2xpZW50SW5mbyk7CisKICAgICAvLyBXaWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBo
ZWFkZXJzIGFyZSByZWFkIGJ5IFdlYlByb2Nlc3MuCi0gICAgUVdlYkRvd25sb2FkSXRlbSogZG93
bmxvYWRJdGVtID0gbV9kb3dubG9hZHMudmFsdWUoZG93bmxvYWQtPmRvd25sb2FkSUQoKSk7Cisg
ICAgUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtID0gcS0+bV9kb3dubG9hZHMudmFsdWUo
V0tEb3dubG9hZEdldElEKGRvd25sb2FkKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAK
LSAgICBkb3dubG9hZEl0ZW0tPmQtPnNvdXJjZVVybCA9IHJlc3BvbnNlLnVybCgpOwotICAgIGRv
d25sb2FkSXRlbS0+ZC0+bWltZVR5cGUgPSByZXNwb25zZS5taW1lVHlwZSgpOwotICAgIGRvd25s
b2FkSXRlbS0+ZC0+ZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0gcmVzcG9uc2UuZXhwZWN0ZWRDb250
ZW50TGVuZ3RoKCk7Ci0gICAgZG93bmxvYWRJdGVtLT5kLT5zdWdnZXN0ZWRGaWxlbmFtZSA9IHJl
c3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7CisgICAgZG93bmxvYWRJdGVtLT5kLT5zb3VyY2VV
cmwgPSBhZG9wdFRvUVVybChXS1VSTFJlc3BvbnNlQ29weVVSTChyZXNwb25zZSkpOworICAgIGRv
d25sb2FkSXRlbS0+ZC0+bWltZVR5cGUgPSBhZG9wdFRvUVN0cmluZyhXS1VSTFJlc3BvbnNlQ29w
eU1JTUVUeXBlKHJlc3BvbnNlKSk7CisgICAgZG93bmxvYWRJdGVtLT5kLT5leHBlY3RlZENvbnRl
bnRMZW5ndGggPSBXS1VSTFJlc3BvbnNlR2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKHJlc3BvbnNl
KTsKKyAgICBkb3dubG9hZEl0ZW0tPmQtPnN1Z2dlc3RlZEZpbGVuYW1lID0gV0tTdHJpbmdDb3B5
UVN0cmluZyhhZG9wdFdLKFdLVVJMUmVzcG9uc2VDb3B5U3VnZ2VzdGVkRmlsZW5hbWUocmVzcG9u
c2UpKS5nZXQoKSk7CiAKICAgICBkb3dubG9hZEl0ZW0tPmQtPmRpZFJlY2VpdmVSZXNwb25zZShk
b3dubG9hZEl0ZW0pOwogfQogCi12b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZENyZWF0
ZWREZXN0aW5hdGlvbihEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgY29uc3QgUVN0cmluZyYgcGF0
aCkKK3ZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4
dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKLSAgICBRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBt
X2Rvd25sb2Fkcy52YWx1ZShkb3dubG9hZC0+ZG93bmxvYWRJRCgpKTsKKyAgICBRdERvd25sb2Fk
TWFuYWdlciogcSA9IHRvUXREb3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbyk7CisKKyAgICBRV2Vi
RG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0gPSBxLT5tX2Rvd25sb2Fkcy52YWx1ZShXS0Rvd25s
b2FkR2V0SUQoZG93bmxvYWQpKTsKICAgICBBU1NFUlQoZG93bmxvYWRJdGVtKTsKLSAgICBkb3du
bG9hZEl0ZW0tPmQtPmRlc3RpbmF0aW9uUGF0aCA9IHBhdGg7CisgICAgZG93bmxvYWRJdGVtLT5k
LT5kZXN0aW5hdGlvblBhdGggPSBXS1N0cmluZ0NvcHlRU3RyaW5nKHBhdGgpOwogICAgIGVtaXQg
ZG93bmxvYWRJdGVtLT5kZXN0aW5hdGlvbkZpbGVDcmVhdGVkKGRvd25sb2FkSXRlbS0+ZC0+ZGVz
dGluYXRpb25QYXRoKTsKIH0KIAotdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6ZG93bmxvYWRGaW5p
c2hlZChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKK3ZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRp
ZEZpbmlzaERvd25sb2FkKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKKyAgICBRdERvd25sb2FkTWFuYWdlciogcSA9IHRvUXRE
b3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbyk7CisKICAgICAvLyBXaWxsIGJlIGNhbGxlZCB3aGVu
IGRvd25sb2FkIGZpbmlzaGVzIHdpdGggc3VjY2Vzcy4KLSAgICBRV2ViRG93bmxvYWRJdGVtKiBk
b3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fkcy50YWtlKGRvd25sb2FkLT5kb3dubG9hZElEKCkpOwor
ICAgIFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSA9IHEtPm1fZG93bmxvYWRzLnRha2Uo
V0tEb3dubG9hZEdldElEKGRvd25sb2FkKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAg
ICAgZW1pdCBkb3dubG9hZEl0ZW0tPnN1Y2NlZWRlZCgpOwogfQogCi12b2lkIFF0RG93bmxvYWRN
YW5hZ2VyOjpkb3dubG9hZEZhaWxlZChEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgY29uc3QgUXRX
ZWJFcnJvciYgZXJyb3IpCit2b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkaWRGYWlsRG93bmxvYWQo
V0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBXS0Vycm9yUmVmIGVycm9yLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFF0RG93bmxvYWRNYW5hZ2VyKiBxID0gdG9R
dERvd25sb2FkTWFuYWdlcihjbGllbnRJbmZvKTsKKwogICAgIC8vIFdpbGwgYmUgY2FsbGVkIHdo
ZW4gZG93bmxvYWQgZmFpbHMgb3IgaXMgYWJvcnRlZC4KLSAgICBRV2ViRG93bmxvYWRJdGVtKiBk
b3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fkcy50YWtlKGRvd25sb2FkLT5kb3dubG9hZElEKCkpOwor
ICAgIFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSA9IHEtPm1fZG93bmxvYWRzLnRha2Uo
V0tEb3dubG9hZEdldElEKGRvd25sb2FkKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAK
ICAgICAvLyBJZiB0aGUgcGFyZW50IGlzIG51bGwgYXQgdGhpcyBwb2ludCwgdGhlIGRvd25sb2Fk
IGZhaWxlZCBiZWZvcmUgaXQKQEAgLTk5LDQ3ICsxMTMsMTkgQEAgdm9pZCBRdERvd25sb2FkTWFu
YWdlcjo6ZG93bmxvYWRGYWlsZWQoRG93bmxvYWRQcm94eSogZG93bmxvYWQsIGNvbnN0IFF0V2Vi
RXJyb3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVtaXQgZG93bmxvYWRJdGVtLT5m
YWlsZWQoZXJyb3IuZXJyb3JDb2RlQXNEb3dubG9hZEVycm9yKCksIGVycm9yLnVybCgpLCBlcnJv
ci5kZXNjcmlwdGlvbigpKTsKKyAgICBRdFdlYkVycm9yIHF0RXJyb3IoZXJyb3IpOworICAgIGVt
aXQgZG93bmxvYWRJdGVtLT5mYWlsZWQocXRFcnJvci5lcnJvckNvZGVBc0Rvd25sb2FkRXJyb3Io
KSwgcXRFcnJvci51cmwoKSwgcXRFcnJvci5kZXNjcmlwdGlvbigpKTsKIH0KIAotdm9pZCBRdERv
d25sb2FkTWFuYWdlcjo6ZG93bmxvYWREYXRhUmVjZWl2ZWQoRG93bmxvYWRQcm94eSogZG93bmxv
YWQsIHVpbnQ2NF90IGxlbmd0aCkKK3ZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZFJlY2VpdmVE
YXRhRm9yRG93bmxvYWQoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCB1aW50
NjRfdCBsZW5ndGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgUXREb3dubG9hZE1h
bmFnZXIqIHEgPSB0b1F0RG93bmxvYWRNYW5hZ2VyKGNsaWVudEluZm8pOworCiAgICAgLy8gV2ls
bCBiZSBjYWxsZWQgZXZlcnl0aW1lIGJ5dGVzIHdlcmUgd3JpdHRlbiB0byBkZXN0aW5hdGlvbiBm
aWxlIGJ5IFdlYlByb2Nlc3MuCi0gICAgUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtID0g
bV9kb3dubG9hZHMudmFsdWUoZG93bmxvYWQtPmRvd25sb2FkSUQoKSk7CisgICAgUVdlYkRvd25s
b2FkSXRlbSogZG93bmxvYWRJdGVtID0gcS0+bV9kb3dubG9hZHMudmFsdWUoV0tEb3dubG9hZEdl
dElEKGRvd25sb2FkKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CiAgICAgZG93bmxvYWRJ
dGVtLT5kLT50b3RhbEJ5dGVzUmVjZWl2ZWQgKz0gbGVuZ3RoOwogICAgIGVtaXQgZG93bmxvYWRJ
dGVtLT50b3RhbEJ5dGVzUmVjZWl2ZWRDaGFuZ2VkKGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgUXREb3dubG9hZE1hbmFnZXIqIHRvUXREb3dubG9hZE1hbmFnZXIoY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKLXsKLSAgICBBU1NFUlQoY2xpZW50SW5mbyk7Ci0gICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8UXREb3dubG9hZE1hbmFnZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSk7Ci19Ci0KLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXS0Nv
bnRleHRSZWYsIFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9u
c2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgdG9RdERvd25sb2FkTWFuYWdlcihj
bGllbnRJbmZvKS0+ZG93bmxvYWRSZWNlaXZlZFJlc3BvbnNlKHRvSW1wbChkb3dubG9hZCksIHRv
SW1wbChyZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKSk7Ci19Ci0KLXZvaWQgUXREb3dubG9h
ZE1hbmFnZXI6OmRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJl
ZiBkb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKLXsK
LSAgICB0b1F0RG93bmxvYWRNYW5hZ2VyKGNsaWVudEluZm8pLT5kb3dubG9hZENyZWF0ZWREZXN0
aW5hdGlvbih0b0ltcGwoZG93bmxvYWQpLCBXS1N0cmluZ0NvcHlRU3RyaW5nKHBhdGgpKTsKLX0K
LQotdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6ZGlkRmluaXNoRG93bmxvYWQoV0tDb250ZXh0UmVm
LCBXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAg
IHRvUXREb3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbyktPmRvd25sb2FkRmluaXNoZWQodG9JbXBs
KGRvd25sb2FkKSk7Ci19Ci0KLXZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRpZEZhaWxEb3dubG9h
ZChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIFdLRXJyb3JSZWYgZXJyb3Is
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgdG9RdERvd25sb2FkTWFuYWdlcihjbGll
bnRJbmZvKS0+ZG93bmxvYWRGYWlsZWQodG9JbXBsKGRvd25sb2FkKSwgUXRXZWJFcnJvcihlcnJv
cikpOwotfQotCi12b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkaWRSZWNlaXZlRGF0YUZvckRvd25s
b2FkKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgdWludDY0X3QgbGVuZ3Ro
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAgIHRvUXREb3dubG9hZE1hbmFnZXIoY2xp
ZW50SW5mbyktPmRvd25sb2FkRGF0YVJlY2VpdmVkKHRvSW1wbChkb3dubG9hZCksIGxlbmd0aCk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXREb3dubG9hZE1hbmFnZXIuaAppbmRleCBhNDlmNWUyYTQwMmNmZGNlZTc3Njc3YzYz
ZTBhMDliNDg3NWU0YTk2Li40ZDZjZmMwMGQ5ZWNhMTE2MjgxZTAzN2Q0YmRmOGJjZGI2NTFkMjRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIu
aApAQCAtMzQsMjMgKzM0LDE1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9h
ZFByb3h5OwogY2xhc3MgUXRXZWJFcnJvcjsKLWNsYXNzIFdlYkNvbnRleHQ7CiAKIGNsYXNzIFF0
RG93bmxvYWRNYW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBRdERvd25sb2FkTWFuYWdlcihXZWJDb250
ZXh0Kik7CisgICAgUXREb3dubG9hZE1hbmFnZXIoV0tDb250ZXh0UmVmKTsKICAgICB+UXREb3du
bG9hZE1hbmFnZXIoKTsKIAotICAgIHZvaWQgYWRkRG93bmxvYWQoRG93bmxvYWRQcm94eSosIFFX
ZWJEb3dubG9hZEl0ZW0qKTsKKyAgICB2b2lkIGFkZERvd25sb2FkKFdLRG93bmxvYWRSZWYsIFFX
ZWJEb3dubG9hZEl0ZW0qKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRvd25sb2FkUmVjZWl2ZWRS
ZXNwb25zZShEb3dubG9hZFByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
OwotICAgIHZvaWQgZG93bmxvYWRDcmVhdGVkRGVzdGluYXRpb24oRG93bmxvYWRQcm94eSosIGNv
bnN0IFFTdHJpbmcmIHBhdGgpOwotICAgIHZvaWQgZG93bmxvYWRGaW5pc2hlZChEb3dubG9hZFBy
b3h5Kik7Ci0gICAgdm9pZCBkb3dubG9hZEZhaWxlZChEb3dubG9hZFByb3h5KiwgY29uc3QgUXRX
ZWJFcnJvciYpOwotICAgIHZvaWQgZG93bmxvYWREYXRhUmVjZWl2ZWQoRG93bmxvYWRQcm94eSos
IHVpbnQ2NF90IGxlbmd0aCk7Ci0KLSAgICAvLyBXS0NvbnRleHREb3dubG9hZENsaWVudCBjYWxs
YmFja3MuCiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4dFJlZiwg
V0tEb3dubG9hZFJlZiwgV0tVUkxSZXNwb25zZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rv
d25sb2FkUmVmLCBXS1N0cmluZ1JlZiBwYXRoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb3dubG9hZChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRS
ZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJDb250ZXh0LmNwcAppbmRleCBjYTU2MmRjODAwMmVlZjZlNGMyNTdhZjBmNjFhMmI0
NWI3MjJhNmVlLi40NDg5ZDc0YzhhNjZkYjNmMmM2ZDIxNjBmNGFjYWE3MmNlMDUxZTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcApAQCAtMTE3LDcg
KzExNyw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGll
bnQoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAKIFF0V2ViQ29udGV4dDo6UXRXZWJDb250ZXh0KFdL
Q29udGV4dFJlZiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBtX2Rv
d25sb2FkTWFuYWdlcihuZXcgUXREb3dubG9hZE1hbmFnZXIodG9JbXBsKGNvbnRleHQpKSkKKyAg
ICAsIG1fZG93bmxvYWRNYW5hZ2VyKG5ldyBRdERvd25sb2FkTWFuYWdlcihjb250ZXh0KSkKICAg
ICAsIG1faWNvbkRhdGFiYXNlKG5ldyBRdFdlYkljb25EYXRhYmFzZUNsaWVudChjb250ZXh0KSkK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkVycm9y
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkVycm9yLmNwcAppbmRleCBi
NTg5MTU5N2FmYzg5OTZjZDA5OWUwNmNhZmQ0NTI3NzY0NTQxMThhLi5jMmY1MDZjOGYzZjRmNjFh
MmM4ZmFkMmI2MThmNTg0MDg4NzZhYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0V2ViRXJyb3IuY3BwCkBAIC01NywxMiArNTcsMTIgQEAgaW50IFF0V2ViRXJyb3I6OmVycm9y
Q29kZSgpIGNvbnN0CiAKIFFTdHJpbmcgUXRXZWJFcnJvcjo6dXJsKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhXS1VSTENvcHlTdHJpbmcoV0tFcnJvckNvcHlGYWls
aW5nVVJMKGVycm9yLmdldCgpKSkpOworICAgIHJldHVybiBhZG9wdFRvUVN0cmluZyhXS0Vycm9y
Q29weUZhaWxpbmdVUkwoZXJyb3IuZ2V0KCkpKTsKIH0KIAogUVN0cmluZyBRdFdlYkVycm9yOjpk
ZXNjcmlwdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tF
cnJvckNvcHlMb2NhbGl6ZWREZXNjcmlwdGlvbihlcnJvci5nZXQoKSkpOworICAgIHJldHVybiBh
ZG9wdFRvUVN0cmluZyhXS0Vycm9yQ29weUxvY2FsaXplZERlc2NyaXB0aW9uKGVycm9yLmdldCgp
KSk7CiB9CiAKIGJvb2wgUXRXZWJFcnJvcjo6aXNDYW5jZWxsYXRpb24oKSBjb25zdAo=
</data>
<flag name="review"
          id="213702"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>