<?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>89350</bug_id>
          
          <creation_ts>2012-06-18 09:16:03 -0700</creation_ts>
          <short_desc>[GStreamer] Use GST_DEBUG instead of LOG_VERBOSE</short_desc>
          <delta_ts>2012-08-02 09:10:15 -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>Platform</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>651431</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-18 09:16:03 -0700</bug_when>
    <thetext>WebCore&apos;s LOG* macros work only for debug builds. Moreover I think it make sense to have the player&apos;s logging messages at the same level as gst logging messages. We can make a new gst debug category called webkit so GST_DEBUG=webkit:5 would output the current LOG_VERBOSE() messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651440</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-18 09:29:10 -0700</bug_when>
    <thetext>Is that the behavior of the LOG macros on all platforms, or just a result of the GTK+ implementation of the LOG macros?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651444</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-18 09:35:03 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Is that the behavior of the LOG macros on all platforms, or just a result of the GTK+ implementation of the LOG macros?

On all platforms, see Source/WTF/wtf/Assertions.h

#if COMPILER(MSVC7_OR_LOWER)
#define LOG_VERBOSE(channel) ((void)0)
#elif LOG_DISABLED
#define LOG_VERBOSE(channel, ...) ((void)0)
#else
#define LOG_VERBOSE(channel, ...) WTFLogVerbose(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, &amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651445</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-18 09:37:58 -0700</bug_when>
    <thetext>Perhaps the best approach is to not use the LOG_VERBOSE channel rather than creating another logging mechanism?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651450</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-18 09:48:36 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Perhaps the best approach is to not use the LOG_VERBOSE channel rather than creating another logging mechanism?

What do you mean? LOG() is also disabled for Release builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685376</commentid>
    <comment_count>5</comment_count>
      <attachid>156081</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-08-02 07:44:27 -0700</bug_when>
    <thetext>Created attachment 156081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685383</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-02 07:48:25 -0700</bug_when>
    <thetext>Attachment 156081 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.h:25:  Missing space before ( in while(  [whitespace/parens] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685384</commentid>
    <comment_count>7</comment_count>
      <attachid>156081</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-08-02 07:48:28 -0700</bug_when>
    <thetext>Comment on attachment 156081
Patch

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

Looks good to me, just a couple concerns that seem easy to fix before landing.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.h:26
&gt; +#define logMessageToGStreamer(...) do { \
&gt; +    GST_DEBUG(__VA_ARGS__); \
&gt; +    LOG_VERBOSE(Media, __VA_ARGS__); } while(0)
&gt;  }

Don&apos;t most macros in WebKit FOLLOW_THIS_NAMING_CONVENTION? I don&apos;t think that preprocessor macros exist in namespaces, so this should probably be at the top of the file.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:189
&gt; +        GST_DEBUG_CATEGORY_INIT(webkit_media_player_debug, &quot;webkitmediaplayer&quot;, 0, &quot;webkit media player&quot;);

Perhaps it would be good to have the string be &quot;WebKit media player&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685465</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-08-02 09:10:15 -0700</bug_when>
    <thetext>Committed r124464: &lt;http://trac.webkit.org/changeset/124464&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156081</attachid>
            <date>2012-08-02 07:44:27 -0700</date>
            <delta_ts>2012-08-02 07:48:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>21964</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBmZjZiZGU0YWQ2YmJhNTUzNmYyMTNhZjNkN2NmZDBkNDE3NTQxZTZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIgQXVnIDIwMTIgMTY6NDM6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzIgKysrKysrCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxp
dGllcy5oICAgICAgICB8ICAgIDQgKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwICAgICAgfCAgMTA1ICsrKysrKysrKystLS0tLS0tLS0tCiAzIGZpbGVzIGNo
YW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZmM1MGRhLi5mYzIyOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDgtMDIg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3Ry
ZWFtZXJdIFVzZSBHU1RfREVCVUcgaW5zdGVhZCBvZiBMT0dfVkVSQk9TRQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkzNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXcmFwIHRoZSBtZWRpYSBwbGF5ZXIn
cyBsb2dnaW5nIGNhbGxzIHRvIGEgbmV3IG1hY3JvIHRoYXQgYWxzbworICAgICAgICBob29rcyBp
bnRvIEdTdHJlYW1lcidzIGxvZ2dpbmcgZmFjaWxpdGllcy4gVGhpcyB3YXkgdGhlIGRldmVsb3Bl
cgorICAgICAgICBnZXRzIHRoZSBiZXN0IG9mIGJvdGggd29ybGRzLCBsZWF2aW5nIHRoZSBjaG9p
Y2UgYmV0d2VlbiBHU1RfREVCVUcKKyAgICAgICAgYW5kIFdFQktJVF9ERUJVRyBlbnZpcm9ubWVu
dCB2YXJpYWJsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1l
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbW1p
dExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpw
bGF5YmFja1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6ZHVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpzZWVrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bmF0dXJhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpzZXRSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NCdWZmZXJpbmdTdGF0cyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmZpbGxUaW1lckZpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZVNlZWthYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGlt
ZUxvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmRpZExvYWRpbmdQcm9ncmVzcyk6CisKIDIwMTItMDgtMDEgIEFsZXhlaSBGaWxpcHBvdiAgPGFs
ZXhlaWZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNvdW50IERPTSBz
dG9yYWdlIGNhY2hlIG1lbW9yeSBmb3IgbmF0aXZlIHNuYXBzaG90CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VXRpbGl0aWVzLmgKaW5kZXggYjllYjE2NS4uMjRlMjJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJV
dGlsaXRpZXMuaApAQCAtMTksNCArMTksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBib29s
IGluaXRpYWxpemVHU3RyZWFtZXIoKTsKKworI2RlZmluZSBsb2dNZXNzYWdlVG9HU3RyZWFtZXIo
Li4uKSBkbyB7IFwKKyAgICBHU1RfREVCVUcoX19WQV9BUkdTX18pOyBcCisgICAgTE9HX1ZFUkJP
U0UoTWVkaWEsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSgwKQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAxOTNmNjY1Li44MjJkODAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
ODAsNiArODAsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogZ1BsYXliaW5OYW1lID0gInBsYXliaW4i
Owogc3RhdGljIGNvbnN0IGNoYXIqIGdQbGF5YmluTmFtZSA9ICJwbGF5YmluMiI7CiAjZW5kaWYK
IAorR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyh3ZWJraXRfbWVkaWFfcGxheWVyX2RlYnVnKTsK
KyNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcKKwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTgyLDggKzE4NSwx
MCBAQCBib29sIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4g
c3JjRmFjdG9yeSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfZmluZCgid2Via2l0d2Vic3JjIik7Ci0g
ICAgaWYgKCFzcmNGYWN0b3J5KQorICAgIGlmICghc3JjRmFjdG9yeSkgeworICAgICAgICBHU1Rf
REVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRfbWVkaWFfcGxheWVyX2RlYnVnLCAid2Via2l0bWVk
aWFwbGF5ZXIiLCAwLCAid2Via2l0IG1lZGlhIHBsYXllciIpOwogICAgICAgICByZXR1cm4gZ3N0
X2VsZW1lbnRfcmVnaXN0ZXIoMCwgIndlYmtpdHdlYnNyYyIsIEdTVF9SQU5LX1BSSU1BUlkgKyAx
MDAsIFdFQktJVF9UWVBFX1dFQl9TUkMpOworICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQpA
QCAtMjk3LDEwICszMDIsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omxv
YWQoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgbV91cmwgPSBLVVJMKEtVUkwoKSwgY2xlYW5Vcmwp
OwogICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJ1cmkiLCBjbGVhblVybC51dGY4KCkuZGF0
YSgpLCBOVUxMKTsKIAotICAgIExPR19WRVJCT1NFKE1lZGlhLCAiTG9hZCAlcyIsIGNsZWFuVXJs
LnV0ZjgoKS5kYXRhKCkpOworICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiTG9hZCAlcyIsIGNs
ZWFuVXJsLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKG1fcHJlbG9hZCA9PSBNZWRpYVBsYXll
cjo6Tm9uZSkgewotICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkRlbGF5aW5nIGxvYWQuIik7
CisgICAgICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiRGVsYXlpbmcgbG9hZC4iKTsKICAgICAg
ICAgbV9kZWxheWluZ0xvYWQgPSB0cnVlOwogICAgIH0KIApAQCAtMzE1LDcgKzMyMCw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsKQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbW1pdExvYWQoKQogewogICAgIEFT
U0VSVCghbV9kZWxheWluZ0xvYWQpOwotICAgIExPR19WRVJCT1NFKE1lZGlhLCAiQ29tbWl0dGlu
ZyBsb2FkLiIpOworICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiQ29tbWl0dGluZyBsb2FkLiIp
OwogICAgIHVwZGF0ZVN0YXRlcygpOwogfQogCkBAIC0zMjUsNyArMzMwLDcgQEAgZmxvYXQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5YmFja1Bvc2l0aW9uKCkgY29uc3QKIAogICAg
IEdzdFF1ZXJ5KiBxdWVyeSA9IGdzdF9xdWVyeV9uZXdfcG9zaXRpb24oR1NUX0ZPUk1BVF9USU1F
KTsKICAgICBpZiAoIWdzdF9lbGVtZW50X3F1ZXJ5KG1fcGxheUJpbiwgcXVlcnkpKSB7Ci0gICAg
ICAgIExPR19WRVJCT1NFKE1lZGlhLCAiUG9zaXRpb24gcXVlcnkgZmFpbGVkLi4uIik7CisgICAg
ICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiUG9zaXRpb24gcXVlcnkgZmFpbGVkLi4uIik7CiAg
ICAgICAgIGdzdF9xdWVyeV91bnJlZihxdWVyeSk7CiAgICAgICAgIHJldHVybiByZXQ7CiAgICAg
fQpAQCAtMzM4LDcgKzM0Myw3IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cGxheWJhY2tQb3NpdGlvbigpIGNvbnN0CiAgICAgaWYgKHBvc2l0aW9uICE9IHN0YXRpY19jYXN0
PGdpbnQ2ND4oR1NUX0NMT0NLX1RJTUVfTk9ORSkpCiAgICAgICAgIHJldCA9IHN0YXRpY19jYXN0
PGRvdWJsZT4ocG9zaXRpb24pIC8gR1NUX1NFQ09ORDsKIAotICAgIExPR19WRVJCT1NFKE1lZGlh
LCAiUG9zaXRpb24gJSIgR1NUX1RJTUVfRk9STUFULCBHU1RfVElNRV9BUkdTKHBvc2l0aW9uKSk7
CisgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJQb3NpdGlvbiAlIiBHU1RfVElNRV9GT1JNQVQs
IEdTVF9USU1FX0FSR1MocG9zaXRpb24pKTsKIAogICAgIGdzdF9xdWVyeV91bnJlZihxdWVyeSk7
CiAKQEAgLTM3NywxMyArMzgyLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwcmVwYXJlVG9QbGF5KCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5
KCkKIHsKICAgICBpZiAoY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUExBWUlORykpCi0g
ICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiUGxheSIpOworICAgICAgICBsb2dNZXNzYWdlVG9H
U3RyZWFtZXIoIlBsYXkiKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnBhdXNlKCkKIHsKICAgICBpZiAoY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUEFVU0VE
KSkKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJQYXVzZSIpOworICAgICAgICBsb2dNZXNz
YWdlVG9HU3RyZWFtZXIoIlBhdXNlIik7CiB9CiAKIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6ZHVyYXRpb24oKSBjb25zdApAQCAtNDEwLDExICs0MTUsMTEgQEAgZmxvYXQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbigpIGNvbnN0CiAgICAgYm9vbCBmYWls
dXJlID0gIWdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fcGxheUJpbiwgJnRpbWVGb3JtYXQs
ICZ0aW1lTGVuZ3RoKSB8fCB0aW1lRm9ybWF0ICE9IEdTVF9GT1JNQVRfVElNRSB8fCBzdGF0aWNf
Y2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9OT05FOwogI2VuZGlm
CiAgICAgaWYgKGZhaWx1cmUpIHsKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJUaW1lIGR1
cmF0aW9uIHF1ZXJ5IGZhaWxlZCBmb3IgJXMiLCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJUaW1lIGR1cmF0aW9uIHF1ZXJ5IGZh
aWxlZCBmb3IgJXMiLCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0
dXJuIG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKTsKICAgICB9CiAKLSAgICBMT0df
VkVSQk9TRShNZWRpYSwgIkR1cmF0aW9uOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdTVF9USU1FX0FS
R1ModGltZUxlbmd0aCkpOworICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiRHVyYXRpb246ICUi
IEdTVF9USU1FX0ZPUk1BVCwgR1NUX1RJTUVfQVJHUyh0aW1lTGVuZ3RoKSk7CiAKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih0aW1lTGVuZ3RoKSAvIEdTVF9TRUNPTkQ7CiAgICAgLy8g
RklYTUU6IGhhbmRsZSAzLjE0LjkuNSBwcm9wZXJseQpAQCAtNDY2LDE0ICs0NzEsMTQgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNlZWsoZmxvYXQgdGltZSkKICAgICB0aW1l
VmFsdWUudHZfdXNlYyA9IHN0YXRpY19jYXN0PGdsb25nPihyb3VuZGYobWljcm9TZWNvbmRzIC8g
MTAwMDApICogMTAwMDApOwogCiAgICAgR3N0Q2xvY2tUaW1lIGNsb2NrVGltZSA9IEdTVF9USU1F
VkFMX1RPX1RJTUUodGltZVZhbHVlKTsKLSAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlNlZWs6ICUi
IEdTVF9USU1FX0ZPUk1BVCwgR1NUX1RJTUVfQVJHUyhjbG9ja1RpbWUpKTsKKyAgICBsb2dNZXNz
YWdlVG9HU3RyZWFtZXIoIlNlZWs6ICUiIEdTVF9USU1FX0ZPUk1BVCwgR1NUX1RJTUVfQVJHUyhj
bG9ja1RpbWUpKTsKIAogICAgIGlmICghZ3N0X2VsZW1lbnRfc2VlayhtX3BsYXlCaW4sIG1fcGxh
eWVyLT5yYXRlKCksCiAgICAgICAgICAgICBHU1RfRk9STUFUX1RJTUUsCiAgICAgICAgICAgICAo
R3N0U2Vla0ZsYWdzKShHU1RfU0VFS19GTEFHX0ZMVVNIIHwgR1NUX1NFRUtfRkxBR19BQ0NVUkFU
RSksCiAgICAgICAgICAgICBHU1RfU0VFS19UWVBFX1NFVCwgY2xvY2tUaW1lLAogICAgICAgICAg
ICAgR1NUX1NFRUtfVFlQRV9OT05FLCBHU1RfQ0xPQ0tfVElNRV9OT05FKSkKLSAgICAgICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJTZWVrIHRvICVmIGZhaWxlZCIsIHRpbWUpOworICAgICAgICBsb2dN
ZXNzYWdlVG9HU3RyZWFtZXIoIlNlZWsgdG8gJWYgZmFpbGVkIiwgdGltZSk7CiAgICAgZWxzZSB7
CiAgICAgICAgIG1fc2Vla2luZyA9IHRydWU7CiAgICAgICAgIG1fc2Vla1RpbWUgPSB0aW1lOwpA
QCAtNTE5LDggKzUyNCw4IEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpu
YXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgaWYgKCFnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2Fw
cyhjYXBzLCBvcmlnaW5hbFNpemUsIGZvcm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwg
cGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBzdHJpZGUpKQogICAgICAgICByZXR1cm4gSW50
U2l6ZSgpOwogCi0gICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJPcmlnaW5hbCB2aWRlbyBzaXplOiAl
ZHglZCIsIG9yaWdpbmFsU2l6ZS53aWR0aCgpLCBvcmlnaW5hbFNpemUuaGVpZ2h0KCkpOwotICAg
IExPR19WRVJCT1NFKE1lZGlhLCAiUGl4ZWwgYXNwZWN0IHJhdGlvOiAlZC8lZCIsIHBpeGVsQXNw
ZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcik7CisgICAgbG9n
TWVzc2FnZVRvR1N0cmVhbWVyKCJPcmlnaW5hbCB2aWRlbyBzaXplOiAlZHglZCIsIG9yaWdpbmFs
U2l6ZS53aWR0aCgpLCBvcmlnaW5hbFNpemUuaGVpZ2h0KCkpOworICAgIGxvZ01lc3NhZ2VUb0dT
dHJlYW1lcigiUGl4ZWwgYXNwZWN0IHJhdGlvOiAlZC8lZCIsIHBpeGVsQXNwZWN0UmF0aW9OdW1l
cmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcik7CiAKICAgICAvLyBDYWxjdWxhdGUg
REFSIGJhc2VkIG9uIFBBUiBhbmQgdmlkZW8gc2l6ZS4KICAgICBpbnQgZGlzcGxheVdpZHRoID0g
b3JpZ2luYWxTaXplLndpZHRoKCkgKiBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yOwpAQCAtNTM0
LDIwICs1MzksMjAgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVy
YWxTaXplKCkgY29uc3QKICAgICAvLyBBcHBseSBEQVIgdG8gb3JpZ2luYWwgdmlkZW8gc2l6ZS4g
VGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvciBhcyBpbiB4dmltYWdlc2luaydzIHNldGNhcHMgZnVu
Y3Rpb24uCiAgICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CiAgICAgaWYgKCEob3Jp
Z2luYWxTaXplLmhlaWdodCgpICUgZGlzcGxheUhlaWdodCkpIHsKLSAgICAgICAgTE9HX1ZFUkJP
U0UoTWVkaWEsICJLZWVwaW5nIHZpZGVvIG9yaWdpbmFsIGhlaWdodCIpOworICAgICAgICBsb2dN
ZXNzYWdlVG9HU3RyZWFtZXIoIktlZXBpbmcgdmlkZW8gb3JpZ2luYWwgaGVpZ2h0Iik7CiAgICAg
ICAgIHdpZHRoID0gZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludChvcmlnaW5hbFNpemUuaGVpZ2h0
KCksIGRpc3BsYXlXaWR0aCwgZGlzcGxheUhlaWdodCk7CiAgICAgICAgIGhlaWdodCA9IHN0YXRp
Y19jYXN0PGd1aW50NjQ+KG9yaWdpbmFsU2l6ZS5oZWlnaHQoKSk7CiAgICAgfSBlbHNlIGlmICgh
KG9yaWdpbmFsU2l6ZS53aWR0aCgpICUgZGlzcGxheVdpZHRoKSkgewotICAgICAgICBMT0dfVkVS
Qk9TRShNZWRpYSwgIktlZXBpbmcgdmlkZW8gb3JpZ2luYWwgd2lkdGgiKTsKKyAgICAgICAgbG9n
TWVzc2FnZVRvR1N0cmVhbWVyKCJLZWVwaW5nIHZpZGVvIG9yaWdpbmFsIHdpZHRoIik7CiAgICAg
ICAgIGhlaWdodCA9IGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQob3JpZ2luYWxTaXplLndpZHRo
KCksIGRpc3BsYXlIZWlnaHQsIGRpc3BsYXlXaWR0aCk7CiAgICAgICAgIHdpZHRoID0gc3RhdGlj
X2Nhc3Q8Z3VpbnQ2ND4ob3JpZ2luYWxTaXplLndpZHRoKCkpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIExPR19WRVJCT1NFKE1lZGlhLCAiQXBwcm94aW1hdGluZyB3aGlsZSBrZWVwaW5nIG9yaWdp
bmFsIHZpZGVvIGhlaWdodCIpOworICAgICAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIoIkFwcHJv
eGltYXRpbmcgd2hpbGUga2VlcGluZyBvcmlnaW5hbCB2aWRlbyBoZWlnaHQiKTsKICAgICAgICAg
d2lkdGggPSBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KG9yaWdpbmFsU2l6ZS5oZWlnaHQoKSwg
ZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVpZ2h0KTsKICAgICAgICAgaGVpZ2h0ID0gc3RhdGljX2Nh
c3Q8Z3VpbnQ2ND4ob3JpZ2luYWxTaXplLmhlaWdodCgpKTsKICAgICB9CiAKLSAgICBMT0dfVkVS
Qk9TRShNZWRpYSwgIk5hdHVyYWwgc2l6ZTogJSIgR19HVUlOVDY0X0ZPUk1BVCAieCUiIEdfR1VJ
TlQ2NF9GT1JNQVQsIHdpZHRoLCBoZWlnaHQpOworICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigi
TmF0dXJhbCBzaXplOiAlIiBHX0dVSU5UNjRfRk9STUFUICJ4JSIgR19HVUlOVDY0X0ZPUk1BVCwg
d2lkdGgsIGhlaWdodCk7CiAgICAgbV92aWRlb1NpemUgPSBJbnRTaXplKHN0YXRpY19jYXN0PGlu
dD4od2lkdGgpLCBzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCkpOwogICAgIHJldHVybiBtX3ZpZGVv
U2l6ZTsKIH0KQEAgLTY1Myw3ICs2NTgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6c2V0UmF0ZShmbG9hdCByYXRlKQogICAgIGdpbnQ2NCBzdGFydCwgZW5kOwogICAgIGJv
b2wgbXV0ZSA9IGZhbHNlOwogCi0gICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJTZXQgUmF0ZSB0byAl
ZiIsIHJhdGUpOworICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiU2V0IFJhdGUgdG8gJWYiLCBy
YXRlKTsKICAgICBpZiAocmF0ZSA+IDApIHsKICAgICAgICAgLy8gTXV0ZSB0aGUgc291bmQgaWYg
dGhlIHBsYXliYWNrIHJhdGUgaXMgdG9vIGV4dHJlbWUuCiAgICAgICAgIC8vIFRPRE86IGluIG90
aGVyIGNhc2VzIHdlIHNob3VsZCBwZXJmb3JtIHBpdGNoIGFkanVzdG1lbnRzLgpAQCAtNjcyLDEy
ICs2NzcsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFJhdGUoZmxv
YXQgcmF0ZSkKICAgICAgICAgICAgIGVuZCA9IGN1cnJlbnRQb3NpdGlvbjsKICAgICB9CiAKLSAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgIk5lZWQgdG8gbXV0ZSBhdWRpbzogJWQiLCAoaW50KSBtdXRl
KTsKKyAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIoIk5lZWQgdG8gbXV0ZSBhdWRpbzogJWQiLCAo
aW50KSBtdXRlKTsKIAogICAgIGlmICghZ3N0X2VsZW1lbnRfc2VlayhtX3BsYXlCaW4sIHJhdGUs
IEdTVF9GT1JNQVRfVElNRSwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTVF9T
RUVLX1RZUEVfU0VULCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1NFRUtf
VFlQRV9TRVQsIGVuZCkpCi0gICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiU2V0IHJhdGUgdG8g
JWYgZmFpbGVkIiwgcmF0ZSk7CisgICAgICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiU2V0IHJh
dGUgdG8gJWYgZmFpbGVkIiwgcmF0ZSk7CiAgICAgZWxzZQogICAgICAgICBnX29iamVjdF9zZXQo
bV9wbGF5QmluLCAibXV0ZSIsIG11dGUsIE5VTEwpOwogfQpAQCAtNzUyLDEzICs3NTcsMTMgQEAg
Z2Jvb2xlYW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1l
c3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMT0dfVkVSQk9TRShNZWRp
YSwgIk1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBlbGVtZW50ICVzIiwgR1NUX01FU1NBR0VfU1JDX05B
TUUobWVzc2FnZSkpOworICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiTWVzc2FnZSByZWNlaXZl
ZCBmcm9tIGVsZW1lbnQgJXMiLCBHU1RfTUVTU0FHRV9TUkNfTkFNRShtZXNzYWdlKSk7CiAgICAg
c3dpdGNoIChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2UpKSB7CiAgICAgY2FzZSBHU1RfTUVTU0FH
RV9FUlJPUjoKICAgICAgICAgaWYgKG1fcmVzZXRQaXBlbGluZSkKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigp
LCAmZGVidWcub3V0UHRyKCkpOwotICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkVycm9yICVk
OiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJFcnJvciAlZDog
JXMgKHVybD0lcykiLCBlcnItPmNvZGUsIGVyci0+bWVzc2FnZSwgbV91cmwuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CiAKICAgICAgICAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RT
KEdTVF9CSU4obV9wbGF5QmluKSwgR1NUX0RFQlVHX0dSQVBIX1NIT1dfQUxMLCAid2Via2l0LXZp
ZGVvLmVycm9yIik7CiAKQEAgLTc3NCw3ICs3NzksNyBAQCBnYm9vbGVhbiBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAg
ICAgICAgIC8vIHRoaXMgY2FzZSB0aGUgSFRNTE1lZGlhRWxlbWVudCB3aWxsIGVtaXQgYSBzdGFs
bGVkCiAgICAgICAgICAgICAvLyBldmVudC4KICAgICAgICAgICAgIGlmIChlcnItPmNvZGUgPT0g
R1NUX1NUUkVBTV9FUlJPUl9UWVBFX05PVF9GT1VORCkgewotICAgICAgICAgICAgICAgIExPR19W
RVJCT1NFKE1lZGlhLCAiRGVjb2RlIGVycm9yLCBsZXQgdGhlIE1lZGlhIGVsZW1lbnQgZW1pdCBh
IHN0YWxsZWQgZXZlbnQuIik7CisgICAgICAgICAgICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVy
KCJEZWNvZGUgZXJyb3IsIGxldCB0aGUgTWVkaWEgZWxlbWVudCBlbWl0IGEgc3RhbGxlZCBldmVu
dC4iKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGVycm9yID0gTWVkaWFQbGF5ZXI6OkRlY29kZUVycm9yOwpAQCAtNzg4LDE0ICs3OTMsMTQgQEAg
Z2Jvb2xlYW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1l
c3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgICAgICBsb2FkaW5nRmFpbGVkKGVycm9yKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfTUVTU0FHRV9FT1M6Ci0gICAgICAgIExPR19WRVJCT1NF
KE1lZGlhLCAiRW5kIG9mIFN0cmVhbSIpOworICAgICAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIo
IkVuZCBvZiBTdHJlYW0iKTsKICAgICAgICAgZGlkRW5kKCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgR1NUX01FU1NBR0VfU1RBVEVfQ0hBTkdFRDoKICAgICAgICAgLy8gSWdub3JlIHN0YXRl
IGNoYW5nZXMgaWYgbG9hZCBpcyBkZWxheWVkIChwcmVsb2FkPW5vbmUpLiBUaGUKICAgICAgICAg
Ly8gcGxheWVyIHN0YXRlIHdpbGwgYmUgdXBkYXRlZCBvbmNlIGNvbW1pdExvYWQoKSBpcyBjYWxs
ZWQuCiAgICAgICAgIGlmIChtX2RlbGF5aW5nTG9hZCkgewotICAgICAgICAgICAgTE9HX1ZFUkJP
U0UoTWVkaWEsICJNZWRpYSBsb2FkIGhhcyBiZWVuIGRlbGF5ZWQuIElnbm9yaW5nIHN0YXRlIGNo
YW5nZXMgZm9yIG5vdyIpOworICAgICAgICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJNZWRp
YSBsb2FkIGhhcyBiZWVuIGRlbGF5ZWQuIElnbm9yaW5nIHN0YXRlIGNoYW5nZXMgZm9yIG5vdyIp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtODE5LDExICs4MjQsMTEgQEAg
Z2Jvb2xlYW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1l
c3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIHByb2Nlc3NCdWZmZXJpbmdTdGF0cyhtZXNzYWdlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfTUVTU0FHRV9EVVJBVElPTjoKLSAgICAgICAg
TE9HX1ZFUkJPU0UoTWVkaWEsICJEdXJhdGlvbiBjaGFuZ2VkIik7CisgICAgICAgIGxvZ01lc3Nh
Z2VUb0dTdHJlYW1lcigiRHVyYXRpb24gY2hhbmdlZCIpOwogICAgICAgICBkdXJhdGlvbkNoYW5n
ZWQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgTE9HX1ZFUkJPU0Uo
TWVkaWEsICJVbmhhbmRsZWQgR1N0cmVhbWVyIG1lc3NhZ2UgdHlwZTogJXMiLAorICAgICAgICBs
b2dNZXNzYWdlVG9HU3RyZWFtZXIoIlVuaGFuZGxlZCBHU3RyZWFtZXIgbWVzc2FnZSB0eXBlOiAl
cyIsCiAgICAgICAgICAgICAgICAgICAgIEdTVF9NRVNTQUdFX1RZUEVfTkFNRShtZXNzYWdlKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTgzOCw3ICs4NDMsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc0J1ZmZlcmluZ1N0YXRzKEdzdE1lc3NhZ2UqIG1l
c3NhZ2UpCiAgICAgY29uc3QgR3N0U3RydWN0dXJlICpzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9n
ZXRfc3RydWN0dXJlKG1lc3NhZ2UpOwogICAgIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludChzdHJ1Y3R1
cmUsICJidWZmZXItcGVyY2VudCIsICZtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UpOwogCi0gICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJbQnVmZmVyaW5nXSBCdWZmZXJpbmc6ICVkJSUuIiwgbV9idWZmZXJp
bmdQZXJjZW50YWdlKTsKKyAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIoIltCdWZmZXJpbmddIEJ1
ZmZlcmluZzogJWQlJS4iLCBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UpOwogCiAgICAgR3N0QnVmZmVy
aW5nTW9kZSBtb2RlOwogICAgIGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZ19zdGF0cyhtZXNz
YWdlLCAmbW9kZSwgMCwgMCwgMCk7CkBAIC04NTAsNyArODU1LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NCdWZmZXJpbmdTdGF0cyhHc3RNZXNzYWdlKiBtZXNz
YWdlKQogICAgIC8vIFRoaXMgaXMgb24tZGlzayBidWZmZXJpbmcsIHRoYXQgYWxsb3dzIHVzIHRv
IGRvd25sb2FkIG11Y2ggbW9yZQogICAgIC8vIHRoYW4gbmVlZGVkIGZvciByaWdodCBub3cuCiAg
ICAgaWYgKCFtX3N0YXJ0ZWRCdWZmZXJpbmcpIHsKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEs
ICJbQnVmZmVyaW5nXSBTdGFydGluZyBvbi1kaXNrIGJ1ZmZlcmluZy4iKTsKKyAgICAgICAgbG9n
TWVzc2FnZVRvR1N0cmVhbWVyKCJbQnVmZmVyaW5nXSBTdGFydGluZyBvbi1kaXNrIGJ1ZmZlcmlu
Zy4iKTsKIAogICAgICAgICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSB0cnVlOwogCkBAIC04NzksNyAr
ODg0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmZpbGxUaW1lckZpcmVk
KFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW0KICAgICBpZiAoc3RvcCAhPSAtMSkKICAg
ICAgICAgZmlsbFN0YXR1cyA9IDEwMC4wICogc3RvcCAvIEdTVF9GT1JNQVRfUEVSQ0VOVF9NQVg7
CiAKLSAgICBMT0dfVkVSQk9TRShNZWRpYSwgIltCdWZmZXJpbmddIERvd25sb2FkIGJ1ZmZlciBm
aWxsZWQgdXAgdG8gJWYlJSIsIGZpbGxTdGF0dXMpOworICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1l
cigiW0J1ZmZlcmluZ10gRG93bmxvYWQgYnVmZmVyIGZpbGxlZCB1cCB0byAlZiUlIiwgZmlsbFN0
YXR1cyk7CiAKICAgICBpZiAoIW1fbWVkaWFEdXJhdGlvbikKICAgICAgICAgZHVyYXRpb25DaGFu
Z2VkKCk7CkBAIC04OTEsNyArODk2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmZpbGxUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW0KICAgICAg
ICAgICAgIG1fbWF4VGltZUxvYWRlZCA9IG1fbWVkaWFEdXJhdGlvbjsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgbV9tYXhUaW1lTG9hZGVkID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KChmaWxsU3Rh
dHVzICogbV9tZWRpYUR1cmF0aW9uKSAvIDEwMC4wKTsKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVk
aWEsICJbQnVmZmVyaW5nXSBVcGRhdGVkIG1heFRpbWVMb2FkZWQ6ICVmIiwgbV9tYXhUaW1lTG9h
ZGVkKTsKKyAgICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJbQnVmZmVyaW5nXSBVcGRhdGVk
IG1heFRpbWVMb2FkZWQ6ICVmIiwgbV9tYXhUaW1lTG9hZGVkKTsKICAgICB9CiAKICAgICBpZiAo
ZmlsbFN0YXR1cyAhPSAxMDAuMCkgewpAQCAtOTEyLDcgKzkxNyw3IEBAIGZsb2F0IE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZVNlZWthYmxlKCkgY29uc3QKICAgICBpZiAobV9l
cnJvck9jY3VyZWQpCiAgICAgICAgIHJldHVybiAwLjBmOwogCi0gICAgTE9HX1ZFUkJPU0UoTWVk
aWEsICJtYXhUaW1lU2Vla2FibGUiKTsKKyAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIoIm1heFRp
bWVTZWVrYWJsZSIpOwogICAgIC8vIGluZmluaXRlIGR1cmF0aW9uIG1lYW5zIGxpdmUgc3RyZWFt
CiAgICAgaWYgKGlzaW5mKGR1cmF0aW9uKCkpKQogICAgICAgICByZXR1cm4gMC4wZjsKQEAgLTky
OCw3ICs5MzMsNyBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1heFRpbWVM
b2FkZWQoKSBjb25zdAogICAgIGZsb2F0IGxvYWRlZCA9IG1fbWF4VGltZUxvYWRlZDsKICAgICBp
ZiAoIWxvYWRlZCAmJiAhbV9maWxsVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbG9hZGVkID0g
ZHVyYXRpb24oKTsKLSAgICBMT0dfVkVSQk9TRShNZWRpYSwgIm1heFRpbWVMb2FkZWQ6ICVmIiwg
bG9hZGVkKTsKKyAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIoIm1heFRpbWVMb2FkZWQ6ICVmIiwg
bG9hZGVkKTsKICAgICByZXR1cm4gbG9hZGVkOwogfQogCkBAIC05MzksNyArOTQ0LDcgQEAgYm9v
bCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0
CiAgICAgZmxvYXQgY3VycmVudE1heFRpbWVMb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7CiAgICAg
Ym9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MgPSBjdXJyZW50TWF4VGltZUxvYWRlZCAhPSBtX21heFRp
bWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAgICAgbV9tYXhUaW1lTG9hZGVkQXRM
YXN0RGlkTG9hZGluZ1Byb2dyZXNzID0gY3VycmVudE1heFRpbWVMb2FkZWQ7Ci0gICAgTE9HX1ZF
UkJPU0UoTWVkaWEsICJkaWRMb2FkaW5nUHJvZ3Jlc3M6ICVkIiwgZGlkTG9hZGluZ1Byb2dyZXNz
KTsKKyAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIoImRpZExvYWRpbmdQcm9ncmVzczogJWQiLCBk
aWRMb2FkaW5nUHJvZ3Jlc3MpOwogICAgIHJldHVybiBkaWRMb2FkaW5nUHJvZ3Jlc3M7CiB9CiAK
QEAgLTk2MSw3ICs5NjYsNyBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnRvdGFsQnl0ZXMoKSBjb25zdAogI2Vsc2UKICAgICBpZiAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVy
YXRpb24obV9zb3VyY2UuZ2V0KCksICZmbXQsICZsZW5ndGgpKSB7CiAjZW5kaWYKLSAgICAgICAg
TE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzICUiIEdfR0lOVDY0X0ZPUk1BVCwgbGVuZ3Ro
KTsKKyAgICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJ0b3RhbEJ5dGVzICUiIEdfR0lOVDY0
X0ZPUk1BVCwgbGVuZ3RoKTsKICAgICAgICAgbV90b3RhbEJ5dGVzID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGxlbmd0aCk7CiAgICAgICAgIG1faXNTdHJlYW1pbmcgPSAhbGVuZ3RoOwogICAgICAg
ICByZXR1cm4gbV90b3RhbEJ5dGVzOwpAQCAtMTAxMSw3ICsxMDE2LDcgQEAgdW5zaWduZWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKIAogICAgIGdzdF9p
dGVyYXRvcl9mcmVlKGl0ZXIpOwogCi0gICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVz
ICUiIEdfR0lOVDY0X0ZPUk1BVCwgbGVuZ3RoKTsKKyAgICBsb2dNZXNzYWdlVG9HU3RyZWFtZXIo
InRvdGFsQnl0ZXMgJSIgR19HSU5UNjRfRk9STUFULCBsZW5ndGgpOwogICAgIG1fdG90YWxCeXRl
cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihsZW5ndGgpOwogICAgIG1faXNTdHJlYW1pbmcgPSAh
bGVuZ3RoOwogICAgIHJldHVybiBtX3RvdGFsQnl0ZXM7CkBAIC0xMTA5LDcgKzExMTQsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICBib29s
IHNob3VsZFVwZGF0ZUFmdGVyU2VlayA9IGZhbHNlOwogICAgIHN3aXRjaCAocmV0KSB7CiAgICAg
Y2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1NVQ0NFU1M6Ci0gICAgICAgIExPR19WRVJCT1NFKE1lZGlh
LCAiU3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsCisgICAgICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1l
cigiU3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsCiAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0
ZV9nZXRfbmFtZShzdGF0ZSksCiAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFt
ZShwZW5kaW5nKSk7CiAKQEAgLTExNDcsMTAgKzExNTIsMTAgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICAgICAgICAgbV9idWZmZXJp
bmdQZXJjZW50YWdlID0gMDsKICAgICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBs
YXllcjo6SGF2ZUVub3VnaERhdGE7CiAKLSAgICAgICAgICAgICAgICBMT0dfVkVSQk9TRShNZWRp
YSwgIltCdWZmZXJpbmddIENvbXBsZXRlLiIpOworICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2VU
b0dTdHJlYW1lcigiW0J1ZmZlcmluZ10gQ29tcGxldGUuIik7CiAKICAgICAgICAgICAgICAgICBp
ZiAoIW1fcGF1c2VkKSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAi
W0J1ZmZlcmluZ10gUmVzdGFydGluZyBwbGF5YmFjay4iKTsKKyAgICAgICAgICAgICAgICAgICAg
bG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJbQnVmZmVyaW5nXSBSZXN0YXJ0aW5nIHBsYXliYWNrLiIp
OwogICAgICAgICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLCBH
U1RfU1RBVEVfUExBWUlORyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNl
IGlmICghbV9idWZmZXJpbmcgJiYgKGN1cnJlbnRUaW1lKCkgPCBkdXJhdGlvbigpKSkgewpAQCAt
MTE2NCw3ICsxMTY5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0
ZVN0YXRlcygpCiAgICAgICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6Okhh
dmVDdXJyZW50RGF0YTsKICAgICAgICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxh
eWVyOjpMb2FkaW5nOwogCi0gICAgICAgICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJbQnVm
ZmVyaW5nXSBQYXVzaW5nIHN0cmVhbSBmb3IgYnVmZmVyaW5nLiIpOworICAgICAgICAgICAgICAg
IGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiW0J1ZmZlcmluZ10gUGF1c2luZyBzdHJlYW0gZm9yIGJ1
ZmZlcmluZy4iKTsKIAogICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3Bs
YXlCaW4sIEdTVF9TVEFURV9QQVVTRUQpOwogICAgICAgICAgICAgfQpAQCAtMTE4Nyw3ICsxMTky
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX0FTWU5DOgotICAgICAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgIkFzeW5jOiBTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwKKyAg
ICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJBc3luYzogU3RhdGU6ICVzLCBwZW5kaW5nOiAl
cyIsCiAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShzdGF0ZSksCiAgICAg
ICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShwZW5kaW5nKSk7CiAgICAgICAgIC8v
IENoYW5nZSBpbiBwcm9ncmVzcwpAQCAtMTIxNiwxMyArMTIyMSwxMyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRToKLSAgICAgICAgTE9HX1ZF
UkJPU0UoTWVkaWEsICJGYWlsdXJlOiBTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwKKyAgICAgICAg
bG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJGYWlsdXJlOiBTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwK
ICAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHN0YXRlKSwKICAgICAgICAg
ICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKICAgICAgICAgLy8gQ2hh
bmdlIGZhaWxlZAogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX05P
X1BSRVJPTEw6Ci0gICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiTm8gcHJlcm9sbDogU3RhdGU6
ICVzLCBwZW5kaW5nOiAlcyIsCisgICAgICAgIGxvZ01lc3NhZ2VUb0dTdHJlYW1lcigiTm8gcHJl
cm9sbDogU3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsCiAgICAgICAgICAgICBnc3RfZWxlbWVudF9z
dGF0ZV9nZXRfbmFtZShzdGF0ZSksCiAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRf
bmFtZShwZW5kaW5nKSk7CiAKQEAgLTEyNDcsNyArMTI1Miw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICBtX25ldHdvcmtTdGF0ZSA9
IE1lZGlhUGxheWVyOjpMb2FkaW5nOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgotICAg
ICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkVsc2UgOiAlZCIsIHJldCk7CisgICAgICAgIGxvZ01l
c3NhZ2VUb0dTdHJlYW1lcigiRWxzZSA6ICVkIiwgcmV0KTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogCkBAIC0xMjU4LDEyICsxMjYzLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICB0aW1lQ2hhbmdlZCgpOwogCiAgICAgaWYgKG1f
bmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtTdGF0ZSkgewotICAgICAgICBMT0dfVkVSQk9TRShN
ZWRpYSwgIk5ldHdvcmsgU3RhdGUgQ2hhbmdlZCBmcm9tICV1IHRvICV1IiwKKyAgICAgICAgbG9n
TWVzc2FnZVRvR1N0cmVhbWVyKCJOZXR3b3JrIFN0YXRlIENoYW5nZWQgZnJvbSAldSB0byAldSIs
CiAgICAgICAgICAgICBvbGROZXR3b3JrU3RhdGUsIG1fbmV0d29ya1N0YXRlKTsKICAgICAgICAg
bV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB9CiAgICAgaWYgKG1fcmVhZHlT
dGF0ZSAhPSBvbGRSZWFkeVN0YXRlKSB7Ci0gICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiUmVh
ZHkgU3RhdGUgQ2hhbmdlZCBmcm9tICV1IHRvICV1IiwKKyAgICAgICAgbG9nTWVzc2FnZVRvR1N0
cmVhbWVyKCJSZWFkeSBTdGF0ZSBDaGFuZ2VkIGZyb20gJXUgdG8gJXUiLAogICAgICAgICAgICAg
b2xkUmVhZHlTdGF0ZSwgbV9yZWFkeVN0YXRlKTsKICAgICAgICAgbV9wbGF5ZXItPnJlYWR5U3Rh
dGVDaGFuZ2VkKCk7CiAgICAgfQpAQCAtMTM0Miw3ICsxMzQ3LDcgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogCiAgICAgICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGN1
cnJlbnRVcmwpOwogICAgICAgICBpZiAoc2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QobmV3VXJs
KSkgewotICAgICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJOZXcgbWVkaWEgdXJsOiAlcyIs
IG5ld1VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGxvZ01lc3NhZ2VU
b0dTdHJlYW1lcigiTmV3IG1lZGlhIHVybDogJXMiLCBuZXdVcmwuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CiAKICAgICAgICAgICAgIC8vIFJlc2V0IHBsYXllciBzdGF0ZXMuCiAgICAgICAgICAg
ICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOwpAQCAtMTY5OCwxMCArMTcw
MywxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UHJlbG9hZChNZWRp
YVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkKQogICAgIEdzdFBsYXlGbGFncyBmbGFnczsKICAgICBn
X29iamVjdF9nZXQobV9wbGF5QmluLCAiZmxhZ3MiLCAmZmxhZ3MsIE5VTEwpOwogICAgIGlmICht
X3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6OkF1dG8pIHsKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVk
aWEsICJFbmFibGluZyBvbi1kaXNrIGJ1ZmZlcmluZyIpOworICAgICAgICBsb2dNZXNzYWdlVG9H
U3RyZWFtZXIoIkVuYWJsaW5nIG9uLWRpc2sgYnVmZmVyaW5nIik7CiAgICAgICAgIGdfb2JqZWN0
X3NldChtX3BsYXlCaW4sICJmbGFncyIsIGZsYWdzIHwgR1NUX1BMQVlfRkxBR19ET1dOTE9BRCwg
TlVMTCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJEaXNhYmxp
bmcgb24tZGlzayBidWZmZXJpbmciKTsKKyAgICAgICAgbG9nTWVzc2FnZVRvR1N0cmVhbWVyKCJE
aXNhYmxpbmcgb24tZGlzayBidWZmZXJpbmciKTsKICAgICAgICAgZ19vYmplY3Rfc2V0KG1fcGxh
eUJpbiwgImZsYWdzIiwgZmxhZ3MgJiB+R1NUX1BMQVlfRkxBR19ET1dOTE9BRCwgTlVMTCk7CiAg
ICAgfQogCi0tIAoxLjcuMTAuNA==
</data>
<flag name="review"
          id="165692"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>