<?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>11405</bug_id>
          
          <creation_ts>2006-10-24 12:38:38 -0700</creation_ts>
          <short_desc>Linux/Gdk build fixes</short_desc>
          <delta_ts>2006-11-06 17:17:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Krzysztof Kowalczyk">kkowalczyk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>50563</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-10-24 12:38:38 -0700</bug_when>
    <thetext>Linux/Gdk build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50567</commentid>
    <comment_count>1</comment_count>
      <attachid>11193</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-10-24 12:40:47 -0700</bug_when>
    <thetext>Created attachment 11193
Fix Linux/Gdk build.

Fix Linux/Gdk build by fixing up the code to account for recent changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49533</commentid>
    <comment_count>2</comment_count>
      <attachid>11235</attachid>
    <who name="Niels Leenheer (HTML5test)">info</who>
    <bug_when>2006-10-27 02:26:26 -0700</bug_when>
    <thetext>Created attachment 11235
Additional fixes

I&apos;ve added a second patch to solve a number of additional build problem for Gdk/Linux. This patch does not obsolete the patch by Krzysztof Kowalczyk. Both patches should be applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49534</commentid>
    <comment_count>3</comment_count>
      <attachid>11235</attachid>
    <who name="Niels Leenheer (HTML5test)">info</who>
    <bug_when>2006-10-27 02:58:12 -0700</bug_when>
    <thetext>Comment on attachment 11235
Additional fixes

Review request stopped because there are even more build fixes needed. Will create a new patch that obsoletes this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48433</commentid>
    <comment_count>4</comment_count>
      <attachid>11293</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-10-31 00:08:45 -0800</bug_when>
    <thetext>Created attachment 11293
linux\gdk build fixes

Updated linux\gdk fixes that work against r17472 (and hopefully later).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48135</commentid>
    <comment_count>5</comment_count>
      <attachid>11320</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-10-31 22:39:57 -0800</bug_when>
    <thetext>Created attachment 11320
linux\gdk build fixes

updated linux\gdk build fixes, work against r17513 (and hopefully later)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47519</commentid>
    <comment_count>6</comment_count>
      <attachid>11320</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-11-01 19:13:01 -0800</bug_when>
    <thetext>Comment on attachment 11320
linux\gdk build fixes

Thanks for the patch! A few comments:

What warning do you get that resulted in these changes:

-            return NaN64AsBits;
+            return (uintptr_t)NaN64AsBits;

It would be nicer if NanAsBits was templatized on sizeof(uintptr_t) so that this cast wasn&apos;t necessary. It&apos;s kind of sloppy to rely on the dead code paths to be optimized out in the first place (admittedly a pre-existing flaw in the code).

There is a more complete AffineTransformCairo attached to &lt;http://bugs.webkit.org/show_bug.cgi?id=11433&gt;, I suggest starting with that. There&apos;s one bug in that version which I pointed out in review comments. (I think the right way to map a rect with a transform is to map each corner and find the bounding box). However, the other version doesn&apos;t have all the notImplemented() stuff this does, so you may want to start with that.

Otherwise, this looks great to me.

r- to consider the two points I raised. If you can&apos;t figure out how to do the template solution for JSImmediate.h that&apos;s ok, that can be done later, but I think it is worth taking the better AffineTransform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46796</commentid>
    <comment_count>7</comment_count>
      <attachid>11381</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-11-04 14:22:25 -0800</bug_when>
    <thetext>Created attachment 11381
linux\gdk build fixes

Updated linux\gdk build fixes. Dropped JSImmediate.h and cairo fixes, since they were fixed in the meantime. Updated gdk-specific fixes to latest r17594.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46823</commentid>
    <comment_count>8</comment_count>
      <attachid>11389</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-11-05 18:14:33 -0800</bug_when>
    <thetext>Created attachment 11389
linux\gdk build fixes

Updated linux\gdk fixes to r17606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46829</commentid>
    <comment_count>9</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-11-05 19:30:55 -0800</bug_when>
    <thetext>+            d-&gt;m_client-&gt;receivedAllData(job, 0);

On other platforms we usually prefer to write this as client() instead of d-&gt;m_client and also to null-check the client.

+#if 0
+void FrameGdk::openURL(const KURL&amp; url)
+{
+    ASSERT(m_client);
+    m_client-&gt;openURL(url);
+}
+#endif
+

We prefer not to have ifdef&apos;d out code in the tree. Despite these minor quibbles, r=me so this patch doesn&apos;t keep getting outdated by further changes.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46830</commentid>
    <comment_count>10</comment_count>
      <attachid>11389</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-11-05 19:31:42 -0800</bug_when>
    <thetext>Comment on attachment 11389
linux\gdk build fixes

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46739</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-11-06 17:17:46 -0800</bug_when>
    <thetext>Landed in r17636.  Krzysztof, can you please consider fixing the two issues Maciej pointed out in a future patch?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11193</attachid>
            <date>2006-10-24 12:40:47 -0700</date>
            <delta_ts>2006-10-31 00:08:45 -0800</delta_ts>
            <desc>Fix Linux/Gdk build.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10115</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0N1cnNvckdkay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9nZGsvQ3Vyc29yR2RrLmNwcAkocmV2aXNpb24gMTcyNTQpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9DdXJzb3JHZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2
ICs2MywxMiBAQAogICAgIGdka19jdXJzb3JfcmVmKGMpOwogfQogCitjb25zdCBDdXJzb3ImIHBv
aW50ZXJDdXJzb3IoKQoreworICAgIHN0YXRpYyBDdXJzb3IgYyA9IGdka19jdXJzb3JfbmV3KEdE
S19BUlJPVyk7CisgICAgcmV0dXJuIGM7Cit9CisKIGNvbnN0IEN1cnNvciYgY3Jvc3NDdXJzb3Io
KQogewogICAgIHN0YXRpYyBDdXJzb3IgYyA9IGdka19jdXJzb3JfbmV3KEdES19DUk9TUyk7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9Ccm93c2VyRXh0ZW5zaW9uR2RrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvQnJvd3NlckV4dGVuc2lvbkdkay5oCShyZXZpc2lv
biAxNzI1NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0Jyb3dzZXJFeHRlbnNpb25HZGsuaAko
d29ya2luZyBjb3B5KQpAQCAtMzcsMjIgKzM3LDEwIEBACiAKIGNsYXNzIEJyb3dzZXJFeHRlbnNp
b25HZGsgOiBwdWJsaWMgQnJvd3NlckV4dGVuc2lvbiB7CiBwdWJsaWM6Ci0gICAgQnJvd3NlckV4
dGVuc2lvbkdkayhGcmFtZSopOworICAgIEJyb3dzZXJFeHRlbnNpb25HZGsoRnJhbWVHZGsqIGZy
YW1lKSA6IG1fZnJhbWUoZnJhbWUpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZU5ld1dp
bmRvdyhjb25zdCBGcmFtZUxvYWRSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU5l
d1dpbmRvdyhjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBG
cmFtZSomKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRJY29uVVJMKGNvbnN0IEtVUkwmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VHlwZWRJY29uVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcm
IHR5cGUpOwotCi0gICAgdmlydHVhbCBpbnQgZ2V0SGlzdG9yeUxlbmd0aCgpOwotICAgIHZpcnR1
YWwgdm9pZCBnb0JhY2tPckZvcndhcmQoaW50IGRpc3RhbmNlKTsKLSAgICB2aXJ0dWFsIEtVUkwg
aGlzdG9yeVVSTChpbnQgZGlzdGFuY2UpOwotCi0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFs
KCk7Ci0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsTm93KCk7Ci0gICAgdmlydHVhbCB2b2lk
IHJ1bk1vZGFsKCk7Ci0KIHByaXZhdGU6CiAgICAgRnJhbWVHZGsqIG1fZnJhbWU7CiB9OwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwCShyZXZpc2lv
biAxNzI1NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1JlbmRlclBvcHVwTWVudUdkay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDE2ICszOCw2IEBACiB7CiB9CiAKLXZvaWQgUG9wdXBNZW51
OjpjbGVhcigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQb3B1cE1lbnU6
OnBvcHVsYXRlKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFBvcHVwTWVu
dTo6c2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CkBAIC01OCwyMCArNDgsNSBAQAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgUG9wdXBNZW51OjphZGRTZXBhcmF0b3IoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgUG9wdXBNZW51OjphZGRHcm91cExhYmVsKEhUTUxPcHRHcm91cEVsZW1lbnQq
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUG9wdXBNZW51OjphZGRPcHRp
b24oSFRNTE9wdGlvbkVsZW1lbnQqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLX0K
LQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAkocmV2aXNpb24gMTcyNTQpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw3
ICsxNTQsNyBAQAogfQogCiBGcmFtZUdkazo6RnJhbWVHZGsoR2RrRHJhd2FibGUqIGdka2RyYXdh
YmxlKQotICAgIDogRnJhbWUobmV3IFBhZ2UsIDApLCBtX2RyYXdhYmxlKGdka2RyYXdhYmxlKQor
ICAgIDogRnJhbWUobmV3IFBhZ2UsIDAsIE5VTEwpLCBtX2RyYXdhYmxlKGdka2RyYXdhYmxlKQog
ewogICAgIGQtPm1fZXh0ZW5zaW9uID0gbmV3IEJyb3dzZXJFeHRlbnNpb25HZGsodGhpcyk7CiAg
ICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbmV3IFNldHRpbmdzOwpAQCAtMTgxLDggKzE4MSw4IEBA
CiAgICAgbV9jbGllbnQtPnNldEZyYW1lKHRoaXMpOwogfQogCi1GcmFtZUdkazo6RnJhbWVHZGso
UGFnZSogcGFnZSwgRWxlbWVudCogZWxlbWVudCkKLSAgICA6IEZyYW1lKHBhZ2UsZWxlbWVudCkK
K0ZyYW1lR2RrOjpGcmFtZUdkayhQYWdlKiBwYWdlLCBFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVm
UHRyPEVkaXRvckNsaWVudD4gZWRpdG9yQ2xpZW50KQorICAgIDogRnJhbWUocGFnZSxlbGVtZW50
LCBlZGl0b3JDbGllbnQpCiB7CiAgICAgZC0+bV9leHRlbnNpb24gPSBuZXcgQnJvd3NlckV4dGVu
c2lvbkdkayh0aGlzKTsKICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBuZXcgU2V0dGluZ3M7CkBA
IC0yMTcsMTEgKzIxNywxMiBAQAogICAgIGQtPm1fc3VibWl0dGVkRm9ybVVSTCA9IHJlcXVlc3Qu
dXJsKCk7CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zdWJtaXRGb3Jt
KHJlcXVlc3QuZG9Qb3N0KCkgPyAiUE9TVCIgOiAiR0VUIiwgcmVxdWVzdC51cmwoKSwgJnJlcXVl
c3QucG9zdERhdGEpOworICAgICAgICBtX2NsaWVudC0+c3VibWl0Rm9ybShyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSwgcmVxdWVzdC51cmwoKSwgJnJlcXVlc3QuaHR0cEJvZHkoKSk7CisKICAgICBjbGVh
clJlY29yZGVkRm9ybVZhbHVlcygpOwogfQogCi12b2lkIEZyYW1lR2RrOjp1cmxTZWxlY3RlZChj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1ZXN0KQordm9pZCBGcmFtZUdkazo6
dXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVMb2FkUmVxdWVzdCwgY29u
c3QgRXZlbnQqKQogewogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZnJhbWVMb2FkUmVx
dWVzdC5tX3JlcXVlc3Q7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1RlbXBvcmFyeUxp
bmtTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5
TGlua1N0dWJzLmNwcAkocmV2aXNpb24gMTcyNTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9U
ZW1wb3JhcnlMaW5rU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBACiAj
aW5jbHVkZSAiSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtMTgxLDE3ICsxODIsMTQgQEAKIEtVUkwgRnJhbWVHZGs6Om9yaWdp
bmFsUmVxdWVzdFVSTCgpIGNvbnN0IHsgcmV0dXJuIEtVUkwoKTsgfQogUGx1Z2luKiBGcmFtZUdk
azo6Y3JlYXRlUGx1Z2luKEVsZW1lbnQqLCBLVVJMIGNvbnN0JiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFN0cmluZyBjb25zdCYpIHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIDA7IH0KIAotYm9vbCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpjYW5SdW5Nb2Rh
bCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KK3ZvaWQgRnJhbWVHZGs6OmdvQmFj
a09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQoraW50IEZyYW1l
R2RrOjpnZXRIaXN0b3J5TGVuZ3RoKCkge25vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CitL
VVJMIEZyYW1lR2RrOjpoaXN0b3J5VVJMKGludCBkaXN0YW5jZSkgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gS1VSTCgpOyB9Citib29sIFBhZ2U6OmNhblJ1bk1vZGFsKCkgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gMDsgfQorYm9vbCBQYWdlOjpjYW5SdW5Nb2RhbE5vdygpIHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KK3ZvaWQgUGFnZTo6cnVuTW9kYWwoKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KKwogdm9pZCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpjcmVhdGVOZXdXaW5kb3co
c3RydWN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgY29uc3QmLCBzdHJ1Y3QgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMgY29uc3QmLCBGcmFtZSomKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZv
aWQgQnJvd3NlckV4dGVuc2lvbkdkazo6Y3JlYXRlTmV3V2luZG93KHN0cnVjdCBXZWJDb3JlOjpG
cmFtZUxvYWRSZXF1ZXN0IGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1ib29sIEJyb3dz
ZXJFeHRlbnNpb25HZGs6OmNhblJ1bk1vZGFsTm93KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gMDsgfQotdm9pZCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpydW5Nb2RhbCgpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQotdm9pZCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpnb0JhY2tPckZvcndhcmQoaW50
KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUtVUkwgQnJvd3NlckV4dGVuc2lvbkdkazo6aGlzdG9y
eVVSTChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIEtVUkwoKTsgfQot
QnJvd3NlckV4dGVuc2lvbkdkazo6QnJvd3NlckV4dGVuc2lvbkdkayhXZWJDb3JlOjpGcmFtZSop
IHsgfQotdm9pZCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpzZXRUeXBlZEljb25VUkwoS1VSTCBjb25z
dCYsIGNvbnN0IFN0cmluZyYpIHsgfQotdm9pZCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpzZXRJY29u
VVJMKEtVUkwgY29uc3QmKSB7IH0KLWludCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpnZXRIaXN0b3J5
TGVuZ3RoKCkgeyByZXR1cm4gMDsgfQogCiBpbnQgV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21w
b25lbnQoY29uc3QgUGFnZSopIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIGJvb2wg
V2ViQ29yZTo6c2NyZWVuSXNNb25vY2hyb21lKGNvbnN0IFBhZ2UqKSB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBmYWxzZTsgfQpAQCAtMjIxLDcgKzIxOSw3IEBACiB2b2lkIFdlYkNvcmU6OnJl
ZnJlc2hQbHVnaW5zKGJvb2wpIHsgfQogCiB2b2lkIFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjph
c3NlbWJsZVJlc3BvbnNlSGVhZGVycygpIGNvbnN0IHsgfQotdm9pZCBXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcjo6cmV0cmlldmVDaGFyc2V0KCkgY29uc3QgeyB9Cit2b2lkIFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyOjpyZXRyaWV2ZVJlc3BvbnNlRW5jb2RpbmcoKSBjb25zdCB7IH0KIAogdm9pZCBG
cmFtZUdkazo6cmVzdG9yZURvY3VtZW50U3RhdGUoKSB7IH0KIHZvaWQgRnJhbWVHZGs6OnBhcnRD
bGVhcmVkSW5CZWdpbigpIHsgfQpAQCAtMjQ1LDYgKzI0Myw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAordm9pZCBzeXN0ZW1CZWVwKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CisKIGJvb2wg
Q2hlY2tJZlJlbG9hZGluZyhEb2NMb2FkZXIqKSB7IHJldHVybiBmYWxzZTsgfQogdGltZV90IENh
Y2hlT2JqZWN0RXhwaXJlc1RpbWUoRG9jTG9hZGVyKiwgUGxhdGZvcm1SZXNwb25zZSkgeyByZXR1
cm4gMDsgfQogdm9pZCBDaGVja0NhY2hlT2JqZWN0U3RhdHVzKERvY0xvYWRlciosIENhY2hlZFJl
c291cmNlKikgeyB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmgJKHJldmlzaW9uIDE3MjU0
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsMTIgKzMwLDE0IEBACiAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSA8Z2Rr
L2dkay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBG
cmFtZUdkazsKK2NsYXNzIEVkaXRvckNsaWVudDsKIAogY2xhc3MgRnJhbWVHZGtDbGllbnQgewog
cHVibGljOgpAQCAtNzMsNyArNzUsNyBAQAogCiBjbGFzcyBGcmFtZUdkayA6IHB1YmxpYyBGcmFt
ZSB7CiBwdWJsaWM6Ci0gICAgRnJhbWVHZGsoUGFnZSosIEVsZW1lbnQqKTsKKyAgICBGcmFtZUdk
ayhQYWdlKiwgRWxlbWVudCosIFBhc3NSZWZQdHI8RWRpdG9yQ2xpZW50Pik7CiAgICAgRnJhbWVH
ZGsoR2RrRHJhd2FibGUqKTsKICAgICB2aXJ0dWFsIH5GcmFtZUdkaygpOwogCkBAIC04MSw3ICs4
Myw3IEBACiAgICAgdmlydHVhbCBib29sIG9wZW5VUkwoY29uc3QgS1VSTCYpOwogICAgIHZpcnR1
YWwgdm9pZCBvcGVuVVJMUmVxdWVzdChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0Jik7CiAgICAgdmly
dHVhbCB2b2lkIHN1Ym1pdEZvcm0oY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpOwotICAgIHZpcnR1
YWwgdm9pZCB1cmxTZWxlY3RlZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0Jik7CisgICAgdmlydHVh
bCB2b2lkIHVybFNlbGVjdGVkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBFdmVudCop
OwogCiAgICAgdmlydHVhbCB2b2lkIHNldFRpdGxlKGNvbnN0IFN0cmluZyYpOwogCkBAIC0xNDgs
NiArMTUwLDEwIEBACiAgICAgdmlydHVhbCB2b2lkIHBhcnRDbGVhcmVkSW5CZWdpbigpOwogCiAg
ICAgdmlydHVhbCBib29sIGNhbkdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBnb0JhY2tPckZvcndhcmQoaW50IGRpc3RhbmNlKTsKKyAgICB2aXJ0
dWFsIGludCBnZXRIaXN0b3J5TGVuZ3RoKCk7CisgICAgdmlydHVhbCBLVVJMIGhpc3RvcnlVUkwo
aW50IGRpc3RhbmNlKTsKKwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVkT25sb2FkRXZlbnRzKCk7
CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUGFzdGUoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzI1NikK
KysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MDYtMTAtMjQgIEtyenlzenRvZiBLb3dhbGN6eWsgIDxra293YWxjenlrQGdtYWlsLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBO
TyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICBGaXggTGludXgvR2RrIGJ1
aWxkLgorCisgICAgICAgICogcGxhdGZvcm0vZ2RrL0Jyb3dzZXJFeHRlbnNpb25HZGsuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJyb3dzZXJFeHRlbnNpb25HZGs6OkJyb3dzZXJFeHRlbnNpb25HZGsp
OgorICAgICAgICAqIHBsYXRmb3JtL2dkay9DdXJzb3JHZGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cG9pbnRlckN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjpGcmFtZUdkayk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUdkazo6c3VibWl0Rm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUdkazo6dXJs
U2VsZWN0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9GcmFtZUdkay5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dkay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwOgorICAgICAgICAoRnJhbWVHZGs6OmdvQmFja09y
Rm9yd2FyZCk6CisgICAgICAgIChGcmFtZUdkazo6Z2V0SGlzdG9yeUxlbmd0aCk6CisgICAgICAg
IChGcmFtZUdkazo6aGlzdG9yeVVSTCk6CisgICAgICAgIChQYWdlOjpjYW5SdW5Nb2RhbCk6Cisg
ICAgICAgIChQYWdlOjpjYW5SdW5Nb2RhbE5vdyk6CisgICAgICAgIChQYWdlOjpydW5Nb2RhbCk6
CisgICAgICAgIChCcm93c2VyRXh0ZW5zaW9uR2RrOjpjcmVhdGVOZXdXaW5kb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlUmVzcG9uc2VFbmNvZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpzeXN0ZW1CZWVwKToKKwogMjAwNi0xMC0yNCAgR2VvZmZyZXkgR2Fy
ZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycy4KSW5k
ZXg6IFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3BwCShyZXZpc2lvbiAxNzI1NCkKKysrIFdlYktpdFRv
b2xzL0dka0xhdW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBA
CiBjbGFzcyBMYXVuY2hlckZyYW1lR2RrIDogcHVibGljIEZyYW1lR2RrCiB7CiBwdWJsaWM6Ci0g
ICAgTGF1bmNoZXJGcmFtZUdkayhQYWdlKiBwYWdlLCBFbGVtZW50KiBlbGVtZW50KSA6IEZyYW1l
R2RrKHBhZ2UsIGVsZW1lbnQpLCBtX2V4aXRBZnRlckxvYWRpbmcoZmFsc2UpIHt9CisgICAgTGF1
bmNoZXJGcmFtZUdkayhQYWdlKiBwYWdlLCBFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEVk
aXRvckNsaWVudD4gZWRpdG9yQ2xpZW50KSA6IEZyYW1lR2RrKHBhZ2UsIGVsZW1lbnQsIGVkaXRv
ckNsaWVudCksIG1fZXhpdEFmdGVyTG9hZGluZyhmYWxzZSkge30KICAgICBMYXVuY2hlckZyYW1l
R2RrKEdka0RyYXdhYmxlKiBkcmF3YWJsZSkgOiBGcmFtZUdkayhkcmF3YWJsZSksIG1fZXhpdEFm
dGVyTG9hZGluZyhmYWxzZSkge30KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlZE9ubG9hZEV2ZW50
cygpOwogICAgIHZvaWQgc2V0RXhpdEFmdGVyTG9hZGluZyhib29sIGV4aXRBZnRlckxvYWRpbmcp
IHsgbV9leGl0QWZ0ZXJMb2FkaW5nID0gZXhpdEFmdGVyTG9hZGluZzsgfQpJbmRleDogV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTcyNTYpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMiBAQAorMjAwNi0xMC0yNCAgS3J6eXN6dG9mIEtvd2FsY3p5ayAgPGtrb3dhbGN6
eWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeCBMaW51eC9HZGsgYnVpbGQuCisKKyAgICAgICAgKiBHZGtMYXVuY2hlci9tYWlu
LmNwcDoKKyAgICAgICAgKExhdW5jaGVyRnJhbWVHZGs6OkxhdW5jaGVyRnJhbWVHZGspOgorCiAy
MDA2LTEwLTI0ICBOaWtvbGFzIFppbW1lcm1hbm4gIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11235</attachid>
            <date>2006-10-27 02:26:26 -0700</date>
            <delta_ts>2006-10-31 00:08:45 -0800</delta_ts>
            <desc>Additional fixes</desc>
            <filename>fix-build-gdk.patch</filename>
            <type>text/plain</type>
            <size>9832</size>
            <attacher name="Niels Leenheer (HTML5test)">info</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNzM2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDYtMTAtMjcgIE5pZWxzIExlZW5oZWVyICA8bmllbHMubGVlbmhl
ZXJAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeCBHZGsvTGludXggYnVpbGQuCisKKyAgICAgICAgKiBXZWJDb3JlU291cmNlcy5i
a2w6CisgICAgICAgICogcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lR2RrOjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9GcmFtZUdkay5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dkay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmVTeW5jaHJvbm91c1JlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvZ2RrL1Jlc291cmNlTG9hZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp3cml0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyTWFuYWdl
cjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyTWFuYWdlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyTWFu
YWdlcjo6YWRkKToKKyAgICAgICAgKiB3ZWJjb3JlLWJhc2UuYmtsOgorCiAyMDA2LTEwLTI3ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNp
ZWouCkluZGV4OiBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkocmV2aXNpb24gMTcyODkpCisrKyBXZWJDb3JlL1dlYkNv
cmVTb3VyY2VzLmJrbAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDYgKzE2OSw3IEBACiAJCXBsYXRm
b3JtL0xvZ2dpbmcuY3BwCiAJCXBsYXRmb3JtL1Blbi5jcHAKIAkJcGxhdGZvcm0vUmVndWxhckV4
cHJlc3Npb24uY3BwCisJCXBsYXRmb3JtL1Njcm9sbEJhci5jcHAKIAkJcGxhdGZvcm0vU2VnbWVu
dGVkU3RyaW5nLmNwcAogCQlwbGF0Zm9ybS9TdHJlYW1pbmdUZXh0RGVjb2Rlci5jcHAKIAkJcGxh
dGZvcm0vU3RyZWFtaW5nVGV4dERlY29kZXJJQ1UuY3BwCkBAIC00NTksNyArNDYwLDYgQEAKIAkJ
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKIAkJcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwCiAJ
CXJlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmNwcAotCQlyZW5kZXJpbmcvUmVuZGVyUG9wdXBN
ZW51LmNwcAogCQlyZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCiAJCXJlbmRlcmluZy9EZXBy
ZWNhdGVkUmVuZGVyU2VsZWN0LmNwcAogCQlyZW5kZXJpbmcvRGVwcmVjYXRlZFNsaWRlci5jcHAK
QEAgLTU4Miw5ICs1ODIsMTIgQEAKIAkJZWRpdGluZy9Db21tYW5kQnlOYW1lLmNwcAogCQllZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogCQllZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5k
LmNwcAorCQllZGl0aW5nL0RlbGV0ZUJ1dHRvbi5jcHAKKwkJZWRpdGluZy9EZWxldGVCdXR0b25D
b250cm9sbGVyLmNwcAogCQllZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiAJ
CWVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKIAkJZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAKKwkJZWRpdGluZy9FZGl0b3IuY3BwCiAJCWVkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5k
LmNwcAogCQllZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAogCQllZGl0aW5nL0hUTUxJbnRlcmNoYW5n
ZS5jcHAKQEAgLTY1MSw2ICs2NTQsNyBAQAogCQlodG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5jcHAK
IAkJaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCiAJCWh0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAK
KwkJaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKIAkJaHRtbC9IVE1MRnJhbWVTZXRFbGVt
ZW50LmNwcAogCQlodG1sL0hUTUxHZW5lcmljRm9ybUVsZW1lbnQuY3BwCiAJCWh0bWwvSFRNTEhl
YWRFbGVtZW50LmNwcApJbmRleDogV2ViQ29yZS93ZWJjb3JlLWJhc2UuYmtsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvd2ViY29yZS1iYXNlLmJrbAkocmV2aXNpb24gMTcyODkpCisrKyBXZWJDb3Jl
L3dlYmNvcmUtYmFzZS5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgQmFzZSBz
ZXR0aW5ncyBzaGFyZWQgYnkgYWxsIEJha2VmaWxlLWJhcwogICAgICAgICA8aW5jbHVkZT4kKFNS
Q0RJUikvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtPC9pbmNsdWRlPgogICAgICAgICA8aW5j
bHVkZT4kKFNSQ0RJUikvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nPC9pbmNsdWRlPgogICAg
ICAgICA8aW5jbHVkZT4kKFNSQ0RJUikvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvemxpYjwvaW5j
bHVkZT4KLSAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL3BsYXRmb3JtL25ldG93cms8L2luY2x1
ZGU+CisgICAgICAgIDxpbmNsdWRlPiQoU1JDRElSKS9wbGF0Zm9ybS9uZXR3b3JrPC9pbmNsdWRl
PgogICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJUikvcmVuZGVyaW5nPC9pbmNsdWRlPgogICAgICAg
ICA8aW5jbHVkZT4kKFNSQ0RJUikveG1sPC9pbmNsdWRlPgogICAgICAgICA8aW5jbHVkZT4kKFNS
Q0RJUikva2NhbnZhczwvaW5jbHVkZT4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1l
R2RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5jcHAJ
KHJldmlzaW9uIDE3Mjg5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MTcsNCArNDE3LDkgQEAgYm9vbCBGcmFtZUdkazo6cGFzc1N1YmZy
YW1lRXZlbnRUb1N1YmZyYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRnJhbWVHZGtDbGllbnQq
IEZyYW1lR2RrOjpjbGllbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudDsKK30KKwog
fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5oCShyZXZpc2lvbiAxNzI4OSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGcmFtZSogY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYgbmFtZSwgRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyKTsKICAgICBXaWRnZXQqIGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50
U2l6ZSYsIEVsZW1lbnQqLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYpOwogCisgICAg
RnJhbWVHZGtDbGllbnQqIGNsaWVudCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBpc0xvYWRUeXBlUmVsb2FkKCk7CiAgICAgdmlydHVhbCBib29sIHBhc3NNb3VzZURvd25F
dmVudFRvV2lkZ2V0KFdpZGdldCopOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9UZW1w
b3JhcnlMaW5rU3R1YnMuY3BwCShyZXZpc2lvbiAxNzI4OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw3ICsxNDAs
NyBAQCBpbnQgV2ViQ29yZTo6ZmluZE5leHRXb3JkRnJvbUluZGV4KFVDaGFyCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotVmVjdG9yPGNoYXI+IFNlcnZlU3luY2hyb25vdXNSZXF1ZXN0KExvYWRl
ciosRG9jTG9hZGVyKixSZXNvdXJjZUxvYWRlciosS1VSTCYsRGVwcmVjYXRlZFN0cmluZyYpIHsg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxjaGFyPigpOyB9CitWZWN0b3I8Y2hhcj4g
U2VydmVTeW5jaHJvbm91c1JlcXVlc3QoTG9hZGVyKixEb2NMb2FkZXIqLGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIEtVUkwmLERlcHJlY2F0ZWRTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBWZWN0b3I8Y2hhcj4oKTsgfQogCiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9nZGsvUmVzb3VyY2VMb2FkZXJNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlTG9hZGVyTWFuYWdlci5jcHAJKHJldmlzaW9u
IDE3Mjg5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUxvYWRlck1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBzaXplX3Qg
d3JpdGVDYWxsYmFjayh2b2lkKiBwdHIsIHMKICAgICBSZXNvdXJjZUxvYWRlciogam9iID0gc3Rh
dGljX2Nhc3Q8UmVzb3VyY2VMb2FkZXIqPihvYmopOwogICAgIFJlc291cmNlTG9hZGVySW50ZXJu
YWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7CiAgICAgaW50IHRvdGFsU2l6ZSA9IHNpemUgKiBu
bWVtYjsKLSAgICBkLT5jbGllbnQtPmRpZFJlY2VpdmVEYXRhKGpvYiwgc3RhdGljX2Nhc3Q8Y2hh
cio+KHB0ciksIHRvdGFsU2l6ZSk7CisgICAgZC0+bV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKGpv
Yiwgc3RhdGljX2Nhc3Q8Y2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CiAgICAgcmV0dXJuIHRvdGFs
U2l6ZTsKIH0KIApAQCAtODYsOCArODYsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyTWFuYWdlcjo6
ZG93bmxvYWRUaW1lCiAgICAgICAgICAgICBDVVJMY29kZSByZXMgPSBjdXJsX2Vhc3lfcGVyZm9y
bShkLT5tX2hhbmRsZSk7CiAgICAgICAgICAgICBpZiAocmVzICE9IENVUkxFX09LKQogICAgICAg
ICAgICAgICAgIHByaW50ZigiRXJyb3IgV0lUSCBKT0IgJWRcbiIsIHJlcyk7Ci0gICAgICAgICAg
ICBkLT5jbGllbnQtPnJlY2VpdmVkQWxsRGF0YShqb2IsIDApOwotICAgICAgICAgICAgZC0+Y2xp
ZW50LT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7CisgICAgICAgICAgICBkLT5tX2NsaWVudC0+cmVj
ZWl2ZWRBbGxEYXRhKGpvYiwgMCk7CisgICAgICAgICAgICBkLT5tX2NsaWVudC0+ZGlkRmluaXNo
TG9hZGluZyhqb2IpOwogICAgICAgICAgICAgY3VybF9lYXN5X2NsZWFudXAoZC0+bV9oYW5kbGUp
OwogICAgICAgICAgICAgZC0+bV9oYW5kbGUgPSAwOwogICAgICAgICB9CkBAIC0xNjksOCArMTY5
LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlck1hbmFnZXI6OnJlbW92ZShSZXNvdQogICAgICAgICBq
b2JzLT5yZW1vdmUoam9iKTsKICAgICBpZiAoam9icy0+aXNFbXB0eSgpKQogICAgICAgICBtX2Rv
d25sb2FkVGltZXIuc3RvcCgpOwotICAgIGQtPmNsaWVudC0+cmVjZWl2ZWRBbGxEYXRhKGpvYiwg
MCk7Ci0gICAgZC0+Y2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7CisgICAgZC0+bV9jbGll
bnQtPnJlY2VpdmVkQWxsRGF0YShqb2IsIDApOworICAgIGQtPm1fY2xpZW50LT5kaWRGaW5pc2hM
b2FkaW5nKGpvYik7CiAgICAgaWYgKGQtPm1faGFuZGxlKSB7CiAgICAgICAgIGN1cmxfbXVsdGlf
cmVtb3ZlX2hhbmRsZShjdXJsTXVsdGlIYW5kbGUsIGQtPm1faGFuZGxlKTsKICAgICAgICAgY3Vy
bF9lYXN5X2NsZWFudXAoZC0+bV9oYW5kbGUpOwpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkZXJNYW5hZ2VyOjphZGQoUmVzb3VyY2UKIHsKICAgICBib29sIHN0YXJ0VGltZXIg
PSBqb2JzLT5pc0VtcHR5KCk7CiAgICAgUmVzb3VyY2VMb2FkZXJJbnRlcm5hbCogZCA9IGpvYi0+
Z2V0SW50ZXJuYWwoKTsKLSAgICBEZXByZWNhdGVkU3RyaW5nIHVybCA9IGQtPlVSTC51cmwoKTsK
KyAgICBEZXByZWNhdGVkU3RyaW5nIHVybCA9IGQtPm1fcmVxdWVzdC51cmwoKS51cmwoKTsKICAg
ICBkLT5tX2hhbmRsZSA9IGN1cmxfZWFzeV9pbml0KCk7CiAgICAgY3VybF9lYXN5X3NldG9wdChk
LT5tX2hhbmRsZSwgQ1VSTE9QVF9QUklWQVRFLCBqb2IpOwogICAgIGN1cmxfZWFzeV9zZXRvcHQo
ZC0+bV9oYW5kbGUsIENVUkxPUFRfRVJST1JCVUZGRVIsIGVycm9yX2J1ZmZlcik7CkBAIC0yMDMs
NyArMjAzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlck1hbmFnZXI6OmFkZChSZXNvdXJjZQogICAg
ICAgICAvLyBkb24ndCBjYWxsIHBlcmZvcm0sIGJlY2F1c2UgZXZlbnRzIG11c3QgYmUgYXN5bmMK
ICAgICAgICAgLy8gdGltZW91dCB3aWxsIG9jY3VyIGFuZCBkbyBjdXJsX211bHRpX3BlcmZvcm0K
ICAgICAgICAgaWYgKHJldCAmJiByZXQgIT0gQ1VSTE1fQ0FMTF9NVUxUSV9QRVJGT1JNKSB7Ci0g
ICAgICAgICAgICBwcmludGYoIkVycm9yICVkIHN0YXJ0aW5nIGpvYiAlc1xuIiwgcmV0LCBkLT5V
UkwudXJsKCkuYXNjaWkoKSk7CisgICAgICAgICAgICBwcmludGYoIkVycm9yICVkIHN0YXJ0aW5n
IGpvYiAlc1xuIiwgcmV0LCBkLT5tX3JlcXVlc3QudXJsKCkudXJsKCkuYXNjaWkoKSk7CiAgICAg
ICAgICAgICBqb2ItPnNldEVycm9yKDEpOwogICAgICAgICAgICAgc3RhcnRUaW1lciA9ZmFsc2U7
CiAgICAgICAgIH0gZWxzZQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTczNjYpCisrKyBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwNi0xMC0yNyAg
TmllbHMgTGVlbmhlZXIgIDxuaWVscy5sZWVuaGVlckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IEdkay9MaW51eCBidWlsZC4K
KworICAgICAgICAqIEdka0xhdW5jaGVyL2dka2xhdW5jaGVyLmJrbDoKKyAgICAgICAgKiBHZGtM
YXVuY2hlci9tYWluLmNwcDoKKyAgICAgICAgKG1haW4pOgorCiAyMDA2LTEwLTI2ICBTYW0gV2Vp
bmlnICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYu
CkluZGV4OiBXZWJLaXRUb29scy9HZGtMYXVuY2hlci9nZGtsYXVuY2hlci5ia2wKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvR2RrTGF1bmNoZXIvZ2RrbGF1bmNoZXIuYmtsCShyZXZpc2lvbiAx
NzI4OSkKKysrIFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL2dka2xhdW5jaGVyLmJrbAkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsMTcgKzQ1LDIzIEBACiAgICAgICAgIDxpbmNsdWRlPiQoVE9QRElSKS9X
ZWJDb3JlL2h0bWw8L2luY2x1ZGU+CiAgICAgICAgIDxpbmNsdWRlPiQoVE9QRElSKS9XZWJDb3Jl
L2NzczwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChUT1BESVIpL1dlYkNvcmUvZG9tPC9p
bmNsdWRlPgotICAgICAgICA8aW5jbHVkZT4kKFRPUERJUikvV2ViQ29yZS9rd3E8L2luY2x1ZGU+
CiAgICAgICAgIDxpbmNsdWRlPiQoVE9QRElSKS9XZWJDb3JlL2xvYWRlcjwvaW5jbHVkZT4KKyAg
ICAgICAgPGluY2x1ZGU+JChUT1BESVIpL1dlYkNvcmUvbG9hZGVyL2ljb248L2luY2x1ZGU+CiAg
ICAgICAgIDxpbmNsdWRlPiQoVE9QRElSKS9XZWJDb3JlL3BhZ2U8L2luY2x1ZGU+CiAgICAgICAg
IDxpbmNsdWRlPiQoVE9QRElSKS9XZWJDb3JlL3BsYXRmb3JtPC9pbmNsdWRlPgogICAgICAgICA8
aW5jbHVkZT4kKFRPUERJUikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVyczwvaW5jbHVk
ZT4KKyAgICAgICAgPGluY2x1ZGU+JChUT1BESVIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvYm1wPC9pbmNsdWRlPgogICAgICAgICA8aW5jbHVkZT4kKFRPUERJUikvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWY8L2luY2x1ZGU+CisgICAgICAgIDxpbmNsdWRlPiQo
VE9QRElSKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljbzwvaW5jbHVkZT4KICAg
ICAgICAgPGluY2x1ZGU+JChUT1BESVIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZzwvaW5jbHVkZT4KKyAgICAgICAgPGluY2x1ZGU+JChUT1BESVIpL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMveGJtPC9pbmNsdWRlPgogICAgICAgICA8aW5jbHVkZT4kKFRPUERJ
UikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmc8L2luY2x1ZGU+CiAgICAgICAg
IDxpbmNsdWRlPiQoVE9QRElSKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3psaWI8
L2luY2x1ZGU+CisgICAgICAgIDxpbmNsdWRlPiQoVE9QRElSKS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcms8L2luY2x1ZGU+CiAgICAgICAgIDxpbmNsdWRlPiQoVE9QRElSKS9XZWJDb3JlL3JlbmRl
cmluZzwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChUT1BESVIpL1dlYkNvcmUveG1sPC9p
bmNsdWRlPgorICAgICAgICA8aW5jbHVkZT4kKFRPUERJUikvV2ViQ29yZS9rY2FudmFzPC9pbmNs
dWRlPgorICAgICAgICA8aW5jbHVkZT4kKFRPUERJUikvV2ViQ29yZS9rY2FudmFzL2RldmljZTwv
aW5jbHVkZT4KIAogICAgICAgICA8aW5jbHVkZT4kKFRPUERJUikvV2ViQ29yZS9wbGF0Zm9ybS9j
YWlybzwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChUT1BESVIpL1dlYkNvcmUvcGxhdGZv
cm0vZ2RrPC9pbmNsdWRlPgpJbmRleDogV2ViS2l0VG9vbHMvR2RrTGF1bmNoZXIvbWFpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR2RrTGF1bmNoZXIvbWFpbi5jcHAJKHJldmlzaW9u
IDE3Mjg5KQorKysgV2ViS2l0VG9vbHMvR2RrTGF1bmNoZXIvbWFpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgCiAg
ICAgZnJhbWUtPnNldEV4aXRBZnRlckxvYWRpbmcoZXhpdEFmdGVyTG9hZGluZyk7CiAgICAgaWYg
KHVybCkgewogICAgICAgICBwcmludGYoIk9QRU5JTkcgVVJMID09ICVzIFxuIiwgdXJsKTsKLSAg
ICAgICAgZnJhbWUtPm9wZW5VUkwodXJsKTsKKyAgICAgICAgZnJhbWUtPmNsaWVudCgpLT5vcGVu
VVJMKHVybCk7CiAgICAgfSBlbHNlIHsKICNpZiAwCiAgICAgICAgIGNoYXIgKnBnID0gIiA8aHRt
bD48aGVhZD48dGl0bGU+R29vZ2xlPC90aXRsZT4gPGJvZHkgYmdjb2xvcj0jZmZmZmZmIHRleHQ9
IzAwMDAwMD4gPHA+PGZvbnQgc2l6ZT0tMi8+MjAwNiBHb29nbGUgSGVsbG8gYmlnd29ybGQgZnJv
bSBtaWtlPC9wPjwvYm9keT48L2h0bWw+ICI7Cg==
</data>
<flag name="review"
          id="3859"
          type_id="1"
          status="-"
          setter="info"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11293</attachid>
            <date>2006-10-31 00:08:45 -0800</date>
            <delta_ts>2006-10-31 22:39:57 -0800</delta_ts>
            <desc>linux\gdk build fixes</desc>
            <filename>gdk.patch</filename>
            <type>text/plain</type>
            <size>23424</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9KU0ltbWVkaWF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL2tqcy9KU0ltbWVkaWF0ZS5oCShyZXZpc2lvbiAxNzQ3MikKKysrIEphdmFT
Y3JpcHRDb3JlL2tqcy9KU0ltbWVkaWF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNyArMjEz
LDcgQEAKICAgICAgICAgaWYgKGlzMzJiaXQoKSkKICAgICAgICAgICAgIHJldHVybiBOYU4zMkFz
Qml0czsKICAgICAgICAgZWxzZSBpZiAoaXM2NGJpdCgpKQotICAgICAgICAgICAgcmV0dXJuIE5h
TjY0QXNCaXRzOworICAgICAgICAgICAgcmV0dXJuICh1aW50cHRyX3QpTmFONjRBc0JpdHM7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgYWJvcnQoKTsKICAgICAgICAgICAgIHJldHVybiAw
OwpAQCAtMjMzLDcgKzIzMyw3IEBACiAgICAgICAgIGlmIChpczMyYml0KCkpCiAgICAgICAgICAg
ICByZXR1cm4gT25lMzJBc0JpdHM7CiAgICAgICAgIGVsc2UgaWYgKGlzNjRiaXQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBPbmU2NEFzQml0czsKKyAgICAgICAgICAgIHJldHVybiAodWludHB0cl90
KU9uZTY0QXNCaXRzOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGFib3J0KCk7CiAgICAg
ICAgICAgICByZXR1cm4gMDsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9kYXRlX29iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2RhdGVfb2JqZWN0LmNwcAkocmV2
aXNpb24gMTc0NzIpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZGF0ZV9vYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDcgQEAKICAgICByZXR1cm4gVVN0cmluZyhidWZmZXIs
IGxlbmd0aCk7CiB9CiAKLSNlbHNlIGlmIFBMQVRGT1JNKFdJTl9PUykKKyNlbHNlCiAKIGVudW0g
TG9jYWxlRGF0ZVRpbWVGb3JtYXQgeyBMb2NhbGVEYXRlQW5kVGltZSwgTG9jYWxlRGF0ZSwgTG9j
YWxlVGltZSB9OwogIApJbmRleDogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0NzIpCisrKyBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwNi0x
MC0zMCAgS3J6eXN6dG9mIEtvd2FsY3p5aywsLCAgPGtrb3dhbGN6eWtAZ21haWwuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbGVuY2UgY29t
cGlsZXIgd2FybmluZy4KKworICAgICAgICAqIGtqcy9KU0ltbWVkaWF0ZS5oOgorICAgICAgICAo
S0pTOjpKU0ltbWVkaWF0ZTo6TmFuQXNCaXRzKToKKyAgICAgICAgKEtKUzo6SlNJbW1lZGlhdGU6
Om9uZUFzQml0cyk6CisgICAgICAgICoga2pzL2RhdGVfb2JqZWN0LmNwcDoKKwogMjAwNi0xMC0z
MCAgS2V2aW4gTWNDdWxsb3VnaCAgPEtNY0N1bGxvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dkay9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9nZGsvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTc0NzIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAKICAgICBSZXNvdXJjZUhhbmRsZSogam9iID0g
c3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihvYmopOwogICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7CiAgICAgaW50IHRvdGFsU2l6ZSA9IHNpemUg
KiBubWVtYjsKLSAgICBkLT5jbGllbnQtPmRpZFJlY2VpdmVEYXRhKGpvYiwgc3RhdGljX2Nhc3Q8
Y2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CisgICAgZC0+bV9jbGllbnQtPmRpZFJlY2VpdmVEYXRh
KGpvYiwgc3RhdGljX2Nhc3Q8Y2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CiAgICAgcmV0dXJuIHRv
dGFsU2l6ZTsKIH0KIApAQCAtODYsOCArODYsOCBAQAogICAgICAgICAgICAgQ1VSTGNvZGUgcmVz
ID0gY3VybF9lYXN5X3BlcmZvcm0oZC0+bV9oYW5kbGUpOwogICAgICAgICAgICAgaWYgKHJlcyAh
PSBDVVJMRV9PSykKICAgICAgICAgICAgICAgICBwcmludGYoIkVycm9yIFdJVEggSk9CICVkXG4i
LCByZXMpOwotICAgICAgICAgICAgZC0+Y2xpZW50LT5yZWNlaXZlZEFsbERhdGEoam9iLCAwKTsK
LSAgICAgICAgICAgIGQtPmNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhqb2IpOworICAgICAgICAg
ICAgZC0+bV9jbGllbnQtPnJlY2VpdmVkQWxsRGF0YShqb2IsIDApOworICAgICAgICAgICAgZC0+
bV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoam9iKTsKICAgICAgICAgICAgIGN1cmxfZWFzeV9j
bGVhbnVwKGQtPm1faGFuZGxlKTsKICAgICAgICAgICAgIGQtPm1faGFuZGxlID0gMDsKICAgICAg
ICAgfQpAQCAtMTY5LDggKzE2OSw4IEBACiAgICAgICAgIGpvYnMtPnJlbW92ZShqb2IpOwogICAg
IGlmIChqb2JzLT5pc0VtcHR5KCkpCiAgICAgICAgIG1fZG93bmxvYWRUaW1lci5zdG9wKCk7Ci0g
ICAgZC0+Y2xpZW50LT5yZWNlaXZlZEFsbERhdGEoam9iLCAwKTsKLSAgICBkLT5jbGllbnQtPmRp
ZEZpbmlzaExvYWRpbmcoam9iKTsKKyAgICBkLT5tX2NsaWVudC0+cmVjZWl2ZWRBbGxEYXRhKGpv
YiwgMCk7CisgICAgZC0+bV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoam9iKTsKICAgICBpZiAo
ZC0+bV9oYW5kbGUpIHsKICAgICAgICAgY3VybF9tdWx0aV9yZW1vdmVfaGFuZGxlKGN1cmxNdWx0
aUhhbmRsZSwgZC0+bV9oYW5kbGUpOwogICAgICAgICBjdXJsX2Vhc3lfY2xlYW51cChkLT5tX2hh
bmRsZSk7CkBAIC0xODIsNyArMTgyLDcgQEAKIHsKICAgICBib29sIHN0YXJ0VGltZXIgPSBqb2Jz
LT5pc0VtcHR5KCk7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGpvYi0+Z2V0SW50
ZXJuYWwoKTsKLSAgICBEZXByZWNhdGVkU3RyaW5nIHVybCA9IGQtPlVSTC51cmwoKTsKKyAgICBE
ZXByZWNhdGVkU3RyaW5nIHVybCA9IGpvYi0+dXJsKCkudXJsKCk7CiAgICAgZC0+bV9oYW5kbGUg
PSBjdXJsX2Vhc3lfaW5pdCgpOwogICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENV
UkxPUFRfUFJJVkFURSwgam9iKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBD
VVJMT1BUX0VSUk9SQlVGRkVSLCBlcnJvcl9idWZmZXIpOwpAQCAtMjAzLDcgKzIwMyw3IEBACiAg
ICAgICAgIC8vIGRvbid0IGNhbGwgcGVyZm9ybSwgYmVjYXVzZSBldmVudHMgbXVzdCBiZSBhc3lu
YwogICAgICAgICAvLyB0aW1lb3V0IHdpbGwgb2NjdXIgYW5kIGRvIGN1cmxfbXVsdGlfcGVyZm9y
bQogICAgICAgICBpZiAocmV0ICYmIHJldCAhPSBDVVJMTV9DQUxMX01VTFRJX1BFUkZPUk0pIHsK
LSAgICAgICAgICAgIHByaW50ZigiRXJyb3IgJWQgc3RhcnRpbmcgam9iICVzXG4iLCByZXQsIGQt
PlVSTC51cmwoKS5hc2NpaSgpKTsKKyAgICAgICAgICAgIHByaW50ZigiRXJyb3IgJWQgc3RhcnRp
bmcgam9iICVzXG4iLCByZXQsIGpvYi0+dXJsKCkudXJsKCkuYXNjaWkoKSk7CiAgICAgICAgICAg
ICBqb2ItPnNldEVycm9yKDEpOwogICAgICAgICAgICAgc3RhcnRUaW1lciA9ZmFsc2U7CiAgICAg
ICAgIH0gZWxzZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9BZmZpbmVUcmFuc2Zvcm1D
YWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9BZmZpbmVUcmFu
c2Zvcm1DYWlyby5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2NhaXJvL0Fm
ZmluZVRyYW5zZm9ybUNhaXJvLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgS3J6eXN6dG9mIEtvd2FsY3p5ayBodHRwOi8vYmxvZy5r
b3dhbGN6eWsuaW5mbworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWZm
aW5lVHJhbnNmb3JtLmgiCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjZGVmaW5lIG5vdEltcGxlbWVudGVkKCkg
ZG8geyBmcHJpbnRmKHN0ZGVyciwgIkZJWE1FOiBVTklNUExFTUVOVEVEOiAlczolZFxuIiwgX19G
SUxFX18sIF9fTElORV9fKTsgfSB3aGlsZSgwKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Fm
ZmluZVRyYW5zZm9ybTo6QWZmaW5lVHJhbnNmb3JtKCkKK3sKKyAgICBjYWlyb19tYXRyaXhfaW5p
dF9pZGVudGl0eSgmbV90cmFuc2Zvcm0pOworfQorCitBZmZpbmVUcmFuc2Zvcm06OkFmZmluZVRy
YW5zZm9ybShkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4
LCBkb3VibGUgdHkpCit7CisgICAgY2Fpcm9fbWF0cml4X2luaXQoJm1fdHJhbnNmb3JtLCBhLCBi
LCBjLCBkLCB0eCwgdHkpOworfQorCitBZmZpbmVUcmFuc2Zvcm06OkFmZmluZVRyYW5zZm9ybShj
b25zdCBjYWlyb19tYXRyaXhfdCYgbWF0cml4KQoreworICAgIG1fdHJhbnNmb3JtID0gbWF0cml4
OworfQorCit2b2lkIEFmZmluZVRyYW5zZm9ybTo6c2V0TWF0cml4KGRvdWJsZSBhLCBkb3VibGUg
YiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0eSkKK3sKKyAgICBjYWly
b19tYXRyaXhfaW5pdCgmbV90cmFuc2Zvcm0sIGEsIGIsIGMsIGQsIHR4LCB0eSk7Cit9CisKK3Zv
aWQgQWZmaW5lVHJhbnNmb3JtOjptYXAoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUqIHgyLCBk
b3VibGUqIHkyKSBjb25zdAoreworICAgICp4MiA9IHg7ICp5MiA9IHk7CisgICAgY2Fpcm9fbWF0
cml4X3RyYW5zZm9ybV9wb2ludCgmbV90cmFuc2Zvcm0sIHgyLCB5Mik7Cit9CisKK0ludFJlY3Qg
QWZmaW5lVHJhbnNmb3JtOjptYXBSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0Cit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQorCitGbG9hdFJl
Y3QgQWZmaW5lVHJhbnNmb3JtOjptYXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3QoKTsKK30KKwor
Ym9vbCBBZmZpbmVUcmFuc2Zvcm06OmlzSWRlbnRpdHkoKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitkb3VibGUgQWZmaW5lVHJhbnNmb3Jt
OjptMTEoKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybS54eDsKK30KKworZG91Ymxl
IEFmZmluZVRyYW5zZm9ybTo6bTEyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90cmFuc2Zvcm0u
eXg7Cit9CisKK2RvdWJsZSBBZmZpbmVUcmFuc2Zvcm06Om0yMSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fdHJhbnNmb3JtLnh5OworfQorCitkb3VibGUgQWZmaW5lVHJhbnNmb3JtOjptMjIoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybS55eTsKK30KKworZG91YmxlIEFmZmluZVRy
YW5zZm9ybTo6ZHgoKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybS54MDsKK30KKwor
ZG91YmxlIEFmZmluZVRyYW5zZm9ybTo6ZHkoKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5z
Zm9ybS55MDsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OnJlc2V0KCkKK3sKKyAgICBjYWly
b19tYXRyaXhfaW5pdF9pZGVudGl0eSgmbV90cmFuc2Zvcm0pOworfQorCitBZmZpbmVUcmFuc2Zv
cm0mIEFmZmluZVRyYW5zZm9ybTo6c2NhbGUoZG91YmxlIHN4LCBkb3VibGUgc3kpCit7CisgICAg
Y2Fpcm9fbWF0cml4X3NjYWxlKCZtX3RyYW5zZm9ybSwgc3gsIHN5KTsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK0FmZmluZVRyYW5zZm9ybSYgQWZmaW5lVHJhbnNmb3JtOjpyb3RhdGUoZG91Ymxl
IGQpCit7CisgICAgY2Fpcm9fbWF0cml4X3JvdGF0ZSgmbV90cmFuc2Zvcm0sIGQpOworICAgIHJl
dHVybiAqdGhpczsKK30KKworQWZmaW5lVHJhbnNmb3JtJiBBZmZpbmVUcmFuc2Zvcm06OnRyYW5z
bGF0ZShkb3VibGUgdHgsIGRvdWJsZSB0eSkKK3sKKyAgICBjYWlyb19tYXRyaXhfdHJhbnNsYXRl
KCZtX3RyYW5zZm9ybSwgdHgsIHR5KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0FmZmluZVRy
YW5zZm9ybSYgQWZmaW5lVHJhbnNmb3JtOjpzaGVhcihkb3VibGUgc3gsIGRvdWJsZSBzeSkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAqdGhpczsKK30KKworZG91YmxlIEFm
ZmluZVRyYW5zZm9ybTo6ZGV0KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogbWlnaHQgbm90IGJl
IHJpZ2h0CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtLnh4ICogbV90cmFuc2Zvcm0ueXkgLSBtX3Ry
YW5zZm9ybS55eCAqIG1fdHJhbnNmb3JtLnh5OworfQorCitBZmZpbmVUcmFuc2Zvcm0gQWZmaW5l
VHJhbnNmb3JtOjppbnZlcnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG1fdHJhbnNmb3JtOworfQorCitib29sIEFmZmluZVRyYW5zZm9ybTo6b3BlcmF0b3I9
PShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG90aGVyKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitBZmZpbmVUcmFuc2Zvcm0mIEFmZmluZVRy
YW5zZm9ybTo6b3BlcmF0b3IqPShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG90aGVyKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBZmZpbmVUcmFuc2Zv
cm0gQWZmaW5lVHJhbnNmb3JtOjpvcGVyYXRvciooY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBvdGhl
cikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBtX3RyYW5zZm9ybTsKK30K
KworfQorCisvLyB2aW06IHRzPTQgc3c9NCBldAoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29y
ZS9wbGF0Zm9ybS9jYWlyby9BZmZpbmVUcmFuc2Zvcm1DYWlyby5jcHAKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1l
OiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkocmV2aXNpb24gMTc0NzIpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8bWF0aC5oPgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaWYgV0lOMzIKKyNpZiBQTEFURk9STShXSU4p
CiAjaW5jbHVkZSA8Y2Fpcm8td2luMzIuaD4KICNlbmRpZgogCkBAIC03OCw3ICs3OCw3IEBACiAg
ICAgY2Fpcm9fZGVzdHJveShjb250ZXh0KTsKIH0KIAotI2lmIFdJTjMyCisjaWYgUExBVEZPUk0o
V0lOKQogR3JhcGhpY3NDb250ZXh0OjpHcmFwaGljc0NvbnRleHQoSERDIGRjKQogICAgIDogbV9j
b21tb24oY3JlYXRlR3JhcGhpY3NDb250ZXh0UHJpdmF0ZSgpKQogICAgICwgbV9kYXRhKG5ldyBH
cmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUpCkBAIC04OCw3ICs4OCw3IEBACiB9CiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKEdESykgfHwgV0lOMzIKKyNpZiBQTEFURk9STShHREspIHx8IFBM
QVRGT1JNKFdJTikKIEdyYXBoaWNzQ29udGV4dDo6R3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9jb21tb24oY3JlYXRlR3JhcGhpY3NDb250
ZXh0UHJpdmF0ZSgpKQogICAgICwgbV9kYXRhKG5ldyBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGUpCkBAIC00MTgsNyArNDE4LDcgQEAKICAgICBkcmF3TGluZShvcmlnaW4sIGVuZFBvaW50
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yTWlzc3BlbGxpbmcoY29u
c3QgSW50UG9pbnQmIHBvaW50LCBpbnQgd2lkdGgpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JNaXNzcGVsbGluZ09yQmFkR3JhbW1hcihjb25zdCBJbnRQb2ludCYgcG9pbnQsIGlu
dCB3aWR0aCwgYm9vbCBncmFtbWFyKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9DdXJzb3JHZGsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ2RrL0N1cnNvckdkay5jcHAJKHJldmlzaW9uIDE3NDcyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9nZGsvQ3Vyc29yR2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiAr
NjMsMTIgQEAKICAgICBnZGtfY3Vyc29yX3JlZihjKTsKIH0KIAorY29uc3QgQ3Vyc29yJiBwb2lu
dGVyQ3Vyc29yKCkKK3sKKyAgICBzdGF0aWMgQ3Vyc29yIGMgPSBnZGtfY3Vyc29yX25ldyhHREtf
TEVGVF9QVFIpOworICAgIHJldHVybiBjOworfQorCiBjb25zdCBDdXJzb3ImIGNyb3NzQ3Vyc29y
KCkKIHsKICAgICBzdGF0aWMgQ3Vyc29yIGMgPSBnZGtfY3Vyc29yX25ldyhHREtfQ1JPU1MpOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwCShyZXZp
c2lvbiAxNzQ3MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1JlbmRlclBvcHVwTWVudUdkay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE2ICszOCw2IEBACiB7CiB9CiAKLXZvaWQgUG9wdXBN
ZW51OjpjbGVhcigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQb3B1cE1l
bnU6OnBvcHVsYXRlKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFBvcHVw
TWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CkBAIC01OCwyMCArNDgsMTAgQEAKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFBvcHVwTWVudTo6YWRkU2VwYXJhdG9yKCkKK3ZvaWQgUG9wdXBNZW51Ojp1cGRh
dGVGcm9tRWxlbWVudCgpIAogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsgCiB9CiAKLXZvaWQgUG9wdXBNZW51OjphZGRHcm91cExhYmVsKEhUTUxPcHRHcm91
cEVsZW1lbnQqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51
OjphZGRPcHRpb24oSFRNTE9wdGlvbkVsZW1lbnQqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19Ci0KLX0KLQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAkocmV2aXNpb24gMTc0
NzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKICNpbmNsdWRl
ICJLZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgorI2luY2x1
ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKIApAQCAtMTU3LDcg
KzE1OCw3IEBACiB9CiAKIEZyYW1lR2RrOjpGcmFtZUdkayhHZGtEcmF3YWJsZSogZ2RrZHJhd2Fi
bGUpCi0gICAgOiBGcmFtZShuZXcgUGFnZSwgMCksIG1fZHJhd2FibGUoZ2RrZHJhd2FibGUpCisg
ICAgOiBGcmFtZShuZXcgUGFnZSwgMCwgTlVMTCksIG1fZHJhd2FibGUoZ2RrZHJhd2FibGUpCiB7
CiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbmV3IFNldHRpbmdzOwogICAgIHNldHRpbmdzLT5z
ZXRBdXRvTG9hZEltYWdlcyh0cnVlKTsKQEAgLTE4Myw4ICsxODQsOCBAQAogICAgIG1fY2xpZW50
LT5zZXRGcmFtZSh0aGlzKTsKIH0KIAotRnJhbWVHZGs6OkZyYW1lR2RrKFBhZ2UqIHBhZ2UsIEVs
ZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBGcmFtZShwYWdlLGVsZW1lbnQpCitGcmFtZUdkazo6RnJh
bWVHZGsoUGFnZSogcGFnZSwgRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxFZGl0b3JDbGll
bnQ+IGVkaXRvckNsaWVudCkKKyAgICA6IEZyYW1lKHBhZ2UsZWxlbWVudCwgZWRpdG9yQ2xpZW50
KQogewogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG5ldyBTZXR0aW5nczsKICAgICBzZXR0aW5n
cy0+c2V0QXV0b0xvYWRJbWFnZXModHJ1ZSk7CkBAIC0yMDAsNyArMjAxLDcgQEAKIAogdm9pZCBG
cmFtZUdkazo6c3VibWl0Rm9ybShjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1
ZXN0KQogewotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZnJhbWVMb2FkUmVxdWVzdC5t
X3JlcXVlc3Q7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBmcmFtZUxvYWRSZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpOwogCiAgICAgLy8gRklYTUU6IHRoaXMgaXMgYSBoYWNrIGluaGVy
aXRlZCBmcm9tIEZyYW1lTWFjLCBhbmQgc2hvdWxkIGJlIHB1c2hlZCBpbnRvIEZyYW1lCiAgICAg
aWYgKGQtPm1fc3VibWl0dGVkRm9ybVVSTCA9PSByZXF1ZXN0LnVybCgpKQpAQCAtMjA5LDEzICsy
MTAsMTQgQEAKICAgICBkLT5tX3N1Ym1pdHRlZEZvcm1VUkwgPSByZXF1ZXN0LnVybCgpOwogCiAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c3VibWl0Rm9ybShyZXF1ZXN0LmRv
UG9zdCgpID8gIlBPU1QiIDogIkdFVCIsIHJlcXVlc3QudXJsKCksICZyZXF1ZXN0LnBvc3REYXRh
KTsKKyAgICAgICAgbV9jbGllbnQtPnN1Ym1pdEZvcm0ocmVxdWVzdC5odHRwTWV0aG9kKCksIHJl
cXVlc3QudXJsKCksICZyZXF1ZXN0Lmh0dHBCb2R5KCkpOworCiAgICAgY2xlYXJSZWNvcmRlZEZv
cm1WYWx1ZXMoKTsKIH0KIAotdm9pZCBGcmFtZUdkazo6dXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYgZnJhbWVMb2FkUmVxdWVzdCkKK3ZvaWQgRnJhbWVHZGs6OnVybFNlbGVjdGVk
KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IEV2ZW50KikK
IHsKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IGZyYW1lTG9hZFJlcXVlc3QubV9yZXF1
ZXN0OworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZnJhbWVMb2FkUmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKTsKIAogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKQEAg
LTIyMyw2ICsyMjUsMTIgQEAKICAgICBtX2NsaWVudC0+b3BlblVSTChyZXF1ZXN0LnVybCgpKTsK
IH0KIAordm9pZCBGcmFtZUdkazo6b3BlblVSTChjb25zdCBLVVJMJiB1cmwpCit7CisgICAgQVNT
RVJUKG1fY2xpZW50KTsKKyAgICBtX2NsaWVudC0+b3BlblVSTCh1cmwpOworfQorCiBTdHJpbmcg
RnJhbWVHZGs6OnVzZXJBZ2VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAo
UEM7IFU7IEludGVsOyBMaW51eDsgZW4pIEFwcGxlV2ViS2l0LzQyMCsgKEtIVE1MLCBsaWtlIEdl
Y2tvKSI7CkBAIC0yNjIsOSArMjcwLDkgQEAKICAgICAgICAgICAgIGlmICh3aGVlbEV2ZW50Lmlz
QWNjZXB0ZWQoKSkgewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIFJlbmRlck9iamVjdDo6Tm9kZUluZm8gbm9kZUluZm8odHJ1ZSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICByZW5kZXJlcigpLT5sYXllcigpLT5oaXRUZXN0KG5vZGVJbmZvLCB3aGVlbEV2
ZW50LnBvcygpKTsKLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBub2RlSW5mby5pbm5lck5vZGUo
KTsKKyAgICAgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHdoZWVsRXZlbnQucG9zKCksIHRy
dWUsIHRydWUpOworICAgICAgICAgICAgcmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChyZXN1
bHQpOworICAgICAgICAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC5pbm5lck5vZGUoKTsKICAgICAg
ICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAv
L0RlZmF1bHQgdG8gc2Nyb2xsaW5nIHRoZSBwYWdlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dk
ay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHJldmlzaW9uIDE3NDcyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQs
OSArNjQsMTIgQEAKICNpbmNsdWRlICJJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFi
YXNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjZGVmaW5lIG5vdEltcGxlbWVudGVkKCkgZG8g
eyBmcHJpbnRmKHN0ZGVyciwgIkZJWE1FOiBVTklNUExFTUVOVEVEOiAlcyBpbiAlczolZFxuIiwg
X19GVU5DVElPTl9fLCBfX0ZJTEVfXywgX19MSU5FX18pOyB9IHdoaWxlKDApCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHN0cnVjdCBQbGF0Zm9ybURhdGFTdHJ1Y3QKIHsKQEAgLTc3LDggKzgwLDYg
QEAKIH07CiB9CiAKLSNkZWZpbmUgbm90SW1wbGVtZW50ZWQoKSBkbyB7IGZwcmludGYoc3RkZXJy
LCAiRklYTUU6IFVOSU1QTEVNRU5URUQ6ICVzIGluICVzOiVkXG4iLCBfX0ZVTkNUSU9OX18sIF9f
RklMRV9fLCBfX0xJTkVfXyk7IH0gd2hpbGUoMCkKLQogdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUJv
cmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogYm9vbCBGcmFtZVZpZXc6OnBhc3NNb3VzZVBy
ZXNzRXZlbnRUb1Njcm9sbGJhcihNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgUGxhdGZv
cm1TY3JvbGxiYXIqKSB7IHJldHVybiBmYWxzZTsgfQogYm9vbCBGcmFtZVZpZXc6OnBhc3NNb3Vz
ZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBGcmFt
ZSopIHsgcmV0dXJuIHRydWU7IH0KQEAgLTEzOCw5ICsxMzksNyBAQAogaW50IFdlYkNvcmU6OmZp
bmROZXh0V29yZEZyb21JbmRleChVQ2hhciBjb25zdCosIGludCwgaW50LCBib29sKSB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQotVmVjdG9y
PGNoYXI+IFNlcnZlU3luY2hyb25vdXNSZXF1ZXN0KExvYWRlciosRG9jTG9hZGVyKixSZXNvdXJj
ZUhhbmRsZSosS1VSTCYsRGVwcmVjYXRlZFN0cmluZyYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIFZlY3RvcjxjaGFyPigpOyB9Ci0KK1ZlY3RvcjxjaGFyPiBTZXJ2ZVN5bmNocm9ub3VzUmVx
dWVzdChMb2FkZXIgKmxvYWRlciwgRG9jTG9hZGVyICpkb2NMb2FkZXIsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxjaGFyPigpOyB9CiB9CiAKIHZvaWQgRnJhbWVHZGs6OmZv
Y3VzV2luZG93KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CkBAIC0xNzksNiArMTc4LDEzIEBACiBL
VVJMIEZyYW1lR2RrOjpvcmlnaW5hbFJlcXVlc3RVUkwoKSBjb25zdCB7IHJldHVybiBLVVJMKCk7
IH0KIFBsdWdpbiogRnJhbWVHZGs6OmNyZWF0ZVBsdWdpbihFbGVtZW50KiwgS1VSTCBjb25zdCYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBTdHJpbmcgY29u
c3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKK3ZvaWQgRnJhbWVHZGs6Omdv
QmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQoraW50IEZy
YW1lR2RrOjpnZXRIaXN0b3J5TGVuZ3RoKCkge25vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9
CitLVVJMIEZyYW1lR2RrOjpoaXN0b3J5VVJMKGludCBkaXN0YW5jZSkgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gS1VSTCgpOyB9Citib29sIFBhZ2U6OmNhblJ1bk1vZGFsKCkgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gMDsgfQorYm9vbCBQYWdlOjpjYW5SdW5Nb2RhbE5vdygpIHsgbm90
SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KK3ZvaWQgUGFnZTo6cnVuTW9kYWwoKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KKwogaW50IFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KGNv
bnN0IFBhZ2UqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiBib29sIFdlYkNvcmU6
OnNjcmVlbklzTW9ub2Nocm9tZShjb25zdCBQYWdlKikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gZmFsc2U7IH0KIApAQCAtMjA2LDkgKzIxMiw2IEBACiBib29sIFdlYkNvcmU6OlBsdWdJbklu
Zm9TdG9yZTo6c3VwcG9ydHNNSU1FVHlwZShjb25zdCBXZWJDb3JlOjpTdHJpbmcmKSB7IHJldHVy
biBmYWxzZTsgfQogdm9pZCBXZWJDb3JlOjpyZWZyZXNoUGx1Z2lucyhib29sKSB7IH0KIAotdm9p
ZCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6YXNzZW1ibGVSZXNwb25zZUhlYWRlcnMoKSBjb25z
dCB7IH0KLXZvaWQgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnJldHJpZXZlQ2hhcnNldCgpIGNv
bnN0IHsgfQotCiB2b2lkIEZyYW1lR2RrOjpyZXN0b3JlRG9jdW1lbnRTdGF0ZSgpIHsgfQogdm9p
ZCBGcmFtZUdkazo6cGFydENsZWFyZWRJbkJlZ2luKCkgeyB9CiB2b2lkIEZyYW1lR2RrOjpjcmVh
dGVFbXB0eURvY3VtZW50KCkgeyB9CkBAIC0yMzEsNiArMjM0LDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCit2b2lkIHN5c3RlbUJlZXAoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKwogYm9v
bCBDaGVja0lmUmVsb2FkaW5nKERvY0xvYWRlciopIHsgcmV0dXJuIGZhbHNlOyB9CiB0aW1lX3Qg
Q2FjaGVPYmplY3RFeHBpcmVzVGltZShEb2NMb2FkZXIqLCBQbGF0Zm9ybVJlc3BvbnNlKSB7IHJl
dHVybiAwOyB9CiB2b2lkIENoZWNrQ2FjaGVPYmplY3RTdGF0dXMoRG9jTG9hZGVyKiwgQ2FjaGVk
UmVzb3VyY2UqKSB7IH0KQEAgLTI5Niw2ICszMDEsNyBAQAogdm9pZCBQYXRoOjphZGRBcmMoY29u
c3QgRmxvYXRQb2ludCYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGJvb2wpIHsgfQogdm9pZCBQYXRo
OjphZGRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIHsgfQogdm9pZCBQYXRoOjphZGRFbGxpcHNlKGNv
bnN0IEZsb2F0UmVjdCYpIHsgfQordm9pZCBQYXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB0cmFuc2Zvcm0pIHt9CiAKIFRleHRGaWVsZDo6VGV4dEZpZWxkKFRleHRGaWVsZDo6
VHlwZSkgeyB9CiBUZXh0RmllbGQ6On5UZXh0RmllbGQoKSB7IH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ2RrL0ZyYW1lR2RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsv
RnJhbWVHZGsuaAkocmV2aXNpb24gMTc0NzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFt
ZUdkay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTQgQEAKIAogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlICJFZGl0
b3JDbGllbnQuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lR2RrOworY2xhc3MgRWRpdG9yQ2xpZW50Owog
CiBjbGFzcyBGcmFtZUdka0NsaWVudCB7CiBwdWJsaWM6CkBAIC03MywxMyArNzUsMTQgQEAKIAog
Y2xhc3MgRnJhbWVHZGsgOiBwdWJsaWMgRnJhbWUgewogcHVibGljOgotICAgIEZyYW1lR2RrKFBh
Z2UqLCBFbGVtZW50Kik7CisgICAgRnJhbWVHZGsoUGFnZSosIEVsZW1lbnQqLCBQYXNzUmVmUHRy
PEVkaXRvckNsaWVudD4pOwogICAgIEZyYW1lR2RrKEdka0RyYXdhYmxlKik7CiAgICAgdmlydHVh
bCB+RnJhbWVHZGsoKTsKIAogICAgIHZvaWQgaGFuZGxlR2RrRXZlbnQoR2RrRXZlbnQqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3VibWl0Rm9ybShjb25zdCBGcmFtZUxvYWRSZXF1ZXN0Jik7Ci0gICAg
dmlydHVhbCB2b2lkIHVybFNlbGVjdGVkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgdXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IEV2
ZW50Kik7CisgICAgdm9pZCBvcGVuVVJMKGNvbnN0IEtVUkwmIHVybCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJik7CiAKQEAgLTE0Niw2ICsxNDksMTAgQEAKICAg
ICB2aXJ0dWFsIHZvaWQgcGFydENsZWFyZWRJbkJlZ2luKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuR29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lk
IGdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpOworICAgIHZpcnR1YWwgaW50IGdldEhpc3Rv
cnlMZW5ndGgoKTsKKyAgICB2aXJ0dWFsIEtVUkwgaGlzdG9yeVVSTChpbnQgZGlzdGFuY2UpOwor
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZWRPbmxvYWRFdmVudHMoKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBjYW5QYXN0ZSgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9BZmZpbmVUcmFu
c2Zvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0FmZmluZVRyYW5zZm9ybS5o
CShyZXZpc2lvbiAxNzQ3MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNl
cnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNlbGlmIFBMQVRGT1JNKFFUKQogI2luY2x1
ZGUgPFFNYXRyaXg+CisjZWxpZiBQTEFURk9STShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDYgKzQ5LDggQEAKICAgICBBZmZp
bmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKICNlbGlmIFBMQVRGT1JN
KFFUKQogICAgIEFmZmluZVRyYW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRyaXgpOworI2VsaWYg
UExBVEZPUk0oQ0FJUk8pCisgICAgQWZmaW5lVHJhbnNmb3JtKGNvbnN0IGNhaXJvX21hdHJpeF90
ICZtYXRyaXgpOwogI2VuZGlmCiAKICAgICB2b2lkIHNldE1hdHJpeChkb3VibGUgYSwgZG91Ymxl
IGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBkb3VibGUgdHkpOwpAQCAtODksNiAr
OTMsOCBAQAogICAgIENHQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwogI2VsaWYgUExBVEZP
Uk0oUVQpCiAgICAgUU1hdHJpeCBtX3RyYW5zZm9ybTsKKyNlbGlmIFBMQVRGT1JNKENBSVJPKQor
ICAgIGNhaXJvX21hdHJpeF90IG1fdHJhbnNmb3JtOwogI2VuZGlmCiB9OwogCkluZGV4OiBXZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
MTc0NzIpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYz
IEBACisyMDA2LTEwLTMwICBLcnp5c3p0b2YgS293YWxjenlrICA8a2tvd2FsY3p5a0BnbWFpbC5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FS
TklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgTGludXhcR2Rr
IGZpeGVzLgorCisgICAgICAgICogcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmg6CisgICAgICAg
ICogcGxhdGZvcm0vY2Fpcm8vQWZmaW5lVHJhbnNmb3JtQ2Fpcm8uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6QWZmaW5lVHJhbnNmb3JtKToKKyAgICAgICAg
KFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6c2V0TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6
OkFmZmluZVRyYW5zZm9ybTo6bWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bTo6bWFwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OmlzSWRlbnRp
dHkpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjptMTEpOgorICAgICAgICAo
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjptMTIpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtOjptMjEpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjptMjIp
OgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpkeCk6CisgICAgICAgIChXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm06OmR5KToKKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybTo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpzY2FsZSk6
CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnJvdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm06OnNoZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bTo6ZGV0KToKKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6aW52ZXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06Om9wZXJhdG9yKj0pOgorICAgICAgICAoV2ViQ29yZTo6
QWZmaW5lVHJhbnNmb3JtOjpvcGVyYXRvciopOgorICAgICAgICAqIHBsYXRmb3JtL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd0xpbmVGb3JNaXNzcGVsbGluZ09yQmFkR3JhbW1hcik6CisgICAgICAgICogcGxhdGZv
cm0vZ2RrL0N1cnNvckdkay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb2ludGVyQ3Vyc29yKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVHZGs6OkZyYW1lR2RrKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjpzdWJtaXRG
b3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjp1cmxTZWxlY3RlZCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUdkazo6b3BlblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUdk
azo6aGFuZGxlR2RrRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9GcmFtZUdkay5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZv
cm0vZ2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2ZVN5
bmNocm9ub3VzUmVxdWVzdCk6CisgICAgICAgIChGcmFtZUdkazo6Z29CYWNrT3JGb3J3YXJkKToK
KyAgICAgICAgKEZyYW1lR2RrOjpnZXRIaXN0b3J5TGVuZ3RoKToKKyAgICAgICAgKEZyYW1lR2Rr
OjpoaXN0b3J5VVJMKToKKyAgICAgICAgKFBhZ2U6OmNhblJ1bk1vZGFsKToKKyAgICAgICAgKFBh
Z2U6OmNhblJ1bk1vZGFsTm93KToKKyAgICAgICAgKFBhZ2U6OnJ1bk1vZGFsKToKKyAgICAgICAg
KFdlYkNvcmU6OnN5c3RlbUJlZXApOgorICAgICAgICAoUGF0aDo6dHJhbnNmb3JtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d3JpdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZU1hbmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZU1hbmFnZXI6OmFkZCk6CisKIDIwMDYtMTAtMzAgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycy4KSW5kZXg6IFdlYktp
dFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dk
a0xhdW5jaGVyL21haW4uY3BwCShyZXZpc2lvbiAxNzQ3MikKKysrIFdlYktpdFRvb2xzL0dka0xh
dW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiBjbGFzcyBM
YXVuY2hlckZyYW1lR2RrIDogcHVibGljIEZyYW1lR2RrCiB7CiBwdWJsaWM6Ci0gICAgTGF1bmNo
ZXJGcmFtZUdkayhQYWdlKiBwYWdlLCBFbGVtZW50KiBlbGVtZW50KSA6IEZyYW1lR2RrKHBhZ2Us
IGVsZW1lbnQpLCBtX2V4aXRBZnRlckxvYWRpbmcoZmFsc2UpIHt9CisgICAgTGF1bmNoZXJGcmFt
ZUdkayhQYWdlKiBwYWdlLCBFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEVkaXRvckNsaWVu
dD4gZWRpdG9yQ2xpZW50KSA6IEZyYW1lR2RrKHBhZ2UsIGVsZW1lbnQsIGVkaXRvckNsaWVudCks
IG1fZXhpdEFmdGVyTG9hZGluZyhmYWxzZSkge30KICAgICBMYXVuY2hlckZyYW1lR2RrKEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSkgOiBGcmFtZUdkayhkcmF3YWJsZSksIG1fZXhpdEFmdGVyTG9hZGlu
ZyhmYWxzZSkge30KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOwogICAg
IHZvaWQgc2V0RXhpdEFmdGVyTG9hZGluZyhib29sIGV4aXRBZnRlckxvYWRpbmcpIHsgbV9leGl0
QWZ0ZXJMb2FkaW5nID0gZXhpdEFmdGVyTG9hZGluZzsgfQpJbmRleDogV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0
NzIpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MiBAQAorMjAwNi0xMC0zMCAgS3J6eXN6dG9mIEtvd2FsY3p5ayAgPGtrb3dhbGN6eWtAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExp
bnV4XEdkayBmaXhlcy4KKworICAgICAgICAqIEdka0xhdW5jaGVyL21haW4uY3BwOgorICAgICAg
ICAoTGF1bmNoZXJGcmFtZUdkazo6TGF1bmNoZXJGcmFtZUdkayk6CisKIDIwMDYtMTAtMzAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gZml4ZWQgYnVpbGQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11320</attachid>
            <date>2006-10-31 22:39:57 -0800</date>
            <delta_ts>2006-11-04 14:22:25 -0800</delta_ts>
            <desc>linux\gdk build fixes</desc>
            <filename>gdk.patch</filename>
            <type>text/plain</type>
            <size>23880</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTEzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDYtMTAtMzEgIEtyenlzenRv
ZiBLb3dhbGN6eWsgIDxra293YWxjenlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmcuCisK
KyAgICAgICAgKiBranMvSlNJbW1lZGlhdGUuaDoKKyAgICAgICAgKEtKUzo6SlNJbW1lZGlhdGU6
Ok5hbkFzQml0cyk6CisgICAgICAgIChLSlM6OkpTSW1tZWRpYXRlOjpvbmVBc0JpdHMpOgorICAg
ICAgICAqIGtqcy9kYXRlX29iamVjdC5jcHA6CisKIDIwMDYtMTAtMzEgIEdlb2ZmcmV5IEdhcmVu
ICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoLgpJbmRleDog
SmF2YVNjcmlwdENvcmUva2pzL0pTSW1tZWRpYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUva2pzL0pTSW1tZWRpYXRlLmgJKHJldmlzaW9uIDE3NTExKQorKysgSmF2YVNjcmlwdENv
cmUva2pzL0pTSW1tZWRpYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw3ICsyMTMsNyBAQAog
ICAgICAgICBpZiAoaXMzMmJpdCgpKQogICAgICAgICAgICAgcmV0dXJuIE5hTjMyQXNCaXRzOwog
ICAgICAgICBlbHNlIGlmIChpczY0Yml0KCkpCi0gICAgICAgICAgICByZXR1cm4gTmFONjRBc0Jp
dHM7CisgICAgICAgICAgICByZXR1cm4gKHVpbnRwdHJfdClOYU42NEFzQml0czsKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICBhYm9ydCgpOwogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0y
MzMsNyArMjMzLDcgQEAKICAgICAgICAgaWYgKGlzMzJiaXQoKSkKICAgICAgICAgICAgIHJldHVy
biBPbmUzMkFzQml0czsKICAgICAgICAgZWxzZSBpZiAoaXM2NGJpdCgpKQotICAgICAgICAgICAg
cmV0dXJuIE9uZTY0QXNCaXRzOworICAgICAgICAgICAgcmV0dXJuICh1aW50cHRyX3QpT25lNjRB
c0JpdHM7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgYWJvcnQoKTsKICAgICAgICAgICAg
IHJldHVybiAwOwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2RhdGVfb2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZGF0ZV9vYmplY3QuY3BwCShyZXZpc2lvbiAx
NzUxMSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9kYXRlX29iamVjdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1NCw3ICsxNTQsNyBAQAogICAgIHJldHVybiBVU3RyaW5nKGJ1ZmZlciwgbGVuZ3Ro
KTsKIH0KIAotI2Vsc2UgaWYgUExBVEZPUk0oV0lOX09TKQorI2Vsc2UKIAogZW51bSBMb2NhbGVE
YXRlVGltZUZvcm1hdCB7IExvY2FsZURhdGVBbmRUaW1lLCBMb2NhbGVEYXRlLCBMb2NhbGVUaW1l
IH07CiAgCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxl
TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dkay9S
ZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAxNzUxMSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9nZGsvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjMsNyArNjMsNyBAQAogICAgIFJlc291cmNlSGFuZGxlKiBqb2IgPSBzdGF0aWNfY2Fz
dDxSZXNvdXJjZUhhbmRsZSo+KG9iaik7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9
IGpvYi0+Z2V0SW50ZXJuYWwoKTsKICAgICBpbnQgdG90YWxTaXplID0gc2l6ZSAqIG5tZW1iOwot
ICAgIGQtPmNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoam9iLCBzdGF0aWNfY2FzdDxjaGFyKj4ocHRy
KSwgdG90YWxTaXplKTsKKyAgICBkLT5tX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEoam9iLCBzdGF0
aWNfY2FzdDxjaGFyKj4ocHRyKSwgdG90YWxTaXplKTsKICAgICByZXR1cm4gdG90YWxTaXplOwog
fQogCkBAIC04Niw4ICs4Niw4IEBACiAgICAgICAgICAgICBDVVJMY29kZSByZXMgPSBjdXJsX2Vh
c3lfcGVyZm9ybShkLT5tX2hhbmRsZSk7CiAgICAgICAgICAgICBpZiAocmVzICE9IENVUkxFX09L
KQogICAgICAgICAgICAgICAgIHByaW50ZigiRXJyb3IgV0lUSCBKT0IgJWRcbiIsIHJlcyk7Ci0g
ICAgICAgICAgICBkLT5jbGllbnQtPnJlY2VpdmVkQWxsRGF0YShqb2IsIDApOwotICAgICAgICAg
ICAgZC0+Y2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7CisgICAgICAgICAgICBkLT5tX2Ns
aWVudC0+cmVjZWl2ZWRBbGxEYXRhKGpvYiwgMCk7CisgICAgICAgICAgICBkLT5tX2NsaWVudC0+
ZGlkRmluaXNoTG9hZGluZyhqb2IpOwogICAgICAgICAgICAgY3VybF9lYXN5X2NsZWFudXAoZC0+
bV9oYW5kbGUpOwogICAgICAgICAgICAgZC0+bV9oYW5kbGUgPSAwOwogICAgICAgICB9CkBAIC0x
NjksOCArMTY5LDggQEAKICAgICAgICAgam9icy0+cmVtb3ZlKGpvYik7CiAgICAgaWYgKGpvYnMt
PmlzRW1wdHkoKSkKICAgICAgICAgbV9kb3dubG9hZFRpbWVyLnN0b3AoKTsKLSAgICBkLT5jbGll
bnQtPnJlY2VpdmVkQWxsRGF0YShqb2IsIDApOwotICAgIGQtPmNsaWVudC0+ZGlkRmluaXNoTG9h
ZGluZyhqb2IpOworICAgIGQtPm1fY2xpZW50LT5yZWNlaXZlZEFsbERhdGEoam9iLCAwKTsKKyAg
ICBkLT5tX2NsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhqb2IpOwogICAgIGlmIChkLT5tX2hhbmRs
ZSkgewogICAgICAgICBjdXJsX211bHRpX3JlbW92ZV9oYW5kbGUoY3VybE11bHRpSGFuZGxlLCBk
LT5tX2hhbmRsZSk7CiAgICAgICAgIGN1cmxfZWFzeV9jbGVhbnVwKGQtPm1faGFuZGxlKTsKQEAg
LTE4Miw3ICsxODIsNyBAQAogewogICAgIGJvb2wgc3RhcnRUaW1lciA9IGpvYnMtPmlzRW1wdHko
KTsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gam9iLT5nZXRJbnRlcm5hbCgpOwot
ICAgIERlcHJlY2F0ZWRTdHJpbmcgdXJsID0gZC0+VVJMLnVybCgpOworICAgIERlcHJlY2F0ZWRT
dHJpbmcgdXJsID0gam9iLT51cmwoKS51cmwoKTsKICAgICBkLT5tX2hhbmRsZSA9IGN1cmxfZWFz
eV9pbml0KCk7CiAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9QUklW
QVRFLCBqb2IpOwogICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfRVJS
T1JCVUZGRVIsIGVycm9yX2J1ZmZlcik7CkBAIC0yMDMsNyArMjAzLDcgQEAKICAgICAgICAgLy8g
ZG9uJ3QgY2FsbCBwZXJmb3JtLCBiZWNhdXNlIGV2ZW50cyBtdXN0IGJlIGFzeW5jCiAgICAgICAg
IC8vIHRpbWVvdXQgd2lsbCBvY2N1ciBhbmQgZG8gY3VybF9tdWx0aV9wZXJmb3JtCiAgICAgICAg
IGlmIChyZXQgJiYgcmV0ICE9IENVUkxNX0NBTExfTVVMVElfUEVSRk9STSkgewotICAgICAgICAg
ICAgcHJpbnRmKCJFcnJvciAlZCBzdGFydGluZyBqb2IgJXNcbiIsIHJldCwgZC0+VVJMLnVybCgp
LmFzY2lpKCkpOworICAgICAgICAgICAgcHJpbnRmKCJFcnJvciAlZCBzdGFydGluZyBqb2IgJXNc
biIsIHJldCwgam9iLT51cmwoKS51cmwoKS5hc2NpaSgpKTsKICAgICAgICAgICAgIGpvYi0+c2V0
RXJyb3IoMSk7CiAgICAgICAgICAgICBzdGFydFRpbWVyID1mYWxzZTsKICAgICAgICAgfSBlbHNl
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2NhaXJvL0FmZmluZVRyYW5zZm9ybUNhaXJvLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2NhaXJvL0FmZmluZVRyYW5zZm9ybUNhaXJv
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vQWZmaW5lVHJhbnNm
b3JtQ2Fpcm8uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiBLcnp5c3p0b2YgS293YWxjenlrIGh0dHA6Ly9ibG9nLmtvd2FsY3p5ay5p
bmZvCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zv
cm0uaCIKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKwor
I2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNkZWZpbmUgbm90SW1wbGVtZW50ZWQoKSBkbyB7IGZwcmlu
dGYoc3RkZXJyLCAiRklYTUU6IFVOSU1QTEVNRU5URUQ6ICVzOiVkXG4iLCBfX0ZJTEVfXywgX19M
SU5FX18pOyB9IHdoaWxlKDApCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQWZmaW5lVHJhbnNm
b3JtOjpBZmZpbmVUcmFuc2Zvcm0oKQoreworICAgIGNhaXJvX21hdHJpeF9pbml0X2lkZW50aXR5
KCZtX3RyYW5zZm9ybSk7Cit9CisKK0FmZmluZVRyYW5zZm9ybTo6QWZmaW5lVHJhbnNmb3JtKGRv
dWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0
eSkKK3sKKyAgICBjYWlyb19tYXRyaXhfaW5pdCgmbV90cmFuc2Zvcm0sIGEsIGIsIGMsIGQsIHR4
LCB0eSk7Cit9CisKK0FmZmluZVRyYW5zZm9ybTo6QWZmaW5lVHJhbnNmb3JtKGNvbnN0IGNhaXJv
X21hdHJpeF90JiBtYXRyaXgpCit7CisgICAgbV90cmFuc2Zvcm0gPSBtYXRyaXg7Cit9CisKK3Zv
aWQgQWZmaW5lVHJhbnNmb3JtOjpzZXRNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUg
YywgZG91YmxlIGQsIGRvdWJsZSB0eCwgZG91YmxlIHR5KQoreworICAgIGNhaXJvX21hdHJpeF9p
bml0KCZtX3RyYW5zZm9ybSwgYSwgYiwgYywgZCwgdHgsIHR5KTsKK30KKwordm9pZCBBZmZpbmVU
cmFuc2Zvcm06Om1hcChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSogeDIsIGRvdWJsZSogeTIp
IGNvbnN0Cit7CisgICAgKngyID0geDsgKnkyID0geTsKKyAgICBjYWlyb19tYXRyaXhfdHJhbnNm
b3JtX3BvaW50KCZtX3RyYW5zZm9ybSwgeDIsIHkyKTsKK30KKworSW50UmVjdCBBZmZpbmVUcmFu
c2Zvcm06Om1hcFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0Zsb2F0UmVjdCBBZmZpbmVU
cmFuc2Zvcm06Om1hcFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworfQorCitib29sIEFmZmlu
ZVRyYW5zZm9ybTo6aXNJZGVudGl0eSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2RvdWJsZSBBZmZpbmVUcmFuc2Zvcm06Om0xMSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtLnh4OworfQorCitkb3VibGUgQWZmaW5lVHJh
bnNmb3JtOjptMTIoKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybS55eDsKK30KKwor
ZG91YmxlIEFmZmluZVRyYW5zZm9ybTo6bTIxKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90cmFu
c2Zvcm0ueHk7Cit9CisKK2RvdWJsZSBBZmZpbmVUcmFuc2Zvcm06Om0yMigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdHJhbnNmb3JtLnl5OworfQorCitkb3VibGUgQWZmaW5lVHJhbnNmb3JtOjpk
eCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtLngwOworfQorCitkb3VibGUgQWZm
aW5lVHJhbnNmb3JtOjpkeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtLnkwOwor
fQorCit2b2lkIEFmZmluZVRyYW5zZm9ybTo6cmVzZXQoKQoreworICAgIGNhaXJvX21hdHJpeF9p
bml0X2lkZW50aXR5KCZtX3RyYW5zZm9ybSk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSYgQWZmaW5l
VHJhbnNmb3JtOjpzY2FsZShkb3VibGUgc3gsIGRvdWJsZSBzeSkKK3sKKyAgICBjYWlyb19tYXRy
aXhfc2NhbGUoJm1fdHJhbnNmb3JtLCBzeCwgc3kpOworICAgIHJldHVybiAqdGhpczsKK30KKwor
QWZmaW5lVHJhbnNmb3JtJiBBZmZpbmVUcmFuc2Zvcm06OnJvdGF0ZShkb3VibGUgZCkKK3sKKyAg
ICBjYWlyb19tYXRyaXhfcm90YXRlKCZtX3RyYW5zZm9ybSwgZCk7CisgICAgcmV0dXJuICp0aGlz
OworfQorCitBZmZpbmVUcmFuc2Zvcm0mIEFmZmluZVRyYW5zZm9ybTo6dHJhbnNsYXRlKGRvdWJs
ZSB0eCwgZG91YmxlIHR5KQoreworICAgIGNhaXJvX21hdHJpeF90cmFuc2xhdGUoJm1fdHJhbnNm
b3JtLCB0eCwgdHkpOworICAgIHJldHVybiAqdGhpczsKK30KKworQWZmaW5lVHJhbnNmb3JtJiBB
ZmZpbmVUcmFuc2Zvcm06OnNoZWFyKGRvdWJsZSBzeCwgZG91YmxlIHN5KQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitkb3VibGUgQWZmaW5lVHJhbnNm
b3JtOjpkZXQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBtaWdodCBub3QgYmUgcmlnaHQKKyAg
ICByZXR1cm4gbV90cmFuc2Zvcm0ueHggKiBtX3RyYW5zZm9ybS55eSAtIG1fdHJhbnNmb3JtLnl4
ICogbV90cmFuc2Zvcm0ueHk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBBZmZpbmVUcmFuc2Zvcm06
OmludmVydCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbV90
cmFuc2Zvcm07Cit9CisKK2Jvb2wgQWZmaW5lVHJhbnNmb3JtOjpvcGVyYXRvcj09KGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgb3RoZXIpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK0FmZmluZVRyYW5zZm9ybSYgQWZmaW5lVHJhbnNmb3JtOjpv
cGVyYXRvcio9KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgb3RoZXIpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBBZmZpbmVU
cmFuc2Zvcm06Om9wZXJhdG9yKihjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG90aGVyKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCit9CisKKy8v
IHZpbTogdHM9NCBzdz00IGV0CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3BsYXRmb3Jt
L2NhaXJvL0FmZmluZVRyYW5zZm9ybUNhaXJvLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVj
dXRhYmxlCiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uY3BwCShyZXZpc2lvbiAxNzUxMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICsz
NCw3IEBACiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KLSNpZiBXSU4zMgorI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
IDxjYWlyby13aW4zMi5oPgogI2VuZGlmCiAKQEAgLTc4LDcgKzc4LDcgQEAKICAgICBjYWlyb19k
ZXN0cm95KGNvbnRleHQpOwogfQogCi0jaWYgV0lOMzIKKyNpZiBQTEFURk9STShXSU4pCiBHcmFw
aGljc0NvbnRleHQ6OkdyYXBoaWNzQ29udGV4dChIREMgZGMpCiAgICAgOiBtX2NvbW1vbihjcmVh
dGVHcmFwaGljc0NvbnRleHRQcml2YXRlKCkpCiAgICAgLCBtX2RhdGEobmV3IEdyYXBoaWNzQ29u
dGV4dFBsYXRmb3JtUHJpdmF0ZSkKQEAgLTg4LDcgKzg4LDcgQEAKIH0KICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oR0RLKSB8fCBXSU4zMgorI2lmIFBMQVRGT1JNKEdESykgfHwgUExBVEZPUk0oV0lO
KQogR3JhcGhpY3NDb250ZXh0OjpHcmFwaGljc0NvbnRleHQoUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQpCiAgICAgOiBtX2NvbW1vbihjcmVhdGVHcmFwaGljc0NvbnRleHRQcml2YXRl
KCkpCiAgICAgLCBtX2RhdGEobmV3IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSkKQEAg
LTQxOCw3ICs0MTgsNyBAQAogICAgIGRyYXdMaW5lKG9yaWdpbiwgZW5kUG9pbnQpOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JNaXNzcGVsbGluZyhjb25zdCBJbnRQb2lu
dCYgcG9pbnQsIGludCB3aWR0aCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvck1p
c3NwZWxsaW5nT3JCYWRHcmFtbWFyKGNvbnN0IEludFBvaW50JiBwb2ludCwgaW50IHdpZHRoLCBi
b29sIGdyYW1tYXIpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ2RrL0N1cnNvckdkay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9nZGsvQ3Vyc29yR2RrLmNwcAkocmV2aXNpb24gMTc1MTEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dkay9DdXJzb3JHZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2MywxMiBAQAog
ICAgIGdka19jdXJzb3JfcmVmKGMpOwogfQogCitjb25zdCBDdXJzb3ImIHBvaW50ZXJDdXJzb3Io
KQoreworICAgIHN0YXRpYyBDdXJzb3IgYyA9IGdka19jdXJzb3JfbmV3KEdES19MRUZUX1BUUik7
CisgICAgcmV0dXJuIGM7Cit9CisKIGNvbnN0IEN1cnNvciYgY3Jvc3NDdXJzb3IoKQogewogICAg
IHN0YXRpYyBDdXJzb3IgYyA9IGdka19jdXJzb3JfbmV3KEdES19DUk9TUyk7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ2RrL1JlbmRlclBvcHVwTWVudUdkay5jcHAJKHJldmlzaW9uIDE3NTEx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsMTYgKzM4LDYgQEAKIHsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmNsZWFy
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBvcHVwTWVudTo6cG9wdWxh
dGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgUG9wdXBNZW51OjpzaG93
KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKQEAgLTU4LDIwICs0OCwxMCBAQAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
UG9wdXBNZW51OjphZGRTZXBhcmF0b3IoKQordm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVt
ZW50KCkgCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOyAK
IH0KIAotdm9pZCBQb3B1cE1lbnU6OmFkZEdyb3VwTGFiZWwoSFRNTE9wdEdyb3VwRWxlbWVudCop
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmFkZE9wdGlv
bihIVE1MT3B0aW9uRWxlbWVudCopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfQot
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCShyZXZpc2lvbiAxNzUxMSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsOCBAQAogI2luY2x1ZGUgIlNTTEtleUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIktleWJvYXJk
Q29kZXMuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSGl0VGVz
dFJlc3VsdC5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8Z2RrL2dk
ay5oPgogCiAKQEAgLTE1MSwxMyArMTUzLDEzIEBACiAgICAgaWYgKCFyLT5sYXllcigpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpbnQgeCA9IHItPmxheWVyKCktPnNjcm9sbFhPZmZzZXQoKSAr
IGRlbHRhWDsKLSAgICBpbnQgeSA9IHItPmxheWVyKCktPnNjcm9sbFlPZmZzZXQoKSArIGRlbHRh
WTsKKyAgICBpbnQgeCA9IHItPmxheWVyKCktPnNjcm9sbFhPZmZzZXQoKSArIChpbnQpZGVsdGFY
OworICAgIGludCB5ID0gci0+bGF5ZXIoKS0+c2Nyb2xsWU9mZnNldCgpICsgKGludClkZWx0YVk7
CiAgICAgci0+bGF5ZXIoKS0+c2Nyb2xsVG9PZmZzZXQoeCwgeSwgdHJ1ZSwgdHJ1ZSk7CiB9CiAK
IEZyYW1lR2RrOjpGcmFtZUdkayhHZGtEcmF3YWJsZSogZ2RrZHJhd2FibGUpCi0gICAgOiBGcmFt
ZShuZXcgUGFnZSwgMCksIG1fZHJhd2FibGUoZ2RrZHJhd2FibGUpCisgICAgOiBGcmFtZShuZXcg
UGFnZSwgMCwgTlVMTCksIG1fZHJhd2FibGUoZ2RrZHJhd2FibGUpCiB7CiAgICAgU2V0dGluZ3Mq
IHNldHRpbmdzID0gbmV3IFNldHRpbmdzOwogICAgIHNldHRpbmdzLT5zZXRBdXRvTG9hZEltYWdl
cyh0cnVlKTsKQEAgLTE4Myw4ICsxODUsOCBAQAogICAgIG1fY2xpZW50LT5zZXRGcmFtZSh0aGlz
KTsKIH0KIAotRnJhbWVHZGs6OkZyYW1lR2RrKFBhZ2UqIHBhZ2UsIEVsZW1lbnQqIGVsZW1lbnQp
Ci0gICAgOiBGcmFtZShwYWdlLGVsZW1lbnQpCitGcmFtZUdkazo6RnJhbWVHZGsoUGFnZSogcGFn
ZSwgRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxFZGl0b3JDbGllbnQ+IGVkaXRvckNsaWVu
dCkKKyAgICA6IEZyYW1lKHBhZ2UsZWxlbWVudCwgZWRpdG9yQ2xpZW50KQogewogICAgIFNldHRp
bmdzKiBzZXR0aW5ncyA9IG5ldyBTZXR0aW5nczsKICAgICBzZXR0aW5ncy0+c2V0QXV0b0xvYWRJ
bWFnZXModHJ1ZSk7CkBAIC0yMDAsNyArMjAyLDcgQEAKIAogdm9pZCBGcmFtZUdkazo6c3VibWl0
Rm9ybShjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1ZXN0KQogewotICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZnJhbWVMb2FkUmVxdWVzdC5tX3JlcXVlc3Q7CisgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpOwogCiAgICAgLy8gRklYTUU6IHRoaXMgaXMgYSBoYWNrIGluaGVyaXRlZCBmcm9tIEZyYW1l
TWFjLCBhbmQgc2hvdWxkIGJlIHB1c2hlZCBpbnRvIEZyYW1lCiAgICAgaWYgKGQtPm1fc3VibWl0
dGVkRm9ybVVSTCA9PSByZXF1ZXN0LnVybCgpKQpAQCAtMjA5LDEzICsyMTEsMTQgQEAKICAgICBk
LT5tX3N1Ym1pdHRlZEZvcm1VUkwgPSByZXF1ZXN0LnVybCgpOwogCiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+c3VibWl0Rm9ybShyZXF1ZXN0LmRvUG9zdCgpID8gIlBPU1Qi
IDogIkdFVCIsIHJlcXVlc3QudXJsKCksICZyZXF1ZXN0LnBvc3REYXRhKTsKKyAgICAgICAgbV9j
bGllbnQtPnN1Ym1pdEZvcm0ocmVxdWVzdC5odHRwTWV0aG9kKCksIHJlcXVlc3QudXJsKCksICZy
ZXF1ZXN0Lmh0dHBCb2R5KCkpOworCiAgICAgY2xlYXJSZWNvcmRlZEZvcm1WYWx1ZXMoKTsKIH0K
IAotdm9pZCBGcmFtZUdkazo6dXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgZnJh
bWVMb2FkUmVxdWVzdCkKK3ZvaWQgRnJhbWVHZGs6OnVybFNlbGVjdGVkKGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IEV2ZW50KikKIHsKLSAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCA9IGZyYW1lTG9hZFJlcXVlc3QubV9yZXF1ZXN0OworICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0ID0gZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKTsK
IAogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKQEAgLTIyMyw2ICsyMjYsMTIg
QEAKICAgICBtX2NsaWVudC0+b3BlblVSTChyZXF1ZXN0LnVybCgpKTsKIH0KIAordm9pZCBGcmFt
ZUdkazo6b3BlblVSTChjb25zdCBLVVJMJiB1cmwpCit7CisgICAgQVNTRVJUKG1fY2xpZW50KTsK
KyAgICBtX2NsaWVudC0+b3BlblVSTCh1cmwpOworfQorCiBTdHJpbmcgRnJhbWVHZGs6OnVzZXJB
Z2VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoUEM7IFU7IEludGVsOyBM
aW51eDsgZW4pIEFwcGxlV2ViS2l0LzQyMCsgKEtIVE1MLCBsaWtlIEdlY2tvKSI7CkBAIC0yNjIs
OSArMjcxLDExIEBACiAgICAgICAgICAgICBpZiAod2hlZWxFdmVudC5pc0FjY2VwdGVkKCkpIHsK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSZW5k
ZXJPYmplY3Q6Ok5vZGVJbmZvIG5vZGVJbmZvKHRydWUsIHRydWUpOwotICAgICAgICAgICAgcmVu
ZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChub2RlSW5mbywgd2hlZWxFdmVudC5wb3MoKSk7Ci0g
ICAgICAgICAgICBOb2RlKiBub2RlID0gbm9kZUluZm8uaW5uZXJOb2RlKCk7CisKKyAgICAgICAg
ICAgIEhpdFRlc3RSZXF1ZXN0IGhpdFRlc3RSZXF1ZXN0KHRydWUsIHRydWUpOworICAgICAgICAg
ICAgSGl0VGVzdFJlc3VsdCBoaXRUZXN0UmVzdWx0KHdoZWVsRXZlbnQucG9zKCkpOworICAgICAg
ICAgICAgcmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChoaXRUZXN0UmVxdWVzdCwgaGl0VGVz
dFJlc3VsdCk7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gaGl0VGVzdFJlc3VsdC5pbm5lck5v
ZGUoKTsKICAgICAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICAvL0RlZmF1bHQgdG8gc2Nyb2xsaW5nIHRoZSBwYWdlCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dkay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHJldmlzaW9uIDE3NTExKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjQsOSArNjQsMTIgQEAKICNpbmNsdWRlICJJY29uTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjZGVmaW5lIG5vdEltcGxl
bWVudGVkKCkgZG8geyBmcHJpbnRmKHN0ZGVyciwgIkZJWE1FOiBVTklNUExFTUVOVEVEOiAlcyBp
biAlczolZFxuIiwgX19GVU5DVElPTl9fLCBfX0ZJTEVfXywgX19MSU5FX18pOyB9IHdoaWxlKDAp
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBQbGF0Zm9ybURhdGFTdHJ1Y3QKIHsKQEAg
LTc3LDggKzgwLDYgQEAKIH07CiB9CiAKLSNkZWZpbmUgbm90SW1wbGVtZW50ZWQoKSBkbyB7IGZw
cmludGYoc3RkZXJyLCAiRklYTUU6IFVOSU1QTEVNRU5URUQ6ICVzIGluICVzOiVkXG4iLCBfX0ZV
TkNUSU9OX18sIF9fRklMRV9fLCBfX0xJTkVfXyk7IH0gd2hpbGUoMCkKLQogdm9pZCBGcmFtZVZp
ZXc6OnVwZGF0ZUJvcmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogYm9vbCBGcmFtZVZpZXc6
OnBhc3NNb3VzZVByZXNzRXZlbnRUb1Njcm9sbGJhcihNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzJiwgUGxhdGZvcm1TY3JvbGxiYXIqKSB7IHJldHVybiBmYWxzZTsgfQogYm9vbCBGcmFtZVZp
ZXc6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmLCBGcmFtZSopIHsgcmV0dXJuIHRydWU7IH0KQEAgLTEzOCw5ICsxMzksNyBAQAogaW50
IFdlYkNvcmU6OmZpbmROZXh0V29yZEZyb21JbmRleChVQ2hhciBjb25zdCosIGludCwgaW50LCBi
b29sKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotVmVjdG9yPGNoYXI+IFNlcnZlU3luY2hyb25vdXNSZXF1ZXN0KExvYWRlciosRG9jTG9h
ZGVyKixSZXNvdXJjZUhhbmRsZSosS1VSTCYsRGVwcmVjYXRlZFN0cmluZyYpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxjaGFyPigpOyB9Ci0KK1ZlY3RvcjxjaGFyPiBTZXJ2ZVN5
bmNocm9ub3VzUmVxdWVzdChMb2FkZXIgKmxvYWRlciwgRG9jTG9hZGVyICpkb2NMb2FkZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxjaGFyPigpOyB9CiB9CiAKIHZvaWQg
RnJhbWVHZGs6OmZvY3VzV2luZG93KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CkBAIC0xNzksNiAr
MTc4LDEzIEBACiBLVVJMIEZyYW1lR2RrOjpvcmlnaW5hbFJlcXVlc3RVUkwoKSBjb25zdCB7IHJl
dHVybiBLVVJMKCk7IH0KIFBsdWdpbiogRnJhbWVHZGs6OmNyZWF0ZVBsdWdpbihFbGVtZW50Kiwg
S1VSTCBjb25zdCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBTdHJpbmcgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKK3ZvaWQg
RnJhbWVHZGs6OmdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQoraW50IEZyYW1lR2RrOjpnZXRIaXN0b3J5TGVuZ3RoKCkge25vdEltcGxlbWVudGVkKCk7
IHJldHVybiAwOyB9CitLVVJMIEZyYW1lR2RrOjpoaXN0b3J5VVJMKGludCBkaXN0YW5jZSkgeyBu
b3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gS1VSTCgpOyB9Citib29sIFBhZ2U6OmNhblJ1bk1vZGFs
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQorYm9vbCBQYWdlOjpjYW5SdW5Nb2Rh
bE5vdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KK3ZvaWQgUGFnZTo6cnVuTW9k
YWwoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKwogaW50IFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVy
Q29tcG9uZW50KGNvbnN0IFBhZ2UqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiBi
b29sIFdlYkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZShjb25zdCBQYWdlKikgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMjA2LDkgKzIxMiw2IEBACiBib29sIFdlYkNv
cmU6OlBsdWdJbkluZm9TdG9yZTo6c3VwcG9ydHNNSU1FVHlwZShjb25zdCBXZWJDb3JlOjpTdHJp
bmcmKSB7IHJldHVybiBmYWxzZTsgfQogdm9pZCBXZWJDb3JlOjpyZWZyZXNoUGx1Z2lucyhib29s
KSB7IH0KIAotdm9pZCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6YXNzZW1ibGVSZXNwb25zZUhl
YWRlcnMoKSBjb25zdCB7IH0KLXZvaWQgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnJldHJpZXZl
Q2hhcnNldCgpIGNvbnN0IHsgfQotCiB2b2lkIEZyYW1lR2RrOjpyZXN0b3JlRG9jdW1lbnRTdGF0
ZSgpIHsgfQogdm9pZCBGcmFtZUdkazo6cGFydENsZWFyZWRJbkJlZ2luKCkgeyB9CiB2b2lkIEZy
YW1lR2RrOjpjcmVhdGVFbXB0eURvY3VtZW50KCkgeyB9CkBAIC0yMzEsNiArMjM0LDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCit2b2lkIHN5c3RlbUJlZXAoKSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KKwogYm9vbCBDaGVja0lmUmVsb2FkaW5nKERvY0xvYWRlciopIHsgcmV0dXJuIGZhbHNl
OyB9CiB0aW1lX3QgQ2FjaGVPYmplY3RFeHBpcmVzVGltZShEb2NMb2FkZXIqLCBQbGF0Zm9ybVJl
c3BvbnNlKSB7IHJldHVybiAwOyB9CiB2b2lkIENoZWNrQ2FjaGVPYmplY3RTdGF0dXMoRG9jTG9h
ZGVyKiwgQ2FjaGVkUmVzb3VyY2UqKSB7IH0KQEAgLTI5Niw2ICszMDEsNyBAQAogdm9pZCBQYXRo
OjphZGRBcmMoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGJvb2wpIHsg
fQogdm9pZCBQYXRoOjphZGRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIHsgfQogdm9pZCBQYXRoOjph
ZGRFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYpIHsgfQordm9pZCBQYXRoOjp0cmFuc2Zvcm0oY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pIHt9CiAKIFRleHRGaWVsZDo6VGV4dEZpZWxk
KFRleHRGaWVsZDo6VHlwZSkgeyB9CiBUZXh0RmllbGQ6On5UZXh0RmllbGQoKSB7IH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9nZGsvRnJhbWVHZGsuaAkocmV2aXNpb24gMTc1MTEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dkay9GcmFtZUdkay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTQgQEAKIAog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKKyNp
bmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lR2RrOworY2xhc3MgRWRp
dG9yQ2xpZW50OwogCiBjbGFzcyBGcmFtZUdka0NsaWVudCB7CiBwdWJsaWM6CkBAIC03MywxMyAr
NzUsMTQgQEAKIAogY2xhc3MgRnJhbWVHZGsgOiBwdWJsaWMgRnJhbWUgewogcHVibGljOgotICAg
IEZyYW1lR2RrKFBhZ2UqLCBFbGVtZW50Kik7CisgICAgRnJhbWVHZGsoUGFnZSosIEVsZW1lbnQq
LCBQYXNzUmVmUHRyPEVkaXRvckNsaWVudD4pOwogICAgIEZyYW1lR2RrKEdka0RyYXdhYmxlKik7
CiAgICAgdmlydHVhbCB+RnJhbWVHZGsoKTsKIAogICAgIHZvaWQgaGFuZGxlR2RrRXZlbnQoR2Rr
RXZlbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3VibWl0Rm9ybShjb25zdCBGcmFtZUxvYWRSZXF1
ZXN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIHVybFNlbGVjdGVkKGNvbnN0IEZyYW1lTG9hZFJlcXVl
c3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IEV2ZW50Kik7CisgICAgdm9pZCBvcGVuVVJMKGNvbnN0IEtVUkwmIHVybCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJik7CiAKQEAgLTE0Niw2ICsx
NDksMTAgQEAKICAgICB2aXJ0dWFsIHZvaWQgcGFydENsZWFyZWRJbkJlZ2luKCk7CiAKICAgICB2
aXJ0dWFsIGJvb2wgY2FuR29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIGdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpOworICAgIHZpcnR1YWwg
aW50IGdldEhpc3RvcnlMZW5ndGgoKTsKKyAgICB2aXJ0dWFsIEtVUkwgaGlzdG9yeVVSTChpbnQg
ZGlzdGFuY2UpOworCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZWRPbmxvYWRFdmVudHMoKTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBjYW5QYXN0ZSgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9BZmZpbmVUcmFuc2Zvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0FmZmlu
ZVRyYW5zZm9ybS5oCShyZXZpc2lvbiAxNzUxMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vQWZmaW5l
VHJhbnNmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDxB
cHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNlbGlmIFBMQVRGT1JN
KFFUKQogI2luY2x1ZGUgPFFNYXRyaXg+CisjZWxpZiBQTEFURk9STShDQUlSTykKKyNpbmNsdWRl
IDxjYWlyby5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDYgKzQ5LDgg
QEAKICAgICBBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKICNl
bGlmIFBMQVRGT1JNKFFUKQogICAgIEFmZmluZVRyYW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRy
aXgpOworI2VsaWYgUExBVEZPUk0oQ0FJUk8pCisgICAgQWZmaW5lVHJhbnNmb3JtKGNvbnN0IGNh
aXJvX21hdHJpeF90ICZtYXRyaXgpOwogI2VuZGlmCiAKICAgICB2b2lkIHNldE1hdHJpeChkb3Vi
bGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBkb3VibGUgdHkp
OwpAQCAtODksNiArOTMsOCBAQAogICAgIENHQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwog
I2VsaWYgUExBVEZPUk0oUVQpCiAgICAgUU1hdHJpeCBtX3RyYW5zZm9ybTsKKyNlbGlmIFBMQVRG
T1JNKENBSVJPKQorICAgIGNhaXJvX21hdHJpeF90IG1fdHJhbnNmb3JtOwogI2VuZGlmCiB9Owog
CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTc1MTMpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDY0IEBACisyMDA2LTEwLTMxICBLcnp5c3p0b2YgS293YWxjenlrICA8a2tvd2Fs
Y3p5a0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAg
ICAgTGludXhcR2RrIGJ1aWxkIGZpeGVzLgorCisgICAgICAgICogcGxhdGZvcm0vQWZmaW5lVHJh
bnNmb3JtLmg6CisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8vQWZmaW5lVHJhbnNmb3JtQ2Fpcm8u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6QWZmaW5lVHJh
bnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6c2V0TWF0cml4KToK
KyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6bWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OkFmZmluZVRyYW5zZm9ybTo6bWFwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVU
cmFuc2Zvcm06OmlzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3Jt
OjptMTEpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjptMTIpOgorICAgICAg
ICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjptMjEpOgorICAgICAgICAoV2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtOjptMjIpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpk
eCk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OmR5KToKKyAgICAgICAgKFdl
YkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtOjpzY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnJv
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnRyYW5zbGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnNoZWFyKToKKyAgICAgICAgKFdlYkNv
cmU6OkFmZmluZVRyYW5zZm9ybTo6ZGV0KToKKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybTo6aW52ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06Om9wZXJhdG9yKj0pOgor
ICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpvcGVyYXRvciopOgorICAgICAgICAq
IHBsYXRmb3JtL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JNaXNzcGVsbGluZ09yQmFkR3JhbW1hcik6
CisgICAgICAgICogcGxhdGZvcm0vZ2RrL0N1cnNvckdkay5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpwb2ludGVyQ3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZG9TY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVHZGs6
OkZyYW1lR2RrKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjpzdWJtaXRGb3JtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjp1cmxTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUdkazo6b3BlblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUdkazo6aGFuZGxl
R2RrRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9GcmFtZUdkay5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ2RrL1Rl
bXBvcmFyeUxpbmtTdHVicy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2ZVN5bmNocm9ub3Vz
UmVxdWVzdCk6CisgICAgICAgIChGcmFtZUdkazo6Z29CYWNrT3JGb3J3YXJkKToKKyAgICAgICAg
KEZyYW1lR2RrOjpnZXRIaXN0b3J5TGVuZ3RoKToKKyAgICAgICAgKEZyYW1lR2RrOjpoaXN0b3J5
VVJMKToKKyAgICAgICAgKFBhZ2U6OmNhblJ1bk1vZGFsKToKKyAgICAgICAgKFBhZ2U6OmNhblJ1
bk1vZGFsTm93KToKKyAgICAgICAgKFBhZ2U6OnJ1bk1vZGFsKToKKyAgICAgICAgKFdlYkNvcmU6
OnN5c3RlbUJlZXApOgorICAgICAgICAoUGF0aDo6dHJhbnNmb3JtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6d3JpdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1h
bmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZU1hbmFnZXI6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZU1hbmFnZXI6OmFkZCk6CisKIDIwMDYtMTAtMzEgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KSW5kZXg6IFdlYktpdFRvb2xzL0dk
a0xhdW5jaGVyL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dka0xhdW5jaGVy
L21haW4uY3BwCShyZXZpc2lvbiAxNzUxMSkKKysrIFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21h
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiBjbGFzcyBMYXVuY2hlckZy
YW1lR2RrIDogcHVibGljIEZyYW1lR2RrCiB7CiBwdWJsaWM6Ci0gICAgTGF1bmNoZXJGcmFtZUdk
ayhQYWdlKiBwYWdlLCBFbGVtZW50KiBlbGVtZW50KSA6IEZyYW1lR2RrKHBhZ2UsIGVsZW1lbnQp
LCBtX2V4aXRBZnRlckxvYWRpbmcoZmFsc2UpIHt9CisgICAgTGF1bmNoZXJGcmFtZUdkayhQYWdl
KiBwYWdlLCBFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEVkaXRvckNsaWVudD4gZWRpdG9y
Q2xpZW50KSA6IEZyYW1lR2RrKHBhZ2UsIGVsZW1lbnQsIGVkaXRvckNsaWVudCksIG1fZXhpdEFm
dGVyTG9hZGluZyhmYWxzZSkge30KICAgICBMYXVuY2hlckZyYW1lR2RrKEdka0RyYXdhYmxlKiBk
cmF3YWJsZSkgOiBGcmFtZUdkayhkcmF3YWJsZSksIG1fZXhpdEFmdGVyTG9hZGluZyhmYWxzZSkg
e30KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOwogICAgIHZvaWQgc2V0
RXhpdEFmdGVyTG9hZGluZyhib29sIGV4aXRBZnRlckxvYWRpbmcpIHsgbV9leGl0QWZ0ZXJMb2Fk
aW5nID0gZXhpdEFmdGVyTG9hZGluZzsgfQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1MTMpCisrKyBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAw
Ni0xMC0zMSAgS3J6eXN6dG9mIEtvd2FsY3p5ayAgPGtrb3dhbGN6eWtAZ21haWwuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExpbnV4XEdkayBi
dWlsZCBmaXhlcy4KKworICAgICAgICAqIEdka0xhdW5jaGVyL21haW4uY3BwOgorICAgICAgICAo
TGF1bmNoZXJGcmFtZUdkazo6TGF1bmNoZXJGcmFtZUdkayk6CisKIDIwMDYtMTEtMDEgIE1hcmsg
Um93ZSAgPGJkYXNoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWl0ei4K
</data>
<flag name="review"
          id="3926"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11381</attachid>
            <date>2006-11-04 14:22:25 -0800</date>
            <delta_ts>2006-11-05 18:14:33 -0800</delta_ts>
            <desc>linux\gdk build fixes</desc>
            <filename>gdk.patch</filename>
            <type>text/plain</type>
            <size>22197</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTk0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDYtMTEtMDQgIEtyenlzenRv
ZiBLb3dhbGN6eWssLCwgIDxra293YWxjenlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggYmFkIHByZXByb2Nlc3NvciBzeW50
YXggYW5kIHRoZSBsb2dpYyBhcHBsaWVzIHRvIG5vbi13aW4gYXMgd2VsbC4KKworICAgICAgICAq
IGtqcy9kYXRlX29iamVjdC5jcHA6CisKIDIwMDYtMTEtMDMgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxz
ZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2tqcy9kYXRlX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pz
L2RhdGVfb2JqZWN0LmNwcAkocmV2aXNpb24gMTc1OTQpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMv
ZGF0ZV9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDcgQEAKICAgICBy
ZXR1cm4gVVN0cmluZyhidWZmZXIsIGxlbmd0aCk7CiB9CiAKLSNlbHNlIGlmIFBMQVRGT1JNKFdJ
Tl9PUykKKyNlbHNlCiAKIGVudW0gTG9jYWxlRGF0ZVRpbWVGb3JtYXQgeyBMb2NhbGVEYXRlQW5k
VGltZSwgTG9jYWxlRGF0ZSwgTG9jYWxlVGltZSB9OwogIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMTc1OTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlSGFu
ZGxlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAKICAgICBSZXNv
dXJjZUhhbmRsZSogam9iID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihvYmopOwogICAg
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7CiAgICAgaW50
IHRvdGFsU2l6ZSA9IHNpemUgKiBubWVtYjsKLSAgICBkLT5jbGllbnQtPmRpZFJlY2VpdmVEYXRh
KGpvYiwgc3RhdGljX2Nhc3Q8Y2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CisgICAgZC0+bV9jbGll
bnQtPmRpZFJlY2VpdmVEYXRhKGpvYiwgc3RhdGljX2Nhc3Q8Y2hhcio+KHB0ciksIHRvdGFsU2l6
ZSk7CiAgICAgcmV0dXJuIHRvdGFsU2l6ZTsKIH0KIApAQCAtODYsOCArODYsOCBAQAogICAgICAg
ICAgICAgQ1VSTGNvZGUgcmVzID0gY3VybF9lYXN5X3BlcmZvcm0oZC0+bV9oYW5kbGUpOwogICAg
ICAgICAgICAgaWYgKHJlcyAhPSBDVVJMRV9PSykKICAgICAgICAgICAgICAgICBwcmludGYoIkVy
cm9yIFdJVEggSk9CICVkXG4iLCByZXMpOwotICAgICAgICAgICAgZC0+Y2xpZW50LT5yZWNlaXZl
ZEFsbERhdGEoam9iLCAwKTsKLSAgICAgICAgICAgIGQtPmNsaWVudC0+ZGlkRmluaXNoTG9hZGlu
Zyhqb2IpOworICAgICAgICAgICAgZC0+bV9jbGllbnQtPnJlY2VpdmVkQWxsRGF0YShqb2IsIDAp
OworICAgICAgICAgICAgZC0+bV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoam9iKTsKICAgICAg
ICAgICAgIGN1cmxfZWFzeV9jbGVhbnVwKGQtPm1faGFuZGxlKTsKICAgICAgICAgICAgIGQtPm1f
aGFuZGxlID0gMDsKICAgICAgICAgfQpAQCAtMTY5LDggKzE2OSw4IEBACiAgICAgICAgIGpvYnMt
PnJlbW92ZShqb2IpOwogICAgIGlmIChqb2JzLT5pc0VtcHR5KCkpCiAgICAgICAgIG1fZG93bmxv
YWRUaW1lci5zdG9wKCk7Ci0gICAgZC0+Y2xpZW50LT5yZWNlaXZlZEFsbERhdGEoam9iLCAwKTsK
LSAgICBkLT5jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoam9iKTsKKyAgICBkLT5tX2NsaWVudC0+
cmVjZWl2ZWRBbGxEYXRhKGpvYiwgMCk7CisgICAgZC0+bV9jbGllbnQtPmRpZEZpbmlzaExvYWRp
bmcoam9iKTsKICAgICBpZiAoZC0+bV9oYW5kbGUpIHsKICAgICAgICAgY3VybF9tdWx0aV9yZW1v
dmVfaGFuZGxlKGN1cmxNdWx0aUhhbmRsZSwgZC0+bV9oYW5kbGUpOwogICAgICAgICBjdXJsX2Vh
c3lfY2xlYW51cChkLT5tX2hhbmRsZSk7CkBAIC0xODIsNyArMTgyLDcgQEAKIHsKICAgICBib29s
IHN0YXJ0VGltZXIgPSBqb2JzLT5pc0VtcHR5KCk7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCogZCA9IGpvYi0+Z2V0SW50ZXJuYWwoKTsKLSAgICBEZXByZWNhdGVkU3RyaW5nIHVybCA9IGQt
PlVSTC51cmwoKTsKKyAgICBEZXByZWNhdGVkU3RyaW5nIHVybCA9IGpvYi0+dXJsKCkudXJsKCk7
CiAgICAgZC0+bV9oYW5kbGUgPSBjdXJsX2Vhc3lfaW5pdCgpOwogICAgIGN1cmxfZWFzeV9zZXRv
cHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfUFJJVkFURSwgam9iKTsKICAgICBjdXJsX2Vhc3lfc2V0
b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX0VSUk9SQlVGRkVSLCBlcnJvcl9idWZmZXIpOwpAQCAt
MjAzLDcgKzIwMyw3IEBACiAgICAgICAgIC8vIGRvbid0IGNhbGwgcGVyZm9ybSwgYmVjYXVzZSBl
dmVudHMgbXVzdCBiZSBhc3luYwogICAgICAgICAvLyB0aW1lb3V0IHdpbGwgb2NjdXIgYW5kIGRv
IGN1cmxfbXVsdGlfcGVyZm9ybQogICAgICAgICBpZiAocmV0ICYmIHJldCAhPSBDVVJMTV9DQUxM
X01VTFRJX1BFUkZPUk0pIHsKLSAgICAgICAgICAgIHByaW50ZigiRXJyb3IgJWQgc3RhcnRpbmcg
am9iICVzXG4iLCByZXQsIGQtPlVSTC51cmwoKS5hc2NpaSgpKTsKKyAgICAgICAgICAgIHByaW50
ZigiRXJyb3IgJWQgc3RhcnRpbmcgam9iICVzXG4iLCByZXQsIGpvYi0+dXJsKCkudXJsKCkuYXNj
aWkoKSk7CiAgICAgICAgICAgICBqb2ItPnNldEVycm9yKDEpOwogICAgICAgICAgICAgc3RhcnRU
aW1lciA9ZmFsc2U7CiAgICAgICAgIH0gZWxzZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsv
Q3Vyc29yR2RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9DdXJzb3JH
ZGsuY3BwCShyZXZpc2lvbiAxNzU5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0N1cnNvckdk
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDEyIEBACiAgICAgZ2RrX2N1cnNvcl9y
ZWYoYyk7CiB9CiAKK2NvbnN0IEN1cnNvciYgcG9pbnRlckN1cnNvcigpCit7CisgICAgc3RhdGlj
IEN1cnNvciBjID0gZ2RrX2N1cnNvcl9uZXcoR0RLX0xFRlRfUFRSKTsKKyAgICByZXR1cm4gYzsK
K30KKwogY29uc3QgQ3Vyc29yJiBjcm9zc0N1cnNvcigpCiB7CiAgICAgc3RhdGljIEN1cnNvciBj
ID0gZ2RrX2N1cnNvcl9uZXcoR0RLX0NST1NTKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2Rr
L0Nocm9tZUNsaWVudEdkay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0No
cm9tZUNsaWVudEdkay5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvQ2hy
b21lQ2xpZW50R2RrLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIENocm9tZUNsaWVudEdka19ICisjZGVmaW5lIENocm9tZUNsaWVudEdka19ICisKKyNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDaHJv
bWVDbGllbnRHZGsgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5DaHJvbWVDbGllbnRHZGsoKSB7IH0KKyAgICAgICAgCisgICAgdmlydHVhbCBib29sIGNhblJ1
bk1vZGFsKCk7CisgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBDaHJvbWVDbGllbnRHZGtfSAoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9wbGF0
Zm9ybS9nZGsvQ2hyb21lQ2xpZW50R2RrLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJs
ZQogICArICoKCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1JlbmRlclBvcHVwTWVudUdk
ay5jcHAJKHJldmlzaW9uIDE3NTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVuZGVyUG9w
dXBNZW51R2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTYgKzM4LDYgQEAKIHsKIH0KIAot
dm9pZCBQb3B1cE1lbnU6OmNsZWFyKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12
b2lkIFBvcHVwTWVudTo6cG9wdWxhdGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
IHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTU4LDIwICs0OCwxMCBAQAogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjphZGRTZXBhcmF0b3IoKQordm9pZCBQb3B1
cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkgCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOyAKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmFkZEdyb3VwTGFiZWwo
SFRNTE9wdEdyb3VwRWxlbWVudCopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9p
ZCBQb3B1cE1lbnU6OmFkZE9wdGlvbihIVE1MT3B0aW9uRWxlbWVudCopCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQotfQotCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdk
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCShy
ZXZpc2lvbiAxNzU5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsMzUgKzI3LDM1IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJGcmFtZUdkay5oIgotCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgotI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudEdkay5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgot
I2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJQ
bHVnaW4uaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkZyYW1lUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVxdWVz
dC5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgorI2luY2x1ZGUgIktleWJv
YXJkQ29kZXMuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVu
dC5oIgotI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCIKKyNpbmNsdWRl
ICJQbHVnaW4uaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJX
aWRnZXQuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlNl
bGVjdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlNT
TEtleUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIlR5cGluZ0NvbW1hbmQuaCIKLSNpbmNsdWRlICJT
U0xLZXlHZW5lcmF0b3IuaCIKLSNpbmNsdWRlICJLZXlib2FyZENvZGVzLmgiCi0jaW5jbHVkZSAi
RnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KIAotCiAvLyBUaGlzIGZ1
bmN0aW9uIGxvYWRzIHJlc291cmNlcyBmcm9tIFdlYktpdAogLy8gVGhpcyBkb2VzIG5vdCBiZWxv
bmcgaGVyZSBhbmQgSSdtIG5vdCBzdXJlIHdoZXJlCiAvLyBpdCBzaG91bGQgZ28KQEAgLTE1MSwx
MyArMTUxLDEzIEBACiAgICAgaWYgKCFyLT5sYXllcigpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpbnQgeCA9IHItPmxheWVyKCktPnNjcm9sbFhPZmZzZXQoKSArIGRlbHRhWDsKLSAgICBpbnQg
eSA9IHItPmxheWVyKCktPnNjcm9sbFlPZmZzZXQoKSArIGRlbHRhWTsKKyAgICBpbnQgeCA9IHIt
PmxheWVyKCktPnNjcm9sbFhPZmZzZXQoKSArIChpbnQpZGVsdGFYOworICAgIGludCB5ID0gci0+
bGF5ZXIoKS0+c2Nyb2xsWU9mZnNldCgpICsgKGludClkZWx0YVk7CiAgICAgci0+bGF5ZXIoKS0+
c2Nyb2xsVG9PZmZzZXQoeCwgeSwgdHJ1ZSwgdHJ1ZSk7CiB9CiAKIEZyYW1lR2RrOjpGcmFtZUdk
ayhHZGtEcmF3YWJsZSogZ2RrZHJhd2FibGUpCi0gICAgOiBGcmFtZShuZXcgUGFnZSwgMCksIG1f
ZHJhd2FibGUoZ2RrZHJhd2FibGUpCisgICAgOiBGcmFtZShuZXcgUGFnZShuZXcgQ2hyb21lQ2xp
ZW50R2RrKCkpLCAwLCAwKSwgbV9kcmF3YWJsZShnZGtkcmF3YWJsZSkKIHsKICAgICBTZXR0aW5n
cyogc2V0dGluZ3MgPSBuZXcgU2V0dGluZ3M7CiAgICAgc2V0dGluZ3MtPnNldEF1dG9Mb2FkSW1h
Z2VzKHRydWUpOwpAQCAtMTgzLDggKzE4Myw4IEBACiAgICAgbV9jbGllbnQtPnNldEZyYW1lKHRo
aXMpOwogfQogCi1GcmFtZUdkazo6RnJhbWVHZGsoUGFnZSogcGFnZSwgRWxlbWVudCogZWxlbWVu
dCkKLSAgICA6IEZyYW1lKHBhZ2UsZWxlbWVudCkKK0ZyYW1lR2RrOjpGcmFtZUdkayhQYWdlKiBw
YWdlLCBFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEVkaXRvckNsaWVudD4gZWRpdG9yQ2xp
ZW50KQorICAgIDogRnJhbWUocGFnZSxlbGVtZW50LCBlZGl0b3JDbGllbnQpCiB7CiAgICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gbmV3IFNldHRpbmdzOwogICAgIHNldHRpbmdzLT5zZXRBdXRvTG9h
ZEltYWdlcyh0cnVlKTsKQEAgLTIwMCw3ICsyMDAsNyBAQAogCiB2b2lkIEZyYW1lR2RrOjpzdWJt
aXRGb3JtKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1lTG9hZFJlcXVlc3QpCiB7Ci0gICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBmcmFtZUxvYWRSZXF1ZXN0Lm1fcmVxdWVzdDsKKyAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCk7CiAKICAgICAvLyBGSVhNRTogdGhpcyBpcyBhIGhhY2sgaW5oZXJpdGVkIGZyb20gRnJh
bWVNYWMsIGFuZCBzaG91bGQgYmUgcHVzaGVkIGludG8gRnJhbWUKICAgICBpZiAoZC0+bV9zdWJt
aXR0ZWRGb3JtVVJMID09IHJlcXVlc3QudXJsKCkpCkBAIC0yMDksMTMgKzIwOSwxNCBAQAogICAg
IGQtPm1fc3VibWl0dGVkRm9ybVVSTCA9IHJlcXVlc3QudXJsKCk7CiAKICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgIG1fY2xpZW50LT5zdWJtaXRGb3JtKHJlcXVlc3QuZG9Qb3N0KCkgPyAiUE9T
VCIgOiAiR0VUIiwgcmVxdWVzdC51cmwoKSwgJnJlcXVlc3QucG9zdERhdGEpOworICAgICAgICBt
X2NsaWVudC0+c3VibWl0Rm9ybShyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC51cmwoKSwg
JnJlcXVlc3QuaHR0cEJvZHkoKSk7CisKICAgICBjbGVhclJlY29yZGVkRm9ybVZhbHVlcygpOwog
fQogCi12b2lkIEZyYW1lR2RrOjp1cmxTZWxlY3RlZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBm
cmFtZUxvYWRSZXF1ZXN0KQordm9pZCBGcmFtZUdkazo6dXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgRXZlbnQqKQogewotICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0ID0gZnJhbWVMb2FkUmVxdWVzdC5tX3JlcXVlc3Q7CisgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
OwogCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjIzLDYgKzIyNCwx
MiBAQAogICAgIG1fY2xpZW50LT5vcGVuVVJMKHJlcXVlc3QudXJsKCkpOwogfQogCit2b2lkIEZy
YW1lR2RrOjpvcGVuVVJMKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnQp
OworICAgIG1fY2xpZW50LT5vcGVuVVJMKHVybCk7Cit9CisKIFN0cmluZyBGcmFtZUdkazo6dXNl
ckFnZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gIk1vemlsbGEvNS4wIChQQzsgVTsgSW50ZWw7
IExpbnV4OyBlbikgQXBwbGVXZWJLaXQvNDIwKyAoS0hUTUwsIGxpa2UgR2Vja28pIjsKQEAgLTI2
Miw5ICsyNjksMTEgQEAKICAgICAgICAgICAgIGlmICh3aGVlbEV2ZW50LmlzQWNjZXB0ZWQoKSkg
ewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJl
bmRlck9iamVjdDo6Tm9kZUluZm8gbm9kZUluZm8odHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBy
ZW5kZXJlcigpLT5sYXllcigpLT5oaXRUZXN0KG5vZGVJbmZvLCB3aGVlbEV2ZW50LnBvcygpKTsK
LSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBub2RlSW5mby5pbm5lck5vZGUoKTsKKworICAgICAg
ICAgICAgSGl0VGVzdFJlcXVlc3QgaGl0VGVzdFJlcXVlc3QodHJ1ZSwgdHJ1ZSk7CisgICAgICAg
ICAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHQod2hlZWxFdmVudC5wb3MoKSk7CisgICAg
ICAgICAgICByZW5kZXJlcigpLT5sYXllcigpLT5oaXRUZXN0KGhpdFRlc3RSZXF1ZXN0LCBoaXRU
ZXN0UmVzdWx0KTsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBoaXRUZXN0UmVzdWx0LmlubmVy
Tm9kZSgpOwogICAgICAgICAgICAgaWYgKCFub2RlKQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIC8vRGVmYXVsdCB0byBzY3JvbGxpbmcgdGhlIHBhZ2UKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkocmV2aXNpb24gMTc1OTQp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw0NiArMjcsNTAgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5j
bHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGll
bnRHZGsuaCIKKyNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJDU3RyaW5nLmgiCi0j
aW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgIlRleHRGaWVsZC5oIgorI2luY2x1ZGUgIkN1cnNv
ci5oIgorI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIK
ICNpbmNsdWRlICJGb250LmgiCi0jaW5jbHVkZSAiTGlzdEJveC5oIgotI2luY2x1ZGUgIkludFBv
aW50LmgiCi0jaW5jbHVkZSAiV2lkZ2V0LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW5jbHVkZSAiU2xpZGVyLmgiCi0jaW5jbHVkZSAiQ3Vyc29yLmgiCi0jaW5jbHVkZSAibG9h
ZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVHZGsuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiS1VSTC5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtU2Nyb2xsQmFyLmgiCi0jaW5jbHVkZSAiU2Nyb2xsQmFyLmgiCi0jaW5jbHVkZSAi
UGF0aC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgotI2luY2x1ZGUgIkNvb2tp
ZUphci5oIgotI2luY2x1ZGUgIlNjcmVlbi5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKKyNpbmNsdWRlICJJY29uLmgiCisjaW5jbHVkZSAiSWNv
bkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiSWNvbkxvYWRlci5oIgorI2luY2x1ZGUgIkludFBvaW50
LmgiCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSAi
bG9hZGVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGF0aC5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2Nyb2xsQmFyLmgiCiAjaW5jbHVk
ZSAiUGx1Z0luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRl
ICJGcmFtZUdkay5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZUdkay5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAi
U2NyZWVuLmgiCisjaW5jbHVkZSAiU2Nyb2xsQmFyLmgiCisjaW5jbHVkZSAiU2xpZGVyLmgiCiAj
aW5jbHVkZSAiVGV4dEJvdW5kYXJpZXMuaCIKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCi0j
aW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKLSNpbmNsdWRlICJJY29uLmgiCi0jaW5jbHVkZSAiSWNv
bkxvYWRlci5oIgotI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgotI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlLmgiCisjaW5jbHVkZSAiVGV4dEZpZWxkLmgiCisjaW5jbHVkZSAiV2lkZ2V0LmgiCisj
aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKKyNkZWZpbmUgbm90SW1wbGVtZW50ZWQoKSBkbyB7IGZwcmludGYoc3RkZXJy
LCAiRklYTUU6IFVOSU1QTEVNRU5URUQ6ICVzIGluICVzOiVkXG4iLCBfX0ZVTkNUSU9OX18sIF9f
RklMRV9fLCBfX0xJTkVfXyk7IH0gd2hpbGUoMCkKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogc3Ry
dWN0IFBsYXRmb3JtRGF0YVN0cnVjdAogewpAQCAtNzcsOCArODEsNiBAQAogfTsKIH0KIAotI2Rl
ZmluZSBub3RJbXBsZW1lbnRlZCgpIGRvIHsgZnByaW50ZihzdGRlcnIsICJGSVhNRTogVU5JTVBM
RU1FTlRFRDogJXMgaW4gJXM6JWRcbiIsIF9fRlVOQ1RJT05fXywgX19GSUxFX18sIF9fTElORV9f
KTsgfSB3aGlsZSgwKQotCiB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQm9yZGVyKCkgeyBub3RJbXBs
ZW1lbnRlZCgpOyB9CiBib29sIEZyYW1lVmlldzo6cGFzc01vdXNlUHJlc3NFdmVudFRvU2Nyb2xs
YmFyKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBQbGF0Zm9ybVNjcm9sbGJhciopIHsg
cmV0dXJuIGZhbHNlOyB9CiBib29sIEZyYW1lVmlldzo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3Vi
ZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikgeyByZXR1cm4gdHJ1
ZTsgfQpAQCAtMTE0LDE4ICsxMTYsNyBAQAogdm9pZCBTbGlkZXI6OnNldEZvbnQoV2ViQ29yZTo6
Rm9udCBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogZG91YmxlIFNsaWRlcjo6dmFsdWUo
KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKLXZvaWQgTGlzdEJveDo6
c2V0U2VsZWN0ZWQoaW50LCBib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUludFNpemUgTGlz
dEJveDo6c2l6ZUZvck51bWJlck9mTGluZXMoaW50KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBJbnRTaXplKCk7IH0KLWJvb2wgTGlzdEJveDo6aXNTZWxlY3RlZChpbnQpIGNvbnN0
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KLXZvaWQgTGlzdEJveDo6YXBwZW5kSXRl
bShEZXByZWNhdGVkU3RyaW5nIGNvbnN0JiwgTGlzdEJveEl0ZW1UeXBlLCBib29sKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KLXZvaWQgTGlzdEJveDo6ZG9uZUFwcGVuZGluZ0l0ZW1zKCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9Ci12b2lkIExpc3RCb3g6OnNldFdyaXRpbmdEaXJlY3Rpb24oVGV4dERp
cmVjdGlvbikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIExpc3RCb3g6OnNldEVuYWJsZWQo
Ym9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIExpc3RCb3g6OmNsZWFyKCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9Ci1ib29sIExpc3RCb3g6OmNoZWNrc0Rlc2NlbmRhbnRzRm9yRm9jdXMo
KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci0KIFdpZGdldDo6Rm9jdXNQ
b2xpY3kgU2xpZGVyOjpmb2N1c1BvbGljeSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIE5vRm9jdXM7IH0KLVdpZGdldDo6Rm9jdXNQb2xpY3kgTGlzdEJveDo6Zm9jdXNQb2xpY3ko
KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBOb0ZvY3VzOyB9CiBXaWRnZXQ6OkZv
Y3VzUG9saWN5IFRleHRGaWVsZDo6Zm9jdXNQb2xpY3koKSBjb25zdCB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBOb0ZvY3VzOyB9CiAKIEN1cnNvcjo6Q3Vyc29yKEltYWdlKiwgY29uc3QgSW50
UG9pbnQmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KQEAgLTEzOCw5ICsxMjksNyBAQAogaW50IFdl
YkNvcmU6OmZpbmROZXh0V29yZEZyb21JbmRleChVQ2hhciBjb25zdCosIGludCwgaW50LCBib29s
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotVmVjdG9yPGNoYXI+IFNlcnZlU3luY2hyb25vdXNSZXF1ZXN0KExvYWRlciosRG9jTG9hZGVy
KixSZXNvdXJjZUhhbmRsZSosS1VSTCYsRGVwcmVjYXRlZFN0cmluZyYpIHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIFZlY3RvcjxjaGFyPigpOyB9Ci0KK1ZlY3RvcjxjaGFyPiBTZXJ2ZVN5bmNo
cm9ub3VzUmVxdWVzdChMb2FkZXIgKmxvYWRlciwgRG9jTG9hZGVyICpkb2NMb2FkZXIsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxjaGFyPigpOyB9CiB9CiAKIHZvaWQgRnJh
bWVHZGs6OmZvY3VzV2luZG93KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CkBAIC0xNzksNiArMTY4
LDEyIEBACiBLVVJMIEZyYW1lR2RrOjpvcmlnaW5hbFJlcXVlc3RVUkwoKSBjb25zdCB7IHJldHVy
biBLVVJMKCk7IH0KIFBsdWdpbiogRnJhbWVHZGs6OmNyZWF0ZVBsdWdpbihFbGVtZW50KiwgS1VS
TCBjb25zdCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBT
dHJpbmcgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKK3ZvaWQgRnJh
bWVHZGs6OmdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQoraW50IEZyYW1lR2RrOjpnZXRIaXN0b3J5TGVuZ3RoKCkge25vdEltcGxlbWVudGVkKCk7IHJl
dHVybiAwOyB9CitLVVJMIEZyYW1lR2RrOjpoaXN0b3J5VVJMKGludCBkaXN0YW5jZSkgeyBub3RJ
bXBsZW1lbnRlZCgpOyByZXR1cm4gS1VSTCgpOyB9Citib29sIENocm9tZUNsaWVudEdkazo6Y2Fu
UnVuTW9kYWwoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Cit2b2lkIENocm9tZUNs
aWVudEdkazo6cnVuTW9kYWwoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKwogaW50IFdlYkNvcmU6
OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KGNvbnN0IFBhZ2UqKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiAwOyB9CiBib29sIFdlYkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZShjb25zdCBQYWdl
KikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMjA2LDkgKzIwMSw2
IEBACiBib29sIFdlYkNvcmU6OlBsdWdJbkluZm9TdG9yZTo6c3VwcG9ydHNNSU1FVHlwZShjb25z
dCBXZWJDb3JlOjpTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogdm9pZCBXZWJDb3JlOjpyZWZy
ZXNoUGx1Z2lucyhib29sKSB7IH0KIAotdm9pZCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6YXNz
ZW1ibGVSZXNwb25zZUhlYWRlcnMoKSBjb25zdCB7IH0KLXZvaWQgV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnJldHJpZXZlQ2hhcnNldCgpIGNvbnN0IHsgfQotCiB2b2lkIEZyYW1lR2RrOjpyZXN0
b3JlRG9jdW1lbnRTdGF0ZSgpIHsgfQogdm9pZCBGcmFtZUdkazo6cGFydENsZWFyZWRJbkJlZ2lu
KCkgeyB9CiB2b2lkIEZyYW1lR2RrOjpjcmVhdGVFbXB0eURvY3VtZW50KCkgeyB9CkBAIC0yMzEs
NiArMjIzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2b2lkIHN5c3RlbUJlZXAoKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KKwogYm9vbCBDaGVja0lmUmVsb2FkaW5nKERvY0xvYWRlciop
IHsgcmV0dXJuIGZhbHNlOyB9CiB0aW1lX3QgQ2FjaGVPYmplY3RFeHBpcmVzVGltZShEb2NMb2Fk
ZXIqLCBQbGF0Zm9ybVJlc3BvbnNlKSB7IHJldHVybiAwOyB9CiB2b2lkIENoZWNrQ2FjaGVPYmpl
Y3RTdGF0dXMoRG9jTG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqKSB7IH0KQEAgLTI5Niw2ICsyOTAs
NyBAQAogdm9pZCBQYXRoOjphZGRBcmMoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0LCBmbG9hdCwg
ZmxvYXQsIGJvb2wpIHsgfQogdm9pZCBQYXRoOjphZGRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIHsg
fQogdm9pZCBQYXRoOjphZGRFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYpIHsgfQordm9pZCBQYXRo
Ojp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pIHt9CiAKIFRleHRG
aWVsZDo6VGV4dEZpZWxkKFRleHRGaWVsZDo6VHlwZSkgeyB9CiBUZXh0RmllbGQ6On5UZXh0Rmll
bGQoKSB7IH0KQEAgLTMyNiwxMSArMzIxLDYgQEAKIHZvaWQgUGxhdGZvcm1TY3JvbGxiYXI6OnVw
ZGF0ZVRodW1iUHJvcG9ydGlvbigpIHsgfQogdm9pZCBQbGF0Zm9ybVNjcm9sbGJhcjo6c2V0UmVj
dChjb25zdCBJbnRSZWN0JikgeyB9CiAKLUxpc3RCb3g6Okxpc3RCb3goKSB7IH0KLUxpc3RCb3g6
On5MaXN0Qm94KCkgeyB9Ci12b2lkIExpc3RCb3g6OnNldFNlbGVjdGlvbk1vZGUoTGlzdEJveDo6
U2VsZWN0aW9uTW9kZSkgeyB9Ci12b2lkIExpc3RCb3g6OnNldEZvbnQoV2ViQ29yZTo6Rm9udCBj
b25zdCYpIHsgfQotCiBGaWxlQ2hvb3Nlcjo6RmlsZUNob29zZXIoRG9jdW1lbnQqLCBSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbCopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogRmlsZUNob29zZXI6On5G
aWxlQ2hvb3NlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogUGFzc1JlZlB0cjxGaWxlQ2hvb3Nl
cj4gRmlsZUNob29zZXI6OmNyZWF0ZShEb2N1bWVudCosIFJlbmRlckZpbGVVcGxvYWRDb250cm9s
KikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQpAQCAtMzUyLDYgKzM0Miw4IEBACiB2
b2lkIFJlbmRlclRoZW1lR2RrOjphZGp1c3RUZXh0RmllbGRTdHlsZShDU1NTdHlsZVNlbGVjdG9y
KiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KiBlKSBjb25zdCB7fQogYm9vbCBSZW5kZXJUaGVtZUdk
azo6cGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWlu
dEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gZmFsc2U7IH0KIAorYm9vbCBSZXNvdXJj
ZUxvYWRlcjo6bG9hZHNCbG9ja2VkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7
IH0KKwogSWNvbjo6SWNvbigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogSWNvbjo6fkljb24oKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6bmV3SWNvbkZvckZp
bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gUGFz
c1JlZlB0cjxJY29uPihuZXcgSWNvbigpKTsgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsv
RnJhbWVHZGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5o
CShyZXZpc2lvbiAxNzU5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDEyICszMCwxNCBAQAogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5o
IgogI2luY2x1ZGUgPGdkay9nZGsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBF
bGVtZW50OwogY2xhc3MgRnJhbWVHZGs7CitjbGFzcyBFZGl0b3JDbGllbnQ7CiAKIGNsYXNzIEZy
YW1lR2RrQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTczLDEzICs3NSwxNCBAQAogCiBjbGFzcyBGcmFt
ZUdkayA6IHB1YmxpYyBGcmFtZSB7CiBwdWJsaWM6Ci0gICAgRnJhbWVHZGsoUGFnZSosIEVsZW1l
bnQqKTsKKyAgICBGcmFtZUdkayhQYWdlKiwgRWxlbWVudCosIFBhc3NSZWZQdHI8RWRpdG9yQ2xp
ZW50Pik7CiAgICAgRnJhbWVHZGsoR2RrRHJhd2FibGUqKTsKICAgICB2aXJ0dWFsIH5GcmFtZUdk
aygpOwogCiAgICAgdm9pZCBoYW5kbGVHZGtFdmVudChHZGtFdmVudCopOwogICAgIHZpcnR1YWwg
dm9pZCBzdWJtaXRGb3JtKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgdXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpOworICAgIHZpcnR1YWwgdm9p
ZCB1cmxTZWxlY3RlZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgRXZlbnQqKTsKKyAg
ICB2b2lkIG9wZW5VUkwoY29uc3QgS1VSTCYgdXJsKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRU
aXRsZShjb25zdCBTdHJpbmcmKTsKIApAQCAtMTQ2LDYgKzE0OSwxMCBAQAogICAgIHZpcnR1YWwg
dm9pZCBwYXJ0Q2xlYXJlZEluQmVnaW4oKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Hb0JhY2tP
ckZvcndhcmQoaW50IGRpc3RhbmNlKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZ29CYWNrT3JG
b3J3YXJkKGludCBkaXN0YW5jZSk7CisgICAgdmlydHVhbCBpbnQgZ2V0SGlzdG9yeUxlbmd0aCgp
OworICAgIHZpcnR1YWwgS1VSTCBoaXN0b3J5VVJMKGludCBkaXN0YW5jZSk7CisKICAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOwogCiAgICAgdmlydHVhbCBib29sIGNhblBh
c3RlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1OTQpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDA2LTExLTA0ICBLcnp5c3p0b2YgS293YWxj
enlrLCwsICA8a2tvd2FsY3p5a0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBD
SEFOR0VECisKKyAgICAgICAgTGludXhcR2RrIGNvZGluZyBjbGVhbnVwcy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dkay9DaHJvbWVDbGllbnRHZGsuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRHZGs6On5DaHJvbWVDbGllbnRHZGspOgorICAgICAgICAqIHBsYXRmb3Jt
L2dkay9DdXJzb3JHZGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRlckN1cnNvcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRv
U2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjpGcmFtZUdkayk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUdkazo6c3VibWl0Rm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUdkazo6dXJsU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVHZGs6Om9wZW5VUkwp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVHZGs6OmhhbmRsZUdka0V2ZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9nZGsvRnJhbWVHZGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvUmVuZGVy
UG9wdXBNZW51R2RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6dXBkYXRlRnJv
bUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9UZW1wb3JhcnlMaW5rU3R1YnMuY3Bw
OgorICAgICAgICAoU2xpZGVyOjpmb2N1c1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2
ZVN5bmNocm9ub3VzUmVxdWVzdCk6CisgICAgICAgIChGcmFtZUdkazo6Z29CYWNrT3JGb3J3YXJk
KToKKyAgICAgICAgKEZyYW1lR2RrOjpnZXRIaXN0b3J5TGVuZ3RoKToKKyAgICAgICAgKEZyYW1l
R2RrOjpoaXN0b3J5VVJMKToKKyAgICAgICAgKENocm9tZUNsaWVudEdkazo6Y2FuUnVuTW9kYWwp
OgorICAgICAgICAoQ2hyb21lQ2xpZW50R2RrOjpydW5Nb2RhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpzeXN0ZW1CZWVwKToKKyAgICAgICAgKFBhdGg6OnRyYW5zZm9ybSk6CisgICAgICAgIChSZXNv
dXJjZUxvYWRlcjo6bG9hZHNCbG9ja2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2dk
ay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRvd25sb2Fk
VGltZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6
OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmFkZCk6
CisKIDIwMDYtMTEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IENoYW5nZSBzdWdnZXN0ZWQgYnkgTWl0ei4KSW5kZXg6IFdlYktpdFRvb2xzL0dka0xhdW5jaGVy
L21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3Bw
CShyZXZpc2lvbiAxNzU5NCkKKysrIFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiBjbGFzcyBMYXVuY2hlckZyYW1lR2RrIDog
cHVibGljIEZyYW1lR2RrCiB7CiBwdWJsaWM6Ci0gICAgTGF1bmNoZXJGcmFtZUdkayhQYWdlKiBw
YWdlLCBFbGVtZW50KiBlbGVtZW50KSA6IEZyYW1lR2RrKHBhZ2UsIGVsZW1lbnQpLCBtX2V4aXRB
ZnRlckxvYWRpbmcoZmFsc2UpIHt9CisgICAgTGF1bmNoZXJGcmFtZUdkayhQYWdlKiBwYWdlLCBF
bGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEVkaXRvckNsaWVudD4gZWRpdG9yQ2xpZW50KSA6
IEZyYW1lR2RrKHBhZ2UsIGVsZW1lbnQsIGVkaXRvckNsaWVudCksIG1fZXhpdEFmdGVyTG9hZGlu
ZyhmYWxzZSkge30KICAgICBMYXVuY2hlckZyYW1lR2RrKEdka0RyYXdhYmxlKiBkcmF3YWJsZSkg
OiBGcmFtZUdkayhkcmF3YWJsZSksIG1fZXhpdEFmdGVyTG9hZGluZyhmYWxzZSkge30KICAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOwogICAgIHZvaWQgc2V0RXhpdEFmdGVy
TG9hZGluZyhib29sIGV4aXRBZnRlckxvYWRpbmcpIHsgbV9leGl0QWZ0ZXJMb2FkaW5nID0gZXhp
dEFmdGVyTG9hZGluZzsgfQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1OTQpCisrKyBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwNi0xMS0wNCAg
S3J6eXN6dG9mIEtvd2FsY3p5ayAgPGtrb3dhbGN6eWtAZ21haWwuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExpbnV4XEdkayBidWlsZCBmaXhl
cyArIGNvZGluZyBndWlkZWxpbmUgY2xlYW51cHMuCisKKyAgICAgICAgKiBHZGtMYXVuY2hlci9t
YWluLmNwcDoKKyAgICAgICAgKExhdW5jaGVyRnJhbWVHZGs6OkxhdW5jaGVyRnJhbWVHZGspOgor
CiAyMDA2LTExLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBUaW0gSGF0Y2hlci4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11389</attachid>
            <date>2006-11-05 18:14:33 -0800</date>
            <delta_ts>2006-11-05 19:31:42 -0800</delta_ts>
            <desc>linux\gdk build fixes</desc>
            <filename>gdk.patch</filename>
            <type>text/plain</type>
            <size>25588</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9kYXRlX29iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUva2pzL2RhdGVfb2JqZWN0LmNwcAkocmV2aXNpb24gMTc2MDYpCisrKyBK
YXZhU2NyaXB0Q29yZS9ranMvZGF0ZV9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQs
NyArMTU0LDcgQEAKICAgICByZXR1cm4gVVN0cmluZyhidWZmZXIsIGxlbmd0aCk7CiB9CiAKLSNl
bHNlIGlmIFBMQVRGT1JNKFdJTl9PUykKKyNlbHNlCiAKIGVudW0gTG9jYWxlRGF0ZVRpbWVGb3Jt
YXQgeyBMb2NhbGVEYXRlQW5kVGltZSwgTG9jYWxlRGF0ZSwgTG9jYWxlVGltZSB9OwogIApJbmRl
eDogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMTc2MDYpCisrKyBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwNi0xMS0wNSAgS3J6eXN6dG9mIEtv
d2FsY3p5aywsLCAgPGtrb3dhbGN6eWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB3YXJuaW5nIGFib3V0IGdhcmJhZ2Ug
YWZ0ZXIgI2Vsc2UuICNlbHNlIGNsYXVzZSBhcHBsaWVzIGZvciBhbGwKKyAgICAgICAgbm9uLW1h
YyBwbGF0Zm9ybXMsIG5vdCBvbmx5IHdpbi4KKworICAgICAgICAqIGtqcy9kYXRlX29iamVjdC5j
cHA6CisKIDIwMDYtMTEtMDMgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggYnVpbGQKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsv
UmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE3NjA2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBACiAgICAgUmVzb3VyY2VIYW5kbGUqIGpv
YiA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4ob2JqKTsKICAgICBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKiBkID0gam9iLT5nZXRJbnRlcm5hbCgpOwogICAgIGludCB0b3RhbFNpemUgPSBz
aXplICogbm1lbWI7Ci0gICAgZC0+Y2xpZW50LT5kaWRSZWNlaXZlRGF0YShqb2IsIHN0YXRpY19j
YXN0PGNoYXIqPihwdHIpLCB0b3RhbFNpemUpOworICAgIGQtPm1fY2xpZW50LT5kaWRSZWNlaXZl
RGF0YShqb2IsIHN0YXRpY19jYXN0PGNoYXIqPihwdHIpLCB0b3RhbFNpemUpOwogICAgIHJldHVy
biB0b3RhbFNpemU7CiB9CiAKQEAgLTg2LDggKzg2LDggQEAKICAgICAgICAgICAgIENVUkxjb2Rl
IHJlcyA9IGN1cmxfZWFzeV9wZXJmb3JtKGQtPm1faGFuZGxlKTsKICAgICAgICAgICAgIGlmIChy
ZXMgIT0gQ1VSTEVfT0spCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJFcnJvciBXSVRIIEpPQiAl
ZFxuIiwgcmVzKTsKLSAgICAgICAgICAgIGQtPmNsaWVudC0+cmVjZWl2ZWRBbGxEYXRhKGpvYiwg
MCk7Ci0gICAgICAgICAgICBkLT5jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoam9iKTsKKyAgICAg
ICAgICAgIGQtPm1fY2xpZW50LT5yZWNlaXZlZEFsbERhdGEoam9iLCAwKTsKKyAgICAgICAgICAg
IGQtPm1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7CiAgICAgICAgICAgICBjdXJsX2Vh
c3lfY2xlYW51cChkLT5tX2hhbmRsZSk7CiAgICAgICAgICAgICBkLT5tX2hhbmRsZSA9IDA7CiAg
ICAgICAgIH0KQEAgLTE2OSw4ICsxNjksOCBAQAogICAgICAgICBqb2JzLT5yZW1vdmUoam9iKTsK
ICAgICBpZiAoam9icy0+aXNFbXB0eSgpKQogICAgICAgICBtX2Rvd25sb2FkVGltZXIuc3RvcCgp
OwotICAgIGQtPmNsaWVudC0+cmVjZWl2ZWRBbGxEYXRhKGpvYiwgMCk7Ci0gICAgZC0+Y2xpZW50
LT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7CisgICAgZC0+bV9jbGllbnQtPnJlY2VpdmVkQWxsRGF0
YShqb2IsIDApOworICAgIGQtPm1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7CiAgICAg
aWYgKGQtPm1faGFuZGxlKSB7CiAgICAgICAgIGN1cmxfbXVsdGlfcmVtb3ZlX2hhbmRsZShjdXJs
TXVsdGlIYW5kbGUsIGQtPm1faGFuZGxlKTsKICAgICAgICAgY3VybF9lYXN5X2NsZWFudXAoZC0+
bV9oYW5kbGUpOwpAQCAtMTgyLDcgKzE4Miw3IEBACiB7CiAgICAgYm9vbCBzdGFydFRpbWVyID0g
am9icy0+aXNFbXB0eSgpOwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBqb2ItPmdl
dEludGVybmFsKCk7Ci0gICAgRGVwcmVjYXRlZFN0cmluZyB1cmwgPSBkLT5VUkwudXJsKCk7Cisg
ICAgRGVwcmVjYXRlZFN0cmluZyB1cmwgPSBqb2ItPnVybCgpLnVybCgpOwogICAgIGQtPm1faGFu
ZGxlID0gY3VybF9lYXN5X2luaXQoKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxl
LCBDVVJMT1BUX1BSSVZBVEUsIGpvYik7CiAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRs
ZSwgQ1VSTE9QVF9FUlJPUkJVRkZFUiwgZXJyb3JfYnVmZmVyKTsKQEAgLTIwMyw3ICsyMDMsNyBA
QAogICAgICAgICAvLyBkb24ndCBjYWxsIHBlcmZvcm0sIGJlY2F1c2UgZXZlbnRzIG11c3QgYmUg
YXN5bmMKICAgICAgICAgLy8gdGltZW91dCB3aWxsIG9jY3VyIGFuZCBkbyBjdXJsX211bHRpX3Bl
cmZvcm0KICAgICAgICAgaWYgKHJldCAmJiByZXQgIT0gQ1VSTE1fQ0FMTF9NVUxUSV9QRVJGT1JN
KSB7Ci0gICAgICAgICAgICBwcmludGYoIkVycm9yICVkIHN0YXJ0aW5nIGpvYiAlc1xuIiwgcmV0
LCBkLT5VUkwudXJsKCkuYXNjaWkoKSk7CisgICAgICAgICAgICBwcmludGYoIkVycm9yICVkIHN0
YXJ0aW5nIGpvYiAlc1xuIiwgcmV0LCBqb2ItPnVybCgpLnVybCgpLmFzY2lpKCkpOwogICAgICAg
ICAgICAgam9iLT5zZXRFcnJvcigxKTsKICAgICAgICAgICAgIHN0YXJ0VGltZXIgPWZhbHNlOwog
ICAgICAgICB9IGVsc2UKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0N1cnNvckdkay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvQ3Vyc29yR2RrLmNwcAkocmV2aXNp
b24gMTc2MDYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9DdXJzb3JHZGsuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw2ICs2MywxMiBAQAogICAgIGdka19jdXJzb3JfcmVmKGMpOwogfQogCitj
b25zdCBDdXJzb3ImIHBvaW50ZXJDdXJzb3IoKQoreworICAgIHN0YXRpYyBDdXJzb3IgYyA9IGdk
a19jdXJzb3JfbmV3KEdES19MRUZUX1BUUik7CisgICAgcmV0dXJuIGM7Cit9CisKIGNvbnN0IEN1
cnNvciYgY3Jvc3NDdXJzb3IoKQogewogICAgIHN0YXRpYyBDdXJzb3IgYyA9IGdka19jdXJzb3Jf
bmV3KEdES19DUk9TUyk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9TY3JlZW5HZGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1NjcmVlbkdkay5jcHAJKHJldmlz
aW9uIDE3NjA2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvU2NyZWVuR2RrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiU2NyZWVuLmgiCiAKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIldpZGdldC5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogCiAj
aW5jbHVkZSA8Z2RrL2dkay5oPgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9DaHJvbWVD
bGllbnRHZGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9DaHJvbWVDbGll
bnRHZGsuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0Nocm9tZUNsaWVu
dEdkay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBACisvKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDaHJv
bWVDbGllbnRHZGtfSAorI2RlZmluZSBDaHJvbWVDbGllbnRHZGtfSAorCisjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2hyb21lQ2xpZW50
R2RrIDogcHVibGljIENocm9tZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50R2RrKCkgeyB9CisgICAgICAgIAorICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgp
OworICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpOworfTsKKworfQorCisjZW5kaWYgLy8gQ2hy
b21lQ2xpZW50R2RrX0gKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvcGxhdGZvcm0vZ2Rr
L0Nocm9tZUNsaWVudEdkay5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAq
CgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwCShy
ZXZpc2lvbiAxNzYwNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1JlbmRlclBvcHVwTWVudUdk
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE2ICszOCw2IEBACiB7CiB9CiAKLXZvaWQgUG9w
dXBNZW51OjpjbGVhcigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQb3B1
cE1lbnU6OnBvcHVsYXRlKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFBv
cHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CkBAIC01OCwyMCArNDgsMTAgQEAKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIFBvcHVwTWVudTo6YWRkU2VwYXJhdG9yKCkKK3ZvaWQgUG9wdXBNZW51Ojp1
cGRhdGVGcm9tRWxlbWVudCgpIAogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsgCiB9CiAKLXZvaWQgUG9wdXBNZW51OjphZGRHcm91cExhYmVsKEhUTUxPcHRH
cm91cEVsZW1lbnQqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUG9wdXBN
ZW51OjphZGRPcHRpb24oSFRNTE9wdGlvbkVsZW1lbnQqKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci19Ci0KLX0KLQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAkocmV2aXNpb24g
MTc2MDYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDM1ICsyNywzNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
RnJhbWVHZGsuaCIKLQotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKLSNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnRHZGsuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKLSNpbmNsdWRl
ICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiUGx1Z2luLmgi
CisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUg
IkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVk
ZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIK
KyNpbmNsdWRlICJLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNl
RXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzLmgiCisjaW5jbHVkZSAiUGx1Z2luLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisj
aW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwu
aCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKKyNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJUeXBpbmdDb21tYW5k
LmgiCi0jaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCi0jaW5jbHVkZSAiS2V5Ym9hcmRDb2Rl
cy5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+
CiAKLQogLy8gVGhpcyBmdW5jdGlvbiBsb2FkcyByZXNvdXJjZXMgZnJvbSBXZWJLaXQKIC8vIFRo
aXMgZG9lcyBub3QgYmVsb25nIGhlcmUgYW5kIEknbSBub3Qgc3VyZSB3aGVyZQogLy8gaXQgc2hv
dWxkIGdvCkBAIC0xNTEsMTMgKzE1MiwxMyBAQAogICAgIGlmICghci0+bGF5ZXIoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaW50IHggPSByLT5sYXllcigpLT5zY3JvbGxYT2Zmc2V0KCkgKyBk
ZWx0YVg7Ci0gICAgaW50IHkgPSByLT5sYXllcigpLT5zY3JvbGxZT2Zmc2V0KCkgKyBkZWx0YVk7
CisgICAgaW50IHggPSByLT5sYXllcigpLT5zY3JvbGxYT2Zmc2V0KCkgKyAoaW50KWRlbHRhWDsK
KyAgICBpbnQgeSA9IHItPmxheWVyKCktPnNjcm9sbFlPZmZzZXQoKSArIChpbnQpZGVsdGFZOwog
ICAgIHItPmxheWVyKCktPnNjcm9sbFRvT2Zmc2V0KHgsIHksIHRydWUsIHRydWUpOwogfQogCiBG
cmFtZUdkazo6RnJhbWVHZGsoR2RrRHJhd2FibGUqIGdka2RyYXdhYmxlKQotICAgIDogRnJhbWUo
bmV3IFBhZ2UsIDApLCBtX2RyYXdhYmxlKGdka2RyYXdhYmxlKQorICAgIDogRnJhbWUobmV3IFBh
Z2UobmV3IENocm9tZUNsaWVudEdkaygpKSwgMCwgMCksIG1fZHJhd2FibGUoZ2RrZHJhd2FibGUp
CiB7CiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbmV3IFNldHRpbmdzOwogICAgIHNldHRpbmdz
LT5zZXRBdXRvTG9hZEltYWdlcyh0cnVlKTsKQEAgLTE4Miw4ICsxODMsOCBAQAogICAgIG1fY2xp
ZW50LT5zZXRGcmFtZSh0aGlzKTsKIH0KIAotRnJhbWVHZGs6OkZyYW1lR2RrKFBhZ2UqIHBhZ2Us
IEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBGcmFtZShwYWdlLGVsZW1lbnQpCitGcmFtZUdkazo6
RnJhbWVHZGsoUGFnZSogcGFnZSwgRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxFZGl0b3JD
bGllbnQ+IGVkaXRvckNsaWVudCkKKyAgICA6IEZyYW1lKHBhZ2UsZWxlbWVudCwgZWRpdG9yQ2xp
ZW50KQogewogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG5ldyBTZXR0aW5nczsKICAgICBzZXR0
aW5ncy0+c2V0QXV0b0xvYWRJbWFnZXModHJ1ZSk7CkBAIC0xOTksNyArMjAwLDcgQEAKIAogdm9p
ZCBGcmFtZUdkazo6c3VibWl0Rm9ybShjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRS
ZXF1ZXN0LCBFdmVudCopCiB7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBmcmFtZUxv
YWRSZXF1ZXN0Lm1fcmVxdWVzdDsKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IGZyYW1l
TG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCk7CiAKICAgICAvLyBGSVhNRTogdGhpcyBpcyBh
IGhhY2sgaW5oZXJpdGVkIGZyb20gRnJhbWVNYWMsIGFuZCBzaG91bGQgYmUgcHVzaGVkIGludG8g
RnJhbWUKICAgICBpZiAoZC0+bV9zdWJtaXR0ZWRGb3JtVVJMID09IHJlcXVlc3QudXJsKCkpCkBA
IC0yMDgsMTMgKzIwOSwxNCBAQAogICAgIGQtPm1fc3VibWl0dGVkRm9ybVVSTCA9IHJlcXVlc3Qu
dXJsKCk7CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zdWJtaXRGb3Jt
KHJlcXVlc3QuZG9Qb3N0KCkgPyAiUE9TVCIgOiAiR0VUIiwgcmVxdWVzdC51cmwoKSwgJnJlcXVl
c3QucG9zdERhdGEpOworICAgICAgICBtX2NsaWVudC0+c3VibWl0Rm9ybShyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSwgcmVxdWVzdC51cmwoKSwgJnJlcXVlc3QuaHR0cEJvZHkoKSk7CisKICAgICBjbGVh
clJlY29yZGVkRm9ybVZhbHVlcygpOwogfQogCiB2b2lkIEZyYW1lR2RrOjp1cmxTZWxlY3RlZChj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1ZXN0LCBFdmVudCopCiB7Ci0gICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBmcmFtZUxvYWRSZXF1ZXN0Lm1fcmVxdWVzdDsKKyAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCk7CiAKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CkBAIC0yMjIsNiAr
MjI0LDE0IEBACiAgICAgbV9jbGllbnQtPm9wZW5VUkwocmVxdWVzdC51cmwoKSk7CiB9CiAKKyNp
ZiAwCit2b2lkIEZyYW1lR2RrOjpvcGVuVVJMKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBBU1NF
UlQobV9jbGllbnQpOworICAgIG1fY2xpZW50LT5vcGVuVVJMKHVybCk7Cit9CisjZW5kaWYKKwog
U3RyaW5nIEZyYW1lR2RrOjp1c2VyQWdlbnQoKSBjb25zdAogewogICAgIHJldHVybiAiTW96aWxs
YS81LjAgKFBDOyBVOyBJbnRlbDsgTGludXg7IGVuKSBBcHBsZVdlYktpdC80MjArIChLSFRNTCwg
bGlrZSBHZWNrbykiOwpAQCAtMjYxLDkgKzI3MSwxMSBAQAogICAgICAgICAgICAgaWYgKHdoZWVs
RXZlbnQuaXNBY2NlcHRlZCgpKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgUmVuZGVyT2JqZWN0OjpOb2RlSW5mbyBub2RlSW5mbyh0cnVlLCB0
cnVlKTsKLSAgICAgICAgICAgIHJlbmRlcmVyKCktPmxheWVyKCktPmhpdFRlc3Qobm9kZUluZm8s
IHdoZWVsRXZlbnQucG9zKCkpOwotICAgICAgICAgICAgTm9kZSogbm9kZSA9IG5vZGVJbmZvLmlu
bmVyTm9kZSgpOworCisgICAgICAgICAgICBIaXRUZXN0UmVxdWVzdCBoaXRUZXN0UmVxdWVzdCh0
cnVlLCB0cnVlKTsKKyAgICAgICAgICAgIEhpdFRlc3RSZXN1bHQgaGl0VGVzdFJlc3VsdCh3aGVl
bEV2ZW50LnBvcygpKTsKKyAgICAgICAgICAgIHJlbmRlcmVyKCktPmxheWVyKCktPmhpdFRlc3Qo
aGl0VGVzdFJlcXVlc3QsIGhpdFRlc3RSZXN1bHQpOworICAgICAgICAgICAgTm9kZSogbm9kZSA9
IGhpdFRlc3RSZXN1bHQuaW5uZXJOb2RlKCk7CiAgICAgICAgICAgICBpZiAoIW5vZGUpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgLy9EZWZhdWx0IHRvIHNjcm9sbGluZyB0
aGUgcGFnZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9UZW1wb3JhcnlMaW5rU3R1YnMu
Y3BwCShyZXZpc2lvbiAxNzYwNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1RlbXBvcmFyeUxp
bmtTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDQ2ICsyNyw1MCBAQAogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgor
I2luY2x1ZGUgIkNocm9tZUNsaWVudEdkay5oIgorI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2lu
Y2x1ZGUgIkNTdHJpbmcuaCIKLSNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiVGV4dEZpZWxk
LmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKICNpbmNs
dWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZvbnQuaCIKLSNpbmNsdWRlICJMaXN0Qm94
LmgiCi0jaW5jbHVkZSAiSW50UG9pbnQuaCIKLSNpbmNsdWRlICJXaWRnZXQuaCIKLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJTbGlkZXIuaCIKLSNpbmNsdWRlICJDdXJz
b3IuaCIKLSNpbmNsdWRlICJsb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUdkay5oIgorI2luY2x1
ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRl
ICJLVVJMLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TY3JvbGxCYXIuaCIKLSNpbmNsdWRlICJTY3Jv
bGxCYXIuaCIKLSNpbmNsdWRlICJQYXRoLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50
LmgiCi0jaW5jbHVkZSAiQ29va2llSmFyLmgiCi0jaW5jbHVkZSAiU2NyZWVuLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSGlzdG9yeS5oIgorI2luY2x1ZGUgIklj
b24uaCIKKyNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJY29uTG9hZGVyLmgi
CisjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTGFu
Z3VhZ2UuaCIKKyNpbmNsdWRlICJsb2FkZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdz
LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYXRo
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1T
Y3JvbGxCYXIuaCIKICNpbmNsdWRlICJQbHVnSW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJSZW5k
ZXJUaGVtZS5oIgotI2luY2x1ZGUgIkZyYW1lR2RrLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lR2RrLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJTY3JlZW4uaCIKKyNpbmNsdWRlICJTY3JvbGxCYXIuaCIKKyNp
bmNsdWRlICJTbGlkZXIuaCIKICNpbmNsdWRlICJUZXh0Qm91bmRhcmllcy5oIgotI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgotI2luY2x1ZGUgIklj
b24uaCIKLSNpbmNsdWRlICJJY29uTG9hZGVyLmgiCi0jaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgi
Ci0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJUZXh0RmllbGQuaCIKKyNp
bmNsdWRlICJXaWRnZXQuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2RlZmluZSBub3RJbXBsZW1lbnRlZCgp
IGRvIHsgZnByaW50ZihzdGRlcnIsICIlcyBGSVhNRTogVU5JTVBMRU1FTlRFRCAlczolZFxuIiwg
X19QUkVUVFlfRlVOQ1RJT05fXywgX19GSUxFX18sIF9fTElORV9fKTsgfSB3aGlsZSgwKQorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgUGxhdGZvcm1EYXRhU3RydWN0CiB7CkBAIC03Nyw4
ICs4MSw2IEBACiB9OwogfQogCi0jZGVmaW5lIG5vdEltcGxlbWVudGVkKCkgZG8geyBmcHJpbnRm
KHN0ZGVyciwgIkZJWE1FOiBVTklNUExFTUVOVEVEOiAlcyBpbiAlczolZFxuIiwgX19GVU5DVElP
Tl9fLCBfX0ZJTEVfXywgX19MSU5FX18pOyB9IHdoaWxlKDApCi0KIHZvaWQgRnJhbWVWaWV3Ojp1
cGRhdGVCb3JkZXIoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIGJvb2wgRnJhbWVWaWV3OjpwYXNz
TW91c2VQcmVzc0V2ZW50VG9TY3JvbGxiYXIoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYs
IFBsYXRmb3JtU2Nyb2xsYmFyKikgeyByZXR1cm4gZmFsc2U7IH0KIGJvb2wgRnJhbWVWaWV3Ojpw
YXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRz
JiwgRnJhbWUqKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xMTQsMTggKzExNiw3IEBACiB2b2lkIFNs
aWRlcjo6c2V0Rm9udChXZWJDb3JlOjpGb250IGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9
CiBkb3VibGUgU2xpZGVyOjp2YWx1ZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IDA7IH0KIAotdm9pZCBMaXN0Qm94OjpzZXRTZWxlY3RlZChpbnQsIGJvb2wpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQotSW50U2l6ZSBMaXN0Qm94OjpzaXplRm9yTnVtYmVyT2ZMaW5lcyhpbnQpIGNv
bnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIEludFNpemUoKTsgfQotYm9vbCBMaXN0Qm94
Ojppc1NlbGVjdGVkKGludCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQot
dm9pZCBMaXN0Qm94OjphcHBlbmRJdGVtKERlcHJlY2F0ZWRTdHJpbmcgY29uc3QmLCBMaXN0Qm94
SXRlbVR5cGUsIGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBMaXN0Qm94Ojpkb25l
QXBwZW5kaW5nSXRlbXMoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgTGlzdEJveDo6c2V0
V3JpdGluZ0RpcmVjdGlvbihUZXh0RGlyZWN0aW9uKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZv
aWQgTGlzdEJveDo6c2V0RW5hYmxlZChib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQg
TGlzdEJveDo6Y2xlYXIoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWJvb2wgTGlzdEJveDo6Y2hl
Y2tzRGVzY2VuZGFudHNGb3JGb2N1cygpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IDA7IH0KLQogV2lkZ2V0OjpGb2N1c1BvbGljeSBTbGlkZXI6OmZvY3VzUG9saWN5KCkgY29uc3Qg
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gTm9Gb2N1czsgfQotV2lkZ2V0OjpGb2N1c1BvbGlj
eSBMaXN0Qm94Ojpmb2N1c1BvbGljeSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IE5vRm9jdXM7IH0KIFdpZGdldDo6Rm9jdXNQb2xpY3kgVGV4dEZpZWxkOjpmb2N1c1BvbGljeSgp
IGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIE5vRm9jdXM7IH0KIAogQ3Vyc29yOjpD
dXJzb3IoSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAt
MTM4LDkgKzEyOSw3IEBACiBpbnQgV2ViQ29yZTo6ZmluZE5leHRXb3JkRnJvbUluZGV4KFVDaGFy
IGNvbnN0KiwgaW50LCBpbnQsIGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotCi1WZWN0b3I8Y2hhcj4gU2VydmVTeW5jaHJvbm91c1Jl
cXVlc3QoTG9hZGVyKixEb2NMb2FkZXIqLFJlc291cmNlSGFuZGxlKixLVVJMJixEZXByZWNhdGVk
U3RyaW5nJikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gVmVjdG9yPGNoYXI+KCk7IH0KLQor
VmVjdG9yPGNoYXI+IFNlcnZlU3luY2hyb25vdXNSZXF1ZXN0KExvYWRlciAqbG9hZGVyLCBEb2NM
b2FkZXIgKmRvY0xvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gVmVjdG9yPGNo
YXI+KCk7IH0KIH0KIAogdm9pZCBGcmFtZUdkazo6Zm9jdXNXaW5kb3coKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KQEAgLTE3OSw2ICsxNjgsMTIgQEAKIEtVUkwgRnJhbWVHZGs6Om9yaWdpbmFsUmVx
dWVzdFVSTCgpIGNvbnN0IHsgcmV0dXJuIEtVUkwoKTsgfQogUGx1Z2luKiBGcmFtZUdkazo6Y3Jl
YXRlUGx1Z2luKEVsZW1lbnQqLCBLVVJMIGNvbnN0JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIFN0cmluZyBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIDA7IH0KIAordm9pZCBGcmFtZUdkazo6Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5j
ZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CitpbnQgRnJhbWVHZGs6OmdldEhpc3RvcnlMZW5ndGgo
KSB7bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KK0tVUkwgRnJhbWVHZGs6Omhpc3RvcnlV
UkwoaW50IGRpc3RhbmNlKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBLVVJMKCk7IH0KK2Jv
b2wgQ2hyb21lQ2xpZW50R2RrOjpjYW5SdW5Nb2RhbCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIDA7IH0KK3ZvaWQgQ2hyb21lQ2xpZW50R2RrOjpydW5Nb2RhbCgpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQorCiBpbnQgV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQoY29uc3QgUGFn
ZSopIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIGJvb2wgV2ViQ29yZTo6c2NyZWVu
SXNNb25vY2hyb21lKGNvbnN0IFBhZ2UqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxz
ZTsgfQogCkBAIC0yMDYsOSArMjAxLDYgQEAKIGJvb2wgV2ViQ29yZTo6UGx1Z0luSW5mb1N0b3Jl
OjpzdXBwb3J0c01JTUVUeXBlKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpIHsgcmV0dXJuIGZhbHNl
OyB9CiB2b2lkIFdlYkNvcmU6OnJlZnJlc2hQbHVnaW5zKGJvb2wpIHsgfQogCi12b2lkIFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjphc3NlbWJsZVJlc3BvbnNlSGVhZGVycygpIGNvbnN0IHsgfQot
dm9pZCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmV0cmlldmVDaGFyc2V0KCkgY29uc3QgeyB9
Ci0KIHZvaWQgRnJhbWVHZGs6OnJlc3RvcmVEb2N1bWVudFN0YXRlKCkgeyB9CiB2b2lkIEZyYW1l
R2RrOjpwYXJ0Q2xlYXJlZEluQmVnaW4oKSB7IH0KIHZvaWQgRnJhbWVHZGs6OmNyZWF0ZUVtcHR5
RG9jdW1lbnQoKSB7IH0KQEAgLTIzMSw2ICsyMjMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3ZvaWQgc3lzdGVtQmVlcCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorCiBib29sIENoZWNr
SWZSZWxvYWRpbmcoRG9jTG9hZGVyKikgeyByZXR1cm4gZmFsc2U7IH0KIHRpbWVfdCBDYWNoZU9i
amVjdEV4cGlyZXNUaW1lKERvY0xvYWRlciosIFBsYXRmb3JtUmVzcG9uc2UpIHsgcmV0dXJuIDA7
IH0KIHZvaWQgQ2hlY2tDYWNoZU9iamVjdFN0YXR1cyhEb2NMb2FkZXIqLCBDYWNoZWRSZXNvdXJj
ZSopIHsgfQpAQCAtMjM4LDcgKzIzMiw3IEBACiBib29sIElzUmVzcG9uc2VVUkxFcXVhbFRvVVJM
KFBsYXRmb3JtUmVzcG9uc2UgLCBjb25zdCBTdHJpbmcmIFVSTCkgeyByZXR1cm4gZmFsc2U7IH0K
IGJvb2wgUmVzcG9uc2VJc011bHRpcGFydChQbGF0Zm9ybVJlc3BvbnNlKSB7IHJldHVybiBmYWxz
ZTsgfQogRGVwcmVjYXRlZFN0cmluZyBSZXNwb25zZU1JTUVUeXBlKFBsYXRmb3JtUmVzcG9uc2Up
IHsgcmV0dXJuIERlcHJlY2F0ZWRTdHJpbmcoKTsgfQotdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0
UmVzcG9uc2UoUGxhdGZvcm1SZXNwb25zZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIENh
Y2hlZFJlc291cmNlOjpzZXRQbGF0Zm9ybVJlc3BvbnNlKFBsYXRmb3JtUmVzcG9uc2UpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0QWxsRGF0YShQbGF0Zm9y
bURhdGEpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCiB9CkBAIC0yOTYsNiArMjkwLDcgQEAKIHZv
aWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBi
b29sKSB7IH0KIHZvaWQgUGF0aDo6YWRkUmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KIHZvaWQg
UGF0aDo6YWRkRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmKSB7IH0KK3ZvaWQgUGF0aDo6dHJhbnNm
b3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSB7fQogCiBUZXh0RmllbGQ6OlRl
eHRGaWVsZChUZXh0RmllbGQ6OlR5cGUpIHsgfQogVGV4dEZpZWxkOjp+VGV4dEZpZWxkKCkgeyB9
CkBAIC0zMjYsMTEgKzMyMSw2IEBACiB2b2lkIFBsYXRmb3JtU2Nyb2xsYmFyOjp1cGRhdGVUaHVt
YlByb3BvcnRpb24oKSB7IH0KIHZvaWQgUGxhdGZvcm1TY3JvbGxiYXI6OnNldFJlY3QoY29uc3Qg
SW50UmVjdCYpIHsgfQogCi1MaXN0Qm94OjpMaXN0Qm94KCkgeyB9Ci1MaXN0Qm94Ojp+TGlzdEJv
eCgpIHsgfQotdm9pZCBMaXN0Qm94OjpzZXRTZWxlY3Rpb25Nb2RlKExpc3RCb3g6OlNlbGVjdGlv
bk1vZGUpIHsgfQotdm9pZCBMaXN0Qm94OjpzZXRGb250KFdlYkNvcmU6OkZvbnQgY29uc3QmKSB7
IH0KLQogRmlsZUNob29zZXI6OkZpbGVDaG9vc2VyKERvY3VtZW50KiwgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIEZpbGVDaG9vc2VyOjp+RmlsZUNob29z
ZXIoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IEZpbGVD
aG9vc2VyOjpjcmVhdGUoRG9jdW1lbnQqLCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCopIHsgbm90
SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KQEAgLTM1MiwyMCArMzQyLDE1IEBACiB2b2lkIFJl
bmRlclRoZW1lR2RrOjphZGp1c3RUZXh0RmllbGRTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVu
ZGVyU3R5bGUqLCBFbGVtZW50KiBlKSBjb25zdCB7fQogYm9vbCBSZW5kZXJUaGVtZUdkazo6cGFp
bnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gZmFsc2U7IH0KIAorYm9vbCBSZXNvdXJjZUxvYWRl
cjo6bG9hZHNCbG9ja2VkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KKwog
SWNvbjo6SWNvbigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogSWNvbjo6fkljb24oKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6bmV3SWNvbkZvckZpbGUoY29u
c3QgU3RyaW5nJiBmaWxlbmFtZSkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gUGFzc1JlZlB0
cjxJY29uPihuZXcgSWNvbigpKTsgfQogdm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAKLXZvaWQgSWNvbkxvYWRl
cjo6c3RvcExvYWRpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0gCi12b2lkIEljb25Mb2FkZXI6
OnN0YXJ0TG9hZGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfSAKLUljb25Mb2FkZXIqIEljb25M
b2FkZXI6OmNyZWF0ZUZvckZyYW1lKEZyYW1lICpmcmFtZSkgeyByZXR1cm4gMDsgfSAKK3ZvaWQg
SWNvbkxvYWRlcjo6bm90aWZ5SWNvbkNoYW5nZWQoY29uc3QgS1VSTCYpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQogCi1ib29sIEljb25EYXRhYmFzZTo6aXNJY29uRXhwaXJlZEZvckljb25VUkwoY29u
c3QgU3RyaW5nJiB1cmwpIHsgcmV0dXJuIGZhbHNlOyB9Ci1ib29sIEljb25EYXRhYmFzZTo6aGFz
RW50cnlGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgdXJsKSB7IHJldHVybiBmYWxzZTsgfQotSWNv
bkRhdGFiYXNlKiBJY29uRGF0YWJhc2U6OnNoYXJlZEljb25EYXRhYmFzZSgpIHsgcmV0dXJuIDA7
IH0KLWJvb2wgSWNvbkRhdGFiYXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
IGljb25VUkwsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCkgeyByZXR1cm4gZmFsc2U7IH0KLQogRmxv
YXRSZWN0IEZvbnQ6OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwg
Y29uc3QgVGV4dFN0eWxlJiwgY29uc3QgSW50UG9pbnQmLCBpbnQpIGNvbnN0IHsgcmV0dXJuIEZs
b2F0UmVjdCgpOyB9CiB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBUZXh0UnVuJiwgY29uc3QgVGV4dFN0eWxlJiwgY29uc3QgRmxvYXRQb2ludCYpIGNv
bnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgfQogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBs
ZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBjb25zdCBUZXh0U3R5bGUmKSBjb25zdCB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiAwOyB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdk
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmgJKHJldmlz
aW9uIDE3NjA2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsMTIgKzMwLDE0IEBACiAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5j
bHVkZSA8Z2RrL2dkay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7
CiBjbGFzcyBGcmFtZUdkazsKK2NsYXNzIEVkaXRvckNsaWVudDsKIAogY2xhc3MgRnJhbWVHZGtD
bGllbnQgewogcHVibGljOgpAQCAtNzMsNyArNzUsNyBAQAogCiBjbGFzcyBGcmFtZUdkayA6IHB1
YmxpYyBGcmFtZSB7CiBwdWJsaWM6Ci0gICAgRnJhbWVHZGsoUGFnZSosIEVsZW1lbnQqKTsKKyAg
ICBGcmFtZUdkayhQYWdlKiwgRWxlbWVudCosIFBhc3NSZWZQdHI8RWRpdG9yQ2xpZW50Pik7CiAg
ICAgRnJhbWVHZGsoR2RrRHJhd2FibGUqKTsKICAgICB2aXJ0dWFsIH5GcmFtZUdkaygpOwogCkBA
IC0xNDYsNiArMTQ4LDEwIEBACiAgICAgdmlydHVhbCB2b2lkIHBhcnRDbGVhcmVkSW5CZWdpbigp
OwogCiAgICAgdmlydHVhbCBib29sIGNhbkdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBnb0JhY2tPckZvcndhcmQoaW50IGRpc3RhbmNlKTsKKyAg
ICB2aXJ0dWFsIGludCBnZXRIaXN0b3J5TGVuZ3RoKCk7CisgICAgdmlydHVhbCBLVVJMIGhpc3Rv
cnlVUkwoaW50IGRpc3RhbmNlKTsKKwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVkT25sb2FkRXZl
bnRzKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUGFzdGUoKSBjb25zdDsKQEAgLTE2Miw2ICsx
NjgsOCBAQAogICAgIHZpcnR1YWwgRnJhbWUqIGNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmIG5hbWUsIEVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZl
cnJlcik7CiAgICAgV2lkZ2V0KiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUm
LCBFbGVtZW50KiwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mKTsKIAorICAgIEZyYW1l
R2RrQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRUeXBlUmVsb2FkKCk7CiAgICAgdmlydHVhbCBib29s
IHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCopOwpJbmRleDogV2ViQ29yZS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NjA2KQor
KysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0OCBAQAorMjAw
Ni0xMS0wNSAgS3J6eXN6dG9mIEtvd2FsY3p5aywsLCAgPGtrb3dhbGN6eWtAZ21haWwuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6
IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgIExpbnV4XEdkayBidWls
ZCBmaXhlcy4KKworICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAg
ICAgICogbG9hZGVyL2ljb24vU1FMU3RhdGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ2Rr
L0Nocm9tZUNsaWVudEdkay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dEdkazo6fkNocm9tZUNsaWVudEdkayk6CisgICAgICAgICogcGxhdGZvcm0vZ2RrL0N1cnNvckdk
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb2ludGVyQ3Vyc29yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9nZGsvRnJhbWVHZGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9TY3JvbGwpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVHZGs6OkZyYW1lR2RrKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lR2RrOjpzdWJtaXRGb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjp1cmxTZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUdkazo6b3BlblVSTCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUdkazo6aGFuZGxlR2RrRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dk
ay9GcmFtZUdkay5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVHZGs6OmNsaWVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ2RrL1JlbmRlclBvcHVwTWVudUdkay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
ZGsvU2NyZWVuR2RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0
dWJzLmNwcDoKKyAgICAgICAgKFNsaWRlcjo6Zm9jdXNQb2xpY3kpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmVTeW5jaHJvbm91c1JlcXVlc3QpOgorICAgICAgICAoRnJhbWVHZGs6OmdvQmFja09y
Rm9yd2FyZCk6CisgICAgICAgIChGcmFtZUdkazo6Z2V0SGlzdG9yeUxlbmd0aCk6CisgICAgICAg
IChGcmFtZUdkazo6aGlzdG9yeVVSTCk6CisgICAgICAgIChDaHJvbWVDbGllbnRHZGs6OmNhblJ1
bk1vZGFsKToKKyAgICAgICAgKENocm9tZUNsaWVudEdkazo6cnVuTW9kYWwpOgorICAgICAgICAo
V2ViQ29yZTo6c3lzdGVtQmVlcCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
c2V0UGxhdGZvcm1SZXNwb25zZSk6CisgICAgICAgIChQYXRoOjp0cmFuc2Zvcm0pOgorICAgICAg
ICAoUmVzb3VyY2VMb2FkZXI6OmxvYWRzQmxvY2tlZCk6CisgICAgICAgIChJY29uTG9hZGVyOjpu
b3RpZnlJY29uQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9nZGsvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9hZFRpbWVyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpyZW1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjphZGQpOgorCiAyMDA2
LTExLTA1ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGJ1aWxkIGJyZWFrcwpJbmRleDogV2ViQ29yZS9sb2FkZXIvaWNvbi9TUUxTdGF0ZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9pY29uL1NRTFN0YXRlbWVudC5oCShyZXZp
c2lvbiAxNzYwNikKKysrIFdlYkNvcmUvbG9hZGVyL2ljb24vU1FMU3RhdGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwMCw0ICsxMDAsNCBAQAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
LSNlbmRpZiBTUUxTdGF0ZW1lbnRfSAorI2VuZGlmIC8vIFNRTFN0YXRlbWVudF9ICkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxNzYwNikKKysrIFdlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiAr
MzgsOCBAQAogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVk
ZSA8d2luYmFzZS5oPgorI2Vsc2UKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3BwCShyZXZpc2lv
biAxNzYwNikKKysrIFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw3ICsyOCw3IEBACiBjbGFzcyBMYXVuY2hlckZyYW1lR2RrIDogcHVibGljIEZy
YW1lR2RrCiB7CiBwdWJsaWM6Ci0gICAgTGF1bmNoZXJGcmFtZUdkayhQYWdlKiBwYWdlLCBFbGVt
ZW50KiBlbGVtZW50KSA6IEZyYW1lR2RrKHBhZ2UsIGVsZW1lbnQpLCBtX2V4aXRBZnRlckxvYWRp
bmcoZmFsc2UpIHt9CisgICAgTGF1bmNoZXJGcmFtZUdkayhQYWdlKiBwYWdlLCBFbGVtZW50KiBl
bGVtZW50LCBQYXNzUmVmUHRyPEVkaXRvckNsaWVudD4gZWRpdG9yQ2xpZW50KSA6IEZyYW1lR2Rr
KHBhZ2UsIGVsZW1lbnQsIGVkaXRvckNsaWVudCksIG1fZXhpdEFmdGVyTG9hZGluZyhmYWxzZSkg
e30KICAgICBMYXVuY2hlckZyYW1lR2RrKEdka0RyYXdhYmxlKiBkcmF3YWJsZSkgOiBGcmFtZUdk
ayhkcmF3YWJsZSksIG1fZXhpdEFmdGVyTG9hZGluZyhmYWxzZSkge30KICAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOwogICAgIHZvaWQgc2V0RXhpdEFmdGVyTG9hZGluZyhi
b29sIGV4aXRBZnRlckxvYWRpbmcpIHsgbV9leGl0QWZ0ZXJMb2FkaW5nID0gZXhpdEFmdGVyTG9h
ZGluZzsgfQpAQCAtODEsNyArODEsNyBAQAogICAgIGZyYW1lLT5zZXRFeGl0QWZ0ZXJMb2FkaW5n
KGV4aXRBZnRlckxvYWRpbmcpOwogICAgIGlmICh1cmwpIHsKICAgICAgICAgcHJpbnRmKCJPUEVO
SU5HIFVSTCA9PSAlcyBcbiIsIHVybCk7Ci0gICAgICAgIGZyYW1lLT5vcGVuVVJMKHVybCk7Cisg
ICAgICAgIGZyYW1lLT5jbGllbnQoKS0+b3BlblVSTCh1cmwpOwogICAgIH0gZWxzZSB7CiAjaWYg
MAogICAgICAgICBjaGFyICpwZyA9ICIgPGh0bWw+PGhlYWQ+PHRpdGxlPkdvb2dsZTwvdGl0bGU+
IDxib2R5IGJnY29sb3I9I2ZmZmZmZiB0ZXh0PSMwMDAwMDA+IDxwPjxmb250IHNpemU9LTIvPjIw
MDYgR29vZ2xlIEhlbGxvIGJpZ3dvcmxkIGZyb20gbWlrZTwvcD48L2JvZHk+PC9odG1sPiAiOwpJ
bmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gMTc2MDYpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwNi0xMS0wNSAgS3J6eXN6dG9mIEtvd2FsY3p5
ayAgPGtrb3dhbGN6eWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIExpbnV4XGdkayBidWlsZCBmaXhlcy4KKworICAgICAgICAqIEdk
a0xhdW5jaGVyL21haW4uY3BwOgorICAgICAgICAoTGF1bmNoZXJGcmFtZUdkazo6TGF1bmNoZXJG
cmFtZUdkayk6CisgICAgICAgIChtYWluKToKKwogMjAwNi0xMS0wNCAgRGF2aWQgU21pdGggIDxj
YXRmaXNoLm1hbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEguCg==
</data>
<flag name="review"
          id="3980"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>