<?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>121086</bug_id>
          
          <creation_ts>2013-09-10 00:54:39 -0700</creation_ts>
          <short_desc>Apply OVERRIDE and FINAL to Image subclasses and clean them up</short_desc>
          <delta_ts>2013-09-13 14:16:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>121220</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>927209</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-10 00:54:39 -0700</bug_when>
    <thetext>Image&apos;s subclasses are a bit messy and need some tidying, and are missing our new friends OVERRIDE and FINAL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927211</commentid>
    <comment_count>1</comment_count>
      <attachid>211183</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-10 01:04:40 -0700</bug_when>
    <thetext>Created attachment 211183
patch

Maybe this should be a few patches, I don&apos;t know, I feel silly making lots of patches for this.

Probably it will break other port&apos;s builds, but we&apos;ll see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927214</commentid>
    <comment_count>2</comment_count>
      <attachid>211183</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-10 01:17:11 -0700</bug_when>
    <thetext>Comment on attachment 211183
patch

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

&gt; Source/WebCore/platform/graphics/BitmapImage.h:-178
&gt; -protected:

It looks like this has been this way effectively forever. I wonder if there&apos;s a reason for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927215</commentid>
    <comment_count>3</comment_count>
      <attachid>211183</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-10 01:26:37 -0700</bug_when>
    <thetext>Comment on attachment 211183
patch

Attachment 211183 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1743156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927221</commentid>
    <comment_count>4</comment_count>
      <attachid>211183</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-10 01:46:58 -0700</bug_when>
    <thetext>Comment on attachment 211183
patch

Attachment 211183 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1763036</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927508</commentid>
    <comment_count>5</comment_count>
      <attachid>211245</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-10 14:37:09 -0700</bug_when>
    <thetext>Created attachment 211245
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928199</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-12 02:24:43 -0700</bug_when>
    <thetext>Ugh, we really need to fix win-ews. This broke the windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929010</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-13 14:16:27 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/155721 and
http://trac.webkit.org/changeset/155722</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211183</attachid>
            <date>2013-09-10 01:04:40 -0700</date>
            <delta_ts>2013-09-10 14:37:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>imagesubclasses.diff</filename>
            <type>text/plain</type>
            <size>22947</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNjg2OGNmLi40YTMxMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTMtMDktMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQXBwbHkgT1ZFUlJJREUgYW5kIEZJTkFMIHRvIEltYWdlIHN1YmNsYXNzZXMgYW5k
IGNsZWFuIHRoZW0gdXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTA4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEV2ZXJ5dGhpbmcgb3RoZXIgdGhhbiB0aGUgY29waW91cyBhcHBsaWNhdGlvbiBvZiBP
VkVSUklERSBhbmQgRklOQUwKKyAgICAgICAgaXMgZXhwbGljaXRseSBjYWxsZWQgb3V0IGJlbG93
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgIERyaXZlLWJ5IGlu
bGluZSBpc0JpdG1hcEltYWdlLgorICAgICAgICBNb3ZlIGNyZWF0ZShIQklUTUFQKSB0byBiZSBu
ZWFyIHRoZSBvdGhlciBjcmVhdGUoKSBmdW5jdGlvbnMuCisgICAgICAgIE1vdmUgYWxsIG9mIHRo
ZSBtZW1iZXJzIGFuZCBxdWl0ZSBhIGZldyBmdW5jdGlvbnMgZnJvbSBwcm90ZWN0ZWQgdG8gcHJp
dmF0ZS4KKyAgICAgICAgRGV2aXJ0dWFsaXplIGZyYW1lQ291bnQoKS4KKyAgICAgICAgTW92ZSBu
b3RTb2xpZENvbG9yKCkgbmVhciB0aGUgb3RoZXIgc29saWQgY29sb3IgZnVuY3Rpb25zLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpk
cmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJh
dGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6
OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQ
YXR0ZXJuKToKKyAgICAgICAgVXNlIHNpemUoKSBhbmQgc2V0Q29udGFpbmVyU2l6ZSgpIGluc3Rl
YWQgb2YgZGlyZWN0bHkgYWNjZXNzaW5nIGEKKyAgICAgICAgc3VwZXJjbGFzcycgKG5vdyBwcml2
YXRlLCBwcmV2aW91c2x5IHByb3RlY3RlZCkgbWVtYmVycy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgTWFrZSBtX3NpemUgcHJpdmF0ZSwg
SSBkb24ndCB0aGluayB3ZSBkbyBwcm90ZWN0ZWQgbWVtYmVycy4KKyAgICAgICAgCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAg
TWFrZSBhbGwgdGhlIG1lbWJlcnMgcHJpdmF0ZS4KKworICAgICAgICAqIHN2Zy9ncmFwaGljcy9T
VkdJbWFnZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5o
OgorCiAyMDEzLTA5LTA5ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWYtaWZ5IG1vcmUgc3RhY2sgZ3VhcmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDE2ZDVhMzEuLmEwZWUwZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
QEAgLTY3LDE3ICs2NywxMSBAQCBCaXRtYXBJbWFnZTo6fkJpdG1hcEltYWdlKCkKICAgICBzdG9w
QW5pbWF0aW9uKCk7CiB9CiAKLWJvb2wgQml0bWFwSW1hZ2U6OmlzQml0bWFwSW1hZ2UoKSBjb25z
dAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIEJpdG1hcEltYWdlOjpoYXNTaW5nbGVT
ZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLQogdm9pZCBC
aXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKGJvb2wgZGVzdHJveUFsbCkKIHsKICAgICB1
bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA3NDEzNDg0Li40YTI1MGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTk3LDcg
Kzk3LDcgQEAgcHVibGljOgogLy8gQml0bWFwSW1hZ2UgQ2xhc3MKIC8vID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotY2xhc3MgQml0bWFwSW1hZ2Ug
OiBwdWJsaWMgSW1hZ2UgeworY2xhc3MgQml0bWFwSW1hZ2UgRklOQUwgOiBwdWJsaWMgSW1hZ2Ug
ewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlOwpAQCAtMTExLDcxICsxMTEsNjYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBCaXRtYXBJbWFnZShvYnNlcnZlcikpOwogICAgIH0KKyNpZiBQTEFU
Rk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYgT1MoV0lORE9XUykpCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShIQklUTUFQKTsKKyNlbmRpZgogICAgIHZpcnR1
YWwgfkJpdG1hcEltYWdlKCk7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGlzQml0bWFwSW1hZ2Uo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNCaXRtYXBJbWFnZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9y
aWdpbigpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigp
IGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIEludFNpemUgc2l6
ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpIGNvbnN0OwogICAgIEludFNpemUgY3VycmVudEZyYW1l
U2l6ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBnZXRIb3RTcG90KEludFBvaW50JikgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIGdldEhvdFNwb3QoSW50UG9pbnQmKSBjb25zdCBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgYm9vbCBkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdDsgCisgICAgdmly
dHVhbCBib29sIGRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0IE9WRVJSSURFOwogCiAg
ICAgLy8gSXQgbWF5IGxvb2sgdW51c3VhbCB0aGF0IHRoZXJlIGlzIG5vIHN0YXJ0IGFuaW1hdGlv
biBjYWxsIGFzIHB1YmxpYyBBUEkuICBUaGlzIGlzIGJlY2F1c2UKICAgICAvLyB3ZSBzdGFydCBh
bmQgc3RvcCBhbmltYXRpbmcgbGF6aWx5LiAgQW5pbWF0aW9uIGJlZ2lucyB3aGVuZXZlciBzb21l
b25lIGRyYXdzIHRoZSBpbWFnZS4gIEl0IHdpbGwKICAgICAvLyBhdXRvbWF0aWNhbGx5IHBhdXNl
IG9uY2UgYWxsIG9ic2VydmVycyBubyBsb25nZXIgd2FudCB0byByZW5kZXIgdGhlIGltYWdlIGFu
eXdoZXJlLgotICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbWF0aW9uKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHJlc2V0QW5pbWF0aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRpb24oKSBPVkVSUklERTsKIAot
ICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVu
c2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QgT1ZFUlJJREU7CiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgLy8gQWNjZXNzb3JzIGZvciBuYXRpdmUgaW1hZ2UgZm9ybWF0cy4KLSAgICB2aXJ0dWFs
IE5TSW1hZ2UqIGdldE5TSW1hZ2UoKTsKLSAgICB2aXJ0dWFsIENGRGF0YVJlZiBnZXRUSUZGUmVw
cmVzZW50YXRpb24oKTsKKyAgICB2aXJ0dWFsIE5TSW1hZ2UqIGdldE5TSW1hZ2UoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIENGRGF0YVJlZiBnZXRUSUZGUmVwcmVzZW50YXRpb24oKSBPVkVSUklE
RTsKICNlbmRpZgogICAgIAogI2lmIFVTRShDRykKLSAgICB2aXJ0dWFsIENHSW1hZ2VSZWYgZ2V0
Q0dJbWFnZVJlZigpOwotICAgIHZpcnR1YWwgQ0dJbWFnZVJlZiBnZXRGaXJzdENHSW1hZ2VSZWZP
ZlNpemUoY29uc3QgSW50U2l6ZSYpOwotICAgIHZpcnR1YWwgUmV0YWluUHRyPENGQXJyYXlSZWY+
IGdldENHSW1hZ2VBcnJheSgpOworICAgIHZpcnR1YWwgQ0dJbWFnZVJlZiBnZXRDR0ltYWdlUmVm
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDR0ltYWdlUmVmIGdldEZpcnN0Q0dJbWFnZVJlZk9m
U2l6ZShjb25zdCBJbnRTaXplJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gZ2V0Q0dJbWFnZUFycmF5KCkgT1ZFUlJJREU7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKFdJTikgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKEhCSVRNQVApOwotI2VuZGlmCiAjaWYgUExBVEZP
Uk0oV0lOKQotICAgIHZpcnR1YWwgYm9vbCBnZXRIQklUTUFQKEhCSVRNQVApOwotICAgIHZpcnR1
YWwgYm9vbCBnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAsIExQU0laRSk7CisgICAgdmlydHVhbCBi
b29sIGdldEhCSVRNQVAoSEJJVE1BUCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGdldEhC
SVRNQVBPZlNpemUoSEJJVE1BUCwgTFBTSVpFKSBPVkVSUklERTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oR1RLKQotICAgIHZpcnR1YWwgR2RrUGl4YnVmKiBnZXRHZGtQaXhidWYoKTsKKyAgICB2
aXJ0dWFsIEdka1BpeGJ1ZiogZ2V0R2RrUGl4YnVmKCkgT1ZFUlJJREU7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIEV2YXNfT2JqZWN0KiBnZXRFdmFzT2JqZWN0KEV2
YXMqKTsKKyAgICB2aXJ0dWFsIEV2YXNfT2JqZWN0KiBnZXRFdmFzT2JqZWN0KEV2YXMqKSBPVkVS
UklERTsKICNlbmRpZgogCiAgICAgdmlydHVhbCBQYXNzTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1h
Z2VGb3JDdXJyZW50RnJhbWUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEltYWdlT3JpZW50YXRp
b24gb3JpZW50YXRpb25Gb3JDdXJyZW50RnJhbWUoKSBPVkVSUklERSB7IHJldHVybiBmcmFtZU9y
aWVudGF0aW9uQXRJbmRleChjdXJyZW50RnJhbWUoKSk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBj
dXJyZW50RnJhbWVLbm93blRvQmVPcGFxdWUoKSBPVkVSUklERTsKLQotI2lmICFBU1NFUlRfRElT
QUJMRUQKLSAgICB2aXJ0dWFsIGJvb2wgbm90U29saWRDb2xvcigpOwotI2VuZGlmCiAgICAgCiAg
ICAgYm9vbCBjYW5BbmltYXRlKCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVTaXplKCkg
Y29uc3Q7CiAKLXByb3RlY3RlZDoKICAgICBlbnVtIFJlcGV0aXRpb25Db3VudFN0YXR1cyB7CiAg
ICAgICBVbmtub3duLCAgICAvLyBXZSBoYXZlbid0IGNoZWNrZWQgdGhlIHNvdXJjZSdzIHJlcGV0
aXRpb24gY291bnQuCiAgICAgICBVbmNlcnRhaW4sICAvLyBXZSBoYXZlIGEgcmVwZXRpdGlvbiBj
b3VudCwgYnV0IGl0IG1pZ2h0IGJlIHdyb25nIChzb21lIEdJRnMgaGF2ZSBhIGNvdW50IGFmdGVy
IHRoZSBpbWFnZSBkYXRhLCBhbmQgd2lsbCByZXBvcnQgImxvb3Agb25jZSIgdW50aWwgYWxsIGRh
dGEgaGFzIGJlZW4gZGVjb2RlZCkuCkBAIC0xODYsMjAgKzE4MSwyMCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgQml0bWFwSW1hZ2UoSW1hZ2VPYnNlcnZlciogPSAwKTsKIAogI2lmIFBMQVRGT1JNKFdJTikK
LSAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKSBPVkVSUklERTsKICNlbmRpZgot
ICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7CisgICAgdmlydHVhbCB2b2lkIGRy
YXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlKSBPVkVSUklERTsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwg
UExBVEZPUk0oQkxBQ0tCRVJSWSkKICAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUs
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikgT1ZFUlJJREU7CiAjZW5kaWYKIAogI2lmIFVT
RShXSU5HREkpCiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKyAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCkgT1ZFUlJJREU7CiAjZW5kaWYKIAogICAgIHNpemVfdCBjdXJy
ZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRGcmFtZTsgfQotICAgIHZpcnR1YWwg
c2l6ZV90IGZyYW1lQ291bnQoKTsKKyAgICBzaXplX3QgZnJhbWVDb3VudCgpOwogICAgIFBhc3NO
YXRpdmVJbWFnZVB0ciBmcmFtZUF0SW5kZXgoc2l6ZV90KTsKICAgICBib29sIGZyYW1lSXNDb21w
bGV0ZUF0SW5kZXgoc2l6ZV90KTsKICAgICBmbG9hdCBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXpl
X3QpOwpAQCAtMjE3LDcgKzIxMiw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBjYWNoZS4gIElmIHxk
ZXN0cm95QWxsfCBpcyBmYWxzZSwgd2Ugb25seSBkZWxldGUgZnJhbWVzIHVwIHRvIHRoZSBjdXJy
ZW50CiAgICAgLy8gb25lOyB0aGlzIGlzIHVzZWQgd2hpbGUgYW5pbWF0aW5nIGxhcmdlIGltYWdl
cyB0byBrZWVwIG1lbW9yeSBmb290cHJpbnQKICAgICAvLyBsb3cgd2l0aG91dCByZWRlY29kaW5n
IHRoZSB3aG9sZSBpbWFnZSBvbiBldmVyeSBmcmFtZS4KLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJv
eURlY29kZWREYXRhKGJvb2wgZGVzdHJveUFsbCA9IHRydWUpOworICAgIHZpcnR1YWwgdm9pZCBk
ZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsID0gdHJ1ZSkgT1ZFUlJJREU7CiAKICAg
ICAvLyBJZiB0aGUgaW1hZ2UgaXMgbGFyZ2UgZW5vdWdoLCBjYWxscyBkZXN0cm95RGVjb2RlZERh
dGEoKSBhbmQgcGFzc2VzCiAgICAgLy8gfGRlc3Ryb3lBbGx8IGFsb25nLgpAQCAtMjQwLDcgKzIz
NSw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBBbmltYXRpb24uCiAgICAgaW50IHJlcGV0aXRpb25D
b3VudChib29sIGltYWdlS25vd25Ub0JlQ29tcGxldGUpOyAgLy8gfGltYWdlS25vd25Ub0JlQ29t
cGxldGV8IHNob3VsZCBiZSBzZXQgaWYgdGhlIGNhbGxlciBrbm93cyB0aGUgZW50aXJlIGltYWdl
IGhhcyBiZWVuIGRlY29kZWQuCiAgICAgYm9vbCBzaG91bGRBbmltYXRlKCk7Ci0gICAgdmlydHVh
bCB2b2lkIHN0YXJ0QW5pbWF0aW9uKGJvb2wgY2F0Y2hVcElmTmVjZXNzYXJ5ID0gdHJ1ZSk7Cisg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKGJvb2wgY2F0Y2hVcElmTmVjZXNzYXJ5ID0g
dHJ1ZSkgT1ZFUlJJREU7CiAgICAgdm9pZCBhZHZhbmNlQW5pbWF0aW9uKFRpbWVyPEJpdG1hcElt
YWdlPiopOwogCiAgICAgLy8gRnVuY3Rpb24gdGhhdCBkb2VzIHRoZSByZWFsIHdvcmsgb2YgYWR2
YW5jaW5nIHRoZSBhbmltYXRpb24uICBXaGVuCkBAIC0yNTgsOSArMjUzLDEzIEBAIHByb3RlY3Rl
ZDoKICAgICAvLyBjaGFuZ2VkLgogICAgIHZvaWQgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiAgICAg
Ci0gICAgdmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRDb2xvcigpOwotICAgIHZpcnR1YWwg
Q29sb3Igc29saWRDb2xvcigpIGNvbnN0OwotICAgIAorICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxs
V2l0aFNvbGlkQ29sb3IoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENvbG9yIHNvbGlkQ29sb3Io
KSBjb25zdCBPVkVSUklERTsKKworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICB2aXJ0dWFsIGJv
b2wgbm90U29saWRDb2xvcigpIE9WRVJSSURFOworI2VuZGlmCisKICAgICBJbWFnZVNvdXJjZSBt
X3NvdXJjZTsKICAgICBtdXRhYmxlIEludFNpemUgbV9zaXplOyAvLyBUaGUgc2l6ZSB0byB1c2Ug
Zm9yIHRoZSBvdmVyYWxsIGltYWdlICh3aWxsIGp1c3QgYmUgdGhlIHNpemUgb2YgdGhlIGZpcnN0
IGltYWdlKS4KICAgICBtdXRhYmxlIEludFNpemUgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IDFmNDFhYTYuLjE1MTM1NjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2U6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKEltYWdlKiBmcm9tSW1hZ2UsIEltYWdlKiB0b0lt
YWcKICAgICAsIG1fcGVyY2VudGFnZShwZXJjZW50YWdlKQogICAgICwgbV9jcm9zc2ZhZGVTaXpl
KGNyb3NzZmFkZVNpemUpCiB7Ci0gICAgbV9zaXplID0gc2l6ZTsKKyAgICBzZXRDb250YWluZXJT
aXplKHNpemUpOwogfQogCiB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3Q3Jvc3Nm
YWRlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHMKIAogdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRl
cm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21w
b3NpdGVPcCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBCbGVuZE1vZGUpCiB7Ci0gICAgT3du
UHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUobV9zaXpl
LCAxLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBjb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgp
ID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkKTsKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+
IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIDEsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIGNvbnRleHQtPmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgPyBBY2NlbGVyYXRlZCA6
IFVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggZjFkYTJjYS4uMDc1NDhhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5oCkBAIC0zNiwyMyArMzYsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDU1NDcm9zc2ZhZGVWYWx1ZTsKIAotY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBw
dWJsaWMgR2VuZXJhdGVkSW1hZ2UgeworY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgRklO
QUwgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPENyb3NzZmFkZUdlbmVyYXRlZEltYWdlPiBjcmVhdGUoSW1hZ2UqIGZyb21JbWFnZSwgSW1h
Z2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UoZnJvbUltYWdlLCB0b0ltYWdlLCBwZXJjZW50YWdlLCBjcm9z
c2ZhZGVTaXplLCBzaXplKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRhaW5l
clNpemUoY29uc3QgSW50U2l6ZSYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29udGFpbmVy
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGhhc1JlbGF0
aXZlV2lkdGgoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNS
ZWxhdGl2ZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lk
IHNldENvbnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1
YWwgYm9vbCB1c2VzQ29udGFpbmVyU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIEludFNpemUgc2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3Jvc3NmYWRlU2l6ZTsgfQorICAgIHZpcnR1YWwgSW50U2l6
ZSBzaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9jcm9zc2ZhZGVTaXplOyB9CiAKIHBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpOwotICAgIHZpcnR1
YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBCbGVuZE1vZGUpOworICAgIHZpcnR1YWwg
dm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsIEJsZW5kTW9kZSkgT1ZFUlJJREU7CiAKICAgICBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZShJbWFnZSogZnJvbUltYWdlLCBJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVy
Y2VudGFnZSwgSW50U2l6ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCmluZGV4
IGJkNDY1ODguLmYxODlmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdGVkSW1hZ2UuaApAQCAtMzUsMzAgKzM1LDMxIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgewogcHVibGljOgot
ICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFp
bmVyU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGlu
dHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5z
aWNSYXRpbyk7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRhaW5lclNpemUoY29uc3QgSW50U2l6
ZSYgc2l6ZSkgT1ZFUlJJREUgeyBtX3NpemUgPSBzaXplOyB9CisgICAgdmlydHVhbCBib29sIHVz
ZXNDb250YWluZXJTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBoYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVu
c2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZs
b2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBJbnRTaXpl
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKyAgICB2aXJ0dWFsIEludFNpemUgc2l6
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fc2l6ZTsgfQogCiAgICAgLy8gQXNzdW1lIHRo
YXQgZ2VuZXJhdGVkIGNvbnRlbnQgaGFzIG5vIGRlY29kZWQgZGF0YSB3ZSBuZWVkIHRvIHdvcnJ5
IGFib3V0Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sIC8qZGVzdHJv
eUFsbCovID0gdHJ1ZSkgeyB9Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJv
b2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHVuc2ln
bmVkIGRlY29kZWRTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQogCiBwcm90ZWN0
ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKSBPVkVSUklERSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgICAgICBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVuZE1vZGUpID0gMDsKKyAgICAg
ICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlKSBP
VkVSUklERSA9IDA7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgdG8gYmUgbGVzcyBj
b25zZXJ2YXRpdmUuCiAgICAgdmlydHVhbCBib29sIGN1cnJlbnRGcmFtZUtub3duVG9CZU9wYXF1
ZSgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBHZW5lcmF0ZWRJbWFnZSgpIHsg
fQogCitwcml2YXRlOgogICAgIEludFNpemUgbV9zaXplOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuY3BwCmluZGV4IDg0MTAwYTEuLjU1NzMyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAK
QEAgLTQxLDE0ICs0MSwxNCBAQCB2b2lkIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3KEdy
YXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdAogICAgIGlmIChkZXN0
UmVjdC5zaXplKCkgIT0gc3JjUmVjdC5zaXplKCkpCiAgICAgICAgIGRlc3RDb250ZXh0LT5zY2Fs
ZShGbG9hdFNpemUoZGVzdFJlY3Qud2lkdGgoKSAvIHNyY1JlY3Qud2lkdGgoKSwgZGVzdFJlY3Qu
aGVpZ2h0KCkgLyBzcmNSZWN0LmhlaWdodCgpKSk7CiAgICAgZGVzdENvbnRleHQtPnRyYW5zbGF0
ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0LnkoKSk7Ci0gICAgZGVzdENvbnRleHQtPmZpbGxSZWN0
KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSksICptX2dyYWRpZW50LmdldCgpKTsKKyAg
ICBkZXN0Q29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSgpKSwg
Km1fZ3JhZGllbnQuZ2V0KCkpOwogfQogCiB2b2lkIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpk
cmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKICAgICBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVu
ZE1vZGUpCiB7CiAgICAgLy8gQWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5
LWVxdWl2YWxlbnQgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KLSAg
ICBJbnRTaXplIGFkanVzdGVkU2l6ZSA9IG1fc2l6ZTsKKyAgICBJbnRTaXplIGFkanVzdGVkU2l6
ZSA9IHNpemUoKTsKICAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKICAg
ICBtX2dyYWRpZW50LT5hZGp1c3RQYXJhbWV0ZXJzRm9yVGlsZWREcmF3aW5nKGFkanVzdGVkU2l6
ZSwgYWRqdXN0ZWRTcmNSZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgKaW5kZXggMGI1NWJlNi4u
ZDIxNGEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMg
R2VuZXJhdGVkSW1hZ2UgeworY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UgRklOQUwgOiBw
dWJsaWMgR2VuZXJhdGVkSW1hZ2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFkaWVudD4gZ2VuZXJh
dG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHsKQEAgLTQ1LDE2ICs0NSwxNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UoKSB7IH0KIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0
UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7CisgICAgdmlydHVhbCB2
b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1Bh
dHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Is
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSk7CisgICAgICAgIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3Bl
cmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSkgT1ZFUlJJREU7CiAK
ICAgICBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZShQYXNzUmVmUHRyPEdyYWRpZW50PiBnZW5lcmF0
b3IsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIDogbV9ncmFkaWVudChnZW5lcmF0b3Ip
CiAgICAgewotICAgICAgICBtX3NpemUgPSBzaXplOworICAgICAgICBzZXRDb250YWluZXJTaXpl
KHNpemUpOwogICAgIH0KIAorcHJpdmF0ZToKICAgICBSZWZQdHI8R3JhZGllbnQ+IG1fZ3JhZGll
bnQ7CiAgICAgT3duUHRyPEltYWdlQnVmZmVyPiBtX2NhY2hlZEltYWdlQnVmZmVyOwogICAgIElu
dFNpemUgbV9jYWNoZWRBZGp1c3RlZFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5oCmluZGV4IDVhMGJhNDUuLjk3NGIzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFNW
R0ltYWdlQ2hyb21lQ2xpZW50OwogY2xhc3MgU1ZHSW1hZ2VGb3JDb250YWluZXI7CiAKLWNsYXNz
IFNWR0ltYWdlIDogcHVibGljIEltYWdlIHsKK2NsYXNzIFNWR0ltYWdlIEZJTkFMIDogcHVibGlj
IEltYWdlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdJbWFnZT4gY3JlYXRl
KEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIHsKQEAgLTUxLDEzICs1MSwxMyBAQCBwdWJs
aWM6CiAgICAgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdDsKICAgICBGcmFt
ZVZpZXcqIGZyYW1lVmlldygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2Uo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2UoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBJbnRTaXplIHNpemUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2ludHJpbnNpY1NpemU7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IE9WRVJSSURFOwogCi0gICAg
dmlydHVhbCBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wg
aGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVX
aWR0aCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZUhlaWdo
dCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKGJv
b2wgLypjYXRjaFVwSWZOZWNlc3NhcnkqLyA9IHRydWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzdG9wQW5pbWF0aW9uKCkgT1ZFUlJJREU7CkBAIC03MywyNSArNzMsMjUgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgflNWR0ltYWdlKCk7CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxl
bmFtZUV4dGVuc2lvbigpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5z
aW9uKCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6
ZShjb25zdCBJbnRTaXplJik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRhaW5lclNpemUoY29u
c3QgSW50U2l6ZSYpIE9WRVJSSURFOwogICAgIEludFNpemUgY29udGFpbmVyU2l6ZSgpIGNvbnN0
OwotICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29udGFpbmVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3Ro
JiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50
cmluc2ljUmF0aW8pOworICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29udGFpbmVyU2l6ZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJp
bnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNI
ZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIE9WRVJSSURFOwogCi0gICAgdmlydHVh
bCBib29sIGRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKKyAgICB2aXJ0dWFsIGJv
b2wgZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIE9WRVJSSURFOwogCiAgICAgLy8g
RklYTUU6IFNWR0ltYWdlcyBhcmUgdW5kZXJyZXBvcnRpbmcgZGVjb2RlZCBzaXplcyBhbmQgd2ls
bCBiZSB1bmFibGUKICAgICAvLyB0byBwcnVuZSBiZWNhdXNlIHRoZXNlIGZ1bmN0aW9ucyBhcmUg
bm90IGltcGxlbWVudGVkIHlldC4KLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRh
KGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCB7IHJl
dHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sKSBPVkVS
UklERSB7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gMDsgfQogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIHRvIGJlIGxl
c3MgY29uc2VydmF0aXZlLgogICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVP
cGFxdWUoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgU1ZHSW1hZ2UoSW1hZ2VP
YnNlcnZlciopOwotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UmVjdCYgZnJvbVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdG9SZWN0LCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7CisgICAgdmly
dHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKSBPVkVSUklERTsKICAgICB2b2lkIGRyYXdGb3JD
b250YWluZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRTaXplLCBmbG9hdCwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0
b3IsIEJsZW5kTW9kZSk7CiAgICAgdm9pZCBkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFNpemUsIGZsb2F0LCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgQ29sb3JTcGFjZSwKICAgICAg
ICAgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaAppbmRleCBhMmYxNWU0
Li5jNzNkOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2VGb3JDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2VGb3JDb250YWluZXIuaApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFNWR0ltYWdlRm9yQ29udGFpbmVyIDogcHVibGljIEltYWdlIHsKK2NsYXNzIFNW
R0ltYWdlRm9yQ29udGFpbmVyIEZJTkFMIDogcHVibGljIEltYWdlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdJbWFnZUZvckNvbnRhaW5lcj4gY3JlYXRlKFNWR0ltYWdlKiBp
bWFnZSwgY29uc3QgRmxvYXRTaXplJiBjb250YWluZXJTaXplLCBmbG9hdCB6b29tKQogICAgIHsK
QEAgLTcyLDggKzcyLDggQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sIC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgeyB9Ci0g
ICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0
cnVlKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQogCiAgICAgU1ZHSW1hZ2UqIG1faW1hZ2U7CiAgICAg
Y29uc3QgRmxvYXRTaXplIG1fY29udGFpbmVyU2l6ZTsK
</data>
<flag name="commit-queue"
          id="233237"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211245</attachid>
            <date>2013-09-10 14:37:09 -0700</date>
            <delta_ts>2013-09-10 16:21:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>imagesubclasses.diff</filename>
            <type>text/plain</type>
            <size>24719</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiYzI4ZDRhLi5kYzY0Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDUg
QEAKIDIwMTMtMDktMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgQXBwbHkgT1ZFUlJJREUgYW5kIEZJTkFMIHRvIEltYWdlIHN1YmNsYXNzZXMgYW5k
IGNsZWFuIHRoZW0gdXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTA4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEV2ZXJ5dGhpbmcgb3RoZXIgdGhhbiB0aGUgY29waW91cyBhcHBsaWNhdGlvbiBvZiBP
VkVSUklERSBhbmQgRklOQUwKKyAgICAgICAgaXMgZXhwbGljaXRseSBjYWxsZWQgb3V0IGJlbG93
LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIEV4cG9ydCB0aGUgY29ycmVj
dCB2ZXJzaW9uIG9mIGdldENHSW1hZ2VSZWYgZm9yIHVzZSBieSBXZWJLaXQyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgIERyaXZlLWJ5IGlubGluZSBpc0JpdG1h
cEltYWdlLgorICAgICAgICBNb3ZlIGNyZWF0ZShIQklUTUFQKSB0byBiZSBuZWFyIHRoZSBvdGhl
ciBjcmVhdGUoKSBmdW5jdGlvbnMuCisgICAgICAgIE1vdmUgYWxsIG9mIHRoZSBtZW1iZXJzIGFu
ZCBxdWl0ZSBhIGZldyBmdW5jdGlvbnMgZnJvbSBwcm90ZWN0ZWQgdG8gcHJpdmF0ZS4KKyAgICAg
ICAgRGV2aXJ0dWFsaXplIGZyYW1lQ291bnQoKS4KKyAgICAgICAgTW92ZSBub3RTb2xpZENvbG9y
KCkgbmVhciB0aGUgb3RoZXIgc29saWQgY29sb3IgZnVuY3Rpb25zLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAg
ICAgICAgVXNlIHNpemUoKSBhbmQgc2V0Q29udGFpbmVyU2l6ZSgpIGluc3RlYWQgb2YgZGlyZWN0
bHkgYWNjZXNzaW5nIGEKKyAgICAgICAgc3VwZXJjbGFzcycgKG5vdyBwcml2YXRlLCBwcmV2aW91
c2x5IHByb3RlY3RlZCkgbWVtYmVycy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Ny
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2Vu
ZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgTWFrZSBtX3NpemUgcHJpdmF0ZSwgSSBkb24ndCB0aGlu
ayB3ZSBkbyBwcm90ZWN0ZWQgbWVtYmVycy4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgTWFrZSBhbGwgdGhl
IG1lbWJlcnMgcHJpdmF0ZS4KKworICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5oOgor
ICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oOgorCisyMDEzLTA5
LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCiAgICAgICAgIFtt
YWNdIFBERkRvY3VtZW50SW1hZ2Ugc2hvdWxkIHVzZSBQREZLaXQgdG8gZHJhdwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNjUxCiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMjgxMDczMT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZGI1ODg1Mi4u
NGYxOGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNCw2ICsxMDQsNyBAQCBfX1pON1dl
YkNvcmUxMHNldENvb2tpZXNFUE5TXzhEb2N1bWVudEVSS05TXzRLVVJMRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTB0b0RvY3VtZW50RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUx
MUJpdG1hcEltYWdlQzFFUDdDR0ltYWdlUE5TXzEzSW1hZ2VPYnNlcnZlckUKIF9fWk43V2ViQ29y
ZTExQml0bWFwSW1hZ2VDMUVQTlNfMTNJbWFnZU9ic2VydmVyRQorX19aTjdXZWJDb3JlMTFCaXRt
YXBJbWFnZTEzZ2V0Q0dJbWFnZVJlZkV2CiBfX1pON1dlYkNvcmUxMUNhY2hlZEZyYW1lMjNjYWNo
ZWRGcmFtZVBsYXRmb3JtRGF0YUV2CiBfX1pON1dlYkNvcmUxMUNhY2hlZEZyYW1lMjZzZXRDYWNo
ZWRGcmFtZVBsYXRmb3JtRGF0YUVOM1dURjEwUGFzc093blB0cklOU18yM0NhY2hlZEZyYW1lUGxh
dGZvcm1EYXRhRUVFCiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyMTBjaG9vc2VGaWxlRVJLTjNX
VEY2U3RyaW5nRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwCmluZGV4IDE2ZDVhMzEuLmEwZWUwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTY3LDE3ICs2NywxMSBAQCBC
aXRtYXBJbWFnZTo6fkJpdG1hcEltYWdlKCkKICAgICBzdG9wQW5pbWF0aW9uKCk7CiB9CiAKLWJv
b2wgQml0bWFwSW1hZ2U6OmlzQml0bWFwSW1hZ2UoKSBjb25zdAotewotICAgIHJldHVybiB0cnVl
OwotfQotCiBib29sIEJpdG1hcEltYWdlOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLQogdm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveURl
Y29kZWREYXRhKGJvb2wgZGVzdHJveUFsbCkKIHsKICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xl
YXJlZCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaAppbmRleCA3NDEzNDg0Li5iNmNlNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogLy8g
Qml0bWFwSW1hZ2UgQ2xhc3MKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIAotY2xhc3MgQml0bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgeworY2xh
c3MgQml0bWFwSW1hZ2UgRklOQUwgOiBwdWJsaWMgSW1hZ2UgewogICAgIGZyaWVuZCBjbGFzcyBH
ZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7
CiAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwpAQCAtMTExLDcxICsx
MTEsNjYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCaXRt
YXBJbWFnZShvYnNlcnZlcikpOwogICAgIH0KKyNpZiBQTEFURk9STShXSU4pIHx8IChQTEFURk9S
TShRVCkgJiYgT1MoV0lORE9XUykpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+
IGNyZWF0ZShIQklUTUFQKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgfkJpdG1hcEltYWdlKCk7CiAg
ICAgCi0gICAgdmlydHVhbCBib29sIGlzQml0bWFwSW1hZ2UoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNCaXRtYXBJbWFnZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IE9WRVJSSURFOwogCi0g
ICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEludFNpemUgc2l6
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlv
bigpIGNvbnN0OwogICAgIEludFNpemUgY3VycmVudEZyYW1lU2l6ZSgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBnZXRIb3RTcG90KEludFBvaW50JikgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IGdldEhvdFNwb3QoSW50UG9pbnQmKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9v
bCBkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdDsgCisgICAgdmlydHVhbCBib29sIGRhdGFDaGFuZ2Vk
KGJvb2wgYWxsRGF0YVJlY2VpdmVkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmaWxl
bmFtZUV4dGVuc2lvbigpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgLy8gSXQgbWF5IGxvb2sgdW51
c3VhbCB0aGF0IHRoZXJlIGlzIG5vIHN0YXJ0IGFuaW1hdGlvbiBjYWxsIGFzIHB1YmxpYyBBUEku
ICBUaGlzIGlzIGJlY2F1c2UKICAgICAvLyB3ZSBzdGFydCBhbmQgc3RvcCBhbmltYXRpbmcgbGF6
aWx5LiAgQW5pbWF0aW9uIGJlZ2lucyB3aGVuZXZlciBzb21lb25lIGRyYXdzIHRoZSBpbWFnZS4g
IEl0IHdpbGwKICAgICAvLyBhdXRvbWF0aWNhbGx5IHBhdXNlIG9uY2UgYWxsIG9ic2VydmVycyBu
byBsb25nZXIgd2FudCB0byByZW5kZXIgdGhlIGltYWdlIGFueXdoZXJlLgotICAgIHZpcnR1YWwg
dm9pZCBzdG9wQW5pbWF0aW9uKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbWF0aW9uKCk7
CisgICAgdmlydHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVzZXRBbmltYXRpb24oKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQg
ZGVjb2RlZFNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkg
Y29uc3QgT1ZFUlJJREU7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gQWNjZXNzb3JzIGZv
ciBuYXRpdmUgaW1hZ2UgZm9ybWF0cy4KLSAgICB2aXJ0dWFsIE5TSW1hZ2UqIGdldE5TSW1hZ2Uo
KTsKLSAgICB2aXJ0dWFsIENGRGF0YVJlZiBnZXRUSUZGUmVwcmVzZW50YXRpb24oKTsKKyAgICB2
aXJ0dWFsIE5TSW1hZ2UqIGdldE5TSW1hZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENGRGF0
YVJlZiBnZXRUSUZGUmVwcmVzZW50YXRpb24oKSBPVkVSUklERTsKICNlbmRpZgotICAgIAorCiAj
aWYgVVNFKENHKQotICAgIHZpcnR1YWwgQ0dJbWFnZVJlZiBnZXRDR0ltYWdlUmVmKCk7Ci0gICAg
dmlydHVhbCBDR0ltYWdlUmVmIGdldEZpcnN0Q0dJbWFnZVJlZk9mU2l6ZShjb25zdCBJbnRTaXpl
Jik7Ci0gICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gZ2V0Q0dJbWFnZUFycmF5KCk7
CisgICAgdmlydHVhbCBDR0ltYWdlUmVmIGdldENHSW1hZ2VSZWYoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIENHSW1hZ2VSZWYgZ2V0Rmlyc3RDR0ltYWdlUmVmT2ZTaXplKGNvbnN0IEludFNpemUm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJldGFpblB0cjxDRkFycmF5UmVmPiBnZXRDR0ltYWdl
QXJyYXkoKSBPVkVSUklERTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZP
Uk0oUVQpICYmIE9TKFdJTkRPV1MpKQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJpdG1hcEltYWdl
PiBjcmVhdGUoSEJJVE1BUCk7Ci0jZW5kaWYKICNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVh
bCBib29sIGdldEhCSVRNQVAoSEJJVE1BUCk7Ci0gICAgdmlydHVhbCBib29sIGdldEhCSVRNQVBP
ZlNpemUoSEJJVE1BUCwgTFBTSVpFKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0SEJJVE1BUChIQklU
TUFQKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0SEJJVE1BUE9mU2l6ZShIQklUTUFQ
LCBMUFNJWkUpIE9WRVJSSURFOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCi0gICAgdmly
dHVhbCBHZGtQaXhidWYqIGdldEdka1BpeGJ1ZigpOworICAgIHZpcnR1YWwgR2RrUGl4YnVmKiBn
ZXRHZGtQaXhidWYoKSBPVkVSUklERTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oRUZMKQotICAg
IHZpcnR1YWwgRXZhc19PYmplY3QqIGdldEV2YXNPYmplY3QoRXZhcyopOworICAgIHZpcnR1YWwg
RXZhc19PYmplY3QqIGdldEV2YXNPYmplY3QoRXZhcyopIE9WRVJSSURFOwogI2VuZGlmCiAKICAg
ICB2aXJ0dWFsIFBhc3NOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbkZvckN1
cnJlbnRGcmFtZSgpIE9WRVJSSURFIHsgcmV0dXJuIGZyYW1lT3JpZW50YXRpb25BdEluZGV4KGN1
cnJlbnRGcmFtZSgpKTsgfQogCiAgICAgdmlydHVhbCBib29sIGN1cnJlbnRGcmFtZUtub3duVG9C
ZU9wYXF1ZSgpIE9WRVJSSURFOwotCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgIHZpcnR1YWwg
Ym9vbCBub3RTb2xpZENvbG9yKCk7Ci0jZW5kaWYKICAgICAKICAgICBib29sIGNhbkFuaW1hdGUo
KTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVNpemUoKSBjb25zdDsKIAotcHJvdGVjdGVk
OgogICAgIGVudW0gUmVwZXRpdGlvbkNvdW50U3RhdHVzIHsKICAgICAgIFVua25vd24sICAgIC8v
IFdlIGhhdmVuJ3QgY2hlY2tlZCB0aGUgc291cmNlJ3MgcmVwZXRpdGlvbiBjb3VudC4KICAgICAg
IFVuY2VydGFpbiwgIC8vIFdlIGhhdmUgYSByZXBldGl0aW9uIGNvdW50LCBidXQgaXQgbWlnaHQg
YmUgd3JvbmcgKHNvbWUgR0lGcyBoYXZlIGEgY291bnQgYWZ0ZXIgdGhlIGltYWdlIGRhdGEsIGFu
ZCB3aWxsIHJlcG9ydCAibG9vcCBvbmNlIiB1bnRpbCBhbGwgZGF0YSBoYXMgYmVlbiBkZWNvZGVk
KS4KQEAgLTE4NiwyMCArMTgxLDIwIEBAIHByb3RlY3RlZDoKICAgICBCaXRtYXBJbWFnZShJbWFn
ZU9ic2VydmVyKiA9IDApOwogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIHZpcnR1YWwgdm9pZCBk
cmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3RnJhbWVN
YXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Q29tcG9zaXRlT3BlcmF0b3IpIE9WRVJSSURFOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGRy
YXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIE9W
RVJSSURFOwogI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBQTEFURk9STShCTEFDS0JFUlJZ
KQogICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uKSBPVkVSUklERTsKICNlbmRpZgogCiAjaWYgVVNFKFdJTkdESSkKICAgICB2aXJ0
dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QpOworICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
KSBPVkVSUklERTsKICNlbmRpZgogCiAgICAgc2l6ZV90IGN1cnJlbnRGcmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudEZyYW1lOyB9Ci0gICAgdmlydHVhbCBzaXplX3QgZnJhbWVDb3VudCgp
OworICAgIHNpemVfdCBmcmFtZUNvdW50KCk7CiAgICAgUGFzc05hdGl2ZUltYWdlUHRyIGZyYW1l
QXRJbmRleChzaXplX3QpOwogICAgIGJvb2wgZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3Qp
OwogICAgIGZsb2F0IGZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCk7CkBAIC0yMTcsNyArMjEy
LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIGNhY2hlLiAgSWYgfGRlc3Ryb3lBbGx8IGlzIGZhbHNl
LCB3ZSBvbmx5IGRlbGV0ZSBmcmFtZXMgdXAgdG8gdGhlIGN1cnJlbnQKICAgICAvLyBvbmU7IHRo
aXMgaXMgdXNlZCB3aGlsZSBhbmltYXRpbmcgbGFyZ2UgaW1hZ2VzIHRvIGtlZXAgbWVtb3J5IGZv
b3RwcmludAogICAgIC8vIGxvdyB3aXRob3V0IHJlZGVjb2RpbmcgdGhlIHdob2xlIGltYWdlIG9u
IGV2ZXJ5IGZyYW1lLgotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBk
ZXN0cm95QWxsID0gdHJ1ZSk7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShi
b29sIGRlc3Ryb3lBbGwgPSB0cnVlKSBPVkVSUklERTsKIAogICAgIC8vIElmIHRoZSBpbWFnZSBp
cyBsYXJnZSBlbm91Z2gsIGNhbGxzIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIGFuZCBwYXNzZXMKICAg
ICAvLyB8ZGVzdHJveUFsbHwgYWxvbmcuCkBAIC0yMjgsNyArMjIzLDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIGRlY3JlYXNlZCBieSB8ZnJhbWVCeXRlc0NsZWFyZWR8LgogICAgIHZvaWQgZGVzdHJv
eU1ldGFkYXRhQW5kTm90aWZ5KHVuc2lnbmVkIGZyYW1lQnl0ZXNDbGVhcmVkKTsKIAotICAgIC8v
IFdoZXRoZXIgb3Igbm90IHNpemUgaXMgYXZhaWxhYmxlIHlldC4gICAgCisgICAgLy8gV2hldGhl
ciBvciBub3Qgc2l6ZSBpcyBhdmFpbGFibGUgeWV0LgogICAgIGJvb2wgaXNTaXplQXZhaWxhYmxl
KCk7CiAKICAgICAvLyBDYWxsZWQgYWZ0ZXIgYXNraW5nIHRoZSBzb3VyY2UgZm9yIGFueSBpbmZv
cm1hdGlvbiB0aGF0IG1heSByZXF1aXJlCkBAIC0yNDAsNyArMjM1LDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIEFuaW1hdGlvbi4KICAgICBpbnQgcmVwZXRpdGlvbkNvdW50KGJvb2wgaW1hZ2VLbm93
blRvQmVDb21wbGV0ZSk7ICAvLyB8aW1hZ2VLbm93blRvQmVDb21wbGV0ZXwgc2hvdWxkIGJlIHNl
dCBpZiB0aGUgY2FsbGVyIGtub3dzIHRoZSBlbnRpcmUgaW1hZ2UgaGFzIGJlZW4gZGVjb2RlZC4K
ICAgICBib29sIHNob3VsZEFuaW1hdGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBbmltYXRp
b24oYm9vbCBjYXRjaFVwSWZOZWNlc3NhcnkgPSB0cnVlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRBbmltYXRpb24oYm9vbCBjYXRjaFVwSWZOZWNlc3NhcnkgPSB0cnVlKSBPVkVSUklERTsKICAg
ICB2b2lkIGFkdmFuY2VBbmltYXRpb24oVGltZXI8Qml0bWFwSW1hZ2U+Kik7CiAKICAgICAvLyBG
dW5jdGlvbiB0aGF0IGRvZXMgdGhlIHJlYWwgd29yayBvZiBhZHZhbmNpbmcgdGhlIGFuaW1hdGlv
bi4gIFdoZW4KQEAgLTI1MiwxOSArMjQ3LDIzIEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEhhbmRs
ZSBwbGF0Zm9ybS1zcGVjaWZpYyBkYXRhCiAgICAgdm9pZCBpbnZhbGlkYXRlUGxhdGZvcm1EYXRh
KCk7Ci0gICAgCisKICAgICAvLyBDaGVja3MgdG8gc2VlIGlmIHRoZSBpbWFnZSBpcyBhIDF4MSBz
b2xpZCBjb2xvci4gIFdlIG9wdGltaXplIHRoZXNlIGltYWdlcyBhbmQganVzdCBkbyBhIGZpbGwg
cmVjdCBpbnN0ZWFkLgogICAgIC8vIFRoaXMgY2hlY2sgc2hvdWxkIGhhcHBlbiByZWdhcmRsZXNz
IHdoZXRoZXIgbV9jaGVja2VkRm9yU29saWRDb2xvciBpcyBhbHJlYWR5IHNldCwgYXMgdGhlIGZy
YW1lIG1heSBoYXZlCiAgICAgLy8gY2hhbmdlZC4KICAgICB2b2lkIGNoZWNrRm9yU29saWRDb2xv
cigpOwotICAgIAotICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxsV2l0aFNvbGlkQ29sb3IoKTsKLSAg
ICB2aXJ0dWFsIENvbG9yIHNvbGlkQ29sb3IoKSBjb25zdDsKLSAgICAKKworICAgIHZpcnR1YWwg
Ym9vbCBtYXlGaWxsV2l0aFNvbGlkQ29sb3IoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENvbG9y
IHNvbGlkQ29sb3IoKSBjb25zdCBPVkVSUklERTsKKworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAg
ICB2aXJ0dWFsIGJvb2wgbm90U29saWRDb2xvcigpIE9WRVJSSURFOworI2VuZGlmCisKICAgICBJ
bWFnZVNvdXJjZSBtX3NvdXJjZTsKICAgICBtdXRhYmxlIEludFNpemUgbV9zaXplOyAvLyBUaGUg
c2l6ZSB0byB1c2UgZm9yIHRoZSBvdmVyYWxsIGltYWdlICh3aWxsIGp1c3QgYmUgdGhlIHNpemUg
b2YgdGhlIGZpcnN0IGltYWdlKS4KICAgICBtdXRhYmxlIEludFNpemUgbV9zaXplUmVzcGVjdGlu
Z09yaWVudGF0aW9uOwotICAgIAorCiAgICAgc2l6ZV90IG1fY3VycmVudEZyYW1lOyAvLyBUaGUg
aW5kZXggb2YgdGhlIGN1cnJlbnQgZnJhbWUgb2YgYW5pbWF0aW9uLgogICAgIFZlY3RvcjxGcmFt
ZURhdGEsIDE+IG1fZnJhbWVzOyAvLyBBbiBhcnJheSBvZiB0aGUgY2FjaGVkIGZyYW1lcyBvZiB0
aGUgYW5pbWF0aW9uLiBXZSBoYXZlIHRvIHJlZiBmcmFtZXMgdG8gcGluIHRoZW0gaW4gdGhlIGNh
Y2hlLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggMWY0MWFhNi4uMTUxMzU2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoSW1hZ2UqIGZyb21JbWFnZSwgSW1hZ2Uq
IHRvSW1hZwogICAgICwgbV9wZXJjZW50YWdlKHBlcmNlbnRhZ2UpCiAgICAgLCBtX2Nyb3NzZmFk
ZVNpemUoY3Jvc3NmYWRlU2l6ZSkKIHsKLSAgICBtX3NpemUgPSBzaXplOworICAgIHNldENvbnRh
aW5lclNpemUoc2l6ZSk7CiB9CiAKIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdD
cm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQpAQCAtOTUsNyArOTUsNyBAQCB2b2lk
IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkcwogCiB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIEJsZW5kTW9kZSkKIHsKLSAg
ICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSht
X3NpemUsIDEsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGNvbnRleHQtPmlzQWNjZWxlcmF0ZWRDb250
ZXh0KCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQpOworICAgIE93blB0cjxJbWFnZUJ1
ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgMSwgQ29sb3JT
cGFjZURldmljZVJHQiwgY29udGV4dC0+aXNBY2NlbGVyYXRlZENvbnRleHQoKSA/IEFjY2VsZXJh
dGVkIDogVW5hY2NlbGVyYXRlZCk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaAppbmRleCBmMWRhMmNhLi4wNzU0OGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmgKQEAgLTM2LDIzICszNiwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIENTU0Nyb3NzZmFkZVZhbHVlOwogCi1jbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZSA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7CitjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZSBGSU5BTCA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShJbWFnZSogZnJvbUltYWdl
LCBJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW50U2l6ZSBjcm9zc2ZhZGVTaXpl
LCBjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIHBlcmNlbnRhZ2Us
IGNyb3NzZmFkZVNpemUsIHNpemUpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGFpbmVyU2l6ZShjb25zdCBJbnRTaXplJikgeyB9Ci0gICAgdmlydHVhbCBib29sIHVzZXNDb250
YWluZXJTaXplKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFz
UmVsYXRpdmVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBJbnRTaXplJikgT1ZFUlJJREUgeyB9CisgICAg
dmlydHVhbCBib29sIHVzZXNDb250YWluZXJTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgSW50U2l6
ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9jcm9zc2ZhZGVTaXplOyB9CisgICAgdmlydHVhbCBJ
bnRTaXplIHNpemUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2Nyb3NzZmFkZVNpemU7IH0K
IAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Ci0gICAg
dmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0
ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIEJsZW5kTW9kZSk7CisgICAgdmly
dHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgQmxlbmRNb2RlKSBPVkVSUklERTsKIAogICAgIENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlKEltYWdlKiBmcm9tSW1hZ2UsIEltYWdlKiB0b0ltYWdlLCBmbG9h
dCBwZXJjZW50YWdlLCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNvbnN0IEludFNpemUmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgK
aW5kZXggYmQ0NjU4OC4uZjE4OWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCkBAIC0zNSwzMCArMzUsMzEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBHZW5lcmF0ZWRJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250YWluZXJTaXplKGNvbnN0IEludFNpemUmIHNpemUpIHsgbV9zaXplID0gc2l6ZTsgfQotICAg
IHZpcnR1YWwgYm9vbCB1c2VzQ29udGFpbmVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0
aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGlu
dHJpbnNpY1JhdGlvKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBJ
bnRTaXplJiBzaXplKSBPVkVSUklERSB7IG1fc2l6ZSA9IHNpemU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2lj
RGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdo
dCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIElu
dFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIHZpcnR1YWwgSW50U2l6
ZSBzaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zaXplOyB9CiAKICAgICAvLyBBc3N1
bWUgdGhhdCBnZW5lcmF0ZWQgY29udGVudCBoYXMgbm8gZGVjb2RlZCBkYXRhIHdlIG5lZWQgdG8g
d29ycnkgYWJvdXQKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypk
ZXN0cm95QWxsKi8gPSB0cnVlKSB7IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXpl
KCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERh
dGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRydWUpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwg
dW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CiAKIHBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIE9WRVJSSURFID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9z
aXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSkgPSAwOwor
ICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVuZE1v
ZGUpIE9WRVJSSURFID0gMDsKIAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyB0byBiZSBs
ZXNzIGNvbnNlcnZhdGl2ZS4KICAgICB2aXJ0dWFsIGJvb2wgY3VycmVudEZyYW1lS25vd25Ub0Jl
T3BhcXVlKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIEdlbmVyYXRlZEltYWdl
KCkgeyB9CiAKK3ByaXZhdGU6CiAgICAgSW50U2l6ZSBtX3NpemU7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZS5jcHAKaW5kZXggODQxMDBhMS4uNTU3MzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmNwcApAQCAtNDEsMTQgKzQxLDE0IEBAIHZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0KiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0CiAgICAgaWYg
KGRlc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKICAgICAgICAgZGVzdENvbnRleHQt
PnNjYWxlKEZsb2F0U2l6ZShkZXN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkZXN0
UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkpKTsKICAgICBkZXN0Q29udGV4dC0+dHJh
bnNsYXRlKC1zcmNSZWN0LngoKSwgLXNyY1JlY3QueSgpKTsKLSAgICBkZXN0Q29udGV4dC0+Zmls
bFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKSwgKm1fZ3JhZGllbnQuZ2V0KCkp
OworICAgIGRlc3RDb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXpl
KCkpLCAqbV9ncmFkaWVudC5nZXQoKSk7CiB9CiAKIHZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAog
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IEJsZW5kTW9kZSkKIHsKICAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3ZpZGUgdmlz
dWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNl
LgotICAgIEludFNpemUgYWRqdXN0ZWRTaXplID0gbV9zaXplOworICAgIEludFNpemUgYWRqdXN0
ZWRTaXplID0gc2l6ZSgpOwogICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0
OwogICAgIG1fZ3JhZGllbnQtPmFkanVzdFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoYWRqdXN0
ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAwYjU1
YmU2Li5kMjE0YTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgKQEAgLTM1LDcgKzM1LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSA6IHB1
YmxpYyBHZW5lcmF0ZWRJbWFnZSB7CitjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSBGSU5B
TCA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYWRpZW50PiBn
ZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgewpAQCAtNDUsMTYgKzQ1LDE3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSgpIHsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBk
cmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAgICAgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlKTsKKyAgICAgICAgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlKSBPVkVSUklE
RTsKIAogICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8R3JhZGllbnQ+IGdl
bmVyYXRvciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgOiBtX2dyYWRpZW50KGdlbmVy
YXRvcikKICAgICB7Ci0gICAgICAgIG1fc2l6ZSA9IHNpemU7CisgICAgICAgIHNldENvbnRhaW5l
clNpemUoc2l6ZSk7CiAgICAgfQogCitwcml2YXRlOgogICAgIFJlZlB0cjxHcmFkaWVudD4gbV9n
cmFkaWVudDsKICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IG1fY2FjaGVkSW1hZ2VCdWZmZXI7CiAg
ICAgSW50U2l6ZSBtX2NhY2hlZEFkanVzdGVkU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlLmgKaW5kZXggNWEwYmE0NS4uOTc0YjM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgUmVuZGVyQm94OwogY2xh
c3MgU1ZHSW1hZ2VDaHJvbWVDbGllbnQ7CiBjbGFzcyBTVkdJbWFnZUZvckNvbnRhaW5lcjsKIAot
Y2xhc3MgU1ZHSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgeworY2xhc3MgU1ZHSW1hZ2UgRklOQUwgOiBw
dWJsaWMgSW1hZ2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ltYWdlPiBj
cmVhdGUoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewpAQCAtNTEsMTMgKzUxLDEzIEBA
IHB1YmxpYzoKICAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OwogICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJ
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbWFn
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIEludFNpemUg
c2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faW50cmluc2ljU2l6ZTsgfQogCiAgICAg
dmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgT1ZFUlJJREU7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxh
dGl2ZVdpZHRoKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZl
SGVpZ2h0KCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBbmltYXRp
b24oYm9vbCAvKmNhdGNoVXBJZk5lY2Vzc2FyeSovID0gdHJ1ZSkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKSBPVkVSUklERTsKQEAgLTczLDI1ICs3MywyNSBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCB+U1ZHSW1hZ2UoKTsKIAotICAgIHZpcnR1YWwgU3RyaW5n
IGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVF
eHRlbnNpb24oKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250YWlu
ZXJTaXplKGNvbnN0IEludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6
ZShjb25zdCBJbnRTaXplJikgT1ZFUlJJREU7CiAgICAgSW50U2l6ZSBjb250YWluZXJTaXplKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHVzZXNDb250YWluZXJTaXplKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhM
ZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXpl
JiBpbnRyaW5zaWNSYXRpbyk7CisgICAgdmlydHVhbCBib29sIHVzZXNDb250YWluZXJTaXplKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
SW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJp
bnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgT1ZFUlJJREU7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOworICAgIHZpcnR1
YWwgYm9vbCBkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkgT1ZFUlJJREU7CiAKICAg
ICAvLyBGSVhNRTogU1ZHSW1hZ2VzIGFyZSB1bmRlcnJlcG9ydGluZyBkZWNvZGVkIHNpemVzIGFu
ZCB3aWxsIGJlIHVuYWJsZQogICAgIC8vIHRvIHBydW5lIGJlY2F1c2UgdGhlc2UgZnVuY3Rpb25z
IGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0LgotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2Rl
ZERhdGEoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wp
IE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgdG8g
YmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgdmlydHVhbCBib29sIGN1cnJlbnRGcmFtZUtub3du
VG9CZU9wYXF1ZSgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBTVkdJbWFnZShJ
bWFnZU9ic2VydmVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGZy
b21SZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRvUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIE9WRVJSSURFOwogICAgIHZvaWQgZHJh
d0ZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFNpemUsIGZsb2F0LCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvciwgQmxlbmRNb2RlKTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0U2l6ZSwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBDb2xvclNwYWNlLAog
ICAgICAgICBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oCmluZGV4IGEy
ZjE1ZTQuLmM3M2Q4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZUZvckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZUZvckNvbnRhaW5lci5oCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgU1ZHSW1hZ2VGb3JDb250YWluZXIgOiBwdWJsaWMgSW1hZ2UgeworY2xh
c3MgU1ZHSW1hZ2VGb3JDb250YWluZXIgRklOQUwgOiBwdWJsaWMgSW1hZ2UgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ltYWdlRm9yQ29udGFpbmVyPiBjcmVhdGUoU1ZHSW1h
Z2UqIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGNvbnRhaW5lclNpemUsIGZsb2F0IHpvb20pCiAg
ICAgewpAQCAtNzIsOCArNzIsOCBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSB7
IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QgeyByZXR1cm4gMDsg
fQorICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoYm9vbCAvKmRlc3Ryb3lBbGwq
LyA9IHRydWUpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CiAKICAgICBTVkdJbWFnZSogbV9pbWFnZTsK
ICAgICBjb25zdCBGbG9hdFNpemUgbV9jb250YWluZXJTaXplOwo=
</data>
<flag name="review"
          id="233305"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>