<?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>118351</bug_id>
          
          <creation_ts>2013-07-03 03:54:07 -0700</creation_ts>
          <short_desc>Have SVGTextContentElement inherit SVGGraphicsElement</short_desc>
          <delta_ts>2013-07-04 11:49:37 -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>SVG</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>https://svgwg.org/svg2-draft/text.html#InterfaceSVGTextContentElement</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>118353</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>krit</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905805</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-03 03:54:07 -0700</bug_when>
    <thetext>Have SVGTextContentElement inherit SVGGraphicsElement instead of
SVGStyledElement in order to match the latest SVG2 specification:
https://svgwg.org/svg2-draft/text.html#InterfaceSVGTextContentElement

This patch also removes the SVGTransformable and SVGLocatable IDL
interfaces as they are no longer needed (were merged into
SVGGraphicsElement in the latest specification).

Conversion to absolute (user agent) coordinates in the svg/text
tests is fixed to use SVGGraphicsElement::getScreenCTM() instead
of SVGGraphicsElement::getTransformToElement(). The previous code
was working until now due to a bug in getTransformToElement(),
which was not taking into consideration the CTM of the
SVGTextElement (as it was not recognized as a &quot;locatable&quot; element).
Now that SVGTextElement inherits from SVGGraphicsElement, it is
properly recognized as a &quot;locatable&quot; element by
getTransformToElement().

This is one step towards getting rid of multiple inheritance in
SVG and matching the latest SVG2 specification.

Corresponding Blink revision:
https://src.chromium.org/viewvc/blink?view=rev&amp;revision=153432</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905812</commentid>
    <comment_count>1</comment_count>
      <attachid>205991</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-03 04:21:53 -0700</bug_when>
    <thetext>Created attachment 205991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906222</commentid>
    <comment_count>2</comment_count>
      <attachid>205991</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-07-04 11:26:17 -0700</bug_when>
    <thetext>Comment on attachment 205991
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906230</commentid>
    <comment_count>3</comment_count>
      <attachid>205991</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-04 11:49:35 -0700</bug_when>
    <thetext>Comment on attachment 205991
Patch

Clearing flags on attachment: 205991

Committed r152404: &lt;http://trac.webkit.org/changeset/152404&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906231</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-04 11:49:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205991</attachid>
            <date>2013-07-03 04:21:53 -0700</date>
            <delta_ts>2013-07-04 11:49:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118351-20130703141945.patch</filename>
            <type>text/plain</type>
            <size>31213</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFjMWZjNGZiZWZhNDI2
MGIyNDI1YmViZjAyNThiMmMxZWNjZTVhMC4uNjE4MDU1ZmE2ZmExNzU4ZjNkYzRlY2EzZGJlNGEy
NzZiNWEwNDZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTA3LTAzICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBIYXZl
IFNWR1RleHRDb250ZW50RWxlbWVudCBpbmhlcml0IFNWR0dyYXBoaWNzRWxlbWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzUxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2ZSBTVkdUZXh0Q29u
dGVudEVsZW1lbnQgaW5oZXJpdCBTVkdHcmFwaGljc0VsZW1lbnQgaW5zdGVhZCBvZgorICAgICAg
ICBTVkdTdHlsZWRFbGVtZW50IGluIG9yZGVyIHRvIG1hdGNoIHRoZSBsYXRlc3QgU1ZHMiBzcGVj
aWZpY2F0aW9uOgorICAgICAgICBodHRwczovL3N2Z3dnLm9yZy9zdmcyLWRyYWZ0L3RleHQuaHRt
bCNJbnRlcmZhY2VTVkdUZXh0Q29udGVudEVsZW1lbnQKKworICAgICAgICBUaGlzIHBhdGNoIGFs
c28gcmVtb3ZlcyB0aGUgU1ZHVHJhbnNmb3JtYWJsZSBhbmQgU1ZHTG9jYXRhYmxlIElETAorICAg
ICAgICBpbnRlcmZhY2VzIGFzIHRoZXkgYXJlIG5vIGxvbmdlciBuZWVkZWQgKHdlcmUgbWVyZ2Vk
IGludG8KKyAgICAgICAgU1ZHR3JhcGhpY3NFbGVtZW50IGluIHRoZSBsYXRlc3Qgc3BlY2lmaWNh
dGlvbikuCisKKyAgICAgICAgVGhpcyBpcyBvbmUgc3RlcCB0b3dhcmRzIGdldHRpbmcgcmlkIG9m
IG11bHRpcGxlIGluaGVyaXRhbmNlIGluCisgICAgICAgIFNWRywgYW5kIGNvbXBseWluZyB3aXRo
IHRoZSBsYXRlc3QgU1ZHMiBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
Y292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0R251
VlRhYmxlT2Zmc2V0Rm9yVHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yT2JqQy5wbToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6Omhhc1ZhbGlkQXR0
cmlidXRlVHlwZSk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRWxlbWVudDo6Z2V0Qm91bmRpbmdCb3gpOgorICAgICAgICAqIHN2Zy9TVkdMb2Nh
dGFibGUuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29u
dGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1RleHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRFbGVtZW50OjpTVkdUZXh0RWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRy
YW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1RleHRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtYWJsZS5pZGw6
IFJlbW92ZWQuCisKIDIwMTMtMDctMDMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBIJlIgQmxvY2sgMjAxMCBIZWxwIHdpbmRvdyBjYW4gbm90IGJlIHJlb3BlbmVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYjJhZTYyYjA1ZGY5OGEzZGUwZWZl
MDMxYTViYjU4NTRkMGY0NjQwZC4uYWFlNmE4NGQwODNiMDY0MjBlOWFhYmVmOTQ0MTBmNWYxMTJm
NTE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01NTUsNyArNTU1LDYgQEAg
QklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvc3ZnL1NWR0xlbmd0aExpc3QuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL3N2Zy9TVkdMaW5lRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvc3ZnL1NW
R0xvY2F0YWJsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvc3ZnL1NWR01QYXRoRWxlbWVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvc3ZnL1NWR01hcmtlckVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL3N2Zy9TVkdNYXNrRWxlbWVudC5pZGwgXApAQCAtNjE2LDcgKzYxNSw2IEBAIEJJTkRJTkdf
SURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL3N2Zy9TVkdUcmFuc2Zvcm0uaWRsIFwKICAgICAkKFdlYkNvcmUpL3N2Zy9TVkdU
cmFuc2Zvcm1MaXN0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvc3ZnL1NWR1VSSVJlZmVyZW5jZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvc3ZnL1NWR1VuaXRUeXBlcy5pZGwgXAogICAgICQoV2ViQ29yZSkvc3ZnL1NWR1VzZUVs
ZW1lbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBkZGYwNTMxODk0ODNiMWVlMDk4OWQyMDc2YmYwOGU5ZDc0MTVmMTUy
Li5iN2YyYmJlZWU3NTg5YWM2MmE1MTBjYWE0YmYzNWJjYjA5ZDdmNTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDYyOCw3
ICsxMDYyOCw2IEBACiAJCUIyMjI3OEE3MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0xpbmVFbGVtZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIyMjc4QUEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xv
Y2F0YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTG9j
YXRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIyMjc4QUIwRDAwQkYy
MDAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHTG9jYXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyMjI3
OEFDMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTVkdMb2NhdGFibGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
MjIyNzhBRDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTWFya2VyRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3OEFFMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdN
YXJrZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdNYXJr
ZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3OEFGMEQwMEJG
MjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU1ZHTWFya2VyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDc2Nyw3ICsxMDc2Niw2IEBACiAJCUIyMjI3OTQyMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdUcmFu
c2Zvcm0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdUcmFuc2Zvcm0uaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjIyNzk0MzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZH
VHJhbnNmb3JtYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1ZHVHJhbnNmb3JtYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3
OTQ0MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1hYmxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUcmFuc2Zvcm1hYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUIyMjI3OTQ1MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1hYmxl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVHJhbnNmb3JtYWJsZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3OTQ2MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdU
cmFuc2Zvcm1EaXN0YW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMjIyNzk0NzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtRGlzdGFuY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1RyYW5zZm9ybURpc3RhbmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3OTQ4MEQwMEJGMjEwMDcxQjc4MiAvKiBT
VkdUcmFuc2Zvcm1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdUcmFuc2Zvcm1MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3
OTk5LDcgKzE3OTk3LDYgQEAKIAkJCQlCMjIyNzhBNzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGlu
ZUVsZW1lbnQuaWRsICovLAogCQkJCUIyMjI3OEFBMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2Nh
dGFibGUuY3BwICovLAogCQkJCUIyMjI3OEFCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFi
bGUuaCAqLywKLQkJCQlCMjIyNzhBQzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmlk
bCAqLywKIAkJCQlCMjIyNzhBRDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5j
cHAgKi8sCiAJCQkJQjIyMjc4QUUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQu
aCAqLywKIAkJCQlCMjIyNzhBRjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5p
ZGwgKi8sCkBAIC0xODE3MSw3ICsxODE2OCw2IEBACiAJCQkJQjIyMjc5NDIwRDAwQkYyMTAwNzFC
NzgyIC8qIFNWR1RyYW5zZm9ybS5pZGwgKi8sCiAJCQkJQjIyMjc5NDMwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1RyYW5zZm9ybWFibGUuY3BwICovLAogCQkJCUIyMjI3OTQ0MEQwMEJGMjEwMDcxQjc4
MiAvKiBTVkdUcmFuc2Zvcm1hYmxlLmggKi8sCi0JCQkJQjIyMjc5NDUwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1RyYW5zZm9ybWFibGUuaWRsICovLAogCQkJCUIyMjI3OTQ2MEQwMEJGMjEwMDcxQjc4
MiAvKiBTVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHAgKi8sCiAJCQkJQjIyMjc5NDcwRDAwQkYyMTAw
NzFCNzgyIC8qIFNWR1RyYW5zZm9ybURpc3RhbmNlLmggKi8sCiAJCQkJQjIyMjc5NDgwRDAwQkYy
MTAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybUxpc3QuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA2YmMwYzU2YmI3
NzRmZDEzYmVkYjBhZjZmMTUzNmRlYzIzY2UyNzEwLi4xODAwNTNkNDJiZTY4MWNhNjcxMzRlM2Q5
MGIwZjkxM2M0YTgwYWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTUwNCw3ICsxNTA0LDYgQEAgc3ViIEdldEdudVZU
YWJsZU9mZnNldEZvclR5cGUKICAgICAgICAgfHwgJHR5cGVuYW1lIGVxICJTVkdHcmFwaGljc0Vs
ZW1lbnQiCiAgICAgICAgIHx8ICR0eXBlbmFtZSBlcSAiU1ZHU3dpdGNoRWxlbWVudCIKICAgICAg
ICAgfHwgJHR5cGVuYW1lIGVxICJTVkdUZXh0RWxlbWVudCIKLSAgICAgICAgfHwgJHR5cGVuYW1l
IGVxICJTVkdUcmFuc2Zvcm1hYmxlIgogICAgICAgICB8fCAkdHlwZW5hbWUgZXEgIlNWR1VzZUVs
ZW1lbnQiKSB7CiAgICAgICAgIHJldHVybiAiMyI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggMzdiZTQ0
MWRhOTc5MzMxNmRhNmIyYWQ0ZGYyNzE3ZDhmNzk5MTE2Yy4uNWNlMmMyNDZjYzdiNWViZTJmNmMy
MDg3NjZiYmEyMGQ2MmQ3NzczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBAIC01NSw3ICs1NSw3IEBAIG15IEBkZXBz
Q29udGVudCA9ICgpOwogCiAjIEhhc2hlcwogbXkgJXByb3RvY29sVHlwZUhhc2ggPSAoIlhQYXRo
TlNSZXNvbHZlciIgPT4gMSwgIkV2ZW50TGlzdGVuZXIiID0+IDEsICJFdmVudFRhcmdldCIgPT4g
MSwgIk5vZGVGaWx0ZXIiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAiU1ZHTG9jYXRh
YmxlIiA9PiAxLCAiU1ZHVHJhbnNmb3JtYWJsZSIgPT4gMSwgIlNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcyIgPT4gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAiU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIiA9PiAxLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICJTVkdUZXN0cyIgPT4gMSwgIlNWR0xhbmdTcGFjZSIgPT4gMSwgIlNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQiID0+IDEsICJTVkdVUklSZWZlcmVuY2UiID0+IDEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAiU1ZHWm9vbUFuZFBhbiIgPT4gMSwgIlNWR0ZpdFRvVmlld0JveCIg
PT4gMSwgIlNWR0FuaW1hdGVkUGF0aERhdGEiID0+IDEsICJFbGVtZW50VGltZUNvbnRyb2wiID0+
IDEpOwogbXkgJW5hdGl2ZU9iakNUeXBlSGFzaCA9ICgiVVJMIiA9PiAxLCAiQ29sb3IiID0+IDEp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKaW5k
ZXggNjZkOTRkYTMyZDZjZTZhN2U0YmE4YTc0YmRjYjdiNDU2MTQ5YTFlMy4uMjI0MGIyMmQ5Mjdi
MzY0ZmIwNWQ4YWYyYzliMWQ0YTE4YjYxODliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGJvb2wgU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIFdlIGRvbid0IGhhdmUgYSBzcGVjaWFsIGF0dHJpYnV0ZSBuYW1l
IHRvIHZlcmlmeSB0aGUgYW5pbWF0aW9uIHR5cGUuIENoZWNrIHRoZSBlbGVtZW50IG5hbWUgaW5z
dGVhZC4KLSAgICBpZiAoIXRhcmdldEVsZW1lbnQtPmlzU1ZHR3JhcGhpY3NFbGVtZW50KCkgJiYg
IXRhcmdldEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKQorICAgIGlmICgh
dGFyZ2V0RWxlbWVudC0+aXNTVkdHcmFwaGljc0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIC8vIFNwZWM6IFNWRyAxLjEgc2VjdGlvbiAxOS4yLjE1CiAgICAgLy8gRklYTUU6
IHN2Z1RhZyBpcyBtaXNzaW5nLiBOZWVkcyB0byBiZSBjaGVja2VkLCBpZiB0cmFuc2Zvcm1pbmcg
PHN2Zz4gY291bGQgY2F1c2UgcHJvYmxlbXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5k
ZXggNDFlMDA1NzI4MDU0ZTYxZmM2NWU1MGRkODdhY2Q0MTEzOGMyZjEyMy4uNzUyZjAzODZlOTBk
YzQ1MzMxZTI2NzQyNDA2ZTgyMTZmYjc5MmY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNw
cApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgotI2luY2x1ZGUg
IlNWR1RleHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIlhNTE5hbWVzLmgiCiAKQEAgLTI1OSwxMCArMjU4LDYgQEAgYm9vbCBTVkdFbGVtZW50
OjpnZXRCb3VuZGluZ0JveChGbG9hdFJlY3QmIHJlY3QsIFNWR0xvY2F0YWJsZTo6U3R5bGVVcGRh
dGVTdHJhdGUKICAgICAgICAgcmVjdCA9IHRvU1ZHR3JhcGhpY3NFbGVtZW50KHRoaXMpLT5nZXRC
Qm94KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0g
ICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKSB7Ci0gICAgICAgIHJlY3QgPSBz
dGF0aWNfY2FzdDxTVkdUZXh0RWxlbWVudCo+KHRoaXMpLT5nZXRCQm94KHN0eWxlVXBkYXRlU3Ry
YXRlZ3kpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhMzAwZTA5MDIyMGZlNDU0NWQ4MTdiNGVhOGM2NzA5NmMxMjc1ZDNlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMb2NhdGFibGUuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4K
LSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi1bCi0gICAgTm9JbnRl
cmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9U1ZHLAotICAgIE9iakNQcm90b2NvbCwKLSAg
ICBTdXBwcmVzc1RvSlNPYmplY3QsCi1dIGludGVyZmFjZSBTVkdMb2NhdGFibGUgewotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50IG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQ7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQ7Ci0K
LSAgICBTVkdSZWN0ICAgZ2V0QkJveCgpOwotICAgIFNWR01hdHJpeCBnZXRDVE0oKTsKLSAgICBT
VkdNYXRyaXggZ2V0U2NyZWVuQ1RNKCk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gU1ZHTWF0cml4
IGdldFRyYW5zZm9ybVRvRWxlbWVudChbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIFNWR0Vs
ZW1lbnQgZWxlbWVudCk7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuY3BwCmluZGV4IDQ2ZmRjY2RiODEzZmY4YmZkY2VmOWIyMzg4Y2Y2MGUzMmQxZDRh
NTkuLjk4ZjI4ZGZkM2M5YWQxYjUzMGM4Y2M0OTBmYmIxOTFmOGM0MmY1NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC02MSwxMiArNjEsMTEg
QEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdUZXh0Q29udGVudEVsZW1l
bnQpCiAgICAgUkVHSVNURVJfTE9DQUxfQU5JTUFURURfUFJPUEVSVFkodGV4dExlbmd0aCkKICAg
ICBSRUdJU1RFUl9MT0NBTF9BTklNQVRFRF9QUk9QRVJUWShsZW5ndGhBZGp1c3QpCiAgICAgUkVH
SVNURVJfTE9DQUxfQU5JTUFURURfUFJPUEVSVFkoZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkK
LSAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdTdHlsZWRFbGVtZW50
KQotICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1Rlc3RzKQorICAg
IFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkK
IEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIFNWR1RleHRDb250ZW50RWxlbWVu
dDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICA6IFNWR1N0eWxlZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCisgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBt
X3RleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQogICAgICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3Ro
KExlbmd0aE1vZGVPdGhlcikKICAgICAsIG1fbGVuZ3RoQWRqdXN0KFNWR0xlbmd0aEFkanVzdFNw
YWNpbmcpCkBAIC0yMTcsNyArMjE2LDYgQEAgYm9vbCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewot
ICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1
dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjph
ZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bGVuZ3RoQWRqdXN0QXR0cik7CkBAIC0yMzAs
MTMgKzIyOCwxMyBAQCBib29sIFNWR1RleHRDb250ZW50RWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgYwogewogICAgIGlmIChuYW1lLm1h
dGNoZXMoWE1MTmFtZXM6OnNwYWNlQXR0cikpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJl
dHVybiBTVkdTdHlsZWRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAg
ICByZXR1cm4gU1ZHR3JhcGhpY3NFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1l
KTsKIH0KIAogdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCiB7CiAgICAgaWYg
KCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShuYW1lKSkKLSAgICAgICAgU1ZHU3R5bGVkRWxlbWVudDo6
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7
CisgICAgICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiAgICAgZWxzZSBpZiAobmFtZS5tYXRjaGVz
KFhNTE5hbWVzOjpzcGFjZUF0dHIpKSB7CiAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBwcmVzZXJ2ZVN0cmluZywgKCJwcmVzZXJ2ZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIApAQCAtMjUyLDE1ICsyNTAsMTQgQEAgdm9pZCBT
VkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b20KICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJy
b3I7CiAKICAgICBpZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRlKG5hbWUpKQotICAgICAgICBTVkdT
dHlsZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIFNWR0dy
YXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIGVsc2UgaWYg
KG5hbWUgPT0gU1ZHTmFtZXM6Omxlbmd0aEFkanVzdEF0dHIpIHsKICAgICAgICAgU1ZHTGVuZ3Ro
QWRqdXN0VHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoQWRq
dXN0VHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwogICAgICAgICBpZiAocHJvcGVydHlWYWx1ZSA+
IDApCiAgICAgICAgICAgICBzZXRMZW5ndGhBZGp1c3RCYXNlVmFsdWUocHJvcGVydHlWYWx1ZSk7
CiAgICAgfSBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikgewogICAg
ICAgICBtX3RleHRMZW5ndGgudmFsdWUgPSBTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2Rl
T3RoZXIsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpOwotICAgIH0g
ZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQotICAgICAgICAg
ICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpKSB7CisgICAgfSBlbHNlIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpIHsKICAgICB9IGVsc2UgaWYgKFNWR0xhbmdT
cGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKSB7CiAgICAgfSBlbHNlCiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjcxLDE1ICsyNjgsMTIgQEAgdm9pZCBTVkdUZXh0
Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b20KIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIGlmICghaXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoYXR0ck5hbWUpKSB7Ci0gICAgICAgIFNWR1N0eWxlZEVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOworICAgICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnZhbGlkYXRpb25HdWFyZCBpbnZhbGlkYXRpb25HdWFy
ZCh0aGlzKTsKIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMs
IGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05h
bWVzOjp0ZXh0TGVuZ3RoQXR0cikKICAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gbV90
ZXh0TGVuZ3RoLnZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmgKaW5kZXggNTdkYjcwZjczYmIzN2I2YWNmNjM2ZGJkNTI0NmEyYjY3NTg2MWIzMS4uYzcy
MzQ4YjFiYzVkMmFlNDAyMzI0MDBjMThhNTZjYTI4MDUwMDZkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaApAQCAtMjYsOCArMjYsNyBAQAogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5o
IgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKLSNpbmNsdWRlICJT
VkdTdHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHVGVzdHMuaCIKKyNpbmNsdWRlICJTVkdH
cmFwaGljc0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw4ICs2NSw3
IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhBZGp1c3RUeXBlPiB7CiAgICAg
fQogfTsKIAotY2xhc3MgU1ZHVGV4dENvbnRlbnRFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVs
ZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVGVzdHMsCitj
bGFzcyBTVkdUZXh0Q29udGVudEVsZW1lbnQgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQgewogcHVibGljOgogICAgIC8vIEZvcndhcmQgZGVjbGFyZSBlbnVtZXJhdGlvbnMg
aW4gdGhlIFczQyBuYW1pbmcgc2NoZW1lLCBmb3IgSURMIGdlbmVyYXRpb24uCkBAIC0xMjEsMTEg
KzExOSw2IEBAIHByaXZhdGU6CiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfRU5VTUVSQVRJT04o
TGVuZ3RoQWRqdXN0LCBsZW5ndGhBZGp1c3QsIFNWR0xlbmd0aEFkanVzdFR5cGUpCiAgICAgICAg
IERFQ0xBUkVfQU5JTUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkKSAKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJU
SUVTCi0KLSAgICAvLyBTVkdUZXN0cwotICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVp
cmVkRmVhdHVyZXMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXModGhp
cyk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMoKSB7
IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQotICAgIHZp
cnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkgeyBTVkdUZXN0czo6c3luY2hy
b25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQogfTsKIAogaW5saW5lIFNWR1RleHRDb250ZW50
RWxlbWVudCogdG9TVkdUZXh0Q29udGVudEVsZW1lbnQoU1ZHRWxlbWVudCogZWxlbWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5pZGwKaW5kZXggZWZjYmRi
OTE0ZDMyODQ3OWM1OGRkZWI4NTc5YjBmYjk1ZDZmMTk2OS4uNGYxZTNjZTRlMTYxZjk3MzFmNTUz
MjNmNGIyN2ZiNDI4YjdjMmI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRDb250ZW50RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250
ZW50RWxlbWVudC5pZGwKQEAgLTI1LDcgKzI1LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVNW
RwotXSBpbnRlcmZhY2UgU1ZHVGV4dENvbnRlbnRFbGVtZW50IDogU1ZHU3R5bGVkRWxlbWVudCB7
CitdIGludGVyZmFjZSBTVkdUZXh0Q29udGVudEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQg
ewogICAgIC8vIGxlbmd0aEFkanVzdCBUeXBlcwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExF
TkdUSEFESlVTVF9VTktOT1dOICAgICAgICAgID0gMDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBMRU5HVEhBREpVU1RfU1BBQ0lORyAgICAgICAgICA9IDE7CkBAIC00Nyw1ICs0Nyw1IEBACiAg
ICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkLElzSW5kZXhdIG9wdGlv
bmFsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsKIH07CiAKKy8vIEZJWE1FOiBTVkdUZXh0Q29udGVu
dEVsZW1lbnQgaXMgbm90IHN1cHBvc2VkIHRvIGltcGxlbWVudCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLgogU1ZHVGV4dENvbnRlbnRFbGVtZW50IGltcGxlbWVudHMgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDsKLVNWR1RleHRDb250ZW50RWxlbWVudCBpbXBsZW1lbnRzIFNWR1Rl
c3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKaW5kZXggODc4ZGExZDc5YTYx
ZGY4MGY0ODM0YTc0NTY2NDczOWI3MTA2NWEyMy4uZWE1ZDUyZDZiZDk2MmNiNTRmOTI1ZDI2NDEz
NDM5MWFlMWU0NWVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCkBAIC0y
Myw5ICsyMyw3IEBACiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdUZXh0RWxlbWVudC5o
IgogCi0jaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgi
Ci0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Rl
eHQuaCIKQEAgLTM2LDE5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEFu
aW1hdGVkIHByb3BlcnR5IGRlZmluaXRpb25zCi1ERUZJTkVfQU5JTUFURURfVFJBTlNGT1JNX0xJ
U1QoU1ZHVGV4dEVsZW1lbnQsIFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyLCBUcmFuc2Zvcm0sIHRy
YW5zZm9ybSkKLQotQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdUZXh0RWxl
bWVudCkKLSAgICBSRUdJU1RFUl9MT0NBTF9BTklNQVRFRF9QUk9QRVJUWSh0cmFuc2Zvcm0pCi0g
ICAgUkVHSVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudCkKLUVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCi0KIGlubGluZSBTVkdU
ZXh0RWxlbWVudDo6U1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvYykKICAgICA6IFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQodGFnTmFtZSwg
ZG9jKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjp0ZXh0VGFnKSk7Ci0gICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdUZXh0RWxlbWVudCgpOwogfQogCiBQYXNz
UmVmUHRyPFNWR1RleHRFbGVtZW50PiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTU2LDU3ICs0NSw4IEBA
IFBhc3NSZWZQdHI8U1ZHVGV4dEVsZW1lbnQ+IFNWR1RleHRFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RleHRF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLWJvb2wgU1ZHVGV4dEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQotewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKLSAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpOwot
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7Ci19Ci0KLXZvaWQgU1ZHVGV4dEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUpCi17Ci0gICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShuYW1lKSkgewotICAgICAgICBT
VkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dHJhbnNm
b3JtQXR0cikgewotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0IG5ld0xpc3Q7Ci0gICAgICAgIG5l
d0xpc3QucGFyc2UodmFsdWUpOwotICAgICAgICBkZXRhY2hBbmltYXRlZFRyYW5zZm9ybUxpc3RX
cmFwcGVycyhuZXdMaXN0LnNpemUoKSk7Ci0gICAgICAgIHNldFRyYW5zZm9ybUJhc2VWYWx1ZShu
ZXdMaXN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotfQotCi1TVkdFbGVtZW50KiBTVkdUZXh0RWxlbWVudDo6bmVhcmVzdFZpZXdwb3J0RWxl
bWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6Om5lYXJlc3RWaWV3
cG9ydEVsZW1lbnQodGhpcyk7Ci19Ci0KLVNWR0VsZW1lbnQqIFNWR1RleHRFbGVtZW50OjpmYXJ0
aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFi
bGU6OmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1GbG9hdFJlY3QgU1ZHVGV4
dEVsZW1lbnQ6OmdldEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0ZVN0cmF0ZWd5
KQotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpnZXRCQm94KHRoaXMsIHN0eWxlVXBk
YXRlU3RyYXRlZ3kpOwotfQotCi1BZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnQ6OmdldENU
TShTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCi17Ci0gICAgcmV0dXJu
IFNWR0xvY2F0YWJsZTo6Y29tcHV0ZUNUTSh0aGlzLCBTVkdMb2NhdGFibGU6Ok5lYXJlc3RWaWV3
cG9ydFNjb3BlLCBzdHlsZVVwZGF0ZVN0cmF0ZWd5KTsKLX0KLQotQWZmaW5lVHJhbnNmb3JtIFNW
R1RleHRFbGVtZW50OjpnZXRTY3JlZW5DVE0oU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0
ZVN0cmF0ZWd5KQotewotICAgIHJldHVybiBTVkdMb2NhdGFibGU6OmNvbXB1dGVDVE0odGhpcywg
U1ZHTG9jYXRhYmxlOjpTY3JlZW5TY29wZSwgc3R5bGVVcGRhdGVTdHJhdGVneSk7Ci19Ci0KKy8v
IFdlIG92ZXJyaWRlIFNWR0dyYXBoaWNzOjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgc28gdGhh
dCB0aGUgdHJhbnNmb3JtLW9yaWdpbgorLy8gaXMgbm90IHRha2VuIGludG8gYWNjb3VudC4KIEFm
ZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNv
bnN0CiB7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsKQEAgLTEyMywxOCArNjMsMTIgQEAg
QWZmaW5lVHJhbnNmb3JtIFNWR1RleHRFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkg
Y29uc3QKICAgICB9IGVsc2UKICAgICAgICAgdHJhbnNmb3JtKCkuY29uY2F0ZW5hdGUobWF0cml4
KTsKIAotICAgIGlmIChtX3N1cHBsZW1lbnRhbFRyYW5zZm9ybSkKLSAgICAgICAgcmV0dXJuICpt
X3N1cHBsZW1lbnRhbFRyYW5zZm9ybSAqIG1hdHJpeDsKKyAgICBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0qIHRyYW5zZm9ybSA9IGNvbnN0X2Nhc3Q8U1ZHVGV4dEVsZW1lbnQqPih0aGlzKS0+c3VwcGxl
bWVudGFsVHJhbnNmb3JtKCk7CisgICAgaWYgKHRyYW5zZm9ybSkKKyAgICAgICAgcmV0dXJuICp0
cmFuc2Zvcm0gKiBtYXRyaXg7CiAgICAgcmV0dXJuIG1hdHJpeDsKIH0KIAotQWZmaW5lVHJhbnNm
b3JtKiBTVkdUZXh0RWxlbWVudDo6c3VwcGxlbWVudGFsVHJhbnNmb3JtKCkKLXsKLSAgICBpZiAo
IW1fc3VwcGxlbWVudGFsVHJhbnNmb3JtKQotICAgICAgICBtX3N1cHBsZW1lbnRhbFRyYW5zZm9y
bSA9IGFkb3B0UHRyKG5ldyBBZmZpbmVUcmFuc2Zvcm0pOwotICAgIHJldHVybiBtX3N1cHBsZW1l
bnRhbFRyYW5zZm9ybS5nZXQoKTsKLX0KLQogUmVuZGVyT2JqZWN0KiBTVkdUZXh0RWxlbWVudDo6
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAgICAg
cmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNWR1RleHQodGhpcyk7CkBAIC0xNTUsMjggKzg5LDYg
QEAgYm9vbCBTVkdUZXh0RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlUmVuZGVyaW5nQ29udGV4dCYgY2hpbGQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
U1ZHVGV4dEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCi17Ci0gICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShhdHRyTmFtZSkpIHsK
LSAgICAgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBTVkdFbGVtZW50SW5zdGFu
Y2U6OkludmFsaWRhdGlvbkd1YXJkIGludmFsaWRhdGlvbkd1YXJkKHRoaXMpOwotCi0gICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0cmFu
c2Zvcm1BdHRyKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgp
OwotICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291
cmNlSW52YWxpZGF0aW9uKHJlbmRlcmVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAppbmRleCBmZmI5OGNiZTIwYmExNTIwZmFkYmM0
ODg5ZGIzOWM5NGIwOGFiNjNjLi41MWI5MDY4ZDk3NjBlNDNhNDc3NDNkMjVmMjIwYmUwMTlmMDE2
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaApAQCAtMjQsMjEgKzI0LDEzIEBA
CiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIK
ICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHVHJh
bnNmb3JtYWJsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1RleHRFbGVt
ZW50IEZJTkFMIDogcHVibGljIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1hYmxlIHsKK2NsYXNzIFNWR1Rl
eHRFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RleHRFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIFNWR0VsZW1lbnQqIG5l
YXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFNWR0VsZW1lbnQqIGZh
cnRoZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBn
ZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0eWxlVXBkYXRlKTsKLSAgICB2aXJ0
dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5
bGVVcGRhdGUpOwotICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTShTdHls
ZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHlsZVVwZGF0ZSk7CiAgICAgdmlydHVhbCBBZmZpbmVU
cmFuc2Zvcm0gYW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAt
NDYsMjMgKzM4LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3Vz
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgYm9vbCBpc1N1cHBvcnRl
ZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVS
UklERTsKLQotICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtKiBzdXBwbGVtZW50YWxUcmFuc2Zv
cm0oKTsKLSAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbENvb3JkaW5hdGVTcGFjZVRy
YW5zZm9ybShTVkdMb2NhdGFibGU6OkNUTVNjb3BlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIFNWR1Ry
YW5zZm9ybWFibGU6OmxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKG1vZGUpOyB9Ci0KICAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgY29uc3Q7Ci0gICAgICAgICAgICAKLSAgICB2aXJ0
dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0KLSAg
ICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVGV4dEVsZW1lbnQpCi0gICAg
ICAgIERFQ0xBUkVfQU5JTUFURURfVFJBTlNGT1JNX0xJU1QoVHJhbnNmb3JtLCB0cmFuc2Zvcm0p
Ci0gICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwotCi0gICAgLy8gVXNlZCBieSA8
YW5pbWF0ZU1vdGlvbj4KLSAgICBPd25QdHI8QWZmaW5lVHJhbnNmb3JtPiBtX3N1cHBsZW1lbnRh
bFRyYW5zZm9ybTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dEVsZW1lbnQuaWRsCmluZGV4IDJhM2M2YzhjMmY2ZTc3NGYxNTk1YmFmN2Y1ODgzM2E0
MDIyNjQ2MDMuLmQ0Y2FlYTdhMTk1M2Q5ODhmODQ1NDkxZDlkMThjOTVjZDRjMGRmMDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmlkbApAQCAtMjUsNyArMjUsNiBAQAogCiBbCiAg
ICAgQ29uZGl0aW9uYWw9U1ZHCi1dIGludGVyZmFjZSBTVkdUZXh0RWxlbWVudCA6IFNWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlIHsKK10gaW50ZXJmYWNlIFNWR1RleHRFbGVtZW50IDog
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCB7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtYWJsZS5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhNGRiYTc3MDk3
Mjg5ODRkN2M5ZTRlNGU0NTRjZmQ1NmIzODYwNmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUu
aWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KLSAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0g
ICAgQ29uZGl0aW9uYWw9U1ZHLAotICAgIE9iakNQcm90b2NvbCwKLV0gaW50ZXJmYWNlIFNWR1Ry
YW5zZm9ybWFibGUgOiBTVkdMb2NhdGFibGUgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3QgdHJhbnNmb3JtOwotfTsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRlNmJiZTViNDc0
MWQyZDFkZmNhNmRjYmE2NzY4YjIzN2EyYWUxMTkuLmRjMTNhZDBlYWQzYzgwOWFiMDAxZDlmMzcz
MDhjNWFjNTY5MGFjZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wNy0wMyAgQ2hyaXN0
b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgSGF2ZSBT
VkdUZXh0Q29udGVudEVsZW1lbnQgaW5oZXJpdCBTVkdHcmFwaGljc0VsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM1MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjb252ZXJzaW9uIHRv
IGFic29sdXRlICh1c2VyIGFnZW50KSBjb29yZGluYXRlcyBpbiB0aGUgc3ZnL3RleHQKKyAgICAg
ICAgdGVzdHMgdG8gdXNlIFNWR0dyYXBoaWNzRWxlbWVudDo6Z2V0U2NyZWVuQ1RNKCkgaW5zdGVh
ZCBvZgorICAgICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudCgp
LiBUaGUgcHJldmlvdXMgY29kZSB3YXMKKyAgICAgICAgd29ya2luZyB1bnRpbCBub3cgZHVlIHRv
IGEgYnVnIGluIGdldFRyYW5zZm9ybVRvRWxlbWVudCgpLCB3aGljaAorICAgICAgICB3YXMgbm90
IHRha2luZyBpbnRvIGNvbnNpZGVyYXRpb24gdGhlIENUTSBvZiB0aGUgU1ZHVGV4dEVsZW1lbnQg
KGFzCisgICAgICAgIGl0IHdhcyBub3QgcmVjb2duaXplZCBhcyBhICJsb2NhdGFibGUiIGVsZW1l
bnQpLiBOb3cgdGhhdAorICAgICAgICBTVkdUZXh0RWxlbWVudCBpbmhlcml0cyBmcm9tIFNWR0dy
YXBoaWNzRWxlbWVudCwgaXQgaXMgcHJvcGVybHkKKyAgICAgICAgcmVjb2duaXplZCBhcyBhICJs
b2NhdGFibGUiIGVsZW1lbnQgYnkgZ2V0VHJhbnNmb3JtVG9FbGVtZW50KCkuCisKKyAgICAgICAg
KiBzdmcvdGV4dC9yZXNvdXJjZXMvU2VsZWN0aW9uVGVzdENhc2UuanM6CisgICAgICAgICh0b0Fi
c29sdXRlQ29vcmRpbmF0ZXMpOgorICAgICAgICAqIHN2Zy90ZXh0L3NlbGVjdGlvbi1kb3VibGVj
bGljay5zdmc6CisKIDIwMTMtMDctMDMgIEdhYm9yIEFicmFoYW0gIDxhYnJobUBpbmYudS1zemVn
ZWQuaHU+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4gU2tpcHBpbmcgdGVz
dCB0byBwYWludCB0aGUgZGVidWcgYm90IGdyZWVuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL3RleHQvcmVzb3VyY2VzL1NlbGVjdGlvblRlc3RDYXNlLmpzIGIvTGF5b3V0VGVzdHMvc3Zn
L3RleHQvcmVzb3VyY2VzL1NlbGVjdGlvblRlc3RDYXNlLmpzCmluZGV4IDFlZDQ5ZGUyMzlmMzUw
YTlhYjc5YjhmMTcxNWQzODAyM2QxYWE0OTMuLmZlNDNkY2Y2M2JiMzE3NGI3YTExY2NiNTVhNDM0
MWQ5MjllMTMxNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L3Jlc291cmNlcy9T
ZWxlY3Rpb25UZXN0Q2FzZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9yZXNvdXJjZXMv
U2VsZWN0aW9uVGVzdENhc2UuanMKQEAgLTI5LDcgKzI5LDkgQEAgZnVuY3Rpb24gdHJhbnNmb3Jt
UmVjdChyZWN0LCBtYXRyaXgpIHsKIH0KIAogZnVuY3Rpb24gdG9BYnNvbHV0ZUNvb3JkaW5hdGVz
KHBvaW50LCBlbGVtZW50KSB7Ci0gICAgcmV0dXJuIHRyYW5zZm9ybVBvaW50KHBvaW50LCBkb2N1
bWVudC5yb290RWxlbWVudC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZWxlbWVudCkpOworICAgIC8v
IGdldFNjcmVlbkNUTSgpIHJldHVybnMgdGhlIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBmcm9tIGN1
cnJlbnQgdXNlciB1bml0cyAoaS5lLiwgYWZ0ZXIgYXBwbGljYXRpb24gb2YgdGhlIOKAmHRyYW5z
Zm9ybeKAmSBwcm9wZXJ0eSkKKyAgICAvLyB0byB0aGUgcGFyZW50IHVzZXIgYWdlbnQncyBub3Rp
Y2Ugb2YgYSAicGl4ZWwiLgorICAgIHJldHVybiB0cmFuc2Zvcm1Qb2ludChwb2ludCwgZWxlbWVu
dC5nZXRTY3JlZW5DVE0oKSk7CiB9CiAKIC8vIFNlbGVjdCBhIHJhbmdlIG9mIGNoYXJhY3RlcnMg
aW4gdGV4dCBlbGVtZW50ICdpZCcsIGZyb20gdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSAnc3Rh
cnQnIGNoYXJhY3RlciB0byB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSAnZW5kJyBjaGFyYWN0ZXIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L3NlbGVjdGlvbi1kb3VibGVjbGljay5z
dmcgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9zZWxlY3Rpb24tZG91YmxlY2xpY2suc3ZnCmluZGV4
IGY0ZjA0NmRjNmNmZTMxZDNkYjI3MWU4NzNjMWM2MmYwMjZhYzFhYjguLjVjNGE5MzE1ZDFkMzkz
MDIxMGNlMDdjZTVhYjgzZDJjYjU4YWRlMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy90
ZXh0L3NlbGVjdGlvbi1kb3VibGVjbGljay5zdmcKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQv
c2VsZWN0aW9uLWRvdWJsZWNsaWNrLnN2ZwpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB2YXIg
bGluZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGluZTEiKTsKIHZhciBjZW50ZXIgPSBk
b2N1bWVudC5yb290RWxlbWVudC5jcmVhdGVTVkdQb2ludCgpOwotdmFyIG1hdHJpeCA9IGRvY3Vt
ZW50LnJvb3RFbGVtZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChsaW5lMSk7Cit2YXIgbWF0cml4
ID0gbGluZTEuZ2V0U2NyZWVuQ1RNKCk7CiB2YXIgYmJveCA9IGxpbmUxLmdldEJCb3goKTsKIAog
Y2VudGVyLnggPSBiYm94LnggKyBiYm94LndpZHRoLzI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>