<?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>92917</bug_id>
          
          <creation_ts>2012-08-01 15:53:44 -0700</creation_ts>
          <short_desc>[chromium] Wrap shared context getters in WebKit API and avoid WebCore::GraphicsContext3D use in compositor internals</short_desc>
          <delta_ts>2012-08-02 13:33:55 -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>fishd</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>684687</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 15:53:44 -0700</bug_when>
    <thetext>[chromium] Wrap shared context getters in WebKit API and avoid WebCore::GraphicsContext3D use in compositor internals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684699</commentid>
    <comment_count>1</comment_count>
      <attachid>155911</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 15:58:49 -0700</bug_when>
    <thetext>Created attachment 155911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684707</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 16:03:42 -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>684817</commentid>
    <comment_count>3</comment_count>
      <attachid>155933</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 17:42:00 -0700</bug_when>
    <thetext>Created attachment 155933
also patch CCThreadProxy.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684844</commentid>
    <comment_count>4</comment_count>
      <attachid>155942</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 18:24:50 -0700</bug_when>
    <thetext>Created attachment 155942
rebased for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684855</commentid>
    <comment_count>5</comment_count>
      <attachid>155942</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-01 18:33:07 -0700</bug_when>
    <thetext>Comment on attachment 155942
rebased for EWS

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685735</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-02 13:33:55 -0700</bug_when>
    <thetext>Committed r124490: &lt;http://trac.webkit.org/changeset/124490&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155911</attachid>
            <date>2012-08-01 15:58:49 -0700</date>
            <delta_ts>2012-08-01 17:41:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92917-20120801155831.patch</filename>
            <type>text/plain</type>
            <size>22316</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0Mzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhOGFhNTc0Mjc1YzJm
NjBjYjljNzhkN2FmYTE2NjA3ZWRmOWU5N2U0Li4wMGMxOGVkNTEwNTI0MmM5OTQ5NDA0MjM0MWE3
ZTk2ZDg0ZDZhZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wOC0wMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gV3JhcCBzaGFyZWQgY29udGV4dCBnZXR0ZXJzIGluIFdlYktpdCBBUEkgYW5kIGF2b2lkIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEIHVzZSBpbiBjb21wb3NpdG9yIGludGVybmFscworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgUGxh
dGZvcm0gQVBJIGZvciBjcmVhdGluZyBhbmQgYWNjZXNzaW5nIHNoYXJlZCBHcmFwaGljc0NvbnRl
eHQzRCBhbmQgR2FuZXNoIGNvbnRleHRzIGZyb20gdGhlIG1haW4gb3IKKyAgICAgICAgY29tcG9z
aXRvciB0aHJlYWRzLiBUaGVzZSBjYW4gYmUgdXNlZCBmb3IgZXZhbHVhdGluZyBmaWx0ZXJzIG9y
IGRvaW5nIGFjY2VsZXJhdGVkIHBhaW50aW5nLiBUaGVzZSBjb250ZXh0cyBhcmUKKyAgICAgICAg
Z2VuZXJhbGx5IGxlYWtlZCB1bnRpbCBsb3N0IG9yIHByb2Nlc3MgZXhpdCwgdGhlIGRldGFpbHMg
YXJlIGRvY3VtZW50ZWQgaW4gV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaAorCisgICAgICAg
ICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDEyLTA4LTAxICBUb21teSBXaWRlbmZseWNo
dCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQWRkIEV4
dHJhRGF0YSBjYXBhYmlsaXR5IHRvIE1lZGlhU3RyZWFtU291cmNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTMx
MzRiNDVmNDg2ZDg3NzBkM2M5YTZmYzAzZTEzNTk0YWNhYzQzOS4uNzU1MjY1N2E4NDc3M2FmMzc2
YzMzNTYxMjlkNGViNjYzM2I3MzE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDEy
LTA4LTAxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAg
W2Nocm9taXVtXSBXcmFwIHNoYXJlZCBjb250ZXh0IGdldHRlcnMgaW4gV2ViS2l0IEFQSSBhbmQg
YXZvaWQgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QgdXNlIGluIGNvbXBvc2l0b3IgaW50ZXJu
YWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjkx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
dXNlcyBQbGF0Zm9ybSBBUEkgd3JhcHBlcnMgdG8gYWNjZXNzIHRoZSBzaGFyZWQgV2ViR3JhcGhp
Y3NDb250ZXh0M0QgLyBHYW5lc2ggY29udGV4dHMgZnJvbSB0aGUgY29tcG9zaXRvcgorICAgICAg
ICB0byBldmFsdWF0ZSBhY2NlbGVyYXRlZCBmaWx0ZXJzIG9yIGRvIGFjY2VsZXJhdGVkIHBhaW50
aW5nLgorCisgICAgICAgIEZpbHRlcnMgY2hhbmdlcyBjb3ZlcmVkIGJ5IGNzczMvZmlsdGVycy8q
LWh3Lmh0bWwgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0Q6Om1haW5UaHJlYWRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRHckNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZENvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRv
clRocmVhZEdyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNEOjpoYXZlQ29tcG9zaXRvclRocmVhZENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlQ29tcG9zaXRvclRocmVhZENvbnRleHQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0
dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVBY2NlbGVyYXRlZENhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUJ1ZmZlclNrUGlj
dHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0ZVJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyOjp1cGRhdGVUZXh0dXJlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmg6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlGaWx0ZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZh
Y2VGaWx0ZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyU3VyZmFjZUZpbHRlcnM6
OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRl
clN1cmZhY2VGaWx0ZXJzLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQ0NSZW5kZXJT
dXJmYWNlRmlsdGVycyk6CisKKzIwMTItMDgtMDEgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNo
cm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1dIE1vdmUgY29tcG9zaXRvciBIVUQgZm9u
dCBhdGxhcyBnZW5lcmF0aW9uIG91dCBvZiBjb21wb3NpdG9yIGNvcmUKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTAxCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5
cGkKaW5kZXggMzE0NGUxZDY4NzJmZTAzMTY1NzVkM2M5MGQ5ZDU2ZGE4MmNjNGQ0My4uZGRhODhm
Y2I2ZDQzNDhhZTNkZDYxNmQ3ODg5YjUwODExZTY2MjkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1Bs
YXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkK
QEAgLTExNCw2ICsxMTQsNyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTY3Jv
bGxiYXJUaGVtZUdlb21ldHJ5LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJT
Y3JvbGxiYXJUaGVtZVBhaW50ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dl
YlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0v
cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJTaXplLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJT
b2NrZXRTdHJlYW1FcnJvci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViU29j
a2V0U3RyZWFtSGFuZGxlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0
OGU2ZWQzYTc1NjNjZTdhZmZhYjQ1ODk3MGUwNDIyMDQ0YzVmMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4
dDNELmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0RfaAorI2RlZmluZSBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRF9oCisKKyNpbmNs
dWRlICJXZWJDb21tb24uaCIKKworY2xhc3MgR3JDb250ZXh0OworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CisKK2NsYXNzIFdlYlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEIHsKK3B1YmxpYzoKKyAgICAvLyBSZXR1cm5zIGEgY29udGV4dCB1c2FibGUg
ZnJvbSB0aGUgbWFpbiB0aHJlYWQuIElmIHRoZSBjb250ZXh0IGlzIGxvc3Qgb3IgaGFzIG5ldmVy
IGJlZW4gY3JlYXRlZCwgdGhpcyB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGEgbmV3IGNvbnRleHQu
CisgICAgLy8gVGhlIHJldHVybmVkIHBvaW50ZXIgaXMgb25seSB2YWxpZCB1bnRpbCB0aGUgbmV4
dCBjYWxsIHRvIG1haW5UaHJlYWRDb250ZXh0KCkuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
V2ViR3JhcGhpY3NDb250ZXh0M0QqIG1haW5UaHJlYWRDb250ZXh0KCk7CisKKyAgICAvLyBSZXR1
cm5zIGEgZ2FuZXNoIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIHRocmVhZCBzaGFy
ZWQgY29udGV4dC4gVGhlIGdhbmVzaCBjb250ZXh0IGhhcyB0aGUgc2FtZSBsaWZldGltZSBhcyB0
aGUgbWFpbiB0aHJlYWQgc2hhcmVkCisgICAgLy8gV2ViR3JhcGhpY3NDb250ZXh0M0QuCisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgR3JDb250ZXh0KiBtYWluVGhyZWFkR3JDb250ZXh0KCk7CisK
KyAgICAvLyBBdHRlbXB0cyB0byBjcmVhdGUgYSBjb250ZXh0IHVzYWJsZSBmcm9tIHRoZSBjb21w
b3NpdG9yIHRocmVhZC4gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiAoV2ViS2l0KSB0aHJl
YWQuIFJldHVybnMgZmFsc2UKKyAgICAvLyBpZiBhIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0
ZWQuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBjcmVhdGVDb21wb3NpdG9yVGhyZWFk
Q29udGV4dCgpOworCisgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBoYXZlQ29tcG9zaXRvclRocmVhZENvbnRleHQoKTsK
KworICAgIC8vIFJldHVybnMgYSBjb250ZXh0IHVzYWJsZSBmcm9tIHRoZSBjb21wb3NpdG9yIHRo
cmVhZCwgaWYgdGhlcmUgaXMgb25lLiBUaGUgY29udGV4dCBtdXN0IGJlIHVzZWQgb25seSBmcm9t
IHRoZSBjb21wb3NpdG9yIHRocmVhZC4KKyAgICAvLyBUaGUgcmV0dXJuZWQgY29udGV4dCBpcyB2
YWxpZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvIGNyZWF0ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0
KCkuCisgICAgLy8gSWYgdGhpcyBjb250ZXh0IGJlY29tZXMgbG9zdCBvciB1bnVzYWJsZSwgdGhl
IGNhbGxlciBzaG91bGQgY2FsbCBjcmVhdGVDb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpIG9uIHRo
ZSBtYWluIHRocmVhZCBhbmQKKyAgICAvLyB0aGVuIHVzZSB0aGUgbmV3bHkgY3JlYXRlZCBjb250
ZXh0IGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGlj
IFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpOworCisgICAg
Ly8gUmV0dXJucyBhIGdhbmVzaCBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY29tcG9zaXRv
ciB0aHJlYWQgc2hhcmVkIGNvbnRleHQuIFRoZSBnYW5lc2ggY29udGV4dCBoYXMgdGhlIHNhbWUg
bGlmZXRpbWUgYXMgdGhlIGNvbXBvc2l0b3IgdGhyZWFkCisgICAgLy8gc2hhcmVkIFdlYkdyYXBo
aWNzQ29udGV4dDNELgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIEdyQ29udGV4dCogY29tcG9z
aXRvclRocmVhZEdyQ29udGV4dCgpOworfTsKKworfQorCisjZW5kaWYgLy8gV2ViU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQwY2ZhMTE3ZTAyMzc1NjVkZGZl
N2JiOTNmMzNlNTk1NjQzNTZjNDguLmQ5MTMyYmVmMGYyODI3NmZlMDgxMGRhMzM1YThiNzEyZDQz
Mjk1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTgyMjcsNiArODIyNyw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbVNvdXJjZS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3Vy
Y2VzUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
V2ViUHJlcmVuZGVyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViVGhyZWFkU2FmZURhdGEuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJUcmFuc2Zvcm1PcGVyYXRp
b25zLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUyZDA1NGRlMGVkNTljOTU3MGI2ZWFmMGZkOGZmNDc3ODI5ZjY3NjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmg+CisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNs
dWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgorCit1c2luZyBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU7Cit1c2luZyBXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQz
RDsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRDo6bWFpblRocmVhZENvbnRleHQoKQoreworICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RXZWJHcmFwaGljc0NvbnRleHQzRChTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCkuZ2V0KCkpOworfQorCitHckNvbnRleHQqIFdlYlNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEOjptYWluVGhyZWFkR3JDb250ZXh0KCkKK3sKKyAgICByZXR1
cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpID8gU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmdldCgpLT5nckNvbnRleHQoKSA6IDA7Cit9CisKKworV2ViR3JhcGhpY3NDb250ZXh0M0Qq
IFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdyYXBoaWNz
Q29udGV4dDNEKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGb3JJbXBsVGhyZWFkKCkuZ2V0
KCkpOworfQorCitHckNvbnRleHQqIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3Np
dG9yVGhyZWFkR3JDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmdldEZvckltcGxUaHJlYWQoKSA/IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGb3JJ
bXBsVGhyZWFkKCktPmdyQ29udGV4dCgpIDogMDsKK30KKworYm9vbCBXZWJTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRDo6aGF2ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0KCkKK3sKKyAgICByZXR1cm4g
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmhhdmVGb3JJbXBsVGhyZWFkKCk7Cit9CisKK2Jvb2wg
V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0
KCkKK3sKKyAgICByZXR1cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUZvckltcGxU
aHJlYWQoKTsKK30KKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJh
bWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRleCA0MzZm
MzQ2ZDRiMTFhNWQ1OGU5ZDk4ODg4NGFjOGZlMjIwY2IyMTEzLi45Y2QxZTc1MGNjZjI4Yzc1NTcx
ZDgxYmM5Yzc2YjRhYzI1ODBkOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVy
ZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAg
LTMxLDE4ICszMSwyMSBAQAogI2luY2x1ZGUgIkZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5oIgogCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hyb21pdW0uaCIK
LSNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlNrQ2FudmFz
LmgiCiAjaW5jbHVkZSAiU2tHcHVEZXZpY2UuaCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCisj
aW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CisjaW5jbHVkZSA8cHVibGlj
L1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmg+CisKK3VzaW5nIFdlYktpdDo6V2ViR3JhcGhp
Y3NDb250ZXh0M0Q7Cit1c2luZyBXZWJLaXQ6OldlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBQYXNzT3duUHRyPFNrQ2FudmFzPiBjcmVh
dGVBY2NlbGVyYXRlZENhbnZhcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwKK3N0YXRpYyBQ
YXNzT3duUHRyPFNrQ2FudmFzPiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhHckNvbnRleHQqIGdy
Q29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJbnRTaXplIGNhbnZhc1NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdGV4dHVyZUlkKQogewotICAgIEdyQ29udGV4
dCogZ3JDb250ZXh0ID0gY29udGV4dC0+Z3JDb250ZXh0KCk7CiAgICAgR3JQbGF0Zm9ybVRleHR1
cmVEZXNjIHRleHR1cmVEZXNjOwogICAgIHRleHR1cmVEZXNjLmZGbGFncyA9IGtSZW5kZXJUYXJn
ZXRfR3JQbGF0Zm9ybVRleHR1cmVGbGFnOwogICAgIHRleHR1cmVEZXNjLmZXaWR0aCA9IGNhbnZh
c1NpemUud2lkdGgoKTsKQEAgLTY2LDEwICs2OSwxMSBAQCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6On5UZXh0dXJlKCkKIAogdm9pZCBGcmFt
ZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0
ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IHNoYXJlZENvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkg
PyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0Rm9ySW1wbFRocmVhZCgpIDogU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OmdldCgpOwotICAgIGlmICghc2hhcmVkQ29udGV4dCkKKyAgICBXZWJH
cmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCA9IENDUHJveHk6Omhhc0ltcGxUaHJlYWQo
KSA/IFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgp
IDogV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRDb250ZXh0KCk7CisgICAg
R3JDb250ZXh0KiBzaGFyZWRHckNvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgPyBX
ZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZEdyQ29udGV4dCgpIDog
V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRHckNvbnRleHQoKTsKKyAgICBp
ZiAoIXNoYXJlZENvbnRleHQgfHwgIXNoYXJlZEdyQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwot
ICAgIHRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZVRleHR1cmVSZWN0KHNoYXJlZENvbnRleHQucmVs
ZWFzZSgpLCByZXNvdXJjZVByb3ZpZGVyLCB0ZXh0dXJlKCksIHNvdXJjZVJlY3QsIGRlc3RSZWN0
KTsKKyAgICB0ZXh0dXJlVXBkYXRlcigpLT51cGRhdGVUZXh0dXJlUmVjdChzaGFyZWRDb250ZXh0
LCBzaGFyZWRHckNvbnRleHQsIHJlc291cmNlUHJvdmlkZXIsIHRleHR1cmUoKSwgc291cmNlUmVj
dCwgZGVzdFJlY3QpOwogfQogCiBQYXNzUmVmUHRyPEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcj4gRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyOjpjcmVhdGUoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4gcGFpbnRl
cikKQEAgLTk3LDE3ICsxMDEsMTUgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVs
Rm9ybWF0IEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXAKICAgICByZXR1
cm4gTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQTsKIH0KIAotdm9p
ZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRl
eHR1cmVSZWN0KFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IHBycENvbnRleHQsIENDUmVz
b3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgQ0NQcmlvcml0aXplZFRleHR1cmUqIHRl
eHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0
KQordm9pZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVw
ZGF0ZVRleHR1cmVSZWN0KFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHckNvbnRleHQq
IGdyQ29udGV4dCwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9y
aXRpemVkVGV4dHVyZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgZGVzdFJlY3QpCiB7Ci0gICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250
ZXh0KHBycENvbnRleHQpOwotCiAgICAgLy8gTWFrZSBzdXJlIGdhbmVzaCB1c2VzIHRoZSBjb3Jy
ZWN0IEdMIGNvbnRleHQuCiAgICAgY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKICAg
ICB0ZXh0dXJlLT5hY3F1aXJlQmFja2luZ1RleHR1cmUocmVzb3VyY2VQcm92aWRlcik7CiAgICAg
Q0NTY29wZWRMb2NrUmVzb3VyY2VGb3JXcml0ZSBsb2NrKHJlc291cmNlUHJvdmlkZXIsIHRleHR1
cmUtPnJlc291cmNlSWQoKSk7CiAgICAgLy8gQ3JlYXRlIGFuIGFjY2VsZXJhdGVkIGNhbnZhcyB0
byBkcmF3IG9uLgotICAgIE93blB0cjxTa0NhbnZhcz4gY2FudmFzID0gY3JlYXRlQWNjZWxlcmF0
ZWRDYW52YXMoY29udGV4dC5nZXQoKSwgdGV4dHVyZS0+c2l6ZSgpLCBsb2NrLnRleHR1cmVJZCgp
KTsKKyAgICBPd25QdHI8U2tDYW52YXM+IGNhbnZhcyA9IGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGdyQ29udGV4dCwgdGV4dHVyZS0+c2l6ZSgpLCBsb2NrLnRleHR1cmVJZCgpKTsKIAogICAgIC8v
IFRoZSBjb21wb3NpdG9yIGV4cGVjdHMgdGhlIHRleHR1cmVzIHRvIGJlIHVwc2lkZS1kb3duIHNv
IGl0IGNhbiBmbGlwCiAgICAgLy8gdGhlIGZpbmFsIGNvbXBvc2l0ZWQgaW1hZ2UuIEdhbmVzaCBy
ZW5kZXJzIHRoZSBpbWFnZSB1cHJpZ2h0IHNvIHdlCkBAIC0xMjMsNyArMTI1LDcgQEAgdm9pZCBG
cmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1
cmVSZWN0KFBhc3NSZWZQdHIKICAgICBkcmF3UGljdHVyZShjYW52YXMuZ2V0KCkpOwogCiAgICAg
Ly8gRmx1c2ggZ2FuZXNoIGNvbnRleHQgc28gdGhhdCBhbGwgdGhlIHJlbmRlcmVkIHN0dWZmIGFw
cGVhcnMgb24gdGhlIHRleHR1cmUuCi0gICAgY29udGV4dC0+Z3JDb250ZXh0KCktPmZsdXNoKCk7
CisgICAgZ3JDb250ZXh0LT5mbHVzaCgpOwogCiAgICAgLy8gRmx1c2ggdGhlIEdMIGNvbnRleHQg
c28gcmVuZGVyaW5nIHJlc3VsdHMgZnJvbSB0aGlzIGNvbnRleHQgYXJlIHZpc2libGUgaW4gdGhl
IGNvbXBvc2l0b3IncyBjb250ZXh0LgogICAgIGNvbnRleHQtPmZsdXNoKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNr
UGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlci5oCmluZGV4IDQ0NjQ5ZTQ3M2M2OWQyNDRjOTFjMDlhNTZhYjcxOWMyMGUxYTRl
YjYuLjI0ZjhhMzRiODgzMTc2ZDYwZTRhNTVmNGU1MTk3YmE4NWEwMzRlZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQ
aWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5oCkBAIC0zMSw2ICszMSwxMSBAQAogCiAjaW5jbHVkZSAiU2tQaWN0dXJl
Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIgogCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNz
IFdlYkdyYXBoaWNzQ29udGV4dDNEOworY2xhc3MgV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q7
Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGhpcyBjbGFzcyByZWNvcmRzIHRoZSBj
b250ZW50UmVjdCBpbnRvIGFuIFNrUGljdHVyZSwgdGhlbiB1c2VzIGFjY2VsZXJhdGVkCkBAIC01
Niw3ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxMYXllclRleHR1
cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKENDUHJpb3JpdGl6ZWRUZXh0dXJlTWFu
YWdlciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRU
ZXhlbEZvcm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KSBPVkVSUklERTsKLSAgICB2b2lkIHVw
ZGF0ZVRleHR1cmVSZWN0KFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBDQ1Jlc291cmNl
UHJvdmlkZXIqLCBDQ1ByaW9yaXRpemVkVGV4dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJl
Y3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0
KFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqLCBHckNvbnRleHQqLCBDQ1Jlc291cmNlUHJv
dmlkZXIqLCBDQ1ByaW9yaXRpemVkVGV4dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBGcmFt
ZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIoUGFzc093blB0cjxMYXll
clBhaW50ZXJDaHJvbWl1bT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAK
aW5kZXggMzIzMTQzNWYyZTZlZjNkNGFhNTQ5ZmE5ZTllMDEyMzlhOGQ1ZWM5Ni4uZDQ1MGE2NThm
OGNjOGExNGI3Njc4NGM2OTQyNmUxZWMyYWQ3YjZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiR3JUZXh0dXJlLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvbG9yLmgi
Ci0jaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJTa0JpdG1h
cC5oIgogI2luY2x1ZGUgIlNrQ29sb3IuaCIKICNpbmNsdWRlICJUaHJvdHRsZWRUZXh0dXJlVXBs
b2FkZXIuaCIKQEAgLTU2LDYgKzU1LDcgQEAKICNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmgiCiAjaW5jbHVkZSAiY2MvQ0NWaWRlb0xheWVySW1wbC5oIgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJTaGFyZWRHcmFw
aGljc0NvbnRleHQzRC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJWaWRlb0ZyYW1lLmg+CiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAg
LTY0LDYgKzY0LDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEOwogdXNpbmcgV2ViS2l0OjpXZWJHcmFwaGljc01lbW9yeUFsbG9jYXRp
b247Cit1c2luZyBXZWJLaXQ6OldlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwogdXNpbmcgV2Vi
S2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NTM1LDE0ICs1MzYsMTYgQEAgc3RhdGljIGlubGluZSBTa0JpdG1hcCBhcHBseUZpbHRlcnMoTGF5
ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVyLCBjb25zdAogICAgIGlmIChmaWx0ZXJz
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFNrQml0bWFwKCk7CiAKLSAgICBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IGZpbHRlckNvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkg
PyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0Rm9ySW1wbFRocmVhZCgpIDogU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OmdldCgpOwotICAgIGlmICghZmlsdGVyQ29udGV4dCkKKyAgICBXZWJH
cmFwaGljc0NvbnRleHQzRCogZmlsdGVyQ29udGV4dCA9IENDUHJveHk6Omhhc0ltcGxUaHJlYWQo
KSA/IFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgp
IDogV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRDb250ZXh0KCk7CisgICAg
R3JDb250ZXh0KiBmaWx0ZXJHckNvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgPyBX
ZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZEdyQ29udGV4dCgpIDog
V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRHckNvbnRleHQoKTsKKworICAg
IGlmICghZmlsdGVyQ29udGV4dCB8fCAhZmlsdGVyR3JDb250ZXh0KQogICAgICAgICByZXR1cm4g
U2tCaXRtYXAoKTsKIAogICAgIGxheWVyUmVuZGVyZXItPmNvbnRleHQoKS0+Zmx1c2goKTsKIAog
ICAgIENDU2NvcGVkTG9ja1Jlc291cmNlRm9yV3JpdGUgbG9jayhsYXllclJlbmRlcmVyLT5yZXNv
dXJjZVByb3ZpZGVyKCksIHNvdXJjZVRleHR1cmUtPmlkKCkpOwotICAgIFNrQml0bWFwIHNvdXJj
ZSA9IENDUmVuZGVyU3VyZmFjZUZpbHRlcnM6OmFwcGx5KGZpbHRlcnMsIGxvY2sudGV4dHVyZUlk
KCksIHNvdXJjZVRleHR1cmUtPnNpemUoKSwgZmlsdGVyQ29udGV4dC5nZXQoKSk7CisgICAgU2tC
aXRtYXAgc291cmNlID0gQ0NSZW5kZXJTdXJmYWNlRmlsdGVyczo6YXBwbHkoZmlsdGVycywgbG9j
ay50ZXh0dXJlSWQoKSwgc291cmNlVGV4dHVyZS0+c2l6ZSgpLCBmaWx0ZXJDb250ZXh0LCBmaWx0
ZXJHckNvbnRleHQpOwogICAgIHJldHVybiBzb3VyY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZUZp
bHRlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZW5kZXJTdXJmYWNlRmlsdGVycy5jcHAKaW5kZXggZjFhMjFmYWE4ZDFmNGVlMjg2YzdjZTA3
OTg5MTNlYmNlMTM3ZTNmMC4uM2M3MmU4ZjhlYTkxZmJkMTUwMzNlZGZjNDY2MzQwODlhYjcxNzAx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NSZW5kZXJTdXJmYWNlRmlsdGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlRmlsdGVycy5jcHAKQEAgLTMw
LDcgKzMwLDYgQEAKICNpbmNsdWRlICJjYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJzLmgiCiAKICNp
bmNsdWRlICJGbG9hdFNpemUuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2lu
Y2x1ZGUgIlNrQmx1ckltYWdlRmlsdGVyLmgiCiAjaW5jbHVkZSAiU2tDYW52YXMuaCIKICNpbmNs
dWRlICJTa0NvbG9yTWF0cml4RmlsdGVyLmgiCkBAIC0zOCw2ICszNyw3IEBACiAjaW5jbHVkZSAi
U2tHclRleHR1cmVQaXhlbFJlZi5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGaWx0ZXJPcGVyYXRp
b24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9ucy5oPgorI2luY2x1ZGUg
PHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAKIG5hbWVzcGFjZSB7CkBAIC0zMzUsMTQgKzMzNSwxMSBAQCBib29sIGFwcGx5Q29sb3JN
YXRyaXgoRmlsdGVyQnVmZmVyU3RhdGUqIHN0YXRlLCBTa1NjYWxhciBtYXRyaXhbMjBdKQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNrQml0bWFwIENDUmVuZGVyU3VyZmFjZUZpbHRlcnM6OmFw
cGx5KGNvbnN0IFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycywgdW5zaWduZWQg
dGV4dHVyZUlkLCBjb25zdCBGbG9hdFNpemUmIHNpemUsIEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0M0QpCitTa0JpdG1hcCBDQ1JlbmRlclN1cmZhY2VGaWx0ZXJzOjphcHBseShjb25zdCBXZWJL
aXQ6OldlYkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMsIHVuc2lnbmVkIHRleHR1cmVJZCwgY29u
c3QgRmxvYXRTaXplJiBzaXplLCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
M0QsIEdyQ29udGV4dCogZ3JDb250ZXh0KQogewotICAgIGlmICghY29udGV4dDNEKQorICAgIGlm
ICghY29udGV4dDNEIHx8ICFnckNvbnRleHQpCiAgICAgICAgIHJldHVybiBTa0JpdG1hcCgpOwog
Ci0gICAgR3JDb250ZXh0KiBnckNvbnRleHQgPSBjb250ZXh0M0QtPmdyQ29udGV4dCgpOwotICAg
IGlmICghZ3JDb250ZXh0KQotICAgICAgICByZXR1cm4gU2tCaXRtYXAoKTsKICAgICBGaWx0ZXJC
dWZmZXJTdGF0ZSBzdGF0ZShnckNvbnRleHQsIHNpemUsIHRleHR1cmVJZCk7CiAgICAgCiAgICAg
U2tTY2FsYXIgYWNjdW11bGF0ZWRDb2xvck1hdHJpeFsyMF07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0
ZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jl
bmRlclN1cmZhY2VGaWx0ZXJzLmgKaW5kZXggZTI1ODI3NTdjNDQ5YTNmMTBjYzQ2MGExNWI5OTRl
ODhiZTcyYjhhNC4uMTQ1Yjc5NDRhNzc1NTY0Y2JiZWIzZjg1MWY2YjZkNTY5MmY2NDg1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NS
ZW5kZXJTdXJmYWNlRmlsdGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZUZpbHRlcnMuaApAQCAtMjksMTkgKzI5LDIx
IEBACiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKK2NsYXNzIEdyQ29udGV4
dDsKIGNsYXNzIFNrQml0bWFwOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkZpbHRl
ck9wZXJhdGlvbnM7CitjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIH0KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgRmxvYXRTaXplOwotY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAK
IGNsYXNzIENDUmVuZGVyU3VyZmFjZUZpbHRlcnMgewogcHVibGljOgotICAgIHN0YXRpYyBTa0Jp
dG1hcCBhcHBseShjb25zdCBXZWJLaXQ6OldlYkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMsIHVu
c2lnbmVkIHRleHR1cmVJZCwgY29uc3QgRmxvYXRTaXplJiwgR3JhcGhpY3NDb250ZXh0M0QqKTsK
KyAgICBzdGF0aWMgU2tCaXRtYXAgYXBwbHkoY29uc3QgV2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRp
b25zJiBmaWx0ZXJzLCB1bnNpZ25lZCB0ZXh0dXJlSWQsIGNvbnN0IEZsb2F0U2l6ZSYsIFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqLCBHckNvbnRleHQqKTsKKwogcHJpdmF0ZToKICAgICBD
Q1JlbmRlclN1cmZhY2VGaWx0ZXJzKCk7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155933</attachid>
            <date>2012-08-01 17:42:00 -0700</date>
            <delta_ts>2012-08-01 18:24:46 -0700</delta_ts>
            <desc>also patch CCThreadProxy.cpp</desc>
            <filename>bug-92917-20120801174142.patch</filename>
            <type>text/plain</type>
            <size>24326</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0Mzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhOGFhNTc0Mjc1YzJm
NjBjYjljNzhkN2FmYTE2NjA3ZWRmOWU5N2U0Li4wMGMxOGVkNTEwNTI0MmM5OTQ5NDA0MjM0MWE3
ZTk2ZDg0ZDZhZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wOC0wMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gV3JhcCBzaGFyZWQgY29udGV4dCBnZXR0ZXJzIGluIFdlYktpdCBBUEkgYW5kIGF2b2lkIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEIHVzZSBpbiBjb21wb3NpdG9yIGludGVybmFscworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgUGxh
dGZvcm0gQVBJIGZvciBjcmVhdGluZyBhbmQgYWNjZXNzaW5nIHNoYXJlZCBHcmFwaGljc0NvbnRl
eHQzRCBhbmQgR2FuZXNoIGNvbnRleHRzIGZyb20gdGhlIG1haW4gb3IKKyAgICAgICAgY29tcG9z
aXRvciB0aHJlYWRzLiBUaGVzZSBjYW4gYmUgdXNlZCBmb3IgZXZhbHVhdGluZyBmaWx0ZXJzIG9y
IGRvaW5nIGFjY2VsZXJhdGVkIHBhaW50aW5nLiBUaGVzZSBjb250ZXh0cyBhcmUKKyAgICAgICAg
Z2VuZXJhbGx5IGxlYWtlZCB1bnRpbCBsb3N0IG9yIHByb2Nlc3MgZXhpdCwgdGhlIGRldGFpbHMg
YXJlIGRvY3VtZW50ZWQgaW4gV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaAorCisgICAgICAg
ICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDEyLTA4LTAxICBUb21teSBXaWRlbmZseWNo
dCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQWRkIEV4
dHJhRGF0YSBjYXBhYmlsaXR5IHRvIE1lZGlhU3RyZWFtU291cmNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTMx
MzRiNDVmNDg2ZDg3NzBkM2M5YTZmYzAzZTEzNTk0YWNhYzQzOS4uNzU1MjY1N2E4NDc3M2FmMzc2
YzMzNTYxMjlkNGViNjYzM2I3MzE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDEy
LTA4LTAxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAg
W2Nocm9taXVtXSBXcmFwIHNoYXJlZCBjb250ZXh0IGdldHRlcnMgaW4gV2ViS2l0IEFQSSBhbmQg
YXZvaWQgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QgdXNlIGluIGNvbXBvc2l0b3IgaW50ZXJu
YWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjkx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
dXNlcyBQbGF0Zm9ybSBBUEkgd3JhcHBlcnMgdG8gYWNjZXNzIHRoZSBzaGFyZWQgV2ViR3JhcGhp
Y3NDb250ZXh0M0QgLyBHYW5lc2ggY29udGV4dHMgZnJvbSB0aGUgY29tcG9zaXRvcgorICAgICAg
ICB0byBldmFsdWF0ZSBhY2NlbGVyYXRlZCBmaWx0ZXJzIG9yIGRvIGFjY2VsZXJhdGVkIHBhaW50
aW5nLgorCisgICAgICAgIEZpbHRlcnMgY2hhbmdlcyBjb3ZlcmVkIGJ5IGNzczMvZmlsdGVycy8q
LWh3Lmh0bWwgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0Q6Om1haW5UaHJlYWRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRHckNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZENvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRv
clRocmVhZEdyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNEOjpoYXZlQ29tcG9zaXRvclRocmVhZENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlQ29tcG9zaXRvclRocmVhZENvbnRleHQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0
dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVBY2NlbGVyYXRlZENhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUJ1ZmZlclNrUGlj
dHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0ZVJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyOjp1cGRhdGVUZXh0dXJlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmg6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlGaWx0ZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZh
Y2VGaWx0ZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyU3VyZmFjZUZpbHRlcnM6
OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRl
clN1cmZhY2VGaWx0ZXJzLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQ0NSZW5kZXJT
dXJmYWNlRmlsdGVycyk6CisKKzIwMTItMDgtMDEgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNo
cm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1dIE1vdmUgY29tcG9zaXRvciBIVUQgZm9u
dCBhdGxhcyBnZW5lcmF0aW9uIG91dCBvZiBjb21wb3NpdG9yIGNvcmUKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTAxCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5
cGkKaW5kZXggMzE0NGUxZDY4NzJmZTAzMTY1NzVkM2M5MGQ5ZDU2ZGE4MmNjNGQ0My4uZGRhODhm
Y2I2ZDQzNDhhZTNkZDYxNmQ3ODg5YjUwODExZTY2MjkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1Bs
YXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkK
QEAgLTExNCw2ICsxMTQsNyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTY3Jv
bGxiYXJUaGVtZUdlb21ldHJ5LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJT
Y3JvbGxiYXJUaGVtZVBhaW50ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dl
YlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0v
cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJTaXplLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJT
b2NrZXRTdHJlYW1FcnJvci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViU29j
a2V0U3RyZWFtSGFuZGxlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0
OGU2ZWQzYTc1NjNjZTdhZmZhYjQ1ODk3MGUwNDIyMDQ0YzVmMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4
dDNELmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0RfaAorI2RlZmluZSBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRF9oCisKKyNpbmNs
dWRlICJXZWJDb21tb24uaCIKKworY2xhc3MgR3JDb250ZXh0OworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CisKK2NsYXNzIFdlYlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEIHsKK3B1YmxpYzoKKyAgICAvLyBSZXR1cm5zIGEgY29udGV4dCB1c2FibGUg
ZnJvbSB0aGUgbWFpbiB0aHJlYWQuIElmIHRoZSBjb250ZXh0IGlzIGxvc3Qgb3IgaGFzIG5ldmVy
IGJlZW4gY3JlYXRlZCwgdGhpcyB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGEgbmV3IGNvbnRleHQu
CisgICAgLy8gVGhlIHJldHVybmVkIHBvaW50ZXIgaXMgb25seSB2YWxpZCB1bnRpbCB0aGUgbmV4
dCBjYWxsIHRvIG1haW5UaHJlYWRDb250ZXh0KCkuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
V2ViR3JhcGhpY3NDb250ZXh0M0QqIG1haW5UaHJlYWRDb250ZXh0KCk7CisKKyAgICAvLyBSZXR1
cm5zIGEgZ2FuZXNoIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIHRocmVhZCBzaGFy
ZWQgY29udGV4dC4gVGhlIGdhbmVzaCBjb250ZXh0IGhhcyB0aGUgc2FtZSBsaWZldGltZSBhcyB0
aGUgbWFpbiB0aHJlYWQgc2hhcmVkCisgICAgLy8gV2ViR3JhcGhpY3NDb250ZXh0M0QuCisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgR3JDb250ZXh0KiBtYWluVGhyZWFkR3JDb250ZXh0KCk7CisK
KyAgICAvLyBBdHRlbXB0cyB0byBjcmVhdGUgYSBjb250ZXh0IHVzYWJsZSBmcm9tIHRoZSBjb21w
b3NpdG9yIHRocmVhZC4gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiAoV2ViS2l0KSB0aHJl
YWQuIFJldHVybnMgZmFsc2UKKyAgICAvLyBpZiBhIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0
ZWQuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBjcmVhdGVDb21wb3NpdG9yVGhyZWFk
Q29udGV4dCgpOworCisgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBoYXZlQ29tcG9zaXRvclRocmVhZENvbnRleHQoKTsK
KworICAgIC8vIFJldHVybnMgYSBjb250ZXh0IHVzYWJsZSBmcm9tIHRoZSBjb21wb3NpdG9yIHRo
cmVhZCwgaWYgdGhlcmUgaXMgb25lLiBUaGUgY29udGV4dCBtdXN0IGJlIHVzZWQgb25seSBmcm9t
IHRoZSBjb21wb3NpdG9yIHRocmVhZC4KKyAgICAvLyBUaGUgcmV0dXJuZWQgY29udGV4dCBpcyB2
YWxpZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvIGNyZWF0ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0
KCkuCisgICAgLy8gSWYgdGhpcyBjb250ZXh0IGJlY29tZXMgbG9zdCBvciB1bnVzYWJsZSwgdGhl
IGNhbGxlciBzaG91bGQgY2FsbCBjcmVhdGVDb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpIG9uIHRo
ZSBtYWluIHRocmVhZCBhbmQKKyAgICAvLyB0aGVuIHVzZSB0aGUgbmV3bHkgY3JlYXRlZCBjb250
ZXh0IGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGlj
IFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpOworCisgICAg
Ly8gUmV0dXJucyBhIGdhbmVzaCBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY29tcG9zaXRv
ciB0aHJlYWQgc2hhcmVkIGNvbnRleHQuIFRoZSBnYW5lc2ggY29udGV4dCBoYXMgdGhlIHNhbWUg
bGlmZXRpbWUgYXMgdGhlIGNvbXBvc2l0b3IgdGhyZWFkCisgICAgLy8gc2hhcmVkIFdlYkdyYXBo
aWNzQ29udGV4dDNELgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIEdyQ29udGV4dCogY29tcG9z
aXRvclRocmVhZEdyQ29udGV4dCgpOworfTsKKworfQorCisjZW5kaWYgLy8gV2ViU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQwY2ZhMTE3ZTAyMzc1NjVkZGZl
N2JiOTNmMzNlNTk1NjQzNTZjNDguLmQ5MTMyYmVmMGYyODI3NmZlMDgxMGRhMzM1YThiNzEyZDQz
Mjk1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTgyMjcsNiArODIyNyw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbVNvdXJjZS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3Vy
Y2VzUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
V2ViUHJlcmVuZGVyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViVGhyZWFkU2FmZURhdGEuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJUcmFuc2Zvcm1PcGVyYXRp
b25zLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUyZDA1NGRlMGVkNTljOTU3MGI2ZWFmMGZkOGZmNDc3ODI5ZjY3NjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmg+CisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNs
dWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgorCit1c2luZyBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU7Cit1c2luZyBXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQz
RDsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRDo6bWFpblRocmVhZENvbnRleHQoKQoreworICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RXZWJHcmFwaGljc0NvbnRleHQzRChTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCkuZ2V0KCkpOworfQorCitHckNvbnRleHQqIFdlYlNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEOjptYWluVGhyZWFkR3JDb250ZXh0KCkKK3sKKyAgICByZXR1
cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpID8gU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmdldCgpLT5nckNvbnRleHQoKSA6IDA7Cit9CisKKworV2ViR3JhcGhpY3NDb250ZXh0M0Qq
IFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdyYXBoaWNz
Q29udGV4dDNEKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGb3JJbXBsVGhyZWFkKCkuZ2V0
KCkpOworfQorCitHckNvbnRleHQqIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3Np
dG9yVGhyZWFkR3JDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmdldEZvckltcGxUaHJlYWQoKSA/IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGb3JJ
bXBsVGhyZWFkKCktPmdyQ29udGV4dCgpIDogMDsKK30KKworYm9vbCBXZWJTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRDo6aGF2ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0KCkKK3sKKyAgICByZXR1cm4g
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmhhdmVGb3JJbXBsVGhyZWFkKCk7Cit9CisKK2Jvb2wg
V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0
KCkKK3sKKyAgICByZXR1cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUZvckltcGxU
aHJlYWQoKTsKK30KKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJh
bWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRleCA0MzZm
MzQ2ZDRiMTFhNWQ1OGU5ZDk4ODg4NGFjOGZlMjIwY2IyMTEzLi45Y2QxZTc1MGNjZjI4Yzc1NTcx
ZDgxYmM5Yzc2YjRhYzI1ODBkOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVy
ZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAg
LTMxLDE4ICszMSwyMSBAQAogI2luY2x1ZGUgIkZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5oIgogCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hyb21pdW0uaCIK
LSNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlNrQ2FudmFz
LmgiCiAjaW5jbHVkZSAiU2tHcHVEZXZpY2UuaCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCisj
aW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CisjaW5jbHVkZSA8cHVibGlj
L1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmg+CisKK3VzaW5nIFdlYktpdDo6V2ViR3JhcGhp
Y3NDb250ZXh0M0Q7Cit1c2luZyBXZWJLaXQ6OldlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBQYXNzT3duUHRyPFNrQ2FudmFzPiBjcmVh
dGVBY2NlbGVyYXRlZENhbnZhcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwKK3N0YXRpYyBQ
YXNzT3duUHRyPFNrQ2FudmFzPiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhHckNvbnRleHQqIGdy
Q29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJbnRTaXplIGNhbnZhc1NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdGV4dHVyZUlkKQogewotICAgIEdyQ29udGV4
dCogZ3JDb250ZXh0ID0gY29udGV4dC0+Z3JDb250ZXh0KCk7CiAgICAgR3JQbGF0Zm9ybVRleHR1
cmVEZXNjIHRleHR1cmVEZXNjOwogICAgIHRleHR1cmVEZXNjLmZGbGFncyA9IGtSZW5kZXJUYXJn
ZXRfR3JQbGF0Zm9ybVRleHR1cmVGbGFnOwogICAgIHRleHR1cmVEZXNjLmZXaWR0aCA9IGNhbnZh
c1NpemUud2lkdGgoKTsKQEAgLTY2LDEwICs2OSwxMSBAQCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6On5UZXh0dXJlKCkKIAogdm9pZCBGcmFt
ZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0
ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IHNoYXJlZENvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkg
PyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0Rm9ySW1wbFRocmVhZCgpIDogU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OmdldCgpOwotICAgIGlmICghc2hhcmVkQ29udGV4dCkKKyAgICBXZWJH
cmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCA9IENDUHJveHk6Omhhc0ltcGxUaHJlYWQo
KSA/IFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgp
IDogV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRDb250ZXh0KCk7CisgICAg
R3JDb250ZXh0KiBzaGFyZWRHckNvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgPyBX
ZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZEdyQ29udGV4dCgpIDog
V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRHckNvbnRleHQoKTsKKyAgICBp
ZiAoIXNoYXJlZENvbnRleHQgfHwgIXNoYXJlZEdyQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwot
ICAgIHRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZVRleHR1cmVSZWN0KHNoYXJlZENvbnRleHQucmVs
ZWFzZSgpLCByZXNvdXJjZVByb3ZpZGVyLCB0ZXh0dXJlKCksIHNvdXJjZVJlY3QsIGRlc3RSZWN0
KTsKKyAgICB0ZXh0dXJlVXBkYXRlcigpLT51cGRhdGVUZXh0dXJlUmVjdChzaGFyZWRDb250ZXh0
LCBzaGFyZWRHckNvbnRleHQsIHJlc291cmNlUHJvdmlkZXIsIHRleHR1cmUoKSwgc291cmNlUmVj
dCwgZGVzdFJlY3QpOwogfQogCiBQYXNzUmVmUHRyPEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcj4gRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyOjpjcmVhdGUoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4gcGFpbnRl
cikKQEAgLTk3LDE3ICsxMDEsMTUgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVs
Rm9ybWF0IEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXAKICAgICByZXR1
cm4gTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQTsKIH0KIAotdm9p
ZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRl
eHR1cmVSZWN0KFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IHBycENvbnRleHQsIENDUmVz
b3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgQ0NQcmlvcml0aXplZFRleHR1cmUqIHRl
eHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0
KQordm9pZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVw
ZGF0ZVRleHR1cmVSZWN0KFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHckNvbnRleHQq
IGdyQ29udGV4dCwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9y
aXRpemVkVGV4dHVyZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgZGVzdFJlY3QpCiB7Ci0gICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250
ZXh0KHBycENvbnRleHQpOwotCiAgICAgLy8gTWFrZSBzdXJlIGdhbmVzaCB1c2VzIHRoZSBjb3Jy
ZWN0IEdMIGNvbnRleHQuCiAgICAgY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKICAg
ICB0ZXh0dXJlLT5hY3F1aXJlQmFja2luZ1RleHR1cmUocmVzb3VyY2VQcm92aWRlcik7CiAgICAg
Q0NTY29wZWRMb2NrUmVzb3VyY2VGb3JXcml0ZSBsb2NrKHJlc291cmNlUHJvdmlkZXIsIHRleHR1
cmUtPnJlc291cmNlSWQoKSk7CiAgICAgLy8gQ3JlYXRlIGFuIGFjY2VsZXJhdGVkIGNhbnZhcyB0
byBkcmF3IG9uLgotICAgIE93blB0cjxTa0NhbnZhcz4gY2FudmFzID0gY3JlYXRlQWNjZWxlcmF0
ZWRDYW52YXMoY29udGV4dC5nZXQoKSwgdGV4dHVyZS0+c2l6ZSgpLCBsb2NrLnRleHR1cmVJZCgp
KTsKKyAgICBPd25QdHI8U2tDYW52YXM+IGNhbnZhcyA9IGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGdyQ29udGV4dCwgdGV4dHVyZS0+c2l6ZSgpLCBsb2NrLnRleHR1cmVJZCgpKTsKIAogICAgIC8v
IFRoZSBjb21wb3NpdG9yIGV4cGVjdHMgdGhlIHRleHR1cmVzIHRvIGJlIHVwc2lkZS1kb3duIHNv
IGl0IGNhbiBmbGlwCiAgICAgLy8gdGhlIGZpbmFsIGNvbXBvc2l0ZWQgaW1hZ2UuIEdhbmVzaCBy
ZW5kZXJzIHRoZSBpbWFnZSB1cHJpZ2h0IHNvIHdlCkBAIC0xMjMsNyArMTI1LDcgQEAgdm9pZCBG
cmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1
cmVSZWN0KFBhc3NSZWZQdHIKICAgICBkcmF3UGljdHVyZShjYW52YXMuZ2V0KCkpOwogCiAgICAg
Ly8gRmx1c2ggZ2FuZXNoIGNvbnRleHQgc28gdGhhdCBhbGwgdGhlIHJlbmRlcmVkIHN0dWZmIGFw
cGVhcnMgb24gdGhlIHRleHR1cmUuCi0gICAgY29udGV4dC0+Z3JDb250ZXh0KCktPmZsdXNoKCk7
CisgICAgZ3JDb250ZXh0LT5mbHVzaCgpOwogCiAgICAgLy8gRmx1c2ggdGhlIEdMIGNvbnRleHQg
c28gcmVuZGVyaW5nIHJlc3VsdHMgZnJvbSB0aGlzIGNvbnRleHQgYXJlIHZpc2libGUgaW4gdGhl
IGNvbXBvc2l0b3IncyBjb250ZXh0LgogICAgIGNvbnRleHQtPmZsdXNoKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNr
UGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlci5oCmluZGV4IDQ0NjQ5ZTQ3M2M2OWQyNDRjOTFjMDlhNTZhYjcxOWMyMGUxYTRl
YjYuLjY0ZDVlZWMzODE2ZGQ0NDgxODQwYTkwNjhiZGExZjE2ZDkyYjM5YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQ
aWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5oCkBAIC0zMSw2ICszMSwxMyBAQAogCiAjaW5jbHVkZSAiU2tQaWN0dXJl
Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIgogCitjbGFzcyBHckNvbnRleHQ7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CitjbGFzcyBXZWJTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGlz
IGNsYXNzIHJlY29yZHMgdGhlIGNvbnRlbnRSZWN0IGludG8gYW4gU2tQaWN0dXJlLCB0aGVuIHVz
ZXMgYWNjZWxlcmF0ZWQKQEAgLTU2LDcgKzYzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQ
YXNzT3duUHRyPExheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU+IGNyZWF0ZVRleHR1cmUoQ0NQ
cmlvcml0aXplZFRleHR1cmVNYW5hZ2VyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTYW1wbGVk
VGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpIE9W
RVJSSURFOwotICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoUGFzc1JlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4sIENDUmVzb3VyY2VQcm92aWRlciosIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOworICAgIHZv
aWQgdXBkYXRlVGV4dHVyZVJlY3QoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCosIEdyQ29u
dGV4dCosIENDUmVzb3VyY2VQcm92aWRlciosIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOwogCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcihQYXNzT3duUHRyPExheWVyUGFpbnRlckNocm9taXVtPik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcAppbmRleCAzMjMxNDM1ZjJlNmVmM2Q0YWE1NDlmYTllOWUwMTIz
OWE4ZDVlYzk2Li5kNDUwYTY1OGY4Y2M4YTE0Yjc2Nzg0YzY5NDI2ZTFlYzJhZDdiNmEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAKICNp
bmNsdWRlICJHclRleHR1cmUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtQ29sb3IuaCIKLSNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5o
IgogI2luY2x1ZGUgIlNrQml0bWFwLmgiCiAjaW5jbHVkZSAiU2tDb2xvci5oIgogI2luY2x1ZGUg
IlRocm90dGxlZFRleHR1cmVVcGxvYWRlci5oIgpAQCAtNTYsNiArNTUsNyBAQAogI2luY2x1ZGUg
ImNjL0NDU2luZ2xlVGhyZWFkUHJveHkuaCIKICNpbmNsdWRlICJjYy9DQ1ZpZGVvTGF5ZXJJbXBs
LmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CisjaW5jbHVkZSA8
cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlZpZGVvRnJhbWUuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgpAQCAtNjQsNiArNjQsNyBAQAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IHVzaW5nIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q7CiB1c2luZyBXZWJLaXQ6OldlYkdy
YXBoaWNzTWVtb3J5QWxsb2NhdGlvbjsKK3VzaW5nIFdlYktpdDo6V2ViU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0Q7CiB1c2luZyBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01MzUsMTQgKzUzNiwxNiBAQCBzdGF0aWMgaW5saW5lIFNrQml0
bWFwIGFwcGx5RmlsdGVycyhMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIsIGNv
bnN0CiAgICAgaWYgKGZpbHRlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU2tCaXRtYXAo
KTsKIAotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gZmlsdGVyQ29udGV4dCA9IENDUHJv
eHk6Omhhc0ltcGxUaHJlYWQoKSA/IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGb3JJbXBs
VGhyZWFkKCkgOiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCk7Ci0gICAgaWYgKCFmaWx0
ZXJDb250ZXh0KQorICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBmaWx0ZXJDb250ZXh0ID0gQ0NQ
cm94eTo6aGFzSW1wbFRocmVhZCgpID8gV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNvbXBv
c2l0b3JUaHJlYWRDb250ZXh0KCkgOiBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6bWFpblRo
cmVhZENvbnRleHQoKTsKKyAgICBHckNvbnRleHQqIGZpbHRlckdyQ29udGV4dCA9IENDUHJveHk6
Omhhc0ltcGxUaHJlYWQoKSA/IFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9y
VGhyZWFkR3JDb250ZXh0KCkgOiBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6bWFpblRocmVh
ZEdyQ29udGV4dCgpOworCisgICAgaWYgKCFmaWx0ZXJDb250ZXh0IHx8ICFmaWx0ZXJHckNvbnRl
eHQpCiAgICAgICAgIHJldHVybiBTa0JpdG1hcCgpOwogCiAgICAgbGF5ZXJSZW5kZXJlci0+Y29u
dGV4dCgpLT5mbHVzaCgpOwogCiAgICAgQ0NTY29wZWRMb2NrUmVzb3VyY2VGb3JXcml0ZSBsb2Nr
KGxheWVyUmVuZGVyZXItPnJlc291cmNlUHJvdmlkZXIoKSwgc291cmNlVGV4dHVyZS0+aWQoKSk7
Ci0gICAgU2tCaXRtYXAgc291cmNlID0gQ0NSZW5kZXJTdXJmYWNlRmlsdGVyczo6YXBwbHkoZmls
dGVycywgbG9jay50ZXh0dXJlSWQoKSwgc291cmNlVGV4dHVyZS0+c2l6ZSgpLCBmaWx0ZXJDb250
ZXh0LmdldCgpKTsKKyAgICBTa0JpdG1hcCBzb3VyY2UgPSBDQ1JlbmRlclN1cmZhY2VGaWx0ZXJz
OjphcHBseShmaWx0ZXJzLCBsb2NrLnRleHR1cmVJZCgpLCBzb3VyY2VUZXh0dXJlLT5zaXplKCks
IGZpbHRlckNvbnRleHQsIGZpbHRlckdyQ29udGV4dCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NSZW5kZXJTdXJmYWNlRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJzLmNwcAppbmRleCBmMWEy
MWZhYThkMWY0ZWUyODZjN2NlMDc5ODkxM2ViY2UxMzdlM2YwLi4zYzcyZThmOGVhOTFmYmQxNTAz
M2VkZmM0NjYzNDA4OWFiNzE3MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZh
Y2VGaWx0ZXJzLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgImNjL0NDUmVuZGVyU3Vy
ZmFjZUZpbHRlcnMuaCIKIAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiU2tCbHVySW1hZ2VGaWx0ZXIuaCIKICNpbmNsdWRl
ICJTa0NhbnZhcy5oIgogI2luY2x1ZGUgIlNrQ29sb3JNYXRyaXhGaWx0ZXIuaCIKQEAgLTM4LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJTa0dyVGV4dHVyZVBpeGVsUmVmLmgiCiAjaW5jbHVkZSA8cHVi
bGljL1dlYkZpbHRlck9wZXJhdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGaWx0ZXJPcGVy
YXRpb25zLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIHsKQEAgLTMzNSwxNCArMzM1LDEx
IEBAIGJvb2wgYXBwbHlDb2xvck1hdHJpeChGaWx0ZXJCdWZmZXJTdGF0ZSogc3RhdGUsIFNrU2Nh
bGFyIG1hdHJpeFsyMF0pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2tCaXRtYXAgQ0NSZW5k
ZXJTdXJmYWNlRmlsdGVyczo6YXBwbHkoY29uc3QgV2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRpb25z
JiBmaWx0ZXJzLCB1bnNpZ25lZCB0ZXh0dXJlSWQsIGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQzRCkKK1NrQml0bWFwIENDUmVuZGVyU3VyZmFjZUZpbHRl
cnM6OmFwcGx5KGNvbnN0IFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycywgdW5z
aWduZWQgdGV4dHVyZUlkLCBjb25zdCBGbG9hdFNpemUmIHNpemUsIFdlYktpdDo6V2ViR3JhcGhp
Y3NDb250ZXh0M0QqIGNvbnRleHQzRCwgR3JDb250ZXh0KiBnckNvbnRleHQpCiB7Ci0gICAgaWYg
KCFjb250ZXh0M0QpCisgICAgaWYgKCFjb250ZXh0M0QgfHwgIWdyQ29udGV4dCkKICAgICAgICAg
cmV0dXJuIFNrQml0bWFwKCk7CiAKLSAgICBHckNvbnRleHQqIGdyQ29udGV4dCA9IGNvbnRleHQz
RC0+Z3JDb250ZXh0KCk7Ci0gICAgaWYgKCFnckNvbnRleHQpCi0gICAgICAgIHJldHVybiBTa0Jp
dG1hcCgpOwogICAgIEZpbHRlckJ1ZmZlclN0YXRlIHN0YXRlKGdyQ29udGV4dCwgc2l6ZSwgdGV4
dHVyZUlkKTsKICAgICAKICAgICBTa1NjYWxhciBhY2N1bXVsYXRlZENvbG9yTWF0cml4WzIwXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVuZGVyU3VyZmFjZUZpbHRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZUZpbHRlcnMuaAppbmRleCBlMjU4Mjc1N2M0
NDlhM2YxMGNjNDYwYTE1Yjk5NGU4OGJlNzJiOGE0Li4xNDViNzk0NGE3NzU1NjRjYmJlYjNmODUx
ZjZiNmQ1NjkyZjY0ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlRmlsdGVy
cy5oCkBAIC0yOSwxOSArMjksMjEgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIAorY2xhc3MgR3JDb250ZXh0OwogY2xhc3MgU2tCaXRtYXA7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViRmlsdGVyT3BlcmF0aW9uczsKK2NsYXNzIFdlYkdyYXBoaWNzQ29udGV4
dDNEOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9hdFNpemU7Ci1jbGFzcyBH
cmFwaGljc0NvbnRleHQzRDsKIAogY2xhc3MgQ0NSZW5kZXJTdXJmYWNlRmlsdGVycyB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFNrQml0bWFwIGFwcGx5KGNvbnN0IFdlYktpdDo6V2ViRmlsdGVyT3Bl
cmF0aW9ucyYgZmlsdGVycywgdW5zaWduZWQgdGV4dHVyZUlkLCBjb25zdCBGbG9hdFNpemUmLCBH
cmFwaGljc0NvbnRleHQzRCopOworICAgIHN0YXRpYyBTa0JpdG1hcCBhcHBseShjb25zdCBXZWJL
aXQ6OldlYkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMsIHVuc2lnbmVkIHRleHR1cmVJZCwgY29u
c3QgRmxvYXRTaXplJiwgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCosIEdyQ29udGV4dCop
OworCiBwcml2YXRlOgogICAgIENDUmVuZGVyU3VyZmFjZUZpbHRlcnMoKTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGY4NWU2MDJlY2FkMTlmODBiYzVmNzExYTg2ZDBlMDQ3
ZGRjNWMzY2MuLjQ4MjRmZmI5MTFjN2U2NGU1MzMzZjMyYzY4NTdkNjk1NDMwZmI0OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJj
Yy9DQ1RocmVhZFByb3h5LmgiCiAKLSNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5o
IgogI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlICJjYy9DQ0RlbGF5QmFzZWRUaW1l
U291cmNlLmgiCiAjaW5jbHVkZSAiY2MvQ0NEcmF3UXVhZC5oIgpAQCAtMzgsMTEgKzM3LDEzIEBA
CiAjaW5jbHVkZSAiY2MvQ0NTY29wZWRUaHJlYWRQcm94eS5oIgogI2luY2x1ZGUgImNjL0NDVGV4
dHVyZVVwZGF0ZXIuaCIKICNpbmNsdWRlICJjYy9DQ1RocmVhZFRhc2suaCIKKyNpbmNsdWRlIDxw
dWJsaWMvV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwogCit1c2luZyBXZWJLaXQ6OldlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwogbmFtZXNw
YWNlIHsKIAogLy8gTnVtYmVyIG9mIHRleHR1cmVzIHRvIHVwZGF0ZSB3aXRoIGVhY2ggY2FsbCB0
bwpAQCAtMjQxLDcgKzI0Miw3IEBAIGJvb2wgQ0NUaHJlYWRQcm94eTo6cmVjcmVhdGVDb250ZXh0
KCkKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAobV9s
YXllclRyZWVIb3N0LT5uZWVkc1NoYXJlZENvbnRleHQoKSAmJiAhbV9sYXllclRyZWVIb3N0LT5z
ZXR0aW5ncygpLmZvcmNlU29mdHdhcmVDb21wb3NpdGluZykKLSAgICAgICAgaWYgKCFTaGFyZWRH
cmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlRm9ySW1wbFRocmVhZCgpKQorICAgICAgICBpZiAoIVdl
YlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVDb21wb3NpdG9yVGhyZWFkQ29udGV4dCgp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTWFrZSBhIGJsb2NraW5nIGNh
bGwgdG8gcmVjcmVhdGVDb250ZXh0T25JbXBsVGhyZWFkLiBUaGUgcmVzdWx0cyBvZiB0aGF0CkBA
IC00NzMsOCArNDc0LDggQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2xheWVyVHJlZUhvc3QtPm5lZWRzU2hhcmVk
Q29udGV4dCgpICYmICFtX2xheWVyVHJlZUhvc3QtPnNldHRpbmdzKCkuZm9yY2VTb2Z0d2FyZUNv
bXBvc2l0aW5nICYmICFTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6aGF2ZUZvckltcGxUaHJlYWQo
KSkKLSAgICAgICAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUZvckltcGxUaHJlYWQo
KTsKKyAgICBpZiAobV9sYXllclRyZWVIb3N0LT5uZWVkc1NoYXJlZENvbnRleHQoKSAmJiAhbV9s
YXllclRyZWVIb3N0LT5zZXR0aW5ncygpLmZvcmNlU29mdHdhcmVDb21wb3NpdGluZyAmJiAhV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmhhdmVDb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpKQor
ICAgICAgICBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlQ29tcG9zaXRvclRocmVh
ZENvbnRleHQoKTsKIAogICAgIE93blB0cjxCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGU+IHJlcXVl
c3QobV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QucmVsZWFzZSgpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155942</attachid>
            <date>2012-08-01 18:24:50 -0700</date>
            <delta_ts>2012-08-01 18:33:06 -0700</delta_ts>
            <desc>rebased for EWS</desc>
            <filename>bug-92917-20120801182431.patch</filename>
            <type>text/plain</type>
            <size>24590</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0Mzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmYmI1NjI4YjU5MDli
NGE1N2RmYjM4NDJlZjJjMjU3OWVkMjQwMWQ2Li44MWZhMTE3OTEzZjk5NjcxZGYzZjU3MjFjYjRi
ZTdkODRjOWNmYjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMi0wOC0wMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1
bV0gV3JhcCBzaGFyZWQgY29udGV4dCBnZXR0ZXJzIGluIFdlYktpdCBBUEkgYW5kIGF2b2lkIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEIHVzZSBpbiBjb21wb3NpdG9yIGludGVybmFscworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgUGxh
dGZvcm0gQVBJIGZvciBjcmVhdGluZyBhbmQgYWNjZXNzaW5nIHNoYXJlZCBHcmFwaGljc0NvbnRl
eHQzRCBhbmQgR2FuZXNoIGNvbnRleHRzIGZyb20gdGhlIG1haW4gb3IKKyAgICAgICAgY29tcG9z
aXRvciB0aHJlYWRzLiBUaGVzZSBjYW4gYmUgdXNlZCBmb3IgZXZhbHVhdGluZyBmaWx0ZXJzIG9y
IGRvaW5nIGFjY2VsZXJhdGVkIHBhaW50aW5nLiBUaGVzZSBjb250ZXh0cyBhcmUKKyAgICAgICAg
Z2VuZXJhbGx5IGxlYWtlZCB1bnRpbCBsb3N0IG9yIHByb2Nlc3MgZXhpdCwgdGhlIGRldGFpbHMg
YXJlIGRvY3VtZW50ZWQgaW4gV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaAorCisgICAgICAg
ICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorCisyMDEyLTA4LTAxICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIGNvbXBvc2l0
b3IgSFVEIGZvbnQgYXRsYXMgaW5pdGlhbGl6YXRpb24gY29kZSBvdXQgb2YgY29tcG9zaXRvciBj
b3JlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjky
NAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYWU0OWRiZjJhYmVlMWQ0ZWNiY2Q0ODkzNDhiNTkzZjdiZTI2YmRj
Yy4uMDU4MDI1ZjY4NzUzOWE3MDhmODg5NTkwZTA0NTNiNDlhM2UwMDBkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDQxIEBACiAyMDEyLTA4LTAxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJv
bWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBXcmFwIHNoYXJlZCBjb250ZXh0IGdldHRl
cnMgaW4gV2ViS2l0IEFQSSBhbmQgYXZvaWQgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QgdXNl
IGluIGNvbXBvc2l0b3IgaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MjkxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgdXNlcyBQbGF0Zm9ybSBBUEkgd3JhcHBlcnMgdG8gYWNjZXNz
IHRoZSBzaGFyZWQgV2ViR3JhcGhpY3NDb250ZXh0M0QgLyBHYW5lc2ggY29udGV4dHMgZnJvbSB0
aGUgY29tcG9zaXRvcgorICAgICAgICB0byBldmFsdWF0ZSBhY2NlbGVyYXRlZCBmaWx0ZXJzIG9y
IGRvIGFjY2VsZXJhdGVkIHBhaW50aW5nLgorCisgICAgICAgIEZpbHRlcnMgY2hhbmdlcyBjb3Zl
cmVkIGJ5IGNzczMvZmlsdGVycy8qLWh3Lmh0bWwgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1haW5UaHJlYWRHckNv
bnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y29t
cG9zaXRvclRocmVhZENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZEdyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpoYXZlQ29tcG9zaXRvclRocmVhZENvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlQ29t
cG9zaXRvclRocmVhZENvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1
cmU6OnVwZGF0ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVCdWZmZXJTa1BpY3R1cmVD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp1cGRhdGVUZXh0dXJlUmVjdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoRnJhbWVCdWZm
ZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkND
UmVuZGVyU3VyZmFjZUZpbHRlcnM6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJzLmg6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoQ0NSZW5kZXJTdXJmYWNlRmlsdGVycyk6CisKKzIwMTItMDgtMDEgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1dIE1v
dmUgY29tcG9zaXRvciBIVUQgZm9udCBhdGxhcyBpbml0aWFsaXphdGlvbiBjb2RlIG91dCBvZiBj
b21wb3NpdG9yIGNvcmUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyOTI0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBp
IGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggN2NjOTIwZDgxYjFlZDI1MjJi
NDQ5YmNhYTc2ZGFlNjdkZTVkOWY3MS4uZmZkZTA1OTQ4OWFiOTMwYTYxYTk4NWE3OTUxMDFkMDc2
NDc5MThjOCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIv
U291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTExNCw2ICsxMTQsNyBAQAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5LmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTY3JvbGxiYXJUaGVtZVBhaW50ZXIuaCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTaXplLmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTb2NrZXRTdHJlYW1FcnJvci5oJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViU29ja2V0U3RyZWFtSGFuZGxlLmgnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTaGFyZWRHcmFw
aGljc0NvbnRleHQzRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0OGU2ZWQzYTc1NjNjZTdhZmZhYjQ1ODk3MGUw
NDIyMDQ0YzVmMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgKQEAgLTAsMCArMSw2NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0RfaAorI2RlZmluZSBXZWJTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKworY2xhc3Mg
R3JDb250ZXh0OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViR3JhcGhpY3NDb250
ZXh0M0Q7CisKK2NsYXNzIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIHsKK3B1YmxpYzoKKyAg
ICAvLyBSZXR1cm5zIGEgY29udGV4dCB1c2FibGUgZnJvbSB0aGUgbWFpbiB0aHJlYWQuIElmIHRo
ZSBjb250ZXh0IGlzIGxvc3Qgb3IgaGFzIG5ldmVyIGJlZW4gY3JlYXRlZCwgdGhpcyB3aWxsIGF0
dGVtcHQgdG8gY3JlYXRlIGEgbmV3IGNvbnRleHQuCisgICAgLy8gVGhlIHJldHVybmVkIHBvaW50
ZXIgaXMgb25seSB2YWxpZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvIG1haW5UaHJlYWRDb250ZXh0
KCkuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViR3JhcGhpY3NDb250ZXh0M0QqIG1haW5U
aHJlYWRDb250ZXh0KCk7CisKKyAgICAvLyBSZXR1cm5zIGEgZ2FuZXNoIGNvbnRleHQgYXNzb2Np
YXRlZCB3aXRoIHRoZSBtYWluIHRocmVhZCBzaGFyZWQgY29udGV4dC4gVGhlIGdhbmVzaCBjb250
ZXh0IGhhcyB0aGUgc2FtZSBsaWZldGltZSBhcyB0aGUgbWFpbiB0aHJlYWQgc2hhcmVkCisgICAg
Ly8gV2ViR3JhcGhpY3NDb250ZXh0M0QuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgR3JDb250
ZXh0KiBtYWluVGhyZWFkR3JDb250ZXh0KCk7CisKKyAgICAvLyBBdHRlbXB0cyB0byBjcmVhdGUg
YSBjb250ZXh0IHVzYWJsZSBmcm9tIHRoZSBjb21wb3NpdG9yIHRocmVhZC4gTXVzdCBiZSBjYWxs
ZWQgZnJvbSB0aGUgbWFpbiAoV2ViS2l0KSB0aHJlYWQuIFJldHVybnMgZmFsc2UKKyAgICAvLyBp
ZiBhIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0
aWMgYm9vbCBjcmVhdGVDb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpOworCisgICAgLy8gQ2FuIGJl
IGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBo
YXZlQ29tcG9zaXRvclRocmVhZENvbnRleHQoKTsKKworICAgIC8vIFJldHVybnMgYSBjb250ZXh0
IHVzYWJsZSBmcm9tIHRoZSBjb21wb3NpdG9yIHRocmVhZCwgaWYgdGhlcmUgaXMgb25lLiBUaGUg
Y29udGV4dCBtdXN0IGJlIHVzZWQgb25seSBmcm9tIHRoZSBjb21wb3NpdG9yIHRocmVhZC4KKyAg
ICAvLyBUaGUgcmV0dXJuZWQgY29udGV4dCBpcyB2YWxpZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRv
IGNyZWF0ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0KCkuCisgICAgLy8gSWYgdGhpcyBjb250ZXh0
IGJlY29tZXMgbG9zdCBvciB1bnVzYWJsZSwgdGhlIGNhbGxlciBzaG91bGQgY2FsbCBjcmVhdGVD
b21wb3NpdG9yVGhyZWFkQ29udGV4dCgpIG9uIHRoZSBtYWluIHRocmVhZCBhbmQKKyAgICAvLyB0
aGVuIHVzZSB0aGUgbmV3bHkgY3JlYXRlZCBjb250ZXh0IGZyb20gdGhlIGNvbXBvc2l0b3IgdGhy
ZWFkLgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb21w
b3NpdG9yVGhyZWFkQ29udGV4dCgpOworCisgICAgLy8gUmV0dXJucyBhIGdhbmVzaCBjb250ZXh0
IGFzc29jaWF0ZWQgd2l0aCB0aGUgY29tcG9zaXRvciB0aHJlYWQgc2hhcmVkIGNvbnRleHQuIFRo
ZSBnYW5lc2ggY29udGV4dCBoYXMgdGhlIHNhbWUgbGlmZXRpbWUgYXMgdGhlIGNvbXBvc2l0b3Ig
dGhyZWFkCisgICAgLy8gc2hhcmVkIFdlYkdyYXBoaWNzQ29udGV4dDNELgorICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIEdyQ29udGV4dCogY29tcG9zaXRvclRocmVhZEdyQ29udGV4dCgpOworfTsK
KworfQorCisjZW5kaWYgLy8gV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0RfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IGQwY2ZhMTE3ZTAyMzc1NjVkZGZlN2JiOTNmMzNlNTk1NjQzNTZjNDguLmQ5MTMy
YmVmMGYyODI3NmZlMDgxMGRhMzM1YThiNzEyZDQzMjk1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTgyMjcsNiArODIyNyw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJNZWRpYVN0cmVhbVNvdXJjZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3VyY2VzUmVxdWVzdC5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVGhyZWFk
U2FmZURhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9XZWJUcmFuc2Zvcm1PcGVyYXRpb25zLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyZDA1NGRlMGVkNTljOTU3
MGI2ZWFmMGZkOGZmNDc3ODI5ZjY3NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNw
cApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSA8cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmg+CisKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5oIgorCit1c2luZyBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU7Cit1c2luZyBX
ZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1dlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6bWFpblRo
cmVhZENvbnRleHQoKQoreworICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4
dHJhY3RXZWJHcmFwaGljc0NvbnRleHQzRChTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCku
Z2V0KCkpOworfQorCitHckNvbnRleHQqIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjptYWlu
VGhyZWFkR3JDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OmdldCgpID8gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpLT5nckNvbnRleHQoKSA6IDA7
Cit9CisKKworV2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
Ojpjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdyYXBoaWNzQ29udGV4dDNEKFNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRGb3JJbXBsVGhyZWFkKCkuZ2V0KCkpOworfQorCitHckNvbnRleHQqIFdlYlNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9yVGhyZWFkR3JDb250ZXh0KCkKK3sKKyAg
ICByZXR1cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldEZvckltcGxUaHJlYWQoKSA/IFNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGb3JJbXBsVGhyZWFkKCktPmdyQ29udGV4dCgpIDog
MDsKK30KKworYm9vbCBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6aGF2ZUNvbXBvc2l0b3JU
aHJlYWRDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Omhh
dmVGb3JJbXBsVGhyZWFkKCk7Cit9CisKK2Jvb2wgV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OmNyZWF0ZUNvbXBvc2l0b3JUaHJlYWRDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUZvckltcGxUaHJlYWQoKTsKK30KKworfQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZl
clNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcAppbmRleCA0MzZmMzQ2ZDRiMTFhNWQ1OGU5ZDk4ODg4NGFjOGZl
MjIwY2IyMTEzLi45Y2QxZTc1MGNjZjI4Yzc1NTcxZDgxYmM5Yzc2YjRhYzI1ODBkOTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1
ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTMxLDE4ICszMSwyMSBAQAogI2luY2x1ZGUg
IkZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIgogCiAjaW5j
bHVkZSAiTGF5ZXJQYWludGVyQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRC5oIgogI2luY2x1ZGUgIlNrQ2FudmFzLmgiCiAjaW5jbHVkZSAiU2tHcHVEZXZpY2Uu
aCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCisjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNz
Q29udGV4dDNELmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
Lmg+CisKK3VzaW5nIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q7Cit1c2luZyBXZWJLaXQ6
OldlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBQYXNzT3duUHRyPFNrQ2FudmFzPiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCwKK3N0YXRpYyBQYXNzT3duUHRyPFNrQ2FudmFzPiBjcmVhdGVB
Y2NlbGVyYXRlZENhbnZhcyhHckNvbnRleHQqIGdyQ29udGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRTaXplIGNhbnZhc1NpemUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgdGV4dHVyZUlkKQogewotICAgIEdyQ29udGV4dCogZ3JDb250ZXh0ID0gY29udGV4dC0+Z3JD
b250ZXh0KCk7CiAgICAgR3JQbGF0Zm9ybVRleHR1cmVEZXNjIHRleHR1cmVEZXNjOwogICAgIHRl
eHR1cmVEZXNjLmZGbGFncyA9IGtSZW5kZXJUYXJnZXRfR3JQbGF0Zm9ybVRleHR1cmVGbGFnOwog
ICAgIHRleHR1cmVEZXNjLmZXaWR0aCA9IGNhbnZhc1NpemUud2lkdGgoKTsKQEAgLTY2LDEwICs2
OSwxMSBAQCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRl
eHR1cmU6On5UZXh0dXJlKCkKIAogdm9pZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiBy
ZXNvdXJjZVByb3ZpZGVyLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0
JiBkZXN0UmVjdCkKIHsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IHNoYXJlZENvbnRl
eHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgPyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Rm9ySW1wbFRocmVhZCgpIDogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpOwotICAg
IGlmICghc2hhcmVkQ29udGV4dCkKKyAgICBXZWJHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29u
dGV4dCA9IENDUHJveHk6Omhhc0ltcGxUaHJlYWQoKSA/IFdlYlNoYXJlZEdyYXBoaWNzQ29udGV4
dDNEOjpjb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpIDogV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6Om1haW5UaHJlYWRDb250ZXh0KCk7CisgICAgR3JDb250ZXh0KiBzaGFyZWRHckNvbnRleHQg
PSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgPyBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6
Y29tcG9zaXRvclRocmVhZEdyQ29udGV4dCgpIDogV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
Om1haW5UaHJlYWRHckNvbnRleHQoKTsKKyAgICBpZiAoIXNoYXJlZENvbnRleHQgfHwgIXNoYXJl
ZEdyQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwotICAgIHRleHR1cmVVcGRhdGVyKCktPnVwZGF0
ZVRleHR1cmVSZWN0KHNoYXJlZENvbnRleHQucmVsZWFzZSgpLCByZXNvdXJjZVByb3ZpZGVyLCB0
ZXh0dXJlKCksIHNvdXJjZVJlY3QsIGRlc3RSZWN0KTsKKyAgICB0ZXh0dXJlVXBkYXRlcigpLT51
cGRhdGVUZXh0dXJlUmVjdChzaGFyZWRDb250ZXh0LCBzaGFyZWRHckNvbnRleHQsIHJlc291cmNl
UHJvdmlkZXIsIHRleHR1cmUoKSwgc291cmNlUmVjdCwgZGVzdFJlY3QpOwogfQogCiBQYXNzUmVm
UHRyPEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcj4gRnJhbWVC
dWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUoUGFzc093blB0
cjxMYXllclBhaW50ZXJDaHJvbWl1bT4gcGFpbnRlcikKQEAgLTk3LDE3ICsxMDEsMTUgQEAgTGF5
ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0IEZyYW1lQnVmZmVyU2tQaWN0dXJl
Q2FudmFzTGF5ZXJUZXh0dXJlVXAKICAgICByZXR1cm4gTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2Ft
cGxlZFRleGVsRm9ybWF0UkdCQTsKIH0KIAotdm9pZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+IHBycENvbnRleHQsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92
aWRlciwgQ0NQcmlvcml0aXplZFRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJj
ZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQordm9pZCBGcmFtZUJ1ZmZlclNrUGljdHVy
ZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KFdlYkdyYXBoaWNz
Q29udGV4dDNEKiBjb250ZXh0LCBHckNvbnRleHQqIGdyQ29udGV4dCwgQ0NSZXNvdXJjZVByb3Zp
ZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9yaXRpemVkVGV4dHVyZSogdGV4dHVyZSwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCiB7Ci0gICAg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KHBycENvbnRleHQpOwotCiAgICAgLy8g
TWFrZSBzdXJlIGdhbmVzaCB1c2VzIHRoZSBjb3JyZWN0IEdMIGNvbnRleHQuCiAgICAgY29udGV4
dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKICAgICB0ZXh0dXJlLT5hY3F1aXJlQmFja2luZ1Rl
eHR1cmUocmVzb3VyY2VQcm92aWRlcik7CiAgICAgQ0NTY29wZWRMb2NrUmVzb3VyY2VGb3JXcml0
ZSBsb2NrKHJlc291cmNlUHJvdmlkZXIsIHRleHR1cmUtPnJlc291cmNlSWQoKSk7CiAgICAgLy8g
Q3JlYXRlIGFuIGFjY2VsZXJhdGVkIGNhbnZhcyB0byBkcmF3IG9uLgotICAgIE93blB0cjxTa0Nh
bnZhcz4gY2FudmFzID0gY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29udGV4dC5nZXQoKSwgdGV4
dHVyZS0+c2l6ZSgpLCBsb2NrLnRleHR1cmVJZCgpKTsKKyAgICBPd25QdHI8U2tDYW52YXM+IGNh
bnZhcyA9IGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGdyQ29udGV4dCwgdGV4dHVyZS0+c2l6ZSgp
LCBsb2NrLnRleHR1cmVJZCgpKTsKIAogICAgIC8vIFRoZSBjb21wb3NpdG9yIGV4cGVjdHMgdGhl
IHRleHR1cmVzIHRvIGJlIHVwc2lkZS1kb3duIHNvIGl0IGNhbiBmbGlwCiAgICAgLy8gdGhlIGZp
bmFsIGNvbXBvc2l0ZWQgaW1hZ2UuIEdhbmVzaCByZW5kZXJzIHRoZSBpbWFnZSB1cHJpZ2h0IHNv
IHdlCkBAIC0xMjMsNyArMTI1LDcgQEAgdm9pZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KFBhc3NSZWZQdHIKICAgICBkcmF3
UGljdHVyZShjYW52YXMuZ2V0KCkpOwogCiAgICAgLy8gRmx1c2ggZ2FuZXNoIGNvbnRleHQgc28g
dGhhdCBhbGwgdGhlIHJlbmRlcmVkIHN0dWZmIGFwcGVhcnMgb24gdGhlIHRleHR1cmUuCi0gICAg
Y29udGV4dC0+Z3JDb250ZXh0KCktPmZsdXNoKCk7CisgICAgZ3JDb250ZXh0LT5mbHVzaCgpOwog
CiAgICAgLy8gRmx1c2ggdGhlIEdMIGNvbnRleHQgc28gcmVuZGVyaW5nIHJlc3VsdHMgZnJvbSB0
aGlzIGNvbnRleHQgYXJlIHZpc2libGUgaW4gdGhlIGNvbXBvc2l0b3IncyBjb250ZXh0LgogICAg
IGNvbnRleHQtPmZsdXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1l
QnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCmluZGV4IDQ0NjQ5ZTQ3
M2M2OWQyNDRjOTFjMDlhNTZhYjcxOWMyMGUxYTRlYjYuLjY0ZDVlZWMzODE2ZGQ0NDgxODQwYTkw
NjhiZGExZjE2ZDkyYjM5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Zy
YW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC0zMSw2ICsz
MSwxMyBAQAogCiAjaW5jbHVkZSAiU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5o
IgogCitjbGFzcyBHckNvbnRleHQ7CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR3Jh
cGhpY3NDb250ZXh0M0Q7CitjbGFzcyBXZWJTaGFyZWRHcmFwaGljc0NvbnRleHQzRDsKK30KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGlzIGNsYXNzIHJlY29yZHMgdGhlIGNvbnRlbnRS
ZWN0IGludG8gYW4gU2tQaWN0dXJlLCB0aGVuIHVzZXMgYWNjZWxlcmF0ZWQKQEAgLTU2LDcgKzYz
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPExheWVyVGV4dHVyZVVwZGF0
ZXI6OlRleHR1cmU+IGNyZWF0ZVRleHR1cmUoQ0NQcmlvcml0aXplZFRleHR1cmVNYW5hZ2VyKikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9y
bWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpIE9WRVJSSURFOwotICAgIHZvaWQgdXBkYXRlVGV4
dHVyZVJlY3QoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIENDUmVzb3VyY2VQcm92aWRl
ciosIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29u
c3QgSW50UmVjdCYgZGVzdFJlY3QpOworICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoV2ViS2l0
OjpXZWJHcmFwaGljc0NvbnRleHQzRCosIEdyQ29udGV4dCosIENDUmVzb3VyY2VQcm92aWRlcios
IENDUHJpb3JpdGl6ZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgZGVzdFJlY3QpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEZyYW1lQnVmZmVy
U2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcihQYXNzT3duUHRyPExheWVyUGFpbnRl
ckNocm9taXVtPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAppbmRleCA4
ZjkxZDJmZmE4ZjljM2EwNjUxZDAzNDYzYTEyZjQ2NGIzZDBjYjQwLi44ODYxMGEwYjA1MmViZWEy
YTUxZGMzMmIwMDNmYTg5ZGZiZThjMDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJHclRleHR1cmUuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29sb3IuaCIKLSNpbmNs
dWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlNrQml0bWFwLmgiCiAj
aW5jbHVkZSAiU2tDb2xvci5oIgogI2luY2x1ZGUgIlRocm90dGxlZFRleHR1cmVVcGxvYWRlci5o
IgpAQCAtNTYsNiArNTUsNyBAQAogI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJveHkuaCIK
ICNpbmNsdWRlICJjYy9DQ1ZpZGVvTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkdy
YXBoaWNzQ29udGV4dDNELmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlZpZGVvRnJhbWUuaD4KICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtNjQsNiAr
NjQsNyBAQAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIFdlYktpdDo6V2ViR3JhcGhpY3ND
b250ZXh0M0Q7CiB1c2luZyBXZWJLaXQ6OldlYkdyYXBoaWNzTWVtb3J5QWxsb2NhdGlvbjsKK3Vz
aW5nIFdlYktpdDo6V2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q7CiB1c2luZyBXZWJLaXQ6Oldl
YlRyYW5zZm9ybWF0aW9uTWF0cml4OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MjksMTQg
KzUzMCwxNiBAQCBzdGF0aWMgaW5saW5lIFNrQml0bWFwIGFwcGx5RmlsdGVycyhMYXllclJlbmRl
cmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIsIGNvbnN0CiAgICAgaWYgKGZpbHRlcnMuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gU2tCaXRtYXAoKTsKIAotICAgIFJlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gZmlsdGVyQ29udGV4dCA9IENDUHJveHk6Omhhc0ltcGxUaHJlYWQoKSA/IFNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRGb3JJbXBsVGhyZWFkKCkgOiBTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0KCk7Ci0gICAgaWYgKCFmaWx0ZXJDb250ZXh0KQorICAgIFdlYkdyYXBoaWNz
Q29udGV4dDNEKiBmaWx0ZXJDb250ZXh0ID0gQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpID8gV2Vi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNvbXBvc2l0b3JUaHJlYWRDb250ZXh0KCkgOiBXZWJT
aGFyZWRHcmFwaGljc0NvbnRleHQzRDo6bWFpblRocmVhZENvbnRleHQoKTsKKyAgICBHckNvbnRl
eHQqIGZpbHRlckdyQ29udGV4dCA9IENDUHJveHk6Omhhc0ltcGxUaHJlYWQoKSA/IFdlYlNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNEOjpjb21wb3NpdG9yVGhyZWFkR3JDb250ZXh0KCkgOiBXZWJTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRDo6bWFpblRocmVhZEdyQ29udGV4dCgpOworCisgICAgaWYgKCFm
aWx0ZXJDb250ZXh0IHx8ICFmaWx0ZXJHckNvbnRleHQpCiAgICAgICAgIHJldHVybiBTa0JpdG1h
cCgpOwogCiAgICAgbGF5ZXJSZW5kZXJlci0+Y29udGV4dCgpLT5mbHVzaCgpOwogCiAgICAgQ0NT
Y29wZWRMb2NrUmVzb3VyY2VGb3JXcml0ZSBsb2NrKGxheWVyUmVuZGVyZXItPnJlc291cmNlUHJv
dmlkZXIoKSwgc291cmNlVGV4dHVyZS0+aWQoKSk7Ci0gICAgU2tCaXRtYXAgc291cmNlID0gQ0NS
ZW5kZXJTdXJmYWNlRmlsdGVyczo6YXBwbHkoZmlsdGVycywgbG9jay50ZXh0dXJlSWQoKSwgc291
cmNlVGV4dHVyZS0+c2l6ZSgpLCBmaWx0ZXJDb250ZXh0LmdldCgpKTsKKyAgICBTa0JpdG1hcCBz
b3VyY2UgPSBDQ1JlbmRlclN1cmZhY2VGaWx0ZXJzOjphcHBseShmaWx0ZXJzLCBsb2NrLnRleHR1
cmVJZCgpLCBzb3VyY2VUZXh0dXJlLT5zaXplKCksIGZpbHRlckNvbnRleHQsIGZpbHRlckdyQ29u
dGV4dCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlRmlsdGVycy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRl
clN1cmZhY2VGaWx0ZXJzLmNwcAppbmRleCA0ZTg1NDlkMDFjN2NhM2UwZDdjZTVmNDIyZTgwZWQz
ZGVlNTRjNGEzLi5hMDJmZDVmOGYwZDg0NTg4ZjljNjNkYWY5YTZmMjRlODM3YWMyYjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jl
bmRlclN1cmZhY2VGaWx0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJzLmNwcApAQCAtMzAsNyArMzAs
NiBAQAogI2luY2x1ZGUgImNjL0NDUmVuZGVyU3VyZmFjZUZpbHRlcnMuaCIKIAogI2luY2x1ZGUg
IkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAi
U2tCbHVySW1hZ2VGaWx0ZXIuaCIKICNpbmNsdWRlICJTa0NhbnZhcy5oIgogI2luY2x1ZGUgIlNr
Q29sb3JNYXRyaXhGaWx0ZXIuaCIKQEAgLTM4LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTa0dyVGV4
dHVyZVBpeGVsUmVmLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oPgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJGaWx0ZXJPcGVyYXRpb25zLmg+CisjaW5jbHVkZSA8cHVibGlj
L1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAog
bmFtZXNwYWNlIHsKQEAgLTM4NSwxNCArMzg1LDExIEBAIFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0
aW9ucyBDQ1JlbmRlclN1cmZhY2VGaWx0ZXJzOjpvcHRpbWl6ZShjb25zdCBXZWJLaXQ6OldlYkZp
CiAgICAgcmV0dXJuIG5ld0xpc3Q7CiB9CiAKLVNrQml0bWFwIENDUmVuZGVyU3VyZmFjZUZpbHRl
cnM6OmFwcGx5KGNvbnN0IFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycywgdW5z
aWduZWQgdGV4dHVyZUlkLCBjb25zdCBGbG9hdFNpemUmIHNpemUsIEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0M0QpCitTa0JpdG1hcCBDQ1JlbmRlclN1cmZhY2VGaWx0ZXJzOjphcHBseShjb25z
dCBXZWJLaXQ6OldlYkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMsIHVuc2lnbmVkIHRleHR1cmVJ
ZCwgY29uc3QgRmxvYXRTaXplJiBzaXplLCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0M0QsIEdyQ29udGV4dCogZ3JDb250ZXh0KQogewotICAgIGlmICghY29udGV4dDNEKQor
ICAgIGlmICghY29udGV4dDNEIHx8ICFnckNvbnRleHQpCiAgICAgICAgIHJldHVybiBTa0JpdG1h
cCgpOwogCi0gICAgR3JDb250ZXh0KiBnckNvbnRleHQgPSBjb250ZXh0M0QtPmdyQ29udGV4dCgp
OwotICAgIGlmICghZ3JDb250ZXh0KQotICAgICAgICByZXR1cm4gU2tCaXRtYXAoKTsKICAgICBX
ZWJLaXQ6OldlYkZpbHRlck9wZXJhdGlvbnMgb3B0aW1pemVkRmlsdGVycyA9IG9wdGltaXplKGZp
bHRlcnMpOwogICAgIEZpbHRlckJ1ZmZlclN0YXRlIHN0YXRlKGdyQ29udGV4dCwgc2l6ZSwgdGV4
dHVyZUlkKTsKICAgICBpZiAoIXN0YXRlLmluaXQob3B0aW1pemVkRmlsdGVycy5zaXplKCkpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZW5kZXJTdXJmYWNlRmlsdGVycy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlRmlsdGVycy5oCmluZGV4IGZiNGQ3OGY2ZTA0
MDYwNTZmMDU5NzdlYmQyMWZkNTA0MjQ0YzExNDIuLjRhZTk3YTIwMWU5MTUzY2ZjMTA1MjExZTg3
MDJiOTQwYTVkZTczY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZUZpbHRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2VGaWx0ZXJz
LmgKQEAgLTI5LDIwICsyOSwyMiBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogCitjbGFzcyBHckNvbnRleHQ7CiBjbGFzcyBTa0JpdG1hcDsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiBjbGFzcyBXZWJGaWx0ZXJPcGVyYXRpb25zOworY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0
M0Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0U2l6ZTsKLWNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEOwogCiBjbGFzcyBDQ1JlbmRlclN1cmZhY2VGaWx0ZXJzIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgU2tCaXRtYXAgYXBwbHkoY29uc3QgV2ViS2l0OjpXZWJGaWx0ZXJPcGVy
YXRpb25zJiBmaWx0ZXJzLCB1bnNpZ25lZCB0ZXh0dXJlSWQsIGNvbnN0IEZsb2F0U2l6ZSYsIEdy
YXBoaWNzQ29udGV4dDNEKik7CisgICAgc3RhdGljIFNrQml0bWFwIGFwcGx5KGNvbnN0IFdlYktp
dDo6V2ViRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycywgdW5zaWduZWQgdGV4dHVyZUlkLCBjb25z
dCBGbG9hdFNpemUmLCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiwgR3JDb250ZXh0Kik7
CiAgICAgc3RhdGljIFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9ucyBvcHRpbWl6ZShjb25zdCBX
ZWJLaXQ6OldlYkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpOworCiBwcml2YXRlOgogICAgIEND
UmVuZGVyU3VyZmFjZUZpbHRlcnMoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmlu
ZGV4IGY4NWU2MDJlY2FkMTlmODBiYzVmNzExYTg2ZDBlMDQ3ZGRjNWMzY2MuLjQ4MjRmZmI5MTFj
N2U2NGU1MzMzZjMyYzY4NTdkNjk1NDMwZmI0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHku
Y3BwCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJjYy9DQ1RocmVhZFByb3h5LmgiCiAK
LSNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlRyYWNlRXZl
bnQuaCIKICNpbmNsdWRlICJjYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgiCiAjaW5jbHVkZSAi
Y2MvQ0NEcmF3UXVhZC5oIgpAQCAtMzgsMTEgKzM3LDEzIEBACiAjaW5jbHVkZSAiY2MvQ0NTY29w
ZWRUaHJlYWRQcm94eS5oIgogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKICNpbmNs
dWRlICJjYy9DQ1RocmVhZFRhc2suaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCit1c2luZyBXZWJLaXQ6
OldlYlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwogbmFtZXNwYWNlIHsKIAogLy8gTnVtYmVyIG9m
IHRleHR1cmVzIHRvIHVwZGF0ZSB3aXRoIGVhY2ggY2FsbCB0bwpAQCAtMjQxLDcgKzI0Miw3IEBA
IGJvb2wgQ0NUaHJlYWRQcm94eTo6cmVjcmVhdGVDb250ZXh0KCkKICAgICBpZiAoIWNvbnRleHQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAobV9sYXllclRyZWVIb3N0LT5uZWVkc1No
YXJlZENvbnRleHQoKSAmJiAhbV9sYXllclRyZWVIb3N0LT5zZXR0aW5ncygpLmZvcmNlU29mdHdh
cmVDb21wb3NpdGluZykKLSAgICAgICAgaWYgKCFTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3Jl
YXRlRm9ySW1wbFRocmVhZCgpKQorICAgICAgICBpZiAoIVdlYlNoYXJlZEdyYXBoaWNzQ29udGV4
dDNEOjpjcmVhdGVDb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgLy8gTWFrZSBhIGJsb2NraW5nIGNhbGwgdG8gcmVjcmVhdGVDb250ZXh0
T25JbXBsVGhyZWFkLiBUaGUgcmVzdWx0cyBvZiB0aGF0CkBAIC00NzMsOCArNDc0LDggQEAgdm9p
ZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmIChtX2xheWVyVHJlZUhvc3QtPm5lZWRzU2hhcmVkQ29udGV4dCgpICYmICFtX2xheWVy
VHJlZUhvc3QtPnNldHRpbmdzKCkuZm9yY2VTb2Z0d2FyZUNvbXBvc2l0aW5nICYmICFTaGFyZWRH
cmFwaGljc0NvbnRleHQzRDo6aGF2ZUZvckltcGxUaHJlYWQoKSkKLSAgICAgICAgU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUZvckltcGxUaHJlYWQoKTsKKyAgICBpZiAobV9sYXllclRy
ZWVIb3N0LT5uZWVkc1NoYXJlZENvbnRleHQoKSAmJiAhbV9sYXllclRyZWVIb3N0LT5zZXR0aW5n
cygpLmZvcmNlU29mdHdhcmVDb21wb3NpdGluZyAmJiAhV2ViU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmhhdmVDb21wb3NpdG9yVGhyZWFkQ29udGV4dCgpKQorICAgICAgICBXZWJTaGFyZWRHcmFw
aGljc0NvbnRleHQzRDo6Y3JlYXRlQ29tcG9zaXRvclRocmVhZENvbnRleHQoKTsKIAogICAgIE93
blB0cjxCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGU+IHJlcXVlc3QobV9wZW5kaW5nQmVnaW5GcmFt
ZVJlcXVlc3QucmVsZWFzZSgpKTsKIAo=
</data>
<flag name="review"
          id="165518"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>