<?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>93907</bug_id>
          
          <creation_ts>2012-08-13 15:32:53 -0700</creation_ts>
          <short_desc>[chromium] Make WebAnimation a pure virtual interface to hide implementation and avoid unresolved symbols</short_desc>
          <delta_ts>2012-08-13 22:33:08 -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>New Bugs</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="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>694167</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-13 15:32:53 -0700</bug_when>
    <thetext>[chromium] Make WebAnimation a pure virtual interface to hide implementation and avoid unresolved symbols</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694174</commentid>
    <comment_count>1</comment_count>
      <attachid>158134</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-13 15:40:37 -0700</bug_when>
    <thetext>Created attachment 158134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694175</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-13 15:41:35 -0700</bug_when>
    <thetext>Darin - is this what you had in mind?  If so I&apos;ll go ahead and convert the rest of the WebPrivateOwnPtr&lt;&gt; types in the compositor interface family over and introduce a tearoff factory section to Platform.h&apos;s exported thingies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694176</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-13 15:42:49 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694220</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-13 16:45:45 -0700</bug_when>
    <thetext>Committed r125469: &lt;http://trac.webkit.org/changeset/125469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694515</commentid>
    <comment_count>5</comment_count>
      <attachid>158134</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-08-13 22:33:08 -0700</bug_when>
    <thetext>Comment on attachment 158134
Patch

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

&gt; Source/Platform/chromium/public/WebAnimation.h:53
&gt; +    WEBKIT_EXPORT static WebAnimation* create(const WebAnimationCurve&amp;, TargetProperty);

Just to be clear about what we discussed, a future step would be to turn these static functions into
virtual functions of some factory interface (i.e., CompositorSupport::createAnimation).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158134</attachid>
            <date>2012-08-13 15:40:37 -0700</date>
            <delta_ts>2012-08-13 22:33:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93907-20120813154006.patch</filename>
            <type>text/plain</type>
            <size>24181</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxYTYwNTM3YWQyZjI4
MjE1ZTA1OGU3ODNkMTYzOTVlNjA5NDFmNTAyLi5jY2Q4ZmEyN2UxM2VlM2UyNmRjZTNjMjdkOGY3
Y2M1YWU3NjBjYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wOC0xMyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTWFrZSBXZWJBbmltYXRpb24gYSBwdXJlIHZpcnR1YWwgaW50ZXJmYWNlIHRvIGhpZGUgaW1w
bGVtZW50YXRpb24gYW5kIGF2b2lkIHVucmVzb2x2ZWQgc3ltYm9scworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM5MDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1ha2VzIFdlYkFuaW1hdGlvbiBh
IHB1cmUgdmlydHVhbCBpbnRlcmZhY2Ugd2l0aCBpbnN0YW5jZXMgcmV0dXJuZWQgYnkgYSBmYWN0
b3J5IGZ1bmN0aW9uLiBDdXJyZW50bHkgdGhlCisgICAgICAgIGZhY3RvcnkgaXMgYSBzdGF0aWMg
ZnVuY3Rpb24gb24gV2ViQW5pbWF0aW9uLCBidXQgaXQgd2lsbCBsaWtlbHkgbW92ZSB0byBhIHBs
YXRmb3JtIHN1cHBvcnQgaW50ZXJmYWNlLiBUaGlzCisgICAgICAgIHByb3ZpZGVzIGJldHRlciBp
c29sYXRpb24gb2YgdGhlIGltcGxlbWVudGF0aW9uIGZyb20gdGhlIGludGVyZmFjZSBhbmQgaW4g
cGFydGljdWxhciBhbGxvd3MgZm9yIGltcGxlbWVudGluZyB0aGUKKyAgICAgICAgV2ViQW5pbWF0
aW9uIGludGVyZmFjZSBvdXRzaWRlIG9mIFdlYktpdC5kbGwgd2l0aG91dCBoYXZpbmcgdW5yZXNv
bHZlZCBleHRlcm5hbCBzeW1ib2xzIGluIFdlYktpdC5kbGwuCisKKyAgICAgICAgKiBjaHJvbWl1
bS9wdWJsaWMvV2ViQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkFuaW1hdGlvbjo6
fldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJBbmltYXRpb24pOgorICAgICAgICAqIGNocm9t
aXVtL3B1YmxpYy9XZWJMYXllci5oOgorICAgICAgICAoV2ViTGF5ZXIpOgorCiAyMDEyLTA4LTEw
ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0
IGNyZWF0aW5nIEZpbGUgb2JqZWN0IGZyb20gRmlsZVN5c3RlbSBVUkwgZm9yIGZpbGVzIGluIEZp
bGVTeXN0ZW0gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQwMjY0Y2I5ZGYwNTA3ZTlhODBhZDExMTA0YWQ2
MTIyODRiMDE5MC4uZmYyMTBjZmYwNzNiMjg0OTMzYmE1OThiZjU1MDQxODA3MjQ3Y2IyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA4LTEzICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNYWtlIFdlYkFuaW1hdGlv
biBhIHB1cmUgdmlydHVhbCBpbnRlcmZhY2UgdG8gaGlkZSBpbXBsZW1lbnRhdGlvbiBhbmQgYXZv
aWQgdW5yZXNvbHZlZCBzeW1ib2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MzkwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZXMgV2ViQW5pbWF0aW9uIHVzZXJzIGZvciBpbnRlcmZhY2UgY2hh
bmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0FuaW1hdGlvblRy
YW5zbGF0aW9uVXRpbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXZWJBbmltYXRpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmFkZEFu
aW1hdGlvbik6CisKIDIwMTItMDgtMTMgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5A
bm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUG9ydCBtZXRhIG1ldGhvZC9zaWduYWwvc2xvdCBo
YW5kbGluZyBpbiBydW4tdGltZSBicmlkZ2UgdG8gdXNlIEpTQyBDIEFQSQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCAxM2NlNWYxN2VjY2NiMDQwYzFiYzAwOThiMzg3Zjc1ZGY3ODVlNTY2
Li4yNTcyNjc2MTVkNDI3MzdmNzJiMTI4NzEwYzQ3YjRkMTNhZGVkODVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA4LTEzICBKYW1lcyBSb2JpbnNv
biAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNYWtlIFdlYkFu
aW1hdGlvbiBhIHB1cmUgdmlydHVhbCBpbnRlcmZhY2UgdG8gaGlkZSBpbXBsZW1lbnRhdGlvbiBh
bmQgYXZvaWQgdW5yZXNvbHZlZCBzeW1ib2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzkwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZHMgYSBXZWJBbmltYXRpb25JbXBsIGltcGxlbWVudGF0aW9u
IG9mIHRoZSBXZWJBbmltYXRpb24gaW50ZXJmYWNlLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoK
KyAgICAgICAgKiBzcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb24uY3BwLgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJBbmltYXRpb25JbXBsOjp0YXJnZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkFuaW1hdGlvbkltcGw6Oml0ZXJhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJBbmltYXRp
b25JbXBsOjpzZXRJdGVyYXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQW5pbWF0aW9uSW1w
bDo6c3RhcnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQW5pbWF0aW9uSW1wbDo6c2V0U3Rh
cnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQW5pbWF0aW9uSW1wbDo6dGltZU9mZnNldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkFuaW1hdGlvbkltcGw6OnNldFRpbWVPZmZzZXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBbmltYXRpb25JbXBsOjphbHRlcm5hdGVzRGlyZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQW5pbWF0aW9uSW1wbDo6c2V0QWx0ZXJuYXRlc0RpcmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYkFuaW1hdGlvbkltcGw6OmNsb25lVG9DQ0FuaW1hdGlvbik6
CisgICAgICAgICogc3JjL1dlYkFuaW1hdGlvbkltcGwuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJBbmltYXRpb25JbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQW5pbWF0aW9uSW1wbDo6V2ViQW5pbWF0aW9uSW1wbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkFuaW1hdGlvbkltcGw6On5XZWJBbmltYXRpb25JbXBsKToKKyAgICAg
ICAgKiBzcmMvV2ViTGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllcjo6YWRkQW5p
bWF0aW9uKToKKyAgICAgICAgKiB0ZXN0cy9XZWJBbmltYXRpb25UZXN0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VEVTVCk6CisKIDIwMTItMDgtMTMgIExlYW5kcm8gR3JhY2lhIEdpbCAgPGxlYW5k
cm9ncmFjaWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRml4IG5pdHMgaW4g
dGhlIGZpbmQtaW4tcGFnZSBtYXRjaCByZWN0cyBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkFuaW1hdGlvbi5oCmluZGV4IDBkYjk4YWQzNTdkNzM5NjdlZWM4OGM5
NzBiOTI2YjM3NTJmNGFhYWEuLjIzOGJiYWFlMTIwYWFjYzEzZDhhNzU0NTdjZjFhM2FhYzM1NjQ0
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQW5pbWF0
aW9uLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJBbmltYXRpb24u
aApAQCAtNDIsNjAgKzQyLDQwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQW5pbWF0
aW9uQ3VydmU7CiAKIC8vIEEgY29tcG9zaXRvciBkcml2ZW4gYW5pbWF0aW9uLgotY2xhc3MgV2Vi
QW5pbWF0aW9uIDogcHVibGljIFdlYk5vbkNvcHlhYmxlIHsKK2NsYXNzIFdlYkFuaW1hdGlvbiB7
CiBwdWJsaWM6CiAgICAgZW51bSBUYXJnZXRQcm9wZXJ0eSB7CiAgICAgICAgIFRhcmdldFByb3Bl
cnR5VHJhbnNmb3JtID0gMCwKICAgICAgICAgVGFyZ2V0UHJvcGVydHlPcGFjaXR5CiAgICAgfTsK
IAotICAgIFdlYkFuaW1hdGlvbihjb25zdCBXZWJBbmltYXRpb25DdXJ2ZSYgY3VydmUsIFRhcmdl
dFByb3BlcnR5IHRhcmdldFByb3BlcnR5KQotICAgIHsKLSAgICAgICAgaW5pdGlhbGl6ZShjdXJ2
ZSwgdGFyZ2V0UHJvcGVydHkpOwotICAgIH0KKyAgICAvLyBUaGUgY2FsbGVyIHRha2VzIG93bmVy
c2hpcCBvZiB0aGUgcmV0dXJuZWQgdmFsdWV2CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2Vi
QW5pbWF0aW9uKiBjcmVhdGUoY29uc3QgV2ViQW5pbWF0aW9uQ3VydmUmLCBUYXJnZXRQcm9wZXJ0
eSk7CiAKICAgICAvLyBBbiBhbmltYXRpb25JZCBpcyBlZmZlY3RpdmVseSB0aGUgYW5pbWF0aW9u
J3MgbmFtZSwgYW5kIGl0IGlzIG5vdCB1bmlxdWUuCiAgICAgLy8gQW5pbWF0aW9ucyB3aXRoIHRo
ZSBzYW1lIGdyb3VwSWQgYXJlIHJ1biBhdCB0aGUgc2FtZSB0aW1lLiBBbiBhbmltYXRpb24KICAg
ICAvLyBtYXkgYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBieSBhIGNvbWJpbmF0aW9uIG9mIGdyb3Vw
SWQgYW5kIHRhcmdldCBwcm9wZXJ0eS4KLSAgICBXZWJBbmltYXRpb24oY29uc3QgV2ViQW5pbWF0
aW9uQ3VydmUmIGN1cnZlLCBpbnQgYW5pbWF0aW9uSWQsIGludCBncm91cElkLCBUYXJnZXRQcm9w
ZXJ0eSB0YXJnZXRQcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIGluaXRpYWxpemUoY3VydmUsIGFu
aW1hdGlvbklkLCBncm91cElkLCB0YXJnZXRQcm9wZXJ0eSk7Ci0gICAgfQorICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIFdlYkFuaW1hdGlvbiogY3JlYXRlKGNvbnN0IFdlYkFuaW1hdGlvbkN1cnZl
JiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkpOwogCi0gICAg
fldlYkFuaW1hdGlvbigpCi0gICAgewotICAgICAgICBkZXN0cm95KCk7Ci0gICAgfQorICAgIHZp
cnR1YWwgfldlYkFuaW1hdGlvbigpIHsgfQogCi0gICAgV0VCS0lUX0VYUE9SVCBUYXJnZXRQcm9w
ZXJ0eSB0YXJnZXRQcm9wZXJ0eSgpIGNvbnN0OworICAgIHZpcnR1YWwgVGFyZ2V0UHJvcGVydHkg
dGFyZ2V0UHJvcGVydHkoKSBjb25zdCA9IDA7CiAKICAgICAvLyBUaGlzIGlzIHRoZSBudW1iZXIg
b2YgdGltZXMgdGhhdCB0aGUgYW5pbWF0aW9uIHdpbGwgcGxheS4gSWYgdGhpcwogICAgIC8vIHZh
bHVlIGlzIHplcm8gdGhlIGFuaW1hdGlvbiB3aWxsIG5vdCBwbGF5LiBJZiBpdCBpcyBuZWdhdGl2
ZSwgdGhlbgogICAgIC8vIHRoZSBhbmltYXRpb24gd2lsbCBsb29wIGluZGVmaW5pdGVseS4KLSAg
ICBXRUJLSVRfRVhQT1JUIGludCBpdGVyYXRpb25zKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHNldEl0ZXJhdGlvbnMoaW50KTsKKyAgICB2aXJ0dWFsIGludCBpdGVyYXRpb25zKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVyYXRpb25zKGludCkgPSAwOwogCi0g
ICAgV0VCS0lUX0VYUE9SVCBkb3VibGUgc3RhcnRUaW1lKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0VY
UE9SVCB2b2lkIHNldFN0YXJ0VGltZShkb3VibGUgbW9ub3RvbmljVGltZSk7Ci0gICAgV0VCS0lU
X0VYUE9SVCBib29sIGhhc1NldFN0YXJ0VGltZSgpIGNvbnN0OworICAgIHZpcnR1YWwgZG91Ymxl
IHN0YXJ0VGltZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhcnRUaW1lKGRv
dWJsZSBtb25vdG9uaWNUaW1lKSA9IDA7CiAKLSAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSB0aW1l
T2Zmc2V0KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFRpbWVPZmZzZXQoZG91
YmxlIG1vbm90b25pY1RpbWUpOworICAgIHZpcnR1YWwgZG91YmxlIHRpbWVPZmZzZXQoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWVPZmZzZXQoZG91YmxlIG1vbm90b25pY1Rp
bWUpID0gMDsKIAogICAgIC8vIElmIGFsdGVybmF0ZXNEaXJlY3Rpb24gaXMgdHJ1ZSwgb24gb2Rk
IG51bWJlcmVkIGl0ZXJhdGlvbnMgd2UgcmV2ZXJzZSB0aGUgY3VydmUuCi0gICAgV0VCS0lUX0VY
UE9SVCBib29sIGFsdGVybmF0ZXNEaXJlY3Rpb24oKSBjb25zdDsKLSAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc2V0QWx0ZXJuYXRlc0RpcmVjdGlvbihib29sKTsKLQotI2lmIFdFQktJVF9JTVBMRU1F
TlRBVElPTgotICAgIG9wZXJhdG9yIFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRp
b24+KCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
aW5pdGlhbGl6ZShjb25zdCBXZWJBbmltYXRpb25DdXJ2ZSYsIFRhcmdldFByb3BlcnR5KTsKLSAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJBbmltYXRpb25DdXJ2ZSYs
IGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5KTsKLSAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgZGVzdHJveSgpOwotCi0gICAgV2ViUHJpdmF0ZU93blB0cjxXZWJDb3Jl
OjpDQ0FjdGl2ZUFuaW1hdGlvbj4gbV9wcml2YXRlOworICAgIHZpcnR1YWwgYm9vbCBhbHRlcm5h
dGVzRGlyZWN0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRBbHRlcm5hdGVz
RGlyZWN0aW9uKGJvb2wpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllci5oIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllci5oCmluZGV4IGVjNjAyNDExYjc3ODgw
ZTU5MGI3NjdjZjYxNDhiZmI1MDY3OTZiNzUuLjAyNTBmNzIwMWNmNzI4MTk4YjRmZTE2NGUxNmQ5
NWUyOTE5NjMyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViTGF5ZXIuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVy
LmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNl
dEFuaW1hdGlvbkRlbGVnYXRlKFdlYkFuaW1hdGlvbkRlbGVnYXRlKik7CiAKICAgICAvLyBSZXR1
cm5zIGZhbHNlIGlmIHRoZSBhbmltYXRpb24gY2Fubm90IGJlIGFkZGVkLgotICAgIFdFQktJVF9F
WFBPUlQgYm9vbCBhZGRBbmltYXRpb24oY29uc3QgV2ViQW5pbWF0aW9uJik7CisgICAgV0VCS0lU
X0VYUE9SVCBib29sIGFkZEFuaW1hdGlvbihXZWJBbmltYXRpb24qKTsKIAogICAgIC8vIFJlbW92
ZXMgYWxsIGFuaW1hdGlvbnMgd2l0aCB0aGUgZ2l2ZW4gaWQuCiAgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHJlbW92ZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9uSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQW5pbWF0aW9uVHJhbnNsYXRpb25V
dGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0FuaW1h
dGlvblRyYW5zbGF0aW9uVXRpbC5jcHAKaW5kZXggZjkzNjk1ZTA0NTAxMTdiNDI2MzVkNzQ2YmY2
ZWVhZDI2NDIxMmYyZS4uOTIzN2U5MDlhZjY5MzE3MjJkODM0MjNhNDRlZTZiNTljOTU4ZTJkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQW5p
bWF0aW9uVHJhbnNsYXRpb25VdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9BbmltYXRpb25UcmFuc2xhdGlvblV0aWwuY3BwCkBAIC0yNzIsNyAr
MjcyLDcgQEAgUGFzc093blB0cjxXZWJLaXQ6OldlYkFuaW1hdGlvbj4gY3JlYXRlV2ViQW5pbWF0
aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWwKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIE93blB0cjxXZWJLaXQ6OldlYkFuaW1hdGlvbj4gYW5pbShhZG9w
dFB0cihuZXcgV2ViS2l0OjpXZWJBbmltYXRpb24oY3VydmUsIGFuaW1hdGlvbklkLCBncm91cElk
LCB0YXJnZXRQcm9wZXJ0eSkpKTsKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJBbmltYXRpb24+IGFu
aW0oYWRvcHRQdHIoV2ViS2l0OjpXZWJBbmltYXRpb246OmNyZWF0ZShjdXJ2ZSwgYW5pbWF0aW9u
SWQsIGdyb3VwSWQsIHRhcmdldFByb3BlcnR5KSkpOwogCiAgICAgaW50IGl0ZXJhdGlvbnMgPSAo
YW5pbWF0aW9uICYmIGFuaW1hdGlvbi0+aXNJdGVyYXRpb25Db3VudFNldCgpKSA/IGFuaW1hdGlv
bi0+aXRlcmF0aW9uQ291bnQoKSA6IDE7CiAgICAgYW5pbS0+c2V0SXRlcmF0aW9ucyhpdGVyYXRp
b25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDlmODMwNGY2
ZmU1YzQyZWQyYTRlNzlkNWQzYTZhZjU0N2Y3YzQ4MmQuLmJiYWE5MThhNDA3NDU4YzQ4MmE5NzNk
YzY4M2MzZmFhMGJmZWIwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNw
cApAQCAtNTI3LDEwICs1MjcsMTAgQEAgYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmFkZEFu
aW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVzLCBjb25zdAogCiAgICAgT3du
UHRyPFdlYktpdDo6V2ViQW5pbWF0aW9uPiB0b0FkZChjcmVhdGVXZWJBbmltYXRpb24odmFsdWVz
LCBhbmltYXRpb24sIGFuaW1hdGlvbklkLCBncm91cElkLCB0aW1lT2Zmc2V0LCBib3hTaXplKSk7
CiAKLSAgICBpZiAodG9BZGQuZ2V0KCkpIHsKKyAgICBpZiAodG9BZGQpIHsKICAgICAgICAgLy8g
UmVtb3ZlIGFueSBleGlzdGluZyBhbmltYXRpb25zIHdpdGggdGhlIHNhbWUgYW5pbWF0aW9uIGlk
IGFuZCB0YXJnZXQgcHJvcGVydHkuCiAgICAgICAgIHByaW1hcnlMYXllcigpLnJlbW92ZUFuaW1h
dGlvbihhbmltYXRpb25JZCwgdG9BZGQtPnRhcmdldFByb3BlcnR5KCkpOwotICAgICAgICByZXR1
cm4gcHJpbWFyeUxheWVyKCkuYWRkQW5pbWF0aW9uKCp0b0FkZCk7CisgICAgICAgIHJldHVybiBw
cmltYXJ5TGF5ZXIoKS5hZGRBbmltYXRpb24odG9BZGQuZ2V0KCkpOwogICAgIH0KIAogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBlMjdjYTI5YTViZTMy
ZmNjZjRhNGI5ZTUyNjJkM2Q5Y2UxOWE3NjY2Li5iZWE2ZjllY2Y5ODJmNzViMDhkODdiMjVhODQ0
NTZjMGZhMDVhYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC00NzAsNyArNDcw
LDggQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBs
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0Q2hlY2tpbmdSZXN1bHQuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3QuY3BwJywKLSAgICAg
ICAgICAgICAgICAnc3JjL1dlYkFuaW1hdGlvbi5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMv
V2ViQW5pbWF0aW9uSW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViQW5pbWF0aW9u
SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkFuaW1hdGlvbkNvbnRyb2xsZXJJbXBs
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJBbmltYXRpb25Db250cm9sbGVySW1wbC5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkFuaW1hdGlvbkN1cnZlQ29tbW9uLmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb24uY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjEwMjAxNTEyN2ZiZGE5M2I2MWJkMjllYWUwODExYWVlN2NlYTEw
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1
ZGUgPHB1YmxpYy9XZWJBbmltYXRpb24uaD4KLQotI2luY2x1ZGUgIkFuaW1hdGlvbklkVmVuZG9y
LmgiCi0jaW5jbHVkZSAiY2MvQ0NBY3RpdmVBbmltYXRpb24uaCIKLSNpbmNsdWRlICJjYy9DQ0Fu
aW1hdGlvbkN1cnZlLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkFuaW1hdGlvbkN1cnZlLmg+Ci0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLXVz
aW5nIFdlYkNvcmU6OkFuaW1hdGlvbklkVmVuZG9yOwotdXNpbmcgV2ViQ29yZTo6Q0NBY3RpdmVB
bmltYXRpb247Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJBbmltYXRpb246OlRhcmdldFBy
b3BlcnR5IFdlYkFuaW1hdGlvbjo6dGFyZ2V0UHJvcGVydHkoKSBjb25zdAotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxXZWJBbmltYXRpb246OlRhcmdldFByb3BlcnR5PihtX3ByaXZhdGUtPnRh
cmdldFByb3BlcnR5KCkpOwotfQotCi1pbnQgV2ViQW5pbWF0aW9uOjppdGVyYXRpb25zKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5pdGVyYXRpb25zKCk7Ci19Ci0KLXZvaWQgV2Vi
QW5pbWF0aW9uOjpzZXRJdGVyYXRpb25zKGludCBuKQotewotICAgIG1fcHJpdmF0ZS0+c2V0SXRl
cmF0aW9ucyhuKTsKLX0KLQotZG91YmxlIFdlYkFuaW1hdGlvbjo6c3RhcnRUaW1lKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5zdGFydFRpbWUoKTsKLX0KLQotdm9pZCBXZWJBbmlt
YXRpb246OnNldFN0YXJ0VGltZShkb3VibGUgbW9ub3RvbmljVGltZSkKLXsKLSAgICBtX3ByaXZh
dGUtPnNldFN0YXJ0VGltZShtb25vdG9uaWNUaW1lKTsKLX0KLQotZG91YmxlIFdlYkFuaW1hdGlv
bjo6dGltZU9mZnNldCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+dGltZU9mZnNl
dCgpOwotfQotCi12b2lkIFdlYkFuaW1hdGlvbjo6c2V0VGltZU9mZnNldChkb3VibGUgbW9ub3Rv
bmljVGltZSkKLXsKLSAgICBtX3ByaXZhdGUtPnNldFRpbWVPZmZzZXQobW9ub3RvbmljVGltZSk7
Ci19Ci0KLWJvb2wgV2ViQW5pbWF0aW9uOjphbHRlcm5hdGVzRGlyZWN0aW9uKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9wcml2YXRlLT5hbHRlcm5hdGVzRGlyZWN0aW9uKCk7Ci19Ci0KLXZvaWQg
V2ViQW5pbWF0aW9uOjpzZXRBbHRlcm5hdGVzRGlyZWN0aW9uKGJvb2wgYWx0ZXJuYXRlcykKLXsK
LSAgICBtX3ByaXZhdGUtPnNldEFsdGVybmF0ZXNEaXJlY3Rpb24oYWx0ZXJuYXRlcyk7Ci19Ci0K
LVdlYkFuaW1hdGlvbjo6b3BlcmF0b3IgUGFzc093blB0cjxXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1h
dGlvbj4oKSBjb25zdAotewotICAgIE93blB0cjxXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbj4g
dG9SZXR1cm4obV9wcml2YXRlLT5jbG9uZUZvckltcGxUaHJlYWQoKSk7Ci0gICAgdG9SZXR1cm4t
PnNldE5lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKHRydWUpOwotICAgIHJldHVybiB0b1JldHVy
bi5yZWxlYXNlKCk7Ci19Ci0KLXZvaWQgV2ViQW5pbWF0aW9uOjppbml0aWFsaXplKGNvbnN0IFdl
YkFuaW1hdGlvbkN1cnZlJiBjdXJ2ZSwgVGFyZ2V0UHJvcGVydHkgdGFyZ2V0UHJvcGVydHkpCi17
Ci0gICAgaW5pdGlhbGl6ZShjdXJ2ZSwgQW5pbWF0aW9uSWRWZW5kb3I6OmdldE5leHRBbmltYXRp
b25JZCgpLCBBbmltYXRpb25JZFZlbmRvcjo6Z2V0TmV4dEdyb3VwSWQoKSwgdGFyZ2V0UHJvcGVy
dHkpOwotfQotCi12b2lkIFdlYkFuaW1hdGlvbjo6aW5pdGlhbGl6ZShjb25zdCBXZWJBbmltYXRp
b25DdXJ2ZSYgY3VydmUsIGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3Bl
cnR5IHRhcmdldFByb3BlcnR5KQotewotICAgIG1fcHJpdmF0ZS5yZXNldChDQ0FjdGl2ZUFuaW1h
dGlvbjo6Y3JlYXRlKGN1cnZlLCBhbmltYXRpb25JZCwgZ3JvdXBJZCwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6Q0NBY3RpdmVBbmltYXRpb246OlRhcmdldFByb3BlcnR5Pih0YXJnZXRQcm9wZXJ0eSkp
LmxlYWtQdHIoKSk7Ci19Ci0KLXZvaWQgV2ViQW5pbWF0aW9uOjpkZXN0cm95KCkKLXsKLSAgICBt
X3ByaXZhdGUucmVzZXQoMCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb25JbXBsLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ZDNiNzAyZDgxNjQ3ODU5ZjZiNWIwMDNhNTZiY2VhNzYwZmI4OGY3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAKQEAgLTAs
MCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgIldlYkFuaW1hdGlvbkltcGwuaCIKKworI2luY2x1ZGUgIkFuaW1hdGlvbklkVmVuZG9yLmgi
CisjaW5jbHVkZSAiY2MvQ0NBY3RpdmVBbmltYXRpb24uaCIKKyNpbmNsdWRlICJjYy9DQ0FuaW1h
dGlvbkN1cnZlLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYkFuaW1hdGlvbi5oPgorI2luY2x1ZGUg
PHB1YmxpYy9XZWJBbmltYXRpb25DdXJ2ZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBXZWJDb3JlOjpBbmltYXRpb25JZFZl
bmRvcjsKK3VzaW5nIFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViQW5pbWF0aW9uKiBXZWJBbmltYXRpb246OmNyZWF0ZShjb25zdCBXZWJBbmlt
YXRpb25DdXJ2ZSYgY3VydmUsIFRhcmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5KQoreworICAg
IHJldHVybiBXZWJBbmltYXRpb246OmNyZWF0ZShjdXJ2ZSwgQW5pbWF0aW9uSWRWZW5kb3I6Omdl
dE5leHRBbmltYXRpb25JZCgpLCBBbmltYXRpb25JZFZlbmRvcjo6Z2V0TmV4dEdyb3VwSWQoKSwg
dGFyZ2V0UHJvcGVydHkpOworfQorCitXZWJBbmltYXRpb24qIFdlYkFuaW1hdGlvbjo6Y3JlYXRl
KGNvbnN0IFdlYkFuaW1hdGlvbkN1cnZlJiBjdXJ2ZSwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3Jv
dXBJZCwgVGFyZ2V0UHJvcGVydHkgdGFyZ2V0UHJvcGVydHkpCit7CisgICAgcmV0dXJuIG5ldyBX
ZWJBbmltYXRpb25JbXBsKENDQWN0aXZlQW5pbWF0aW9uOjpjcmVhdGUoY3VydmUsIGFuaW1hdGlv
bklkLCBncm91cElkLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFy
Z2V0UHJvcGVydHk+KHRhcmdldFByb3BlcnR5KSkpOworfQorCitXZWJBbmltYXRpb246OlRhcmdl
dFByb3BlcnR5IFdlYkFuaW1hdGlvbkltcGw6OnRhcmdldFByb3BlcnR5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQW5pbWF0aW9uSW1wbDo6VGFyZ2V0UHJvcGVydHk+KG1f
YW5pbWF0aW9uLT50YXJnZXRQcm9wZXJ0eSgpKTsKK30KKworaW50IFdlYkFuaW1hdGlvbkltcGw6
Oml0ZXJhdGlvbnMoKSBjb25zdAoreworICAgIHJldHVybiBtX2FuaW1hdGlvbi0+aXRlcmF0aW9u
cygpOworfQorCit2b2lkIFdlYkFuaW1hdGlvbkltcGw6OnNldEl0ZXJhdGlvbnMoaW50IG4pCit7
CisgICAgbV9hbmltYXRpb24tPnNldEl0ZXJhdGlvbnMobik7Cit9CisKK2RvdWJsZSBXZWJBbmlt
YXRpb25JbXBsOjpzdGFydFRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2FuaW1hdGlvbi0+
c3RhcnRUaW1lKCk7Cit9CisKK3ZvaWQgV2ViQW5pbWF0aW9uSW1wbDo6c2V0U3RhcnRUaW1lKGRv
dWJsZSBtb25vdG9uaWNUaW1lKQoreworICAgIG1fYW5pbWF0aW9uLT5zZXRTdGFydFRpbWUobW9u
b3RvbmljVGltZSk7Cit9CisKK2RvdWJsZSBXZWJBbmltYXRpb25JbXBsOjp0aW1lT2Zmc2V0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9hbmltYXRpb24tPnRpbWVPZmZzZXQoKTsKK30KKwordm9p
ZCBXZWJBbmltYXRpb25JbXBsOjpzZXRUaW1lT2Zmc2V0KGRvdWJsZSBtb25vdG9uaWNUaW1lKQor
eworICAgIG1fYW5pbWF0aW9uLT5zZXRUaW1lT2Zmc2V0KG1vbm90b25pY1RpbWUpOworfQorCiti
b29sIFdlYkFuaW1hdGlvbkltcGw6OmFsdGVybmF0ZXNEaXJlY3Rpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX2FuaW1hdGlvbi0+YWx0ZXJuYXRlc0RpcmVjdGlvbigpOworfQorCit2b2lkIFdl
YkFuaW1hdGlvbkltcGw6OnNldEFsdGVybmF0ZXNEaXJlY3Rpb24oYm9vbCBhbHRlcm5hdGVzKQor
eworICAgIG1fYW5pbWF0aW9uLT5zZXRBbHRlcm5hdGVzRGlyZWN0aW9uKGFsdGVybmF0ZXMpOwor
fQorCitQYXNzT3duUHRyPFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uPiBXZWJBbmltYXRpb25J
bXBsOjpjbG9uZVRvQ0NBbmltYXRpb24oKQoreworICAgIE93blB0cjxXZWJDb3JlOjpDQ0FjdGl2
ZUFuaW1hdGlvbj4gdG9SZXR1cm4obV9hbmltYXRpb24tPmNsb25lRm9ySW1wbFRocmVhZCgpKTsK
KyAgICB0b1JldHVybi0+c2V0TmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUodHJ1ZSk7CisgICAg
cmV0dXJuIHRvUmV0dXJuLnJlbGVhc2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb25JbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb25JbXBsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODY3N2I5YzYwOTdlZTg5OGM0Nzg4MTg0ZTI2MjA5OGY3ZDhmYWM5OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkFuaW1hdGlvbkltcGwuaApAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkFuaW1hdGlvbkltcGxfaAor
I2RlZmluZSBXZWJBbmltYXRpb25JbXBsX2gKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJBbmltYXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0NBY3RpdmVBbmltYXRpb247Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJBbmltYXRpb25JbXBsIDogcHVibGljIFdl
YkFuaW1hdGlvbiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgV2ViQW5pbWF0aW9uSW1wbChQYXNz
T3duUHRyPFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uPiBhbmltYXRpb24pCisgICAgICAgIDog
bV9hbmltYXRpb24oYW5pbWF0aW9uKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCB+V2ViQW5p
bWF0aW9uSW1wbCgpIHsgfQorCisgICAgLy8gV2ViQW5pbWF0aW9uIGltcGxlbWVudGF0aW9uCisg
ICAgdmlydHVhbCBUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgaW50IGl0ZXJhdGlvbnMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0SXRlcmF0aW9ucyhpbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91Ymxl
IHN0YXJ0VGltZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFydFRp
bWUoZG91YmxlIG1vbm90b25pY1RpbWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIHRp
bWVPZmZzZXQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNl
dChkb3VibGUgbW9ub3RvbmljVGltZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGFsdGVy
bmF0ZXNEaXJlY3Rpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWx0
ZXJuYXRlc0RpcmVjdGlvbihib29sKSBPVkVSUklERTsKKworICAgIFBhc3NPd25QdHI8V2ViQ29y
ZTo6Q0NBY3RpdmVBbmltYXRpb24+IGNsb25lVG9DQ0FuaW1hdGlvbigpOworcHJpdmF0ZToKKyAg
ICBPd25QdHI8V2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb24+IG1fYW5pbWF0aW9uOworfTsKKwor
fQorCisjZW5kaWYgLy8gV2ViQW5pbWF0aW9uSW1wbF9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVyLmNwcAppbmRleCBkNzdjMjVlYjllMzhhYzIxZWEzODlkNDQ4MzdhODgzMTAx
OGJiMmUzLi4zYjQ5MjA5MTJjNmE0NTZkMDM3OWEwNmQxODYwZTIyMWNiNmZiZTg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2tNYXRyaXg0NC5oIgorI2luY2x1
ZGUgIldlYkFuaW1hdGlvbkltcGwuaCIKICNpbmNsdWRlICJXZWJMYXllckltcGwuaCIKICNpbmNs
dWRlIDxwdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJG
bG9hdFBvaW50Lmg+CkBAIC0zMzIsOSArMzMzLDkgQEAgdm9pZCBXZWJMYXllcjo6c2V0QW5pbWF0
aW9uRGVsZWdhdGUoV2ViQW5pbWF0aW9uRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgIG1fcHJpdmF0
ZS0+c2V0TGF5ZXJBbmltYXRpb25EZWxlZ2F0ZShkZWxlZ2F0ZSk7CiB9CiAKLWJvb2wgV2ViTGF5
ZXI6OmFkZEFuaW1hdGlvbihjb25zdCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK2Jvb2wgV2Vi
TGF5ZXI6OmFkZEFuaW1hdGlvbihXZWJBbmltYXRpb24qIGFuaW1hdGlvbikKIHsKLSAgICByZXR1
cm4gbV9wcml2YXRlLT5hZGRBbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5hZGRBbmltYXRpb24oc3RhdGljX2Nhc3Q8V2ViQW5pbWF0aW9uSW1wbCo+KGFuaW1hdGlv
biktPmNsb25lVG9DQ0FuaW1hdGlvbigpKTsKIH0KIAogdm9pZCBXZWJMYXllcjo6cmVtb3ZlQW5p
bWF0aW9uKGludCBhbmltYXRpb25JZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViQW5pbWF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYkFuaW1hdGlvblRlc3QuY3BwCmluZGV4IGMyY2NjNDUwMzdmMDY1NTU1OTczN2E1MDk5
OTUyYjQxNjIzMTRhOTIuLmE2ODJhYjAyMDAyMWE3OTM1MzM5MjJhZWNmODBlYjM1OGIyNDcwMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQW5pbWF0aW9uVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJBbmltYXRpb25UZXN0
LmNwcApAQCAtNDcsMTMgKzQ3LDEzIEBAIG5hbWVzcGFjZSB7CiBURVNUKFdlYkFuaW1hdGlvblRl
c3QsIE1BWUJFX0RlZmF1bHRTZXR0aW5ncykKIHsKICAgICBXZWJGbG9hdEFuaW1hdGlvbkN1cnZl
IGN1cnZlOwotICAgIFdlYkFuaW1hdGlvbiBhbmltYXRpb24oY3VydmUsIFdlYkFuaW1hdGlvbjo6
VGFyZ2V0UHJvcGVydHlPcGFjaXR5KTsKKyAgICBPd25QdHI8V2ViQW5pbWF0aW9uPiBhbmltYXRp
b24gPSBhZG9wdFB0cihXZWJBbmltYXRpb246OmNyZWF0ZShjdXJ2ZSwgV2ViQW5pbWF0aW9uOjpU
YXJnZXRQcm9wZXJ0eU9wYWNpdHkpKTsKIAogICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBkZWZhdWx0
cyBhcmUgY29ycmVjdC4KLSAgICBFWFBFQ1RfRVEoMSwgYW5pbWF0aW9uLml0ZXJhdGlvbnMoKSk7
Ci0gICAgRVhQRUNUX0VRKDAsIGFuaW1hdGlvbi5zdGFydFRpbWUoKSk7Ci0gICAgRVhQRUNUX0VR
KDAsIGFuaW1hdGlvbi50aW1lT2Zmc2V0KCkpOwotICAgIEVYUEVDVF9GQUxTRShhbmltYXRpb24u
YWx0ZXJuYXRlc0RpcmVjdGlvbigpKTsKKyAgICBFWFBFQ1RfRVEoMSwgYW5pbWF0aW9uLT5pdGVy
YXRpb25zKCkpOworICAgIEVYUEVDVF9FUSgwLCBhbmltYXRpb24tPnN0YXJ0VGltZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMCwgYW5pbWF0aW9uLT50aW1lT2Zmc2V0KCkpOworICAgIEVYUEVDVF9GQUxT
RShhbmltYXRpb24tPmFsdGVybmF0ZXNEaXJlY3Rpb24oKSk7CiB9CiAKIC8vIExpbnV4L1dpbiBi
b3RzIGZhaWxlZCBvbiB0aGlzIHRlc3QuCkBAIC02OCwxNiArNjgsMTYgQEAgVEVTVChXZWJBbmlt
YXRpb25UZXN0LCBNQVlCRV9EZWZhdWx0U2V0dGluZ3MpCiBURVNUKFdlYkFuaW1hdGlvblRlc3Qs
IE1BWUJFX01vZGlmaWVkU2V0dGluZ3MpCiB7CiAgICAgV2ViRmxvYXRBbmltYXRpb25DdXJ2ZSBj
dXJ2ZTsKLSAgICBXZWJBbmltYXRpb24gYW5pbWF0aW9uKGN1cnZlLCBXZWJBbmltYXRpb246OlRh
cmdldFByb3BlcnR5T3BhY2l0eSk7Ci0gICAgYW5pbWF0aW9uLnNldEl0ZXJhdGlvbnMoMik7Ci0g
ICAgYW5pbWF0aW9uLnNldFN0YXJ0VGltZSgyKTsKLSAgICBhbmltYXRpb24uc2V0VGltZU9mZnNl
dCgyKTsKLSAgICBhbmltYXRpb24uc2V0QWx0ZXJuYXRlc0RpcmVjdGlvbih0cnVlKTsKKyAgICBP
d25QdHI8V2ViQW5pbWF0aW9uPiBhbmltYXRpb24gPSBhZG9wdFB0cihXZWJBbmltYXRpb246OmNy
ZWF0ZShjdXJ2ZSwgV2ViQW5pbWF0aW9uOjpUYXJnZXRQcm9wZXJ0eU9wYWNpdHkpKTsKKyAgICBh
bmltYXRpb24tPnNldEl0ZXJhdGlvbnMoMik7CisgICAgYW5pbWF0aW9uLT5zZXRTdGFydFRpbWUo
Mik7CisgICAgYW5pbWF0aW9uLT5zZXRUaW1lT2Zmc2V0KDIpOworICAgIGFuaW1hdGlvbi0+c2V0
QWx0ZXJuYXRlc0RpcmVjdGlvbih0cnVlKTsKIAotICAgIEVYUEVDVF9FUSgyLCBhbmltYXRpb24u
aXRlcmF0aW9ucygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgYW5pbWF0aW9uLnN0YXJ0VGltZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMiwgYW5pbWF0aW9uLnRpbWVPZmZzZXQoKSk7Ci0gICAgRVhQRUNUX1RS
VUUoYW5pbWF0aW9uLmFsdGVybmF0ZXNEaXJlY3Rpb24oKSk7CisgICAgRVhQRUNUX0VRKDIsIGFu
aW1hdGlvbi0+aXRlcmF0aW9ucygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgYW5pbWF0aW9uLT5zdGFy
dFRpbWUoKSk7CisgICAgRVhQRUNUX0VRKDIsIGFuaW1hdGlvbi0+dGltZU9mZnNldCgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShhbmltYXRpb24tPmFsdGVybmF0ZXNEaXJlY3Rpb24oKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlCg==
</data>
<flag name="review"
          id="168185"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>