<?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>108475</bug_id>
          
          <creation_ts>2013-01-31 06:16:45 -0800</creation_ts>
          <short_desc>[Qt] Properly layer QtWebContext on top of the C API</short_desc>
          <delta_ts>2013-03-12 04:16:59 -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>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>109829</dependson>
          <blocked>108471</blocked>
    
    <blocked>109922</blocked>
    
    <blocked>111435</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jocelyn Turcotte">jturcotte</reporter>
          <assigned_to name="Jocelyn Turcotte">jturcotte</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>821470</commentid>
    <comment_count>0</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-01-31 06:16:45 -0800</bug_when>
    <thetext>QtWebContext, QtWebIconDatabaseClient and QtDownloadManager should be able to simply act as Qt bindings for the corresponding C APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830760</commentid>
    <comment_count>1</comment_count>
      <attachid>187826</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-12 03:41:15 -0800</bug_when>
    <thetext>Created attachment 187826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830762</commentid>
    <comment_count>2</comment_count>
      <attachid>187827</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-12 03:48:49 -0800</bug_when>
    <thetext>Created attachment 187827
Patch

Fix a sentence in the ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830791</commentid>
    <comment_count>3</comment_count>
      <attachid>187827</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-12 05:04:43 -0800</bug_when>
    <thetext>Comment on attachment 187827
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:917
&gt; +void QQuickWebViewPrivate::didReceiveMessageFromNavigatorQtObject(WKStringRef message)
&gt;  {
&gt;      QVariantMap variantMap;
&gt; -    variantMap.insert(QLatin1String(&quot;data&quot;), QString(message));
&gt; +    variantMap.insert(QLatin1String(&quot;data&quot;), WKStringCopyQString(message));

So your message is a WKString but WKStringCopyQString creates a QString? I think the naming of that method is confusing. CopyTo? anywya it that is the common naming then that is fine, I just found it a bit confusing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831745</commentid>
    <comment_count>4</comment_count>
      <attachid>187827</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-13 02:21:42 -0800</bug_when>
    <thetext>Comment on attachment 187827
Patch

I&apos;m working on splitting this patch in 2-3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833062</commentid>
    <comment_count>5</comment_count>
      <attachid>188348</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-14 07:36:25 -0800</bug_when>
    <thetext>Created attachment 188348
Patch

Splitted patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837442</commentid>
    <comment_count>6</comment_count>
      <attachid>188348</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-20 07:01:02 -0800</bug_when>
    <thetext>Comment on attachment 188348
Patch

After the split-up this patch is indeed pretty simple now. LGTM. I&apos;m hoping Benjamin can sign off on it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838939</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-21 15:44:20 -0800</bug_when>
    <thetext>Sorry, I missed it. Ping me if that happens again.

This looks great, I sign off on the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853316</commentid>
    <comment_count>8</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-12 04:16:59 -0700</bug_when>
    <thetext>Committed r145516: &lt;http://trac.webkit.org/changeset/145516&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187826</attachid>
            <date>2013-02-12 03:41:15 -0800</date>
            <delta_ts>2013-02-12 03:48:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108475-20130212123744.patch</filename>
            <type>text/plain</type>
            <size>24423</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWRiZDdiNmY5MDViNjJk
MGRhMDE1OGRmZWZjZjMyYjY3NjA4Mjc2ZS4uZWQ4NDk4ZmY5MmNkZDc3OGNiNWNkYWU1MGVkMDVh
NmI4MTdmZmIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTAyLTEyICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CisKKyAgICAgICAgW1F0
XSBQcm9wZXJseSBsYXllciBRdFdlYkNvbnRleHQgb24gdG9wIG9mIHRoZSBDIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGxpZmV0aW1lIG9m
IHRoZSBXZWJDb250ZXh0IGlzIGRpZmZpY3VsdCB0byBtYW5hZ2Ugc2luY2UgYSBjaXJjdWxhcgor
ICAgICAgICByZWZlcmVuY2UgaXMga2VwdCB3aXRoIHRoZSBXZWJQcm9jZXNzUHJveHkgdW50aWwg
aXQgc2h1dHMgaXRzZWxmIGRvd24sCisgICAgICAgIGFmdGVyIHRoZSBsYXN0IHBhZ2Ugd2FzIGNs
b3NlZC4gVGhlcmUgd2FzIHNvbWUgbm90aWZpY2F0aW9uCisgICAgICAgIGluIHBsYWNlIHRvIGhh
bmRsZSB0aGlzIGluIHRoZSB1cHBlciBsYXllciwgYnV0IGhhdmluZyB0byBnbyB0aHJvdWdoIHRo
ZQorICAgICAgICBDIEFQSSBtYWtlcyB0aGlzIHF1aXRlIGF3a3dhcmQuCisKKyAgICAgICAgVGhl
IGJpZ2dlc3QgYmVoYXZpb3IgY2hhbmdlIHRoYXQgdGhpcyBpbnRyb2R1Y2VzIGlzIHRoYXQgdGhl
IFdlYkNvbnRleHQKKyAgICAgICAgaXNuJ3QgYXV0b21hdGljYWxseSBkZXN0cm95ZWQgYW55bW9y
ZSBhbmQgd2lsbCBiZSBrZXB0IGFsaXZlIHVudGlsIHRoZQorICAgICAgICBhcHBsaWNhdGlvbiBp
cyBzaHV0IGRvd24uCisgICAgICAgIFRoaXMgaW5jbHVkZXMgdGhlIGljb24gZGF0YWJhc2UsIGlk
ZWFsbHkgd2Ugc2hvdWxkIG9ubHkgZW5hYmxlIGl0IG9uY2UgdGhlCisgICAgICAgIFFRdWlja1dl
YlZpZXc6Omljb24gcHJvcGVydHkgaXMgcmVhZC4KKworICAgICAgICBBbHNvLCBpbnN0ZWFkIG9m
IGdvaW5nIHRocm91Z2ggV2ViUGFnZVByb3h5IGFuZCBQYWdlQ2xpZW50IHRvIGZvcndhcmQKKyAg
ICAgICAgaW5qZWN0ZWQgYnVuZGxlIG1lc3NhZ2VzIHJlY2VpdmVkIGJ5IHRoZSBjb250ZXh0LCBt
YWludGFpbiBhIHN0YXRpYyBtYXAKKyAgICAgICAgb2YgUVF1aWNrV2ViVmlld1ByaXZhdGUgYW5k
IGZldGNoIGl0IHVzaW5nIHRoZSBXS1BhZ2VSZWYuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6Omdl
dCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUp
OgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6On5RUXVpY2tXZWJWaWV3UHJpdmF0ZSk6
CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChR
UXVpY2tXZWJWaWV3UHJpdmF0ZTo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlOjp1cGRhdGVJY29uKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oOgorICAgICAgICAoUVF1aWNr
V2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmljb25pbWFn
ZXByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFFXZWJJY29uSW1hZ2VQcm92aWRlcjo6cmVxdWVzdElt
YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFBhZ2VDbGllbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL3F0L1F0UGFnZUNsaWVudC5oOgorICAgICAgICAoUXRQYWdlQ2xpZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdlYktpdDo6aW5pdGlhbGl6ZUNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OlF0V2ViQ29udGV4dDo6UXRXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktp
dDo6UXRXZWJDb250ZXh0Ojp+UXRXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJD
b250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmRlZmF1bHRD
b250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0Lmg6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoUXRXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UXRX
ZWJDb250ZXh0Ojpjb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJDb250ZXh0Ojpkb3du
bG9hZE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkNvbnRleHQ6Omljb25EYXRhYmFz
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHA6CisKIDIwMTMtMDItMTEgIEpvY2VseW4g
VHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dL
Ml0gRmF2b3IgUVVybCB0byBXVEY6OlN0cmluZyBpbiB0aGUgUXQgQVBJIGxheWVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCA3
ZjYyNDJjYzVmMTYzMTQwNmJhYWU2MTkyMzI2ZTM1NzE2ZTFiOWJhLi4yNjY3OTE4MTYwYjBlNWJl
ZjhiNjAwMmE4Yjk3YzA3Y2YzZmYwNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJRdFdlYlBhZ2VFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJRdFdlYlBhZ2VQb2xpY3lDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKKyNpbmNsdWRlICJXZWJDb250
ZXh0LmgiCiAjaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKICNpZiBFTkFCTEUoSU5TUEVDVE9S
X1NFUlZFUikKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgpAQCAtNDQsNiArNDUsNyBA
QAogI2VuZGlmCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVy
ZW5jZXMuaCIKKyNpbmNsdWRlICJxZ2xvYmFsLmgiCiAjaW5jbHVkZSAicXF1aWNrbmV0d29ya3Jl
cGx5X3AuaCIKICNpbmNsdWRlICJxcXVpY2tuZXR3b3JrcmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAi
cXF1aWNrd2VicGFnZV9wX3AuaCIKQEAgLTYwLDYgKzYyLDcgQEAKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPFFEYXRlVGltZT4KKyNpbmNsdWRlIDxRTWFwPgogI2luY2x1ZGUgPFF0Q29y
ZS9RRmlsZT4KICNpbmNsdWRlIDxRdFFtbC9RSlNWYWx1ZT4KICNpbmNsdWRlIDxRdFF1aWNrL1FR
dWlja1ZpZXc+CkBAIC04NSw2ICs4OCw5IEBAIHN0YXRpYyBjb25zdCBpbnQga0F4aXNMb2NrU2Ft
cGxlQ291bnQgPSA1Owogc3RhdGljIGNvbnN0IHFyZWFsIGtBeGlzTG9ja1ZlbG9jaXR5VGhyZXNo
b2xkID0gMzAwOwogc3RhdGljIGNvbnN0IHFyZWFsIGtBeGlzTG9ja1ZlbG9jaXR5RGlyZWN0aW9u
VGhyZXNob2xkID0gNTA7CiAKK3R5cGVkZWYgUU1hcDxXS1BhZ2VSZWYsIFFRdWlja1dlYlZpZXdQ
cml2YXRlKj4gUGFnZVRvVmlld01hcDsKK1FfR0xPQkFMX1NUQVRJQyhQYWdlVG9WaWV3TWFwLCBw
YWdlVG9WaWV3KQorCiBzdGF0aWMgaW5saW5lIFFRdWlja1dlYlZpZXdQcml2YXRlKiB0b1FRdWlj
a1dlYlZpZXdQcml2YXRlKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgQVNTRVJUKGNs
aWVudEluZm8pOwpAQCAtMTk3LDYgKzIwMywxMSBAQCBzdGF0aWMgUVF1aWNrV2ViVmlld1ByaXZh
dGUqIGNyZWF0ZVByaXZhdGVPYmplY3QoUVF1aWNrV2ViVmlldyogcHVibGljT2JqZWN0KQogICAg
IHJldHVybiBuZXcgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGUocHVibGljT2JqZWN0KTsKIH0K
IAorUVF1aWNrV2ViVmlld1ByaXZhdGUqIFFRdWlja1dlYlZpZXdQcml2YXRlOjpnZXQoV0tQYWdl
UmVmIHBhZ2UpCit7CisgICAgcmV0dXJuIHBhZ2VUb1ZpZXcoKS0+dmFsdWUocGFnZSk7Cit9CisK
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9ja2VyOjpGbGlja2FibGVBeGlz
TG9ja2VyKCkKICAgICA6IG1fYWxsb3dlZERpcmVjdGlvbihRUXVpY2tGbGlja2FibGU6OkF1dG9G
bGlja0RpcmVjdGlvbikKICAgICAsIG1fdGltZSgwKSwgbV9zYW1wbGVDb3VudCgwKQpAQCAtMjcy
LDYgKzI4Myw3IEBAIFFQb2ludEYgUVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4aXNM
b2NrZXI6OmFkanVzdChjb25zdCBRUG9pbnRGJiBwb3NpdGlvCiBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQpCiAgICAgOiBx
X3B0cih2aWV3cG9ydCkKICAgICAsIGV4cGVyaW1lbnRhbChuZXcgUVF1aWNrV2ViVmlld0V4cGVy
aW1lbnRhbCh2aWV3cG9ydCwgdGhpcykpCisgICAgLCBjb250ZXh0KDApCiAgICAgLCBhbGVydERp
YWxvZygwKQogICAgICwgY29uZmlybURpYWxvZygwKQogICAgICwgcHJvbXB0RGlhbG9nKDApCkBA
IC0yOTksNiArMzExLDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2
YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogUVF1aWNrV2ViVmlld1ByaXZhdGU6On5RUXVp
Y2tXZWJWaWV3UHJpdmF0ZSgpCiB7CiAgICAgd2ViUGFnZVByb3h5LT5jbG9zZSgpOworICAgIHBh
Z2VUb1ZpZXcoKS0+cmVtb3ZlKHdlYlBhZ2UuZ2V0KCkpOwogfQogCiAvLyBOb3RlOiB3ZSBkZWxh
eSB0aGlzIGluaXRpYWxpemF0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IFFRdWlja1dlYlZpZXcgaGFz
IGl0cyBkLXB0ciBpbi1wbGFjZS4KQEAgLTMwOCw5ICszMjEsMTEgQEAgdm9pZCBRUXVpY2tXZWJW
aWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3Jv
dXBSZWYgcGEKICAgICBpZiAoIXBhZ2VHcm91cCkKICAgICAgICAgcGFnZUdyb3VwID0gYWRvcHRX
SyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKDApKTsKIAotICAgIGNvbnRleHQgPSBj
b250ZXh0UmVmID8gUXRXZWJDb250ZXh0OjpjcmVhdGUodG9JbXBsKGNvbnRleHRSZWYpKSA6IFF0
V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKTsKLSAgICB3ZWJQYWdlUHJveHkgPSBjb250ZXh0
LT5jcmVhdGVXZWJQYWdlKCZwYWdlQ2xpZW50LCB0b0ltcGwocGFnZUdyb3VwLmdldCgpKSk7Cisg
ICAgY29udGV4dCA9IGNvbnRleHRSZWYgPyBRdFdlYkNvbnRleHQ6OmNyZWF0ZShjb250ZXh0UmVm
KSA6IFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKTsKKyAgICB3ZWJQYWdlUHJveHkgPSB0
b0ltcGwoY29udGV4dC0+Y29udGV4dCgpKS0+Y3JlYXRlV2ViUGFnZSgmcGFnZUNsaWVudCwgdG9J
bXBsKHBhZ2VHcm91cC5nZXQoKSkpOwogICAgIHdlYlBhZ2UgPSB0b0FQSSh3ZWJQYWdlUHJveHku
Z2V0KCkpOworICAgIHBhZ2VUb1ZpZXcoKS0+aW5zZXJ0KHdlYlBhZ2UuZ2V0KCksIHRoaXMpOwor
CiAgICAgd2ViUGFnZVByb3h5LT5zZXRVc2VGaXhlZExheW91dChzX2ZsaWNrYWJsZVZpZXdwb3J0
RW5hYmxlZCk7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHdlYlBhZ2VQcm94eS0+
ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c2V0V2ViVmlldyhxX3B0cik7CkBAIC02MDcsNyArNjIyLDcg
QEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25s
b2FkUHJveHkqIGRvd25sb2FkKQogICAgIGRvd25sb2FkSXRlbS0+ZC0+ZG93bmxvYWRQcm94eSA9
IGRvd25sb2FkOwogCiAgICAgcS0+Y29ubmVjdChkb3dubG9hZEl0ZW0tPmQsIFNJR05BTChyZWNl
aXZlZFJlc3BvbnNlKFFXZWJEb3dubG9hZEl0ZW0qKSksIHEsIFNMT1QoX3Ffb25SZWNlaXZlZFJl
c3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0qKSkpOwotICAgIFF0V2ViQ29udGV4
dDo6ZG93bmxvYWRNYW5hZ2VyKCktPmFkZERvd25sb2FkKGRvd25sb2FkLCBkb3dubG9hZEl0ZW0p
OworICAgIFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKS0+ZG93bmxvYWRNYW5hZ2VyKCkt
PmFkZERvd25sb2FkKGRvd25sb2FkLCBkb3dubG9hZEl0ZW0pOwogfQogCiB2b2lkIFFRdWlja1dl
YlZpZXdQcml2YXRlOjpfcV9vblZpc2libGVDaGFuZ2VkKCkKQEAgLTY0Miw3ICs2NTcsNyBAQCB2
b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjp1cGRhdGVJY29uKCkKICAgICBpZiAoIXByb3ZpZGVy
KQogICAgICAgICByZXR1cm47CiAKLSAgICBRVXJsIGljb25VcmwgPSBwcm92aWRlci0+aWNvblVS
TEZvclBhZ2VVUkxJbkNvbnRleHQobV9jdXJyZW50VXJsLCBjb250ZXh0LmdldCgpKTsKKyAgICBR
VXJsIGljb25VcmwgPSBwcm92aWRlci0+aWNvblVSTEZvclBhZ2VVUkxJbkNvbnRleHQobV9jdXJy
ZW50VXJsLCBjb250ZXh0KTsKIAogICAgIGlmIChpY29uVXJsID09IG1faWNvblVybCkKICAgICAg
ICAgcmV0dXJuOwpAQCAtODk2LDEwICs5MTEsMTAgQEAgV2ViQ29yZTo6SW50U2l6ZSBRUXVpY2tX
ZWJWaWV3UHJpdmF0ZTo6dmlld1NpemUoKSBjb25zdAogCiAgICAgXHNhIHBvc3RNZXNzYWdlCiAq
Lwotdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdh
dG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoV0tTdHJpbmdSZWYg
bWVzc2FnZSkKIHsKICAgICBRVmFyaWFudE1hcCB2YXJpYW50TWFwOwotICAgIHZhcmlhbnRNYXAu
aW5zZXJ0KFFMYXRpbjFTdHJpbmcoImRhdGEiKSwgUVN0cmluZyhtZXNzYWdlKSk7CisgICAgdmFy
aWFudE1hcC5pbnNlcnQoUUxhdGluMVN0cmluZygiZGF0YSIpLCBXS1N0cmluZ0NvcHlRU3RyaW5n
KG1lc3NhZ2UpKTsKICAgICB2YXJpYW50TWFwLmluc2VydChRTGF0aW4xU3RyaW5nKCJvcmlnaW4i
KSwgcV9wdHItPnVybCgpKTsKICAgICBlbWl0IHFfcHRyLT5leHBlcmltZW50YWwoKS0+bWVzc2Fn
ZVJlY2VpdmVkKHZhcmlhbnRNYXApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IDQyNzNjYTUyMzFhOTNjZTRjOTJi
NDBmYzQ0YTc5MzA1MDUyODgxOGYuLjZhNGQzZDFjMTkyYTNiYzYzMDkwZmQ5NThlNjhkZGQyNzE2
N2EwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKQEAgLTY1LDYgKzY1LDcgQEAgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZh
dGUgewogCiBwdWJsaWM6CiAgICAgc3RhdGljIFFRdWlja1dlYlZpZXdQcml2YXRlKiBnZXQoUVF1
aWNrV2ViVmlldyogcSkgeyByZXR1cm4gcS0+ZF9wdHIuZGF0YSgpOyB9CisgICAgc3RhdGljIFFR
dWlja1dlYlZpZXdQcml2YXRlKiBnZXQoV0tQYWdlUmVmKTsKIAogICAgIHZpcnR1YWwgflFRdWlj
a1dlYlZpZXdQcml2YXRlKCk7CiAKQEAgLTEyMywxMyArMTI0LDE0IEBAIHB1YmxpYzoKIAogICAg
IC8vIFBhZ2VDbGllbnQuCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIGNvbnN0Owot
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29u
c3QgUVBvaW50JiBwb3MpIHsgfQogICAgIHZvaWQgcHJvY2Vzc0RpZENyYXNoKCk7CiAgICAgdm9p
ZCBkaWRSZWxhdW5jaFByb2Nlc3MoKTsKICAgICBQYXNzT3duUHRyPFdlYktpdDo6RHJhd2luZ0Fy
ZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpOwogICAgIHZvaWQgaGFuZGxlRG93bmxv
YWRSZXF1ZXN0KFdlYktpdDo6RG93bmxvYWRQcm94eSopOwogCisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChXS1N0cmluZ1JlZiBtZXNzYWdlKTsKKwogcHJv
dGVjdGVkOgogICAgIGNsYXNzIEZsaWNrYWJsZUF4aXNMb2NrZXIgewogICAgICAgICBRUXVpY2tG
bGlja2FibGU6OkZsaWNrYWJsZURpcmVjdGlvbiBtX2FsbG93ZWREaXJlY3Rpb247CkBAIC0xNjQs
NyArMTY2LDYgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3
YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV0tBcnJheVJlZiwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVp
Y2tXZWJWaWV3KiB2aWV3cG9ydCk7Ci0gICAgUmVmUHRyPFdlYktpdDo6UXRXZWJDb250ZXh0PiBj
b250ZXh0OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gd2ViUGFnZVByb3h5Owog
ICAgIFdLUmV0YWluUHRyPFdLUGFnZVJlZj4gd2ViUGFnZTsKICAgICBXS1JldGFpblB0cjxXS1Bh
Z2VHcm91cFJlZj4gcGFnZUdyb3VwOwpAQCAtMTgwLDYgKzE4MSw3IEBAIHByb3RlY3RlZDoKICAg
ICBRU2NvcGVkUG9pbnRlcjxRUXVpY2tXZWJQYWdlPiBwYWdlVmlldzsKICAgICBRUXVpY2tXZWJW
aWV3KiBxX3B0cjsKICAgICBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsKiBleHBlcmltZW50YWw7
CisgICAgV2ViS2l0OjpRdFdlYkNvbnRleHQqIGNvbnRleHQ7CiAKICAgICBGbGlja2FibGVBeGlz
TG9ja2VyIGF4aXNMb2NrZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcAppbmRleCAwM2JiZWM5NmQxYzNi
NTAyMmFkM2I3ZDMzMmUxMDc2N2JkNWRlYjBkLi45NTU3YzIwYmVlNjA4ODY1MjhiM2M5NGZiMGM0
NDhmNWZmMmQ0NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2ViaWNvbmltYWdlcHJvdmlkZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFFJbWFn
ZSBRV2ViSWNvbkltYWdlUHJvdmlkZXI6OnJlcXVlc3RJbWFnZShjb25zdCBRU3RyaW5nJiBpZCwg
UVNpemUqIHNpemUsIGNvbnN0CiB7CiAgICAgUVVybCBwYWdlVVJMID0gUVVybDo6ZnJvbUVuY29k
ZWQoUUJ5dGVBcnJheTo6ZnJvbUJhc2U2NChpZC5taWRSZWYoaWQuaW5kZXhPZignIycpICsgMSku
dG9MYXRpbjEoKSkpOwogCi0gICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFz
ZSA9IFF0V2ViQ29udGV4dDo6aWNvbkRhdGFiYXNlKCk7CisgICAgUXRXZWJJY29uRGF0YWJhc2VD
bGllbnQqIGljb25EYXRhYmFzZSA9IFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKS0+aWNv
bkRhdGFiYXNlKCk7CiAgICAgaWYgKCFpY29uRGF0YWJhc2UpCiAgICAgICAgIHJldHVybiBRSW1h
Z2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcv
cXJhd3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJh
d3dlYnZpZXcuY3BwCmluZGV4IGQzNDgxZWEwMTYyYTUzZDNkMDg4M2U3ZDYzMGMzMmYzNDcwM2Ex
ZWYuLjg5ODEzZmYzOWEyMGQ5MjViNzJiOWY3MDk2MGIyMzgwMjhmZDcwMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKQEAg
LTM3LDExICszNyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL3FyYXd3ZWJ2aWV3X3AuaD4KIAotdm9pZCBRUmF3V2Vi
Vmlld1ByaXZhdGU6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFFS
YXdXZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNv
cmU6OlZpZXdwb3J0QXR0cmlidXRlcyYgYXR0cikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZp
ZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmll
d19wX3AuaAppbmRleCAwMjk5NTZlNzdmMjYwMGUyMjExNmRjZDcwMTY2NjY5NjA3ODhhOTAzLi41
YThmYzM0Nzk5NTQ3NDg5ZjE1ZjA4OTQ5M2M1YWMyYTU4MzBlOGE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlld19wX3AuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlld19wX3AuaApAQCAt
NDYsNyArNDYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvdW50U3RyaW5nTWF0Y2hl
c0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgV2ViS2l0OjpGaW5kT3B0aW9u
cywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxs
RWRpdENvbW1hbmRzKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tTmF2aWdhdG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0
QXR0cmlidXRlcyYgYXR0cik7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVz
dChXZWJLaXQ6OkRvd25sb2FkUHJveHkqIGRvd25sb2FkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKaW5kZXggZDA4Y2M5MWY2NDRkOWE5ZjhiYjg3M2ViNGZlODMxYjk5ODNm
OGM2Mi4uMmVjMjBhYmZmMDgzOGE4M2M1MTQwN2Q2ODgxMGVmYTBjODdlYzExYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMjEsNyArMTIxLDYgQEAgcHVibGljOgog
I2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmRab29tYWJs
ZUFyZWEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9i
amVjdChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1dGhlbnRp
Y2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIGNvbnN0IFN0cmlu
ZyYgcmVhbG0sIGNvbnN0IFN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUsIFN0cmluZyYgdXNlcm5h
bWUsIFN0cmluZyYgcGFzc3dvcmQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQ2VydGlm
aWNhdGVWZXJpZmljYXRpb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIGJvb2wmIGln
bm9yZUVycm9ycykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVQcm94eUF1dGhlbnRpY2F0
aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIHVpbnQxNl90IHBvcnQs
IGNvbnN0IFN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUsIFN0cmluZyYgdXNlcm5hbWUsIFN0cmlu
ZyYgcGFzc3dvcmQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCAwZjYwZTdkZTZlOGFhMGJiOGI3ZGYwNDk0OWQ2ZGQwMDc2YmRhNWZiLi5mZWQ5N2I4Yjgy
Mzg2OTg4YjAzMDU1NzRmODZhNmZmMzQ4OTFjZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC02NDIsNyArNjQyLDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgdm9pZCBmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcAppbmRleCA4OWE0MGM5MjMx
YTE4MWI3MDE5YzFlMmZhMTJiNmI2OGIxMTZiMjYxLi44NmNhMzg3M2U4NDg3NjRjZDZlYWJmNTg2
MjdmMjkwMDZiNmI4YTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRQYWdlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdl
Q2xpZW50LmNwcApAQCAtMjQ1LDExICsyNDUsNiBAQCB2b2lkIFF0UGFnZUNsaWVudDo6ZGlkRmlu
ZFpvb21hYmxlQXJlYShjb25zdCBJbnRQb2ludCYgdGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBhcgog
ICAgIG1fZXZlbnRIYW5kbGVyLT5kaWRGaW5kWm9vbWFibGVBcmVhKHRhcmdldCwgYXJlYSk7CiB9
CiAKLXZvaWQgUXRQYWdlQ2xpZW50OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9i
amVjdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6
OmdldChtX3dlYlZpZXcpLT5kaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdCht
ZXNzYWdlKTsKLX0KLQogdm9pZCBRdFBhZ2VDbGllbnQ6OnVwZGF0ZVRleHRJbnB1dFN0YXRlKCkK
IHsKICAgICBBU1NFUlQobV9ldmVudEhhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0UGFnZUNsaWVudC5oCmluZGV4IGJjM2UzZjEyYzMwZWNmMDdmNzk4NWNmYmY3YjA0MjJh
N2ExZjU1MjEuLmNiOTdjZTRmZjQ4MWZhZDJkZGE4OTIwZDBjY2I0YTE4NjMxNWFiZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmgKQEAgLTQ3LDcgKzQ3LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpOwogICAg
IHZpcnR1YWwgYm9vbCBpc1ZpZXdGb2N1c2VkKCk7CiAgICAgdmlydHVhbCBib29sIGlzVmlld1Zp
c2libGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9y
UXRPYmplY3QoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5j
cHAKaW5kZXggZmFhY2E5MWIyZmU4NmFhNTMzY2NhZjI2Y2JjMDVjODYxYzk1ZGQyMS4uM2RlZjQ0
ZDkxZDU2MzU5ZWRhNDQxMTMxYTczMTVlODQ1ZGRhYmMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHAKQEAgLTIzLDEwICsyMyw5IEBACiAKICNpbmNs
dWRlICJRdERvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIlF0V2ViSWNvbkRhdGFiYXNlQ2xp
ZW50LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCisjaW5jbHVkZSA8V0tBUElDYXN0Lmg+
CiAjaW5jbHVkZSA8V0tBcnJheS5oPgogI2luY2x1ZGUgPFdLUGFnZS5oPgogI2luY2x1ZGUgPFdL
U3RyaW5nLmg+CkBAIC0zNCwxMCArMzMsMTIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0
YXRpYyBXZWJDb250ZXh0KiBzX2RlZmF1bHRXZWJDb250ZXh0ID0gMDsKKy8vIFByZXZlbnQgdGhl
IGRlc3RydWN0aW9uIG9mIHRoZSBXS0NvbnRleHQgZm9yIHR3byByZWFzb25zOgorLy8gLSBBbiBp
bnRlcm5hbCByZWZlcmVuY2UgaXMga2VwdCB0byB0aGUgV2ViQ29udGV4dCB3YWl0aW5nIHVudGls
IHRoZSB3ZWIgcHJvY2VzcyBzaHV0IGRvd24sIHdoaWNoCisvLyBkb2VzIHNvIDYwIHNlY29uZHMg
YWZ0ZXIgdGhlIGxhc3QgcGFnZSBjbG9zZWQuIFdlIHdhbnQgdG8gcmV1c2UgdGhhdCB3ZWIgcHJv
Y2VzcyBpZiBwb3NzaWJsZSBhbmQKKy8vIGF2b2lkIGNyZWF0aW5nIGEgc2Vjb25kIHBhcmFsbGVs
IFdLQ29udGV4dCArIHdlYiBwcm9jZXNzLgorLy8gLSBUaGUgSWNvbkRhdGFiYXNlIHdhc24ndCBk
ZXNpZ25lZCB0byBoYXZlIG1vcmUgdGhhbiBvbmUgaW5zdGFuY2UsIG9yIHRvIGJlIHF1aWNrbHkg
b3BlbmVkL2Nsb3NlZC4KIHN0YXRpYyBRdFdlYkNvbnRleHQqIHNfZGVmYXVsdFF0V2ViQ29udGV4
dCA9IDA7Ci1zdGF0aWMgT3duUHRyPFF0RG93bmxvYWRNYW5hZ2VyPiBzX2Rvd25sb2FkTWFuYWdl
cjsKLXN0YXRpYyBPd25QdHI8UXRXZWJJY29uRGF0YWJhc2VDbGllbnQ+IHNfaWNvbkRhdGFiYXNl
OwogCiBzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9yU2VydmVyKCkKIHsKQEAgLTk3LDk3ICs5OCw1
MCBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0Nv
bnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZwogICAgIFdLUGFnZVJlZiBwYWdlID0gc3RhdGlj
X2Nhc3Q8V0tQYWdlUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoYm9keSwgMCkpOwogICAgIFdL
U3RyaW5nUmVmIHN0ciA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0
SW5kZXgoYm9keSwgMSkpOwogCi0gICAgdG9JbXBsKHBhZ2UpLT5kaWRSZWNlaXZlTWVzc2FnZUZy
b21OYXZpZ2F0b3JRdE9iamVjdCh0b0ltcGwoc3RyKS0+c3RyaW5nKCkpOworICAgIFFRdWlja1dl
YlZpZXdQcml2YXRlOjpnZXQocGFnZSktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0
T2JqZWN0KHN0cik7CiB9CiAKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnQoV2ViQ29udGV4dCogY29udGV4dCkKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQoV0tDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAg
V0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiAgICAg
bWVtc2V0KCZpbmplY3RlZEJ1bmRsZUNsaWVudCwgMCwgc2l6ZW9mKFdLQ29udGV4dEluamVjdGVk
QnVuZGxlQ2xpZW50KSk7CiAgICAgaW5qZWN0ZWRCdW5kbGVDbGllbnQudmVyc2lvbiA9IGtXS0Nv
bnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudEN1cnJlbnRWZXJzaW9uOwogICAgIGluamVjdGVkQnVu
ZGxlQ2xpZW50LmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlID0gZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGU7Ci0gICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5k
bGVDbGllbnQodG9BUEkoY29udGV4dCksICZpbmplY3RlZEJ1bmRsZUNsaWVudCk7CisgICAgV0tD
b250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dCwgJmluamVjdGVkQnVuZGxlQ2xp
ZW50KTsKIH0KIAotUXRXZWJDb250ZXh0OjpRdFdlYkNvbnRleHQoV2ViQ29udGV4dCogY29udGV4
dCkKK1F0V2ViQ29udGV4dDo6UXRXZWJDb250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAg
IDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2Rvd25sb2FkTWFuYWdlcihuZXcgUXREb3du
bG9hZE1hbmFnZXIodG9JbXBsKGNvbnRleHQpKSkKKyAgICAsIG1faWNvbkRhdGFiYXNlKG5ldyBR
dFdlYkljb25EYXRhYmFzZUNsaWVudCh0b0ltcGwoY29udGV4dCkpKQogewogfQogCiBRdFdlYkNv
bnRleHQ6On5RdFdlYkNvbnRleHQoKQogewotICAgIEFTU0VSVCghc19kZWZhdWx0UXRXZWJDb250
ZXh0IHx8IHNfZGVmYXVsdFF0V2ViQ29udGV4dCA9PSB0aGlzKTsKLSAgICBzX2RlZmF1bHRRdFdl
YkNvbnRleHQgPSAwOwogfQogCiAvLyBVc2VkIGRpcmVjdGx5IG9ubHkgYnkgV2ViS2l0VGVzdFJ1
bm5lci4KLVBhc3NSZWZQdHI8UXRXZWJDb250ZXh0PiBRdFdlYkNvbnRleHQ6OmNyZWF0ZShXZWJD
b250ZXh0KiBjb250ZXh0KQorUXRXZWJDb250ZXh0KiBRdFdlYkNvbnRleHQ6OmNyZWF0ZShXS0Nv
bnRleHRSZWYgY29udGV4dCkKIHsKICAgICBnbG9iYWxJbml0aWFsaXphdGlvbigpOwotICAgIC8v
IFRoZSBsaWZldGltZSBvZiBXZWJDb250ZXh0IGlzIGEgYml0IHNwZWNpYWwsIGl0IGlzIGJvdW5k
IHRvIHRoZSByZWZlcmVuY2UgaGVsZAotICAgIC8vIGJ5IFF0V2ViQ29udGV4dCBhdCBmaXJzdCBh
bmQgdGhlbiBlbnRlcnMgYSBjaXJjdWxhciBkZXBlbmRlbmN5IHdpdGggV2ViUHJvY2Vzc1Byb3h5
Ci0gICAgLy8gb25jZSB0aGUgZmlyc3QgcGFnZSBpcyBjcmVhdGVkIHVudGlsIHRoZSB3ZWIgcHJv
Y2VzcyBleGl0cy4gQmVjYXVzZSBvZiB0aGlzIHdlIGNhbid0Ci0gICAgLy8gYXNzdW1lIHRoYXQg
ZGVzdHJveWluZyB0aGUgbGFzdCBRdFdlYkNvbnRleHQgd2lsbCBkZXN0cm95IHRoZSBXZWJDb250
ZXh0IGFuZCB3ZQotICAgIC8vIGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQgV2ViQ29udGV4dCdzIGNs
aWVudHMgZm9sbG93IGl0cyBsaWZldGltZSBhbmQgYXJlbid0IGF0dGFjaGVkCi0gICAgLy8gdG8g
UXRXZWJDb250ZXh0LiBRdFdlYkNvbnRleHQgaXRzZWxmIGlzIG9ubHkgYXR0YWNoZWQgdG8gUVF1
aWNrV2ViVmlldy4KLSAgICAvLyBTaW5jZSB3ZSBvbmx5IHN1cHBvcnQgb25lIFdlYkNvbnRleHQg
YXQgYSB0aW1lLCBpbml0aWFsaXplIHRob3NlIGNsaWVudHMgZ2xvYmFsbHkKLSAgICAvLyBoZXJl
LiBUaGV5IGhhdmUgdG8gYmUgYXZhaWxhYmxlIHRvIHZpZXdzIHNwYXduZWQgYnkgV2ViS2l0VGVz
dFJ1bm5lciBhcyB3ZWxsLgotICAgIGlmICghc19kb3dubG9hZE1hbmFnZXIpCi0gICAgICAgIHNf
ZG93bmxvYWRNYW5hZ2VyID0gYWRvcHRQdHIobmV3IFF0RG93bmxvYWRNYW5hZ2VyKGNvbnRleHQp
KTsKLSAgICBpZiAoIXNfaWNvbkRhdGFiYXNlKQotICAgICAgICBzX2ljb25EYXRhYmFzZSA9IGFk
b3B0UHRyKG5ldyBRdFdlYkljb25EYXRhYmFzZUNsaWVudChjb250ZXh0KSk7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBRdFdlYkNvbnRleHQoY29udGV4dCkpOworICAgIHJldHVybiBuZXcgUXRX
ZWJDb250ZXh0KGNvbnRleHQpOwogfQogCi1QYXNzUmVmUHRyPFF0V2ViQ29udGV4dD4gUXRXZWJD
b250ZXh0OjpkZWZhdWx0Q29udGV4dCgpCitRdFdlYkNvbnRleHQqIFF0V2ViQ29udGV4dDo6ZGVm
YXVsdENvbnRleHQoKQogewotICAgIC8vIEtlZXAgbG9jYWwgcmVmZXJlbmNlcyB1bnRpbCB3ZSBj
YW4gcmV0dXJuIGEgcmVmIHRvIFF0V2ViQ29udGV4dCBob2xkaW5nIHRoZSBXZWJDb250ZXh0Lgot
ICAgIFJlZlB0cjxXZWJDb250ZXh0PiB3ZWJDb250ZXh0KHNfZGVmYXVsdFdlYkNvbnRleHQpOwot
ICAgIFJlZlB0cjxRdFdlYkNvbnRleHQ+IHF0V2ViQ29udGV4dChzX2RlZmF1bHRRdFdlYkNvbnRl
eHQpOwotCi0gICAgaWYgKCF3ZWJDb250ZXh0KSB7Ci0gICAgICAgIHdlYkNvbnRleHQgPSBXZWJD
b250ZXh0OjpjcmVhdGUoU3RyaW5nKCkpOwotICAgICAgICBzX2RlZmF1bHRXZWJDb250ZXh0ID0g
d2ViQ29udGV4dC5nZXQoKTsKKyAgICBpZiAoIXNfZGVmYXVsdFF0V2ViQ29udGV4dCkgeworICAg
ICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IHdrQ29udGV4dCA9IGFkb3B0V0soV0tDb250
ZXh0Q3JlYXRlKCkpOwogICAgICAgICAvLyBNYWtlIHN1cmUgZm9yIFdlYktpdFRlc3RSdW5uZXIg
dGhhdCB0aGUgaW5qZWN0ZWQgYnVuZGxlIGNsaWVudCBpc24ndCBpbml0aWFsaXplZAotICAgICAg
ICAvLyBhbmQgdGhhdCB0aGUgcGFnZSBjYWNoZSBpc24ndCBlbmFibGVkIChkZWZhdWx0Q29udGV4
dCBpc24ndCB1c2VkIHRoZXJlKS4KLSAgICAgICAgaW5pdGlhbGl6ZUNvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudCh3ZWJDb250ZXh0LmdldCgpKTsKKyAgICAgICAgLy8gYW5kIHRoYXQgdGhlIHBh
Z2UgY2FjaGUgaXNuJ3QgZW5hYmxlZCAoZGVmYXVsdENvbnRleHQoKSBpc24ndCB1c2VkIHRoZXJl
KS4KKyAgICAgICAgaW5pdGlhbGl6ZUNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCh3a0NvbnRl
eHQuZ2V0KCkpOwogICAgICAgICAvLyBBIGdvb2QgYWxsLWFyb3VuZCBkZWZhdWx0LgotICAgICAg
ICB3ZWJDb250ZXh0LT5zZXRDYWNoZU1vZGVsKENhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwot
ICAgIH0KKyAgICAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbCh3a0NvbnRleHQuZ2V0KCksIGtX
S0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwogCi0gICAgaWYgKCFxdFdlYkNvbnRleHQpIHsK
LSAgICAgICAgcXRXZWJDb250ZXh0ID0gUXRXZWJDb250ZXh0OjpjcmVhdGUod2ViQ29udGV4dC5n
ZXQoKSk7Ci0gICAgICAgIHNfZGVmYXVsdFF0V2ViQ29udGV4dCA9IHF0V2ViQ29udGV4dC5nZXQo
KTsKKyAgICAgICAgc19kZWZhdWx0UXRXZWJDb250ZXh0ID0gUXRXZWJDb250ZXh0OjpjcmVhdGUo
d2tDb250ZXh0LmdldCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gcXRXZWJDb250ZXh0LnJlbGVh
c2UoKTsKLX0KLQotUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFF0V2ViQ29udGV4dDo6Y3JlYXRl
V2ViUGFnZShQYWdlQ2xpZW50KiBjbGllbnQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwKQotewot
ICAgIHJldHVybiBtX2NvbnRleHQtPmNyZWF0ZVdlYlBhZ2UoY2xpZW50LCBwYWdlR3JvdXApOwot
fQotCi1RdERvd25sb2FkTWFuYWdlciogUXRXZWJDb250ZXh0Ojpkb3dubG9hZE1hbmFnZXIoKQot
ewotICAgIEFTU0VSVChzX2Rvd25sb2FkTWFuYWdlcik7Ci0gICAgcmV0dXJuIHNfZG93bmxvYWRN
YW5hZ2VyLmdldCgpOwotfQotCi1RdFdlYkljb25EYXRhYmFzZUNsaWVudCogUXRXZWJDb250ZXh0
OjppY29uRGF0YWJhc2UoKQotewotICAgIEFTU0VSVChzX2ljb25EYXRhYmFzZSk7Ci0gICAgcmV0
dXJuIHNfaWNvbkRhdGFiYXNlLmdldCgpOwotfQotCi12b2lkIFF0V2ViQ29udGV4dDo6aW52YWxp
ZGF0ZUNvbnRleHQoV2ViQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBVTlVTRURfUEFSQU0oY29u
dGV4dCk7Ci0gICAgQVNTRVJUKCFzX2RlZmF1bHRRdFdlYkNvbnRleHQpOwotICAgIEFTU0VSVCgh
c19kZWZhdWx0V2ViQ29udGV4dCB8fCBzX2RlZmF1bHRXZWJDb250ZXh0ID09IGNvbnRleHQpOwot
ICAgIHNfZG93bmxvYWRNYW5hZ2VyLmNsZWFyKCk7Ci0gICAgc19pY29uRGF0YWJhc2UuY2xlYXIo
KTsKLSAgICBzX2RlZmF1bHRXZWJDb250ZXh0ID0gMDsKKyAgICByZXR1cm4gc19kZWZhdWx0UXRX
ZWJDb250ZXh0OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaAppbmRleCBiZDNjY2E3M2Q1NjkwODY5NzYyMTlkNTQz
OGEwNWFlMjAyNDI3NTAxLi41NThmNGNhMzZmOTExZGRhODY1MWY3NTE1NzgwOTlmNDYwZWQ4OGVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5oCkBAIC0yMSw0
MSArMjEsMzQgQEAKICNpZm5kZWYgUXRXZWJDb250ZXh0X2gKICNkZWZpbmUgUXRXZWJDb250ZXh0
X2gKIAorI2luY2x1ZGUgPFFTY29wZWRQb2ludGVyPgogI2luY2x1ZGUgPFF0R2xvYmFsPgogI2lu
Y2x1ZGUgPFdLQ29udGV4dC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPFdLUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1jbGFzcyBQYWdlQ2xpZW50OwogY2xhc3MgUXREb3dubG9hZE1hbmFnZXI7CiBjbGFz
cyBRdFdlYkljb25EYXRhYmFzZUNsaWVudDsKLWNsYXNzIFdlYkNvbnRleHQ7Ci1jbGFzcyBXZWJQ
YWdlR3JvdXA7Ci1jbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFF0V2ViQ29udGV4dCA6IHB1
YmxpYyBSZWZDb3VudGVkPFF0V2ViQ29udGV4dD4geworY2xhc3MgUXRXZWJDb250ZXh0IHsKIHB1
YmxpYzoKICAgICB+UXRXZWJDb250ZXh0KCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxRdFdl
YkNvbnRleHQ+IGNyZWF0ZShXZWJDb250ZXh0Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UXRX
ZWJDb250ZXh0PiBkZWZhdWx0Q29udGV4dCgpOworICAgIHN0YXRpYyBRdFdlYkNvbnRleHQqIGNy
ZWF0ZShXS0NvbnRleHRSZWYpOworICAgIHN0YXRpYyBRdFdlYkNvbnRleHQqIGRlZmF1bHRDb250
ZXh0KCk7CiAKLSAgICBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlV2ViUGFnZShQYWdl
Q2xpZW50KiwgV2ViUGFnZUdyb3VwKik7CisgICAgV0tDb250ZXh0UmVmIGNvbnRleHQoKSB7IHJl
dHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAotICAgIFdlYkNvbnRleHQqIGNvbnRleHQoKSB7IHJl
dHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KLQotICAgIHN0YXRpYyBRdERvd25sb2FkTWFuYWdlciog
ZG93bmxvYWRNYW5hZ2VyKCk7Ci0gICAgc3RhdGljIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBp
Y29uRGF0YWJhc2UoKTsKLSAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlQ29udGV4dChXZWJDb250
ZXh0Kik7CisgICAgUXREb3dubG9hZE1hbmFnZXIqIGRvd25sb2FkTWFuYWdlcigpIHsgcmV0dXJu
IG1fZG93bmxvYWRNYW5hZ2VyLmRhdGEoKTsgfQorICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50
KiBpY29uRGF0YWJhc2UoKSB7IHJldHVybiBtX2ljb25EYXRhYmFzZS5kYXRhKCk7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBRdFdlYkNvbnRleHQoV2ViQ29udGV4dCopOworICAgIGV4cGxp
Y2l0IFF0V2ViQ29udGV4dChXS0NvbnRleHRSZWYpOwogCi0gICAgUmVmUHRyPFdlYkNvbnRleHQ+
IG1fY29udGV4dDsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKKyAg
ICBRU2NvcGVkUG9pbnRlcjxRdERvd25sb2FkTWFuYWdlcj4gbV9kb3dubG9hZE1hbmFnZXI7Cisg
ICAgUVNjb3BlZFBvaW50ZXI8UXRXZWJJY29uRGF0YWJhc2VDbGllbnQ+IG1faWNvbkRhdGFiYXNl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IGIwMDM2NjdlYTNjMmQ2NjdhODVjNTBlZjY2OTQy
NzVhNGEyOGRkMzEuLmU3MTZkZWJiMzkzZmI3ODhiN2ViMDhjM2M5NzhhNTZiNmY1ZDJmNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCkBAIC04MSw5
ICs4MSw2IEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAKIHZvaWQgV2ViQ29udGV4dDo6cGxh
dGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCiB7Ci0jaWYgSEFWRShRVFFVSUNLKQotICAgIFF0V2Vi
Q29udGV4dDo6aW52YWxpZGF0ZUNvbnRleHQodGhpcyk7Ci0jZW5kaWYKIH0KIAogU3RyaW5nIFdl
YkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwCmluZGV4IGU2ZDli
OTA4NDUwZGZiYTZjZjRjY2NjOTFhZDFlYTI5NTAxMjhjOGIuLjRmMjZkNjVlMDkwYjAxM2Y3ZTNi
NGZlNjk4ZDJiZGQ1OWFhOTIyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJQYWdlUHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1dlYlBhZ2VQcm94eVF0LmNwcApAQCAtOTksMTEgKzk5LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmZpbmRab29tYWJsZUFyZWFGb3JQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IElu
dFNpemUKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZpbmRab29tYWJs
ZUFyZWFGb3JQb2ludChwb2ludCwgYXJlYSksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmlu
ZyYgY29udGVudHMpCi17Ci0gICAgbV9wYWdlQ2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUZyb21O
YXZpZ2F0b3JRdE9iamVjdChjb250ZW50cyk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjphdXRo
ZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBT
dHJpbmcmIHJlYWxtLCBjb25zdCBTdHJpbmcmIHByZWZpbGxlZFVzZXJuYW1lLCBTdHJpbmcmIHVz
ZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKQogewogICAgIG1fcGFnZUNsaWVudC0+aGFuZGxlQXV0
aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoaG9zdG5hbWUsIHJlYWxtLCBwcmVmaWxsZWRVc2Vy
bmFtZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187827</attachid>
            <date>2013-02-12 03:48:49 -0800</date>
            <delta_ts>2013-02-14 07:36:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108475-20130212124519.patch</filename>
            <type>text/plain</type>
            <size>24433</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWRiZDdiNmY5MDViNjJk
MGRhMDE1OGRmZWZjZjMyYjY3NjA4Mjc2ZS4uNjM3OTNiOTc1ZmVmN2RhY2ZmZGU1NzI1NjU1MTA1
OTU0Yzg5MWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTAyLTEyICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CisKKyAgICAgICAgW1F0
XSBQcm9wZXJseSBsYXllciBRdFdlYkNvbnRleHQgb24gdG9wIG9mIHRoZSBDIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGxpZmV0aW1lIG9m
IHRoZSBXZWJDb250ZXh0IGlzIGRpZmZpY3VsdCB0byBtYW5hZ2Ugc2luY2UgYSBjaXJjdWxhcgor
ICAgICAgICByZWZlcmVuY2UgaXMga2VwdCB3aXRoIHRoZSBXZWJQcm9jZXNzUHJveHkgdW50aWwg
aXQgc2h1dHMgaXRzZWxmIGRvd24sIDYwCisgICAgICAgIHNlY29uZHMgYWZ0ZXIgdGhlIGxhc3Qg
cGFnZSBpcyBjbG9zZWQuIFRoZXJlIHdhcyBzb21lIG5vdGlmaWNhdGlvbgorICAgICAgICBpbiBw
bGFjZSB0byBoYW5kbGUgdGhpcyBpbiB0aGUgdXBwZXIgbGF5ZXIsIGJ1dCBoYXZpbmcgdG8gZ28g
dGhyb3VnaCB0aGUKKyAgICAgICAgQyBBUEkgbWFrZXMgdGhpcyBxdWl0ZSBhd2t3YXJkLgorCisg
ICAgICAgIFRoZSBiaWdnZXN0IGJlaGF2aW9yIGNoYW5nZSB0aGF0IHRoaXMgaW50cm9kdWNlcyBp
cyB0aGF0IHRoZSBXZWJDb250ZXh0CisgICAgICAgIGlzbid0IGF1dG9tYXRpY2FsbHkgZGVzdHJv
eWVkIGFueW1vcmUgYW5kIHdpbGwgYmUga2VwdCBhbGl2ZSB1bnRpbCB0aGUKKyAgICAgICAgYXBw
bGljYXRpb24gaXMgc2h1dCBkb3duLgorICAgICAgICBUaGlzIGluY2x1ZGVzIHRoZSBpY29uIGRh
dGFiYXNlLCBpZGVhbGx5IHdlIHNob3VsZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHRoZQorICAgICAg
ICBRUXVpY2tXZWJWaWV3OjppY29uIHByb3BlcnR5IGlzIHJlYWQuCisKKyAgICAgICAgQWxzbywg
aW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFdlYlBhZ2VQcm94eSBhbmQgUGFnZUNsaWVudCB0byBm
b3J3YXJkCisgICAgICAgIGluamVjdGVkIGJ1bmRsZSBtZXNzYWdlcyByZWNlaXZlZCBieSB0aGUg
Y29udGV4dCwgbWFpbnRhaW4gYSBzdGF0aWMgbWFwCisgICAgICAgIG9mIFFRdWlja1dlYlZpZXdQ
cml2YXRlIGFuZCBmZXRjaCBpdCB1c2luZyB0aGUgV0tQYWdlUmVmLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpnZXQpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZp
ZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjp+UVF1aWNrV2ViVmll
d1ByaXZhdGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUpOgor
ICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZURvd25sb2FkUmVxdWVzdCk6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlSWNvbik6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAg
ICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHA6CisgICAgICAgIChRV2ViSWNvbkltYWdlUHJvdmlkZXI6
OnJlcXVlc3RJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZp
ZXcuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3BfcC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChQYWdlQ2xpZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJQYWdl
UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaDoKKyAgICAgICAgKFF0UGFnZUNsaWVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZSk6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGll
bnQpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkNvbnRleHQ6OlF0V2ViQ29udGV4dCk6CisgICAg
ICAgIChXZWJLaXQ6OlF0V2ViQ29udGV4dDo6flF0V2ViQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OlF0V2ViQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJDb250ZXh0
OjpkZWZhdWx0Q29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFF0V2ViQ29udGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OlF0V2ViQ29udGV4dDo6Y29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViQ29u
dGV4dDo6ZG93bmxvYWRNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJDb250ZXh0Ojpp
Y29uRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwOgorCiAyMDEzLTAyLTEx
ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAg
ICAgW1F0XVtXSzJdIEZhdm9yIFFVcmwgdG8gV1RGOjpTdHJpbmcgaW4gdGhlIFF0IEFQSSBsYXll
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAKaW5kZXggN2Y2MjQyY2M1ZjE2MzE0MDZiYWFlNjE5MjMyNmUzNTcxNmUxYjliYS4uMjY2Nzkx
ODE2MGIwZTViZWY4YjYwMDJhOGI5N2MwN2NmM2ZmMDYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUXRXZWJQYWdl
UG9saWN5Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCisjaW5jbHVk
ZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUl9TRVJWRVIpCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKQEAgLTQ0
LDYgKzQ1LDcgQEAKICNlbmRpZgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgogI2luY2x1ZGUg
IldlYlByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSAicWdsb2JhbC5oIgogI2luY2x1ZGUgInFxdWlj
a25ldHdvcmtyZXBseV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrbmV0d29ya3JlcXVlc3RfcC5oIgog
I2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcF9wLmgiCkBAIC02MCw2ICs2Miw3IEBACiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxRRGF0ZVRpbWU+CisjaW5jbHVkZSA8UU1hcD4KICNpbmNs
dWRlIDxRdENvcmUvUUZpbGU+CiAjaW5jbHVkZSA8UXRRbWwvUUpTVmFsdWU+CiAjaW5jbHVkZSA8
UXRRdWljay9RUXVpY2tWaWV3PgpAQCAtODUsNiArODgsOSBAQCBzdGF0aWMgY29uc3QgaW50IGtB
eGlzTG9ja1NhbXBsZUNvdW50ID0gNTsKIHN0YXRpYyBjb25zdCBxcmVhbCBrQXhpc0xvY2tWZWxv
Y2l0eVRocmVzaG9sZCA9IDMwMDsKIHN0YXRpYyBjb25zdCBxcmVhbCBrQXhpc0xvY2tWZWxvY2l0
eURpcmVjdGlvblRocmVzaG9sZCA9IDUwOwogCit0eXBlZGVmIFFNYXA8V0tQYWdlUmVmLCBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZSo+IFBhZ2VUb1ZpZXdNYXA7CitRX0dMT0JBTF9TVEFUSUMoUGFnZVRv
Vmlld01hcCwgcGFnZVRvVmlldykKKwogc3RhdGljIGlubGluZSBRUXVpY2tXZWJWaWV3UHJpdmF0
ZSogdG9RUXVpY2tXZWJWaWV3UHJpdmF0ZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IEFTU0VSVChjbGllbnRJbmZvKTsKQEAgLTE5Nyw2ICsyMDMsMTEgQEAgc3RhdGljIFFRdWlja1dl
YlZpZXdQcml2YXRlKiBjcmVhdGVQcml2YXRlT2JqZWN0KFFRdWlja1dlYlZpZXcqIHB1YmxpY09i
amVjdCkKICAgICByZXR1cm4gbmV3IFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlKHB1YmxpY09i
amVjdCk7CiB9CiAKK1FRdWlja1dlYlZpZXdQcml2YXRlKiBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
Z2V0KFdLUGFnZVJlZiBwYWdlKQoreworICAgIHJldHVybiBwYWdlVG9WaWV3KCktPnZhbHVlKHBh
Z2UpOworfQorCiBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xvY2tlcjo6Rmxp
Y2thYmxlQXhpc0xvY2tlcigpCiAgICAgOiBtX2FsbG93ZWREaXJlY3Rpb24oUVF1aWNrRmxpY2th
YmxlOjpBdXRvRmxpY2tEaXJlY3Rpb24pCiAgICAgLCBtX3RpbWUoMCksIG1fc2FtcGxlQ291bnQo
MCkKQEAgLTI3Miw2ICsyODMsNyBAQCBRUG9pbnRGIFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlj
a2FibGVBeGlzTG9ja2VyOjphZGp1c3QoY29uc3QgUVBvaW50RiYgcG9zaXRpbwogUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0
KQogICAgIDogcV9wdHIodmlld3BvcnQpCiAgICAgLCBleHBlcmltZW50YWwobmV3IFFRdWlja1dl
YlZpZXdFeHBlcmltZW50YWwodmlld3BvcnQsIHRoaXMpKQorICAgICwgY29udGV4dCgwKQogICAg
ICwgYWxlcnREaWFsb2coMCkKICAgICAsIGNvbmZpcm1EaWFsb2coMCkKICAgICAsIHByb21wdERp
YWxvZygwKQpAQCAtMjk5LDYgKzMxMSw3IEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tX
ZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKIFFRdWlja1dlYlZpZXdQcml2
YXRlOjp+UVF1aWNrV2ViVmlld1ByaXZhdGUoKQogewogICAgIHdlYlBhZ2VQcm94eS0+Y2xvc2Uo
KTsKKyAgICBwYWdlVG9WaWV3KCktPnJlbW92ZSh3ZWJQYWdlLmdldCgpKTsKIH0KIAogLy8gTm90
ZTogd2UgZGVsYXkgdGhpcyBpbml0aWFsaXphdGlvbiB0byBtYWtlIHN1cmUgdGhhdCBRUXVpY2tX
ZWJWaWV3IGhhcyBpdHMgZC1wdHIgaW4tcGxhY2UuCkBAIC0zMDgsOSArMzIxLDExIEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYs
IFdLUGFnZUdyb3VwUmVmIHBhCiAgICAgaWYgKCFwYWdlR3JvdXApCiAgICAgICAgIHBhZ2VHcm91
cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcigwKSk7CiAKLSAgICBj
b250ZXh0ID0gY29udGV4dFJlZiA/IFF0V2ViQ29udGV4dDo6Y3JlYXRlKHRvSW1wbChjb250ZXh0
UmVmKSkgOiBRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7Ci0gICAgd2ViUGFnZVByb3h5
ID0gY29udGV4dC0+Y3JlYXRlV2ViUGFnZSgmcGFnZUNsaWVudCwgdG9JbXBsKHBhZ2VHcm91cC5n
ZXQoKSkpOworICAgIGNvbnRleHQgPSBjb250ZXh0UmVmID8gUXRXZWJDb250ZXh0OjpjcmVhdGUo
Y29udGV4dFJlZikgOiBRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7CisgICAgd2ViUGFn
ZVByb3h5ID0gdG9JbXBsKGNvbnRleHQtPmNvbnRleHQoKSktPmNyZWF0ZVdlYlBhZ2UoJnBhZ2VD
bGllbnQsIHRvSW1wbChwYWdlR3JvdXAuZ2V0KCkpKTsKICAgICB3ZWJQYWdlID0gdG9BUEkod2Vi
UGFnZVByb3h5LmdldCgpKTsKKyAgICBwYWdlVG9WaWV3KCktPmluc2VydCh3ZWJQYWdlLmdldCgp
LCB0aGlzKTsKKwogICAgIHdlYlBhZ2VQcm94eS0+c2V0VXNlRml4ZWRMYXlvdXQoc19mbGlja2Fi
bGVWaWV3cG9ydEVuYWJsZWQpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB3ZWJQ
YWdlUHJveHktPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnNldFdlYlZpZXcocV9wdHIpOwpAQCAtNjA3
LDcgKzYyMiw3IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZURvd25sb2FkUmVx
dWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKICAgICBkb3dubG9hZEl0ZW0tPmQtPmRvd25s
b2FkUHJveHkgPSBkb3dubG9hZDsKIAogICAgIHEtPmNvbm5lY3QoZG93bmxvYWRJdGVtLT5kLCBT
SUdOQUwocmVjZWl2ZWRSZXNwb25zZShRV2ViRG93bmxvYWRJdGVtKikpLCBxLCBTTE9UKF9xX29u
UmVjZWl2ZWRSZXNwb25zZUZyb21Eb3dubG9hZChRV2ViRG93bmxvYWRJdGVtKikpKTsKLSAgICBR
dFdlYkNvbnRleHQ6OmRvd25sb2FkTWFuYWdlcigpLT5hZGREb3dubG9hZChkb3dubG9hZCwgZG93
bmxvYWRJdGVtKTsKKyAgICBRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCktPmRvd25sb2Fk
TWFuYWdlcigpLT5hZGREb3dubG9hZChkb3dubG9hZCwgZG93bmxvYWRJdGVtKTsKIH0KIAogdm9p
ZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25WaXNpYmxlQ2hhbmdlZCgpCkBAIC02NDIsNyAr
NjU3LDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlSWNvbigpCiAgICAgaWYg
KCFwcm92aWRlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgUVVybCBpY29uVXJsID0gcHJvdmlk
ZXItPmljb25VUkxGb3JQYWdlVVJMSW5Db250ZXh0KG1fY3VycmVudFVybCwgY29udGV4dC5nZXQo
KSk7CisgICAgUVVybCBpY29uVXJsID0gcHJvdmlkZXItPmljb25VUkxGb3JQYWdlVVJMSW5Db250
ZXh0KG1fY3VycmVudFVybCwgY29udGV4dCk7CiAKICAgICBpZiAoaWNvblVybCA9PSBtX2ljb25V
cmwpCiAgICAgICAgIHJldHVybjsKQEAgLTg5NiwxMCArOTExLDEwIEBAIFdlYkNvcmU6OkludFNp
emUgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnZpZXdTaXplKCkgY29uc3QKIAogICAgIFxzYSBwb3N0
TWVzc2FnZQogKi8KLXZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZFJlY2VpdmVNZXNzYWdl
RnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgUVF1aWNr
V2ViVmlld1ByaXZhdGU6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KFdL
U3RyaW5nUmVmIG1lc3NhZ2UpCiB7CiAgICAgUVZhcmlhbnRNYXAgdmFyaWFudE1hcDsKLSAgICB2
YXJpYW50TWFwLmluc2VydChRTGF0aW4xU3RyaW5nKCJkYXRhIiksIFFTdHJpbmcobWVzc2FnZSkp
OworICAgIHZhcmlhbnRNYXAuaW5zZXJ0KFFMYXRpbjFTdHJpbmcoImRhdGEiKSwgV0tTdHJpbmdD
b3B5UVN0cmluZyhtZXNzYWdlKSk7CiAgICAgdmFyaWFudE1hcC5pbnNlcnQoUUxhdGluMVN0cmlu
Zygib3JpZ2luIiksIHFfcHRyLT51cmwoKSk7CiAgICAgZW1pdCBxX3B0ci0+ZXhwZXJpbWVudGFs
KCktPm1lc3NhZ2VSZWNlaXZlZCh2YXJpYW50TWFwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCA0MjczY2E1MjMx
YTkzY2U0YzkyYjQwZmM0NGE3OTMwNTA1Mjg4MThmLi42YTRkM2QxYzE5MmEzYmM2MzA5MGZkOTU4
ZTY4ZGRkMjcxNjdhMGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIFFRdWlja1dl
YlZpZXdQcml2YXRlIHsKIAogcHVibGljOgogICAgIHN0YXRpYyBRUXVpY2tXZWJWaWV3UHJpdmF0
ZSogZ2V0KFFRdWlja1dlYlZpZXcqIHEpIHsgcmV0dXJuIHEtPmRfcHRyLmRhdGEoKTsgfQorICAg
IHN0YXRpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogZ2V0KFdLUGFnZVJlZik7CiAKICAgICB2aXJ0
dWFsIH5RUXVpY2tXZWJWaWV3UHJpdmF0ZSgpOwogCkBAIC0xMjMsMTMgKzEyNCwxNCBAQCBwdWJs
aWM6CiAKICAgICAvLyBQYWdlQ2xpZW50LgogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUo
KSBjb25zdDsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0
U2Nyb2xsKGNvbnN0IFFQb2ludCYgcG9zKSB7IH0KICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaCgp
OwogICAgIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCk7CiAgICAgUGFzc093blB0cjxXZWJLaXQ6
OkRyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsKICAgICB2b2lkIGhh
bmRsZURvd25sb2FkUmVxdWVzdChXZWJLaXQ6OkRvd25sb2FkUHJveHkqKTsKIAorICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoV0tTdHJpbmdSZWYgbWVzc2Fn
ZSk7CisKIHByb3RlY3RlZDoKICAgICBjbGFzcyBGbGlja2FibGVBeGlzTG9ja2VyIHsKICAgICAg
ICAgUVF1aWNrRmxpY2thYmxlOjpGbGlja2FibGVEaXJlY3Rpb24gbV9hbGxvd2VkRGlyZWN0aW9u
OwpAQCAtMTY0LDcgKzE2Niw2IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkaWRDaGFu
Z2VCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdL
QXJyYXlSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAgICAgUVF1aWNrV2ViVmlld1By
aXZhdGUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQpOwotICAgIFJlZlB0cjxXZWJLaXQ6OlF0V2Vi
Q29udGV4dD4gY29udGV4dDsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHdlYlBh
Z2VQcm94eTsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VSZWY+IHdlYlBhZ2U7CiAgICAgV0tSZXRh
aW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cDsKQEAgLTE4MCw2ICsxODEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgUVNjb3BlZFBvaW50ZXI8UVF1aWNrV2ViUGFnZT4gcGFnZVZpZXc7CiAgICAg
UVF1aWNrV2ViVmlldyogcV9wdHI7CiAgICAgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCogZXhw
ZXJpbWVudGFsOworICAgIFdlYktpdDo6UXRXZWJDb250ZXh0KiBjb250ZXh0OwogCiAgICAgRmxp
Y2thYmxlQXhpc0xvY2tlciBheGlzTG9ja2VyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAKaW5kZXggMDNi
YmVjOTZkMWMzYjUwMjJhZDNiN2QzMzJlMTA3NjdiZDVkZWIwZC4uOTU1N2MyMGJlZTYwODg2NTI4
YjNjOTRmYjBjNDQ4ZjVmZjJkNDcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2ViaWNvbmltYWdlcHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcApAQCAtNjcsNyArNjcs
NyBAQCBRSW1hZ2UgUVdlYkljb25JbWFnZVByb3ZpZGVyOjpyZXF1ZXN0SW1hZ2UoY29uc3QgUVN0
cmluZyYgaWQsIFFTaXplKiBzaXplLCBjb25zdAogewogICAgIFFVcmwgcGFnZVVSTCA9IFFVcmw6
OmZyb21FbmNvZGVkKFFCeXRlQXJyYXk6OmZyb21CYXNlNjQoaWQubWlkUmVmKGlkLmluZGV4T2Yo
JyMnKSArIDEpLnRvTGF0aW4xKCkpKTsKIAotICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBp
Y29uRGF0YWJhc2UgPSBRdFdlYkNvbnRleHQ6Omljb25EYXRhYmFzZSgpOworICAgIFF0V2ViSWNv
bkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJhc2UgPSBRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250
ZXh0KCktPmljb25EYXRhYmFzZSgpOwogICAgIGlmICghaWNvbkRhdGFiYXNlKQogICAgICAgICBy
ZXR1cm4gUUltYWdlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAppbmRleCBkMzQ4MWVhMDE2MmE1M2QzZDA4ODNlN2Q2MzBj
MzJmMzQ3MDNhMWVmLi44OTgxM2ZmMzlhMjBkOTI1YjcyYjlmNzA5NjBiMjM4MDI4ZmQ3MDI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZp
ZXcuY3BwCkBAIC0zNywxMSArMzcsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9xcmF3d2Vidmlld19wLmg+CiAKLXZv
aWQgUVJhd1dlYlZpZXdQcml2YXRlOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9i
amVjdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQogdm9pZCBRUmF3V2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3
L3FyYXd3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcv
cXJhd3dlYnZpZXdfcF9wLmgKaW5kZXggMDI5OTU2ZTc3ZjI2MDBlMjIxMTZkY2Q3MDE2NjY2OTYw
Nzg4YTkwMy4uNWE4ZmMzNDc5OTU0NzQ4OWYxNWYwODk0OTNjNWFjMmE1ODMwZThhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9w
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdf
cF9wLmgKQEAgLTQ2LDcgKzQ2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb3VudFN0
cmluZ01hdGNoZXNJbkN1c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYsIFdlYktpdDo6
RmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckFsbEVkaXRDb21tYW5kcygpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVEb3du
bG9hZFJlcXVlc3QoV2ViS2l0OjpEb3dubG9hZFByb3h5KiBkb3dubG9hZCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGQwOGNjOTFmNjQ0ZDlhOWY4YmI4NzNlYjRm
ZTgzMWI5OTgzZjhjNjIuLjJlYzIwYWJmZjA4MzhhODNjNTE0MDdkNjg4MTBlZmEwYzg3ZWMxMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTIxLDcgKzEyMSw2IEBA
IHB1YmxpYzoKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5kWm9vbWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2
aWdhdG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVBdXRoZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBj
b25zdCBTdHJpbmcmIHJlYWxtLCBjb25zdCBTdHJpbmcmIHByZWZpbGxlZFVzZXJuYW1lLCBTdHJp
bmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhh
bmRsZUNlcnRpZmljYXRlVmVyaWZpY2F0aW9uUmVxdWVzdChjb25zdCBTdHJpbmcmIGhvc3RuYW1l
LCBib29sJiBpZ25vcmVFcnJvcnMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlUHJveHlB
dXRoZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCB1aW50
MTZfdCBwb3J0LCBjb25zdCBTdHJpbmcmIHByZWZpbGxlZFVzZXJuYW1lLCBTdHJpbmcmIHVzZXJu
YW1lLCBTdHJpbmcmIHBhc3N3b3JkKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKaW5kZXggMGY2MGU3ZGU2ZThhYTBiYjhiN2RmMDQ5NDlkNmRkMDA3NmJkYTVmYi4u
ZmVkOTdiOGI4MjM4Njk4OGIwMzA1NTc0Zjg2YTZmZjM0ODkxY2YzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjQyLDcgKzY0Miw2IEBAIHB1YmxpYzoKIAog
I2lmIFBMQVRGT1JNKFFUKQogICAgIHZvaWQgZmluZFpvb21hYmxlQXJlYUZvclBvaW50KGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJik7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdU
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKaW5kZXgg
ODlhNDBjOTIzMWExODFiNzAxOWMxZTJmYTEyYjZiNjhiMTE2YjI2MS4uODZjYTM4NzNlODQ4NzY0
Y2Q2ZWFiZjU4NjI3ZjI5MDA2YjZiOGE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0UGFnZUNsaWVudC5jcHAKQEAgLTI0NSwxMSArMjQ1LDYgQEAgdm9pZCBRdFBhZ2VDbGll
bnQ6OmRpZEZpbmRab29tYWJsZUFyZWEoY29uc3QgSW50UG9pbnQmIHRhcmdldCwgY29uc3QgSW50
UmVjdCYgYXIKICAgICBtX2V2ZW50SGFuZGxlci0+ZGlkRmluZFpvb21hYmxlQXJlYSh0YXJnZXQs
IGFyZWEpOwogfQogCi12b2lkIFF0UGFnZUNsaWVudDo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2
aWdhdG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9y
UXRPYmplY3QobWVzc2FnZSk7Ci19Ci0KIHZvaWQgUXRQYWdlQ2xpZW50Ojp1cGRhdGVUZXh0SW5w
dXRTdGF0ZSgpCiB7CiAgICAgQVNTRVJUKG1fZXZlbnRIYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaAppbmRleCBiYzNlM2YxMmMzMGVjZjA3Zjc5ODVj
ZmJmN2IwNDIyYTdhMWY1NTIxLi5jYjk3Y2U0ZmY0ODFmYWQyZGRhODkyMGQwY2NiNGExODYzMTVh
YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCkBAIC00
Nyw3ICs0Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1Np
emUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3Rm9jdXNlZCgpOwogICAgIHZpcnR1YWwgYm9v
bCBpc1ZpZXdWaXNpYmxlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJv
bU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWdl
RGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YkNvbnRleHQuY3BwCmluZGV4IGZhYWNhOTFiMmZlODZhYTUzM2NjYWYyNmNiYzA1Yzg2MWM5NWRk
MjEuLjNkZWY0NGQ5MWQ1NjM1OWVkYTQ0MTEzMWE3MzE1ZTg0NWRkYWJjMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuY3BwCkBAIC0yMywxMCArMjMsOSBA
QAogCiAjaW5jbHVkZSAiUXREb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJRdFdlYkljb25E
YXRhYmFzZUNsaWVudC5oIgotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYkNv
bnRleHQuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKLSNpbmNsdWRlICJXZWJQ
YWdlUHJveHkuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgorI2luY2x1ZGUgPFdL
QVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdLQXJyYXkuaD4KICNpbmNsdWRlIDxXS1BhZ2UuaD4KICNp
bmNsdWRlIDxXS1N0cmluZy5oPgpAQCAtMzQsMTAgKzMzLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1zdGF0aWMgV2ViQ29udGV4dCogc19kZWZhdWx0V2ViQ29udGV4dCA9IDA7CisvLyBQ
cmV2ZW50IHRoZSBkZXN0cnVjdGlvbiBvZiB0aGUgV0tDb250ZXh0IGZvciB0d28gcmVhc29uczoK
Ky8vIC0gQW4gaW50ZXJuYWwgcmVmZXJlbmNlIGlzIGtlcHQgdG8gdGhlIFdlYkNvbnRleHQgd2Fp
dGluZyB1bnRpbCB0aGUgd2ViIHByb2Nlc3Mgc2h1dCBkb3duLCB3aGljaAorLy8gZG9lcyBzbyA2
MCBzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IHBhZ2UgY2xvc2VkLiBXZSB3YW50IHRvIHJldXNlIHRo
YXQgd2ViIHByb2Nlc3MgaWYgcG9zc2libGUgYW5kCisvLyBhdm9pZCBjcmVhdGluZyBhIHNlY29u
ZCBwYXJhbGxlbCBXS0NvbnRleHQgKyB3ZWIgcHJvY2Vzcy4KKy8vIC0gVGhlIEljb25EYXRhYmFz
ZSB3YXNuJ3QgZGVzaWduZWQgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIGluc3RhbmNlLCBvciB0byBi
ZSBxdWlja2x5IG9wZW5lZC9jbG9zZWQuCiBzdGF0aWMgUXRXZWJDb250ZXh0KiBzX2RlZmF1bHRR
dFdlYkNvbnRleHQgPSAwOwotc3RhdGljIE93blB0cjxRdERvd25sb2FkTWFuYWdlcj4gc19kb3du
bG9hZE1hbmFnZXI7Ci1zdGF0aWMgT3duUHRyPFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50PiBzX2lj
b25EYXRhYmFzZTsKIAogc3RhdGljIHZvaWQgaW5pdEluc3BlY3RvclNlcnZlcigpCiB7CkBAIC05
Nyw5NyArOTgsNTAgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWcKICAgICBXS1BhZ2VSZWYgcGFn
ZSA9IHN0YXRpY19jYXN0PFdLUGFnZVJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KGJvZHksIDAp
KTsKICAgICBXS1N0cmluZ1JlZiBzdHIgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJh
eUdldEl0ZW1BdEluZGV4KGJvZHksIDEpKTsKIAotICAgIHRvSW1wbChwYWdlKS0+ZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QodG9JbXBsKHN0ciktPnN0cmluZygpKTsKKyAg
ICBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KHBhZ2UpLT5kaWRSZWNlaXZlTWVzc2FnZUZyb21O
YXZpZ2F0b3JRdE9iamVjdChzdHIpOwogfQogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplQ29udGV4
dEluamVjdGVkQnVuZGxlQ2xpZW50KFdlYkNvbnRleHQqIGNvbnRleHQpCitzdGF0aWMgdm9pZCBp
bml0aWFsaXplQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0
KQogewogICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IGluamVjdGVkQnVuZGxlQ2xp
ZW50OwogICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihXS0NvbnRl
eHRJbmplY3RlZEJ1bmRsZUNsaWVudCkpOwogICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LnZlcnNp
b24gPSBrV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRDdXJyZW50VmVyc2lvbjsKICAgICBp
bmplY3RlZEJ1bmRsZUNsaWVudC5kaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSA9
IGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlOwotICAgIFdLQ29udGV4dFNldElu
amVjdGVkQnVuZGxlQ2xpZW50KHRvQVBJKGNvbnRleHQpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQp
OworICAgIFdLQ29udGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQsICZpbmplY3Rl
ZEJ1bmRsZUNsaWVudCk7CiB9CiAKLVF0V2ViQ29udGV4dDo6UXRXZWJDb250ZXh0KFdlYkNvbnRl
eHQqIGNvbnRleHQpCitRdFdlYkNvbnRleHQ6OlF0V2ViQ29udGV4dChXS0NvbnRleHRSZWYgY29u
dGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9kb3dubG9hZE1hbmFnZXIo
bmV3IFF0RG93bmxvYWRNYW5hZ2VyKHRvSW1wbChjb250ZXh0KSkpCisgICAgLCBtX2ljb25EYXRh
YmFzZShuZXcgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQodG9JbXBsKGNvbnRleHQpKSkKIHsKIH0K
IAogUXRXZWJDb250ZXh0Ojp+UXRXZWJDb250ZXh0KCkKIHsKLSAgICBBU1NFUlQoIXNfZGVmYXVs
dFF0V2ViQ29udGV4dCB8fCBzX2RlZmF1bHRRdFdlYkNvbnRleHQgPT0gdGhpcyk7Ci0gICAgc19k
ZWZhdWx0UXRXZWJDb250ZXh0ID0gMDsKIH0KIAogLy8gVXNlZCBkaXJlY3RseSBvbmx5IGJ5IFdl
YktpdFRlc3RSdW5uZXIuCi1QYXNzUmVmUHRyPFF0V2ViQ29udGV4dD4gUXRXZWJDb250ZXh0Ojpj
cmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK1F0V2ViQ29udGV4dCogUXRXZWJDb250ZXh0Ojpj
cmVhdGUoV0tDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgZ2xvYmFsSW5pdGlhbGl6YXRpb24o
KTsKLSAgICAvLyBUaGUgbGlmZXRpbWUgb2YgV2ViQ29udGV4dCBpcyBhIGJpdCBzcGVjaWFsLCBp
dCBpcyBib3VuZCB0byB0aGUgcmVmZXJlbmNlIGhlbGQKLSAgICAvLyBieSBRdFdlYkNvbnRleHQg
YXQgZmlyc3QgYW5kIHRoZW4gZW50ZXJzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSB3aXRoIFdlYlBy
b2Nlc3NQcm94eQotICAgIC8vIG9uY2UgdGhlIGZpcnN0IHBhZ2UgaXMgY3JlYXRlZCB1bnRpbCB0
aGUgd2ViIHByb2Nlc3MgZXhpdHMuIEJlY2F1c2Ugb2YgdGhpcyB3ZSBjYW4ndAotICAgIC8vIGFz
c3VtZSB0aGF0IGRlc3Ryb3lpbmcgdGhlIGxhc3QgUXRXZWJDb250ZXh0IHdpbGwgZGVzdHJveSB0
aGUgV2ViQ29udGV4dCBhbmQgd2UKLSAgICAvLyBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IFdlYkNv
bnRleHQncyBjbGllbnRzIGZvbGxvdyBpdHMgbGlmZXRpbWUgYW5kIGFyZW4ndCBhdHRhY2hlZAot
ICAgIC8vIHRvIFF0V2ViQ29udGV4dC4gUXRXZWJDb250ZXh0IGl0c2VsZiBpcyBvbmx5IGF0dGFj
aGVkIHRvIFFRdWlja1dlYlZpZXcuCi0gICAgLy8gU2luY2Ugd2Ugb25seSBzdXBwb3J0IG9uZSBX
ZWJDb250ZXh0IGF0IGEgdGltZSwgaW5pdGlhbGl6ZSB0aG9zZSBjbGllbnRzIGdsb2JhbGx5Ci0g
ICAgLy8gaGVyZS4gVGhleSBoYXZlIHRvIGJlIGF2YWlsYWJsZSB0byB2aWV3cyBzcGF3bmVkIGJ5
IFdlYktpdFRlc3RSdW5uZXIgYXMgd2VsbC4KLSAgICBpZiAoIXNfZG93bmxvYWRNYW5hZ2VyKQot
ICAgICAgICBzX2Rvd25sb2FkTWFuYWdlciA9IGFkb3B0UHRyKG5ldyBRdERvd25sb2FkTWFuYWdl
cihjb250ZXh0KSk7Ci0gICAgaWYgKCFzX2ljb25EYXRhYmFzZSkKLSAgICAgICAgc19pY29uRGF0
YWJhc2UgPSBhZG9wdFB0cihuZXcgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQoY29udGV4dCkpOwot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUXRXZWJDb250ZXh0KGNvbnRleHQpKTsKKyAgICByZXR1
cm4gbmV3IFF0V2ViQ29udGV4dChjb250ZXh0KTsKIH0KIAotUGFzc1JlZlB0cjxRdFdlYkNvbnRl
eHQ+IFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKQorUXRXZWJDb250ZXh0KiBRdFdlYkNv
bnRleHQ6OmRlZmF1bHRDb250ZXh0KCkKIHsKLSAgICAvLyBLZWVwIGxvY2FsIHJlZmVyZW5jZXMg
dW50aWwgd2UgY2FuIHJldHVybiBhIHJlZiB0byBRdFdlYkNvbnRleHQgaG9sZGluZyB0aGUgV2Vi
Q29udGV4dC4KLSAgICBSZWZQdHI8V2ViQ29udGV4dD4gd2ViQ29udGV4dChzX2RlZmF1bHRXZWJD
b250ZXh0KTsKLSAgICBSZWZQdHI8UXRXZWJDb250ZXh0PiBxdFdlYkNvbnRleHQoc19kZWZhdWx0
UXRXZWJDb250ZXh0KTsKLQotICAgIGlmICghd2ViQ29udGV4dCkgewotICAgICAgICB3ZWJDb250
ZXh0ID0gV2ViQ29udGV4dDo6Y3JlYXRlKFN0cmluZygpKTsKLSAgICAgICAgc19kZWZhdWx0V2Vi
Q29udGV4dCA9IHdlYkNvbnRleHQuZ2V0KCk7CisgICAgaWYgKCFzX2RlZmF1bHRRdFdlYkNvbnRl
eHQpIHsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiB3a0NvbnRleHQgPSBhZG9w
dFdLKFdLQ29udGV4dENyZWF0ZSgpKTsKICAgICAgICAgLy8gTWFrZSBzdXJlIGZvciBXZWJLaXRU
ZXN0UnVubmVyIHRoYXQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQgaXNuJ3QgaW5pdGlhbGl6
ZWQKLSAgICAgICAgLy8gYW5kIHRoYXQgdGhlIHBhZ2UgY2FjaGUgaXNuJ3QgZW5hYmxlZCAoZGVm
YXVsdENvbnRleHQgaXNuJ3QgdXNlZCB0aGVyZSkuCi0gICAgICAgIGluaXRpYWxpemVDb250ZXh0
SW5qZWN0ZWRCdW5kbGVDbGllbnQod2ViQ29udGV4dC5nZXQoKSk7CisgICAgICAgIC8vIGFuZCB0
aGF0IHRoZSBwYWdlIGNhY2hlIGlzbid0IGVuYWJsZWQgKGRlZmF1bHRDb250ZXh0KCkgaXNuJ3Qg
dXNlZCB0aGVyZSkuCisgICAgICAgIGluaXRpYWxpemVDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGll
bnQod2tDb250ZXh0LmdldCgpKTsKICAgICAgICAgLy8gQSBnb29kIGFsbC1hcm91bmQgZGVmYXVs
dC4KLSAgICAgICAgd2ViQ29udGV4dC0+c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRC
cm93c2VyKTsKLSAgICB9CisgICAgICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwod2tDb250ZXh0
LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIGlmICghcXRXZWJD
b250ZXh0KSB7Ci0gICAgICAgIHF0V2ViQ29udGV4dCA9IFF0V2ViQ29udGV4dDo6Y3JlYXRlKHdl
YkNvbnRleHQuZ2V0KCkpOwotICAgICAgICBzX2RlZmF1bHRRdFdlYkNvbnRleHQgPSBxdFdlYkNv
bnRleHQuZ2V0KCk7CisgICAgICAgIHNfZGVmYXVsdFF0V2ViQ29udGV4dCA9IFF0V2ViQ29udGV4
dDo6Y3JlYXRlKHdrQ29udGV4dC5nZXQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHF0V2ViQ29u
dGV4dC5yZWxlYXNlKCk7Ci19Ci0KLVBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBRdFdlYkNvbnRl
eHQ6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCogY2xpZW50LCBXZWJQYWdlR3JvdXAqIHBhZ2VH
cm91cCkKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jcmVhdGVXZWJQYWdlKGNsaWVudCwgcGFn
ZUdyb3VwKTsKLX0KLQotUXREb3dubG9hZE1hbmFnZXIqIFF0V2ViQ29udGV4dDo6ZG93bmxvYWRN
YW5hZ2VyKCkKLXsKLSAgICBBU1NFUlQoc19kb3dubG9hZE1hbmFnZXIpOwotICAgIHJldHVybiBz
X2Rvd25sb2FkTWFuYWdlci5nZXQoKTsKLX0KLQotUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIFF0
V2ViQ29udGV4dDo6aWNvbkRhdGFiYXNlKCkKLXsKLSAgICBBU1NFUlQoc19pY29uRGF0YWJhc2Up
OwotICAgIHJldHVybiBzX2ljb25EYXRhYmFzZS5nZXQoKTsKLX0KLQotdm9pZCBRdFdlYkNvbnRl
eHQ6OmludmFsaWRhdGVDb250ZXh0KFdlYkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgVU5VU0VE
X1BBUkFNKGNvbnRleHQpOwotICAgIEFTU0VSVCghc19kZWZhdWx0UXRXZWJDb250ZXh0KTsKLSAg
ICBBU1NFUlQoIXNfZGVmYXVsdFdlYkNvbnRleHQgfHwgc19kZWZhdWx0V2ViQ29udGV4dCA9PSBj
b250ZXh0KTsKLSAgICBzX2Rvd25sb2FkTWFuYWdlci5jbGVhcigpOwotICAgIHNfaWNvbkRhdGFi
YXNlLmNsZWFyKCk7Ci0gICAgc19kZWZhdWx0V2ViQ29udGV4dCA9IDA7CisgICAgcmV0dXJuIHNf
ZGVmYXVsdFF0V2ViQ29udGV4dDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmgKaW5kZXggYmQzY2NhNzNkNTY5MDg2
OTc2MjE5ZDU0MzhhMDVhZTIwMjQyNzUwMS4uNTU4ZjRjYTM2ZjkxMWRkYTg2NTFmNzUxNTc4MDk5
ZjQ2MGVkODhlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQu
aApAQCAtMjEsNDEgKzIxLDM0IEBACiAjaWZuZGVmIFF0V2ViQ29udGV4dF9oCiAjZGVmaW5lIFF0
V2ViQ29udGV4dF9oCiAKKyNpbmNsdWRlIDxRU2NvcGVkUG9pbnRlcj4KICNpbmNsdWRlIDxRdEds
b2JhbD4KICNpbmNsdWRlIDxXS0NvbnRleHQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUGFnZUNsaWVudDsKIGNsYXNzIFF0RG93bmxvYWRNYW5h
Z2VyOwogY2xhc3MgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQ7Ci1jbGFzcyBXZWJDb250ZXh0Owot
Y2xhc3MgV2ViUGFnZUdyb3VwOwotY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFzcyBRdFdlYkNv
bnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxRdFdlYkNvbnRleHQ+IHsKK2NsYXNzIFF0V2ViQ29u
dGV4dCB7CiBwdWJsaWM6CiAgICAgflF0V2ViQ29udGV4dCgpOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UXRXZWJDb250ZXh0PiBjcmVhdGUoV2ViQ29udGV4dCopOwotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFF0V2ViQ29udGV4dD4gZGVmYXVsdENvbnRleHQoKTsKKyAgICBzdGF0aWMgUXRXZWJD
b250ZXh0KiBjcmVhdGUoV0tDb250ZXh0UmVmKTsKKyAgICBzdGF0aWMgUXRXZWJDb250ZXh0KiBk
ZWZhdWx0Q29udGV4dCgpOwogCi0gICAgUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdl
YlBhZ2UoUGFnZUNsaWVudCosIFdlYlBhZ2VHcm91cCopOworICAgIFdLQ29udGV4dFJlZiBjb250
ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKLSAgICBXZWJDb250ZXh0KiBjb250
ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9Ci0KLSAgICBzdGF0aWMgUXREb3dubG9h
ZE1hbmFnZXIqIGRvd25sb2FkTWFuYWdlcigpOwotICAgIHN0YXRpYyBRdFdlYkljb25EYXRhYmFz
ZUNsaWVudCogaWNvbkRhdGFiYXNlKCk7Ci0gICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZUNvbnRl
eHQoV2ViQ29udGV4dCopOworICAgIFF0RG93bmxvYWRNYW5hZ2VyKiBkb3dubG9hZE1hbmFnZXIo
KSB7IHJldHVybiBtX2Rvd25sb2FkTWFuYWdlci5kYXRhKCk7IH0KKyAgICBRdFdlYkljb25EYXRh
YmFzZUNsaWVudCogaWNvbkRhdGFiYXNlKCkgeyByZXR1cm4gbV9pY29uRGF0YWJhc2UuZGF0YSgp
OyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUXRXZWJDb250ZXh0KFdlYkNvbnRleHQqKTsK
KyAgICBleHBsaWNpdCBRdFdlYkNvbnRleHQoV0tDb250ZXh0UmVmKTsKIAotICAgIFJlZlB0cjxX
ZWJDb250ZXh0PiBtX2NvbnRleHQ7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2Nv
bnRleHQ7CisgICAgUVNjb3BlZFBvaW50ZXI8UXREb3dubG9hZE1hbmFnZXI+IG1fZG93bmxvYWRN
YW5hZ2VyOworICAgIFFTY29wZWRQb2ludGVyPFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50PiBtX2lj
b25EYXRhYmFzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAppbmRleCBiMDAzNjY3ZWEzYzJkNjY3YTg1
YzUwZWY2Njk0Mjc1YTRhMjhkZDMxLi5lNzE2ZGViYjM5M2ZiNzg4YjdlYjA4YzNjOTc4YTU2YjZm
NWQyZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4
dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNw
cApAQCAtODEsOSArODEsNiBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogCiB2b2lkIFdlYkNv
bnRleHQ6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQogewotI2lmIEhBVkUoUVRRVUlDSykK
LSAgICBRdFdlYkNvbnRleHQ6OmludmFsaWRhdGVDb250ZXh0KHRoaXMpOwotI2VuZGlmCiB9CiAK
IFN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHREYXRhYmFzZURpcmVjdG9yeSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5
UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcApp
bmRleCBlNmQ5YjkwODQ1MGRmYmE2Y2Y0Y2NjYzkxYWQxZWEyOTUwMTI4YzhiLi40ZjI2ZDY1ZTA5
MGIwMTNmN2UzYjRmZTY5OGQyYmRkNTlhYTkyMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAKQEAgLTk5LDExICs5OSw2IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50
LCBjb25zdCBJbnRTaXplCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpG
aW5kWm9vbWFibGVBcmVhRm9yUG9pbnQocG9pbnQsIGFyZWEpLCBtX3BhZ2VJRCk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChj
b25zdCBTdHJpbmcmIGNvbnRlbnRzKQotewotICAgIG1fcGFnZUNsaWVudC0+ZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoY29udGVudHMpOwotfQotCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6YXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFt
ZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3QgU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwg
U3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCkKIHsKICAgICBtX3BhZ2VDbGllbnQt
PmhhbmRsZUF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGhvc3RuYW1lLCByZWFsbSwgcHJl
ZmlsbGVkVXNlcm5hbWUsIHVzZXJuYW1lLCBwYXNzd29yZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188348</attachid>
            <date>2013-02-14 07:36:25 -0800</date>
            <delta_ts>2013-02-20 07:01:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108475-20130214163253.patch</filename>
            <type>text/plain</type>
            <size>7003</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWVmM2NiYThmNmYwYWU4
ZGEwMWEzZWVhNThiYWU3OWQ4Njc3MTUxMS4uMWY3MGE0NTIwNGM1OGUxNjY1YWRhMGM2ODhkZDI0
OGI3Yzg5YzVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEzLTAyLTE0ICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XSBQcm9wZXJseSBsYXllciBRdFdlYkNvbnRleHQgb24gdG9wIG9mIHRoZSBDIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6Omlu
aXRpYWxpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViS2l0Ojppbml0aWFsaXplQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6UXRXZWJDb250ZXh0OjpRdFdlYkNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpRdFdlYkNvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViQ29udGV4
dDo6ZGVmYXVsdENvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQu
aDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChRdFdlYkNvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpRdFdlYkNvbnRleHQ6OmNvbnRleHQpOgorCisyMDEzLTAyLTE0ICBKb2NlbHluIFR1
cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CisKICAgICAgICAgW1F0XVtXSzJd
IEFsbG93IFF0V2ViQ29udGV4dCB0byBjYWxsIGRpcmVjdGx5IHRvIFFRdWlja1dlYlZpZXcgd2l0
aCBhIFdLUGFnZVJlZgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5ODI5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwCmluZGV4IDcwOTU1ZDU2MzE2YTQyMWU2N2M0NDZhOTBjZDZkNTZmYjU1
MGFjYmQuLjI0OTI0MDc1NGRjZmE1ZDhkM2QwMGU5MGM4OWYwNzU1NzY5NGQ4MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAt
MzIxLDggKzMyMSw4IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhCiAgICAgaWYgKCFwYWdlR3Jv
dXApCiAgICAgICAgIHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRl
bnRpZmllcigwKSk7CiAKLSAgICBjb250ZXh0ID0gY29udGV4dFJlZiA/IFF0V2ViQ29udGV4dDo6
Y3JlYXRlKHRvSW1wbChjb250ZXh0UmVmKSkgOiBRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0
KCk7Ci0gICAgd2ViUGFnZVByb3h5ID0gY29udGV4dC0+Y3JlYXRlV2ViUGFnZSgmcGFnZUNsaWVu
dCwgdG9JbXBsKHBhZ2VHcm91cC5nZXQoKSkpOworICAgIGNvbnRleHQgPSBjb250ZXh0UmVmID8g
UXRXZWJDb250ZXh0OjpjcmVhdGUoY29udGV4dFJlZikgOiBRdFdlYkNvbnRleHQ6OmRlZmF1bHRD
b250ZXh0KCk7CisgICAgd2ViUGFnZVByb3h5ID0gdG9JbXBsKGNvbnRleHQtPmNvbnRleHQoKSkt
PmNyZWF0ZVdlYlBhZ2UoJnBhZ2VDbGllbnQsIHRvSW1wbChwYWdlR3JvdXAuZ2V0KCkpKTsKICAg
ICB3ZWJQYWdlID0gdG9BUEkod2ViUGFnZVByb3h5LmdldCgpKTsKICAgICBwYWdlVG9WaWV3KCkt
Pmluc2VydCh3ZWJQYWdlLmdldCgpLCB0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJDb250ZXh0LmNwcAppbmRleCA3MTgyZDUwZjk0NzUxZDQzZTJmNDIxMTExMjli
MTE1NTdjNzA5YmYyLi4zZGVmNDRkOTFkNTYzNTllZGE0NDExMzFhNzMxNWU4NDVkZGFiYzEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcApAQCAtMjMs
MTAgKzIzLDkgQEAKIAogI2luY2x1ZGUgIlF0RG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
UXRXZWJJY29uRGF0YWJhc2VDbGllbnQuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNs
dWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yU2VydmVyLmgiCiAjaW5j
bHVkZSAicXF1aWNrd2Vidmlld19wX3AuaCIKKyNpbmNsdWRlIDxXS0FQSUNhc3QuaD4KICNpbmNs
dWRlIDxXS0FycmF5Lmg+CiAjaW5jbHVkZSA8V0tQYWdlLmg+CiAjaW5jbHVkZSA8V0tTdHJpbmcu
aD4KQEAgLTEwMiwxOSArMTAxLDE5IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnCiAgICAgUVF1
aWNrV2ViVmlld1ByaXZhdGU6OmdldChwYWdlKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdh
dG9yUXRPYmplY3Qoc3RyKTsKIH0KIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUNvbnRleHRJbmpl
Y3RlZEJ1bmRsZUNsaWVudChXZWJDb250ZXh0KiBjb250ZXh0KQorc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZUNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudChXS0NvbnRleHRSZWYgY29udGV4dCkKIHsK
ICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCBpbmplY3RlZEJ1bmRsZUNsaWVudDsK
ICAgICBtZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoV0tDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQpKTsKICAgICBpbmplY3RlZEJ1bmRsZUNsaWVudC52ZXJzaW9uID0g
a1dLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Q3VycmVudFZlcnNpb247CiAgICAgaW5qZWN0
ZWRCdW5kbGVDbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUgPSBkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZTsKLSAgICBXS0NvbnRleHRTZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudCh0b0FQSShjb250ZXh0KSwgJmluamVjdGVkQnVuZGxlQ2xpZW50KTsKKyAg
ICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LCAmaW5qZWN0ZWRCdW5k
bGVDbGllbnQpOwogfQogCi1RdFdlYkNvbnRleHQ6OlF0V2ViQ29udGV4dChQYXNzUmVmUHRyPFdl
YkNvbnRleHQ+IGNvbnRleHQpCitRdFdlYkNvbnRleHQ6OlF0V2ViQ29udGV4dChXS0NvbnRleHRS
ZWYgY29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQotICAgICwgbV9kb3dubG9hZE1h
bmFnZXIobmV3IFF0RG93bmxvYWRNYW5hZ2VyKG1fY29udGV4dC5nZXQoKSkpCi0gICAgLCBtX2lj
b25EYXRhYmFzZShuZXcgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQobV9jb250ZXh0LmdldCgpKSkK
KyAgICAsIG1fZG93bmxvYWRNYW5hZ2VyKG5ldyBRdERvd25sb2FkTWFuYWdlcih0b0ltcGwoY29u
dGV4dCkpKQorICAgICwgbV9pY29uRGF0YWJhc2UobmV3IFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50
KHRvSW1wbChjb250ZXh0KSkpCiB7CiB9CiAKQEAgLTEyMyw3ICsxMjIsNyBAQCBRdFdlYkNvbnRl
eHQ6On5RdFdlYkNvbnRleHQoKQogfQogCiAvLyBVc2VkIGRpcmVjdGx5IG9ubHkgYnkgV2ViS2l0
VGVzdFJ1bm5lci4KLVF0V2ViQ29udGV4dCogUXRXZWJDb250ZXh0OjpjcmVhdGUoUGFzc1JlZlB0
cjxXZWJDb250ZXh0PiBjb250ZXh0KQorUXRXZWJDb250ZXh0KiBRdFdlYkNvbnRleHQ6OmNyZWF0
ZShXS0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICBnbG9iYWxJbml0aWFsaXphdGlvbigpOwog
ICAgIHJldHVybiBuZXcgUXRXZWJDb250ZXh0KGNvbnRleHQpOwpAQCAtMTMyLDIzICsxMzEsMTgg
QEAgUXRXZWJDb250ZXh0KiBRdFdlYkNvbnRleHQ6OmNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvbnRl
eHQ+IGNvbnRleHQpCiBRdFdlYkNvbnRleHQqIFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQo
KQogewogICAgIGlmICghc19kZWZhdWx0UXRXZWJDb250ZXh0KSB7Ci0gICAgICAgIFJlZlB0cjxX
ZWJDb250ZXh0PiB3ZWJDb250ZXh0ID0gV2ViQ29udGV4dDo6Y3JlYXRlKFN0cmluZygpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiB3a0NvbnRleHQgPSBhZG9wdFdLKFdLQ29u
dGV4dENyZWF0ZSgpKTsKICAgICAgICAgLy8gTWFrZSBzdXJlIGZvciBXZWJLaXRUZXN0UnVubmVy
IHRoYXQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQgaXNuJ3QgaW5pdGlhbGl6ZWQKICAgICAg
ICAgLy8gYW5kIHRoYXQgdGhlIHBhZ2UgY2FjaGUgaXNuJ3QgZW5hYmxlZCAoZGVmYXVsdENvbnRl
eHQoKSBpc24ndCB1c2VkIHRoZXJlKS4KLSAgICAgICAgaW5pdGlhbGl6ZUNvbnRleHRJbmplY3Rl
ZEJ1bmRsZUNsaWVudCh3ZWJDb250ZXh0LmdldCgpKTsKKyAgICAgICAgaW5pdGlhbGl6ZUNvbnRl
eHRJbmplY3RlZEJ1bmRsZUNsaWVudCh3a0NvbnRleHQuZ2V0KCkpOwogICAgICAgICAvLyBBIGdv
b2QgYWxsLWFyb3VuZCBkZWZhdWx0LgotICAgICAgICB3ZWJDb250ZXh0LT5zZXRDYWNoZU1vZGVs
KENhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOworICAgICAgICBXS0NvbnRleHRTZXRDYWNoZU1v
ZGVsKHdrQ29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAKLSAg
ICAgICAgc19kZWZhdWx0UXRXZWJDb250ZXh0ID0gUXRXZWJDb250ZXh0OjpjcmVhdGUod2ViQ29u
dGV4dC5yZWxlYXNlKCkpOworICAgICAgICBzX2RlZmF1bHRRdFdlYkNvbnRleHQgPSBRdFdlYkNv
bnRleHQ6OmNyZWF0ZSh3a0NvbnRleHQuZ2V0KCkpOwogICAgIH0KIAogICAgIHJldHVybiBzX2Rl
ZmF1bHRRdFdlYkNvbnRleHQ7CiB9CiAKLVBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBRdFdlYkNv
bnRleHQ6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCogY2xpZW50LCBXZWJQYWdlR3JvdXAqIHBh
Z2VHcm91cCkKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jcmVhdGVXZWJQYWdlKGNsaWVudCwg
cGFnZUdyb3VwKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaAppbmRleCA2Njk0NWYzNWFiYjU0Mzk5NjNhMTkw
NGZjZTIzODQzODM1ZWU5NTI3Li41NThmNGNhMzZmOTExZGRhODY1MWY3NTE1NzgwOTlmNDYwZWQ4
OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5oCkBAIC0y
NCwzOCArMjQsMjkgQEAKICNpbmNsdWRlIDxRU2NvcGVkUG9pbnRlcj4KICNpbmNsdWRlIDxRdEds
b2JhbD4KICNpbmNsdWRlIDxXS0NvbnRleHQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUGFnZUNsaWVudDsKIGNsYXNzIFF0RG93bmxvYWRNYW5h
Z2VyOwogY2xhc3MgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQ7Ci1jbGFzcyBXZWJDb250ZXh0Owot
Y2xhc3MgV2ViUGFnZUdyb3VwOwotY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBRdFdlYkNv
bnRleHQgewogcHVibGljOgogICAgIH5RdFdlYkNvbnRleHQoKTsKIAotICAgIHN0YXRpYyBRdFdl
YkNvbnRleHQqIGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvbnRleHQ+KTsKKyAgICBzdGF0aWMgUXRX
ZWJDb250ZXh0KiBjcmVhdGUoV0tDb250ZXh0UmVmKTsKICAgICBzdGF0aWMgUXRXZWJDb250ZXh0
KiBkZWZhdWx0Q29udGV4dCgpOwogCi0gICAgUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IGNyZWF0
ZVdlYlBhZ2UoUGFnZUNsaWVudCosIFdlYlBhZ2VHcm91cCopOwotCi0gICAgV2ViQ29udGV4dCog
Y29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorICAgIFdLQ29udGV4dFJlZiBj
b250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKICAgICBRdERvd25sb2FkTWFu
YWdlciogZG93bmxvYWRNYW5hZ2VyKCkgeyByZXR1cm4gbV9kb3dubG9hZE1hbmFnZXIuZGF0YSgp
OyB9CiAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSgpIHsgcmV0dXJu
IG1faWNvbkRhdGFiYXNlLmRhdGEoKTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFF0V2Vi
Q29udGV4dChQYXNzUmVmUHRyPFdlYkNvbnRleHQ+KTsKKyAgICBleHBsaWNpdCBRdFdlYkNvbnRl
eHQoV0tDb250ZXh0UmVmKTsKIAotICAgIFJlZlB0cjxXZWJDb250ZXh0PiBtX2NvbnRleHQ7Cisg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7CiAgICAgUVNjb3BlZFBvaW50
ZXI8UXREb3dubG9hZE1hbmFnZXI+IG1fZG93bmxvYWRNYW5hZ2VyOwogICAgIFFTY29wZWRQb2lu
dGVyPFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50PiBtX2ljb25EYXRhYmFzZTsKIH07Cg==
</data>
<flag name="review"
          id="208433"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>