<?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>77905</bug_id>
          
          <creation_ts>2012-02-06 15:07:43 -0800</creation_ts>
          <short_desc>Change baselinePosition and lineHeight to LayoutUnit</short_desc>
          <delta_ts>2012-02-06 20:26:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>60318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>550328</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-06 15:07:43 -0800</bug_when>
    <thetext>Change baselinePosition and lineHeight to return LayoutUnit instead of int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550369</commentid>
    <comment_count>1</comment_count>
      <attachid>125720</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-06 15:49:26 -0800</bug_when>
    <thetext>Created attachment 125720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550486</commentid>
    <comment_count>2</comment_count>
      <attachid>125720</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-06 17:53:20 -0800</bug_when>
    <thetext>Comment on attachment 125720
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Change the virtual baselinePosition and lineHeight methods to use
&gt; +        LayoutUnits in preparation for the switch over to subpixel layout.

It would be better to explain why these functions should be using these types in the Changelog.  You don&apos;t have to detail each one, but a setence like:

RenderTheme deals only with rendering objects, which will be positioned by LayoutUnit coordinates.

or something like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550497</commentid>
    <comment_count>3</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-06 18:05:16 -0800</bug_when>
    <thetext>&gt; It would be better to explain why these functions should be using these types in the Changelog.  

Good point, I&apos;ll update the description to be more descriptive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550503</commentid>
    <comment_count>4</comment_count>
      <attachid>125745</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-06 18:18:19 -0800</bug_when>
    <thetext>Created attachment 125745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550535</commentid>
    <comment_count>5</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-06 19:01:24 -0800</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550574</commentid>
    <comment_count>6</comment_count>
      <attachid>125745</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 20:26:34 -0800</bug_when>
    <thetext>Comment on attachment 125745
Patch

Clearing flags on attachment: 125745

Committed r106900: &lt;http://trac.webkit.org/changeset/106900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550575</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 20:26:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125720</attachid>
            <date>2012-02-06 15:49:26 -0800</date>
            <delta_ts>2012-02-06 18:18:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>baseline.patch</filename>
            <type>text/plain</type>
            <size>19940</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjg2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEyLTAyLTA2ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgYmFzZWxpbmVQb3Np
dGlvbiBhbmQgbGluZUhlaWdodCB0byBMYXlvdXRVbml0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgdmlydHVhbCBiYXNlbGluZVBvc2l0
aW9uIGFuZCBsaW5lSGVpZ2h0IG1ldGhvZHMgdG8gdXNlCisgICAgICAgIExheW91dFVuaXRzIGlu
IHByZXBhcmF0aW9uIGZvciB0aGUgc3dpdGNoIG92ZXIgdG8gc3VicGl4ZWwgbGF5b3V0LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVt
ZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YmFzZWxpbmVQb3Np
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAg
IChSZW5kZXJUaGVtZUVmbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpiYXNlbGluZVBvc2l0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKFJl
bmRlclRoZW1lR3RrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmJhc2VsaW5lUG9zaXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaDoKKyAgICAgICAgKFJlbmRlclRoZW1l
UXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaDoKKyAgICAgICAgKFJlbmRlckxpc3RNYXJrZXIpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmg6CisgICAgICAgIChSZW5kZXJTbGlkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
b290SW5saW5lQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpiYXNlbGlu
ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmxpbmVIZWlnaHQp
OgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRnJhY3Rpb246OmJhc2VsaW5lUG9zaXRpb24p
OgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uaDoKKyAg
ICAgICAgKFJlbmRlck1hdGhNTEZyYWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhN
TE9wZXJhdG9yOjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTE9wZXJhdG9yLmg6CisgICAgICAgIChSZW5kZXJNYXRoTUxPcGVyYXRvcik6
CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm93OjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5oOgorICAgICAgICAoUmVuZGVyTWF0
aE1MUm93KToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFN1YlN1cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxTdWJTdXA6OmJhc2VsaW5lUG9zaXRp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3VwLmg6Cisg
ICAgICAgIChSZW5kZXJNYXRoTUxTdWJTdXApOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhN
TFVuZGVyT3Zlcjo6YmFzZWxpbmVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaDoKKyAgICAgICAgKFJlbmRlck1hdGhNTFVuZGVyT3Zl
cik6CisKIDIwMTItMDItMDYgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICB6dm11bCBpbmNvcnJlY3RseSBtdWx0aXBsaWVzIGNvbXBsZXggYXJyYXlzIG9uIFdp
bmRvd3MuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVt
ZUVmbC5jcHAJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9SZW5kZXJUaGVtZUVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMiw3ICs4MjIsNyBAQCBi
b29sIFJlbmRlclRoZW1lRWZsOjpjb250cm9sU3VwcG9ydHNUaW50CiAgICAgcmV0dXJuIGlzRW5h
YmxlZChvYmplY3QpOwogfQogCi1pbnQgUmVuZGVyVGhlbWVFZmw6OmJhc2VsaW5lUG9zaXRpb24o
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclRoZW1l
RWZsOjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KSBjb25zdAog
ewogICAgIGlmICghb2JqZWN0LT5pc0JveCgpKQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oCShyZXZpc2lvbiAx
MDY4NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAko
d29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgLy8gQSBtZXRob2Qg
dG8gb2J0YWluIHRoZSBiYXNlbGluZSBwb3NpdGlvbiBmb3IgYSAibGVhZiIgY29udHJvbC4gVGhp
cyB3aWxsIG9ubHkgYmUgdXNlZCBpZiBhIGJhc2VsaW5lCiAgICAgLy8gcG9zaXRpb24gY2Fubm90
IGJlIGRldGVybWluZWQgYnkgZXhhbWluaW5nIGNoaWxkIGNvbnRlbnQuIENoZWNrYm94ZXMgYW5k
IHJhZGlvIGJ1dHRvbnMgYXJlIGV4YW1wbGVzIG9mCiAgICAgLy8gY29udHJvbHMgdGhhdCBuZWVk
IHRvIGRvIHRoaXMuCi0gICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5k
ZXJPYmplY3QqKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bihjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsgfQogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1faW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAkocmV2aXNpb24gMTA2ODU1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTYxLDcgKzE2MSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OmNvbnRyb2xTdXBwb3J0
c1RpbnQKICAgICByZXR1cm4gaXNFbmFibGVkKG8pOwogfQogCi1pbnQgUmVuZGVyVGhlbWVHdGs6
OmJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvKSBjb25zdAorTGF5b3V0VW5p
dCBSZW5kZXJUaGVtZUd0azo6YmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG8p
IGNvbnN0CiB7CiAgICAgaWYgKCFvLT5pc0JveCgpKQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCShyZXZpc2lv
biAxMDY4NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsu
aAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gQSBtZXRo
b2QgdG8gb2J0YWluIHRoZSBiYXNlbGluZSBwb3NpdGlvbiBmb3IgYSAibGVhZiIgY29udHJvbC4g
IFRoaXMgd2lsbCBvbmx5IGJlIHVzZWQgaWYgYSBiYXNlbGluZQogICAgIC8vIHBvc2l0aW9uIGNh
bm5vdCBiZSBkZXRlcm1pbmVkIGJ5IGV4YW1pbmluZyBjaGlsZCBjb250ZW50LiBDaGVja2JveGVz
IGFuZCByYWRpbyBidXR0b25zIGFyZSBleGFtcGxlcyBvZgogICAgIC8vIGNvbnRyb2xzIHRoYXQg
bmVlZCB0byBkbyB0aGlzLgotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oY29uc3Qg
UmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAKICAgICAvLyBUaGUgcGxhdGZvcm0g
c2VsZWN0aW9uIGNvbG9yLgogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiAxMDY4NTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2
LDcgKzE1Niw3IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6c3VwcG9ydHNGb2N1c1JpbmcoY28KICAg
ICB9CiB9CiAKLWludCBSZW5kZXJUaGVtZVF0OjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJlbmRl
ck9iamVjdCogbykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyVGhlbWVRdDo6YmFzZWxpbmVQb3Np
dGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG8pIGNvbnN0CiB7CiAgICAgaWYgKCFvLT5pc0JveCgp
KQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Jl
bmRlclRoZW1lUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmgJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5bGUq
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVuZGVy
U3R5bGUqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oY29uc3Qg
UmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAKICAgICAvLyBBIG1ldGhvZCBhc2tp
bmcgaWYgdGhlIGNvbnRyb2wgY2hhbmdlcyBpdHMgdGludCB3aGVuIHRoZSB3aW5kb3cgaGFzIGZv
Y3VzIG9yIG5vdC4KICAgICB2aXJ0dWFsIGJvb2wgY29udHJvbFN1cHBvcnRzVGludHMoY29uc3Qg
UmVuZGVyT2JqZWN0KikgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RNYXJrZXIuY3BwCShyZXZpc2lvbiAxMDY4NTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzQs
MTQgKzE1MzQsMTQgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVNYXJnaW5zKCkKICAg
ICBzdHlsZSgpLT5zZXRNYXJnaW5FbmQoTGVuZ3RoKG1hcmdpbkVuZCwgRml4ZWQpKTsKIH0KIAot
aW50IFJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJl
Y3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBj
b25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBv
c2l0aW9uTW9kZSkgY29uc3QKIHsKICAgICBpZiAoIWlzSW1hZ2UoKSkKICAgICAgICAgcmV0dXJu
IG1fbGlzdEl0ZW0tPmxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIFBvc2l0aW9uT2ZJ
bnRlcmlvckxpbmVCb3hlcyk7CiAgICAgcmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJz
dExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7CiB9CiAKLWludCBSZW5kZXJMaXN0
TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUsIGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUg
bGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6YmFz
ZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlLCBib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlv
bk1vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0ltYWdlKCkpCiAgICAgICAgIHJldHVybiBtX2xp
c3RJdGVtLT5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSwgZmlyc3RMaW5lLCBkaXJlY3Rp
b24sIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDggKzU4LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgSW5saW5lQm94KiBjcmVhdGVJ
bmxpbmVCb3goKTsKIAotICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdDsKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNl
bGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2Rl
ID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVu
aXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OworICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdDsKIAogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNU
ZXh0KCkgY29uc3QgeyByZXR1cm4gIWlzSW1hZ2UoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3
ICs1OSw3IEBAIFJlbmRlclNsaWRlcjo6flJlbmRlclNsaWRlcigpCiB7CiB9CiAKLWludCBSZW5k
ZXJTbGlkZXI6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIC8qZmlyc3RMaW5l
Ki8sIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5p
dCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIC8qZmly
c3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBQYXRjaCB0aGlzIGZ1bmN0aW9uIGZvciB3cml0aW5nLW1vZGUuCiAgICAg
cmV0dXJuIGhlaWdodCgpICsgbWFyZ2luVG9wKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNsaWRlci5oCShyZXZpc2lvbiAxMDY4NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU2xpZGVyIjsgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNTbGlkZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVhbCBp
bnQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRC
YXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25N
b2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAkocmV2aXNpb24gMTA2ODU1KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMTAx
LDggKzEwMSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNIeXBoZW5hdGVkKCkgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZVR5
cGUpIGNvbnN0IHsgcmV0dXJuIGJveE1vZGVsT2JqZWN0KCktPmJhc2VsaW5lUG9zaXRpb24oYmFz
ZWxpbmVUeXBlLCBtX2ZpcnN0TGluZSwgaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6
IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsgfQotICAgIHZpcnR1
YWwgaW50IGxpbmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBib3hNb2RlbE9iamVjdCgpLT5saW5l
SGVpZ2h0KG1fZmlyc3RMaW5lLCBpc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVy
dGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOyB9CisgICAgdmlydHVhbCBM
YXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSkgY29u
c3QgeyByZXR1cm4gYm94TW9kZWxPYmplY3QoKS0+YmFzZWxpbmVQb3NpdGlvbihiYXNlbGluZVR5
cGUsIG1fZmlyc3RMaW5lLCBpc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGlj
YWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOyB9CisgICAgdmlydHVhbCBMYXlv
dXRVbml0IGxpbmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBib3hNb2RlbE9iamVjdCgpLT5saW5l
SGVpZ2h0KG1fZmlyc3RMaW5lLCBpc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVy
dGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOyB9CiAKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgdm9pZCBhZGRIaWdobGlnaHRPdmVyZmxvdygpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlv
bi5jcHAJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1
LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6cGFpbnQoUGFpbnRJbgogICAgIGluZm8u
Y29udGV4dC0+ZHJhd0xpbmUoYWRqdXN0ZWRQYWludE9mZnNldCwgSW50UG9pbnQoYWRqdXN0ZWRQ
YWludE9mZnNldC54KCkgKyBvZmZzZXRXaWR0aCgpLCBhZGp1c3RlZFBhaW50T2Zmc2V0LnkoKSkp
OwogfQogCi1pbnQgUmVuZGVyTWF0aE1MRnJhY3Rpb246OmJhc2VsaW5lUG9zaXRpb24oRm9udEJh
c2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgbGluZURpcmVjdGlvbiwg
TGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5k
ZXJNYXRoTUxGcmFjdGlvbjo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBsaW5lRGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2Rl
IGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CiB7CiAgICAgaWYgKGZpcnN0Q2hpbGQoKSAmJiBmaXJz
dENoaWxkKCktPmlzUmVuZGVyTWF0aE1MQmxvY2soKSkgewogICAgICAgICBSZW5kZXJNYXRoTUxC
bG9jayogbnVtZXJhdG9yID0gdG9SZW5kZXJNYXRoTUxCbG9jayhmaXJzdENoaWxkKCkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MRnJhY3Rpb24uaAkocmV2aXNpb24gMTA2ODU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3
ICszOCw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJNYXRoTUxGcmFjdGlvbihFbGVtZW50KiBmcmFj
dGlvbik7CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGlu
ZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsgCisgICAgdmlydHVhbCBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVj
dGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNv
bnN0OyAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKTsKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9w
ZXJhdG9yLmNwcAkocmV2aXNpb24gMTA2ODU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw3
ICszMzQsNyBAQCBSZW5kZXJCbG9jayogUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmNyZWF0CiAgICAg
cmV0dXJuIGNvbnRhaW5lcjsKIH0KIAotaW50IFJlbmRlck1hdGhNTE9wZXJhdG9yOjpiYXNlbGlu
ZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
IGxpbmVEaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QK
K0xheW91dFVuaXQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJh
c2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgbGluZURpcmVjdGlvbiwg
TGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAogewogICAgIGlmIChtX2lz
U3RhY2tlZCkKICAgICAgICAgcmV0dXJuIG1fc3RyZXRjaEhlaWdodCAqIDIgLyAzIC0gKG1fc3Ry
ZXRjaEhlaWdodCAtIHN0YXRpY19jYXN0PGludD4obV9zdHJldGNoSGVpZ2h0IC8gZ09wZXJhdG9y
RXhwYW5zaW9uKSkgLyAyOyAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmgJKHJldmlzaW9uIDEwNjg1NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHN0cmV0Y2hUb0hlaWdodChpbnQgcGl4ZWxIZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVGcm9tRWxlbWVudCgpOyAKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVu
ZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGludCBiYXNlbGlu
ZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
LCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkgY29uc3Q7CiAgICAgICAgIAogcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBsYXlvdXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUm93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHAJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MUm93OjpsYXlvdXQoKSAK
ICAgICAKIH0gICAgCiAKLWludCBSZW5kZXJNYXRoTUxSb3c6OmJhc2VsaW5lUG9zaXRpb24oRm9u
dEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBM
aW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRl
ck1hdGhNTFJvdzo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5l
LCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0
aW9uTW9kZSkgY29uc3QKIHsKICAgICBpZiAoZmlyc3RDaGlsZCgpICYmIGZpcnN0Q2hpbGQoKS0+
aXNSZW5kZXJNYXRoTUxCbG9jaygpKSB7CiAgICAgICAgIFJlbmRlck1hdGhNTEJsb2NrKiBibG9j
ayA9IHRvUmVuZGVyTWF0aE1MQmxvY2soZmlyc3RDaGlsZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaAkocmV2aXNpb24g
MTA2ODU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxS
b3cuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVy
TWF0aE1MUm93KE5vZGUqIGNvbnRhaW5lcik7CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTWF0
aE1MUm93KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgaW50IG5vbk9wZXJh
dG9ySGVpZ2h0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250
QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Q7ICAgIAorICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdDsgICAgCiAgICAgdmlydHVhbCB2b2lkIHN0cmV0Y2hUb0hlaWdodChpbnQp
IHt9CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTdWJTdXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3Vw
LmNwcAkocmV2aXNpb24gMTA2ODU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxTdWJTdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsMTMgKzE4MSwx
MyBAQCB2b2lkIFJlbmRlck1hdGhNTFN1YlN1cDo6bGF5b3V0KCkgCiAgICAgfSAgICAKIH0KIAot
aW50IFJlbmRlck1hdGhNTFN1YlN1cDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1v
ZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTWF0aE1MU3ViU3Vw
OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJl
Y3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBj
b25zdAogewogICAgIFJlbmRlck9iamVjdCogYmFzZSA9IGZpcnN0Q2hpbGQoKTsKICAgICBpZiAo
IWJhc2UpIAogICAgICAgICByZXR1cm4gb2Zmc2V0SGVpZ2h0KCk7CiAgICAgCi0gICAgaW50IGJh
c2VsaW5lID0gb2Zmc2V0SGVpZ2h0KCk7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZSA9IG9mZnNl
dEhlaWdodCgpOwogICAgIGlmICghYmFzZSB8fCAhYmFzZS0+aXNCb3hNb2RlbE9iamVjdCgpKSAK
ICAgICAgICAgcmV0dXJuIGJhc2VsaW5lOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFN1YlN1cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3VwLmgJKHJldmlzaW9uIDEwNjg1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3Vw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBoYXNCYXNlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgaW50IG5v
bk9wZXJhdG9ySGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0cmV0Y2hUb0hlaWdo
dChpbnQgcGl4ZWxIZWlnaHQpOwotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9u
dEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTFVuZGVyT3Zlci5jcHAJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjQ0LDEzICsyNDQsMTMgQEAgdm9pZCBSZW5kZXJNYXRoTUxVbmRlck92ZXI6OmxheW91
dCgpIAogICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsKIH0KIAotaW50IFJlbmRlck1hdGhNTFVu
ZGVyT3Zlcjo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9u
TW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTWF0aE1MVW5kZXJPdmVyOjpiYXNlbGluZVBv
c2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRp
cmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAogewogICAg
IFJlbmRlck9iamVjdCogY3VycmVudCA9IGZpcnN0Q2hpbGQoKTsKICAgICBpZiAoIWN1cnJlbnQg
fHwgbGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpCiAgICAg
ICAgIHJldHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihBbHBoYWJldGljQmFzZWxp
bmUsIGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKIAotICAgIGludCBi
YXNlbGluZSA9IDA7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZSA9IDA7CiAgICAgc3dpdGNoICht
X2tpbmQpIHsKICAgICBjYXNlIFVuZGVyT3ZlcjoKICAgICBjYXNlIE92ZXI6CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5k
ZXJPdmVyLmgJKHJldmlzaW9uIDEwNjg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIGJv
b2wgaGFzQmFzZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGludCBub25P
cGVyYXRvckhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24o
Rm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OyAgICAKKyAgICB2aXJ0
dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250
YWluaW5nTGluZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0cmV0Y2hUb0hlaWdodChpbnQg
cGl4ZWxIZWlnaHQpOwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyTWF0aE1MVW5kZXJPdmVyIjsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125745</attachid>
            <date>2012-02-06 18:18:19 -0800</date>
            <delta_ts>2012-02-06 20:26:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77905-20120206181817.patch</filename>
            <type>text/plain</type>
            <size>20033</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBACisyMDEyLTAyLTA2ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgYmFzZWxpbmVQb3Np
dGlvbiBhbmQgbGluZUhlaWdodCB0byBMYXlvdXRVbml0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgdmlydHVhbCBiYXNlbGluZVBvc2l0
aW9uIGFuZCBsaW5lSGVpZ2h0IG1ldGhvZHMgdG8gcmV0dXJuCisgICAgICAgIExheW91dFVuaXRz
IGFzIHRoZXkgYXJlIGJvdGggY29tcHV0ZWQgZnJvbSB0aGUgaGVpZ2h0IGFuZCB0b3AvYm90dG9t
CisgICAgICAgIG1hcmdpbnMgKG9yIHdpZHRoIGFuZCBsZWZ0L3JpZ2h0IG1hcmdpbnMgZm9yIHZl
cnRpY2FsIHRleHQpLCBhbGwgb2YKKyAgICAgICAgd2hpY2ggYXJlIExheW91dFVuaXRzLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVt
ZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YmFzZWxpbmVQb3Np
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAg
IChSZW5kZXJUaGVtZUVmbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpiYXNlbGluZVBvc2l0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKFJl
bmRlclRoZW1lR3RrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmJhc2VsaW5lUG9zaXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaDoKKyAgICAgICAgKFJlbmRlclRoZW1l
UXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaDoKKyAgICAgICAgKFJlbmRlckxpc3RNYXJrZXIpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmg6CisgICAgICAgIChSZW5kZXJTbGlkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
b290SW5saW5lQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpiYXNlbGlu
ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmxpbmVIZWlnaHQp
OgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRnJhY3Rpb246OmJhc2VsaW5lUG9zaXRpb24p
OgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uaDoKKyAg
ICAgICAgKFJlbmRlck1hdGhNTEZyYWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhN
TE9wZXJhdG9yOjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTE9wZXJhdG9yLmg6CisgICAgICAgIChSZW5kZXJNYXRoTUxPcGVyYXRvcik6
CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm93OjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5oOgorICAgICAgICAoUmVuZGVyTWF0
aE1MUm93KToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFN1YlN1cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxTdWJTdXA6OmJhc2VsaW5lUG9zaXRp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3VwLmg6Cisg
ICAgICAgIChSZW5kZXJNYXRoTUxTdWJTdXApOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhN
TFVuZGVyT3Zlcjo6YmFzZWxpbmVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaDoKKyAgICAgICAgKFJlbmRlck1hdGhNTFVuZGVyT3Zl
cik6CisKIDIwMTItMDItMDYgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDY4ODMuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAJKHJldmlzaW9uIDEw
Njg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgyMiw3ICs4MjIsNyBAQCBib29sIFJlbmRlclRoZW1lRWZsOjpj
b250cm9sU3VwcG9ydHNUaW50CiAgICAgcmV0dXJuIGlzRW5hYmxlZChvYmplY3QpOwogfQogCi1p
bnQgUmVuZGVyVGhlbWVFZmw6OmJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclRoZW1lRWZsOjpiYXNlbGluZVBvc2l0aW9u
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KSBjb25zdAogewogICAgIGlmICghb2JqZWN0LT5p
c0JveCgpKQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9SZW5kZXJUaGVtZUVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oCShyZXZpc2lvbiAxMDY4ODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAkod29ya2luZyBjb3B5KQpAQCAtOTEs
NyArOTEsNyBAQCBwdWJsaWM6CiAgICAgLy8gQSBtZXRob2QgdG8gb2J0YWluIHRoZSBiYXNlbGlu
ZSBwb3NpdGlvbiBmb3IgYSAibGVhZiIgY29udHJvbC4gVGhpcyB3aWxsIG9ubHkgYmUgdXNlZCBp
ZiBhIGJhc2VsaW5lCiAgICAgLy8gcG9zaXRpb24gY2Fubm90IGJlIGRldGVybWluZWQgYnkgZXhh
bWluaW5nIGNoaWxkIGNvbnRlbnQuIENoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgYXJlIGV4
YW1wbGVzIG9mCiAgICAgLy8gY29udHJvbHMgdGhhdCBuZWVkIHRvIGRvIHRoaXMuCi0gICAgdmly
dHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmplY3Qq
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcjsgfQogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1faW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3I7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmNwcAkocmV2aXNpb24gMTA2ODg5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1JlbmRlclRoZW1lR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBA
IGJvb2wgUmVuZGVyVGhlbWVHdGs6OmNvbnRyb2xTdXBwb3J0c1RpbnQKICAgICByZXR1cm4gaXNF
bmFibGVkKG8pOwogfQogCi1pbnQgUmVuZGVyVGhlbWVHdGs6OmJhc2VsaW5lUG9zaXRpb24oY29u
c3QgUmVuZGVyT2JqZWN0KiBvKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJUaGVtZUd0azo6YmFz
ZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG8pIGNvbnN0CiB7CiAgICAgaWYgKCFv
LT5pc0JveCgpKQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCShyZXZpc2lvbiAxMDY4ODkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAkod29ya2luZyBjb3B5KQpAQCAt
NjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gQSBtZXRob2QgdG8gb2J0YWluIHRoZSBiYXNl
bGluZSBwb3NpdGlvbiBmb3IgYSAibGVhZiIgY29udHJvbC4gIFRoaXMgd2lsbCBvbmx5IGJlIHVz
ZWQgaWYgYSBiYXNlbGluZQogICAgIC8vIHBvc2l0aW9uIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ5
IGV4YW1pbmluZyBjaGlsZCBjb250ZW50LiBDaGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zIGFy
ZSBleGFtcGxlcyBvZgogICAgIC8vIGNvbnRyb2xzIHRoYXQgbmVlZCB0byBkbyB0aGlzLgotICAg
IHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7
CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2Jq
ZWN0KikgY29uc3Q7CiAKICAgICAvLyBUaGUgcGxhdGZvcm0gc2VsZWN0aW9uIGNvbG9yLgogICAg
IHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
Y3BwCShyZXZpc2lvbiAxMDY4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5k
ZXJUaGVtZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw3IEBAIGJvb2wgUmVu
ZGVyVGhlbWVRdDo6c3VwcG9ydHNGb2N1c1JpbmcoY28KICAgICB9CiB9CiAKLWludCBSZW5kZXJU
aGVtZVF0OjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCogbykgY29uc3QKK0xh
eW91dFVuaXQgUmVuZGVyVGhlbWVRdDo6YmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmpl
Y3QqIG8pIGNvbnN0CiB7CiAgICAgaWYgKCFvLT5pc0JveCgpKQogICAgICAgICByZXR1cm4gMDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgJKHJldmlz
aW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
aAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKIAotICAg
IHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7
CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2Jq
ZWN0KikgY29uc3Q7CiAKICAgICAvLyBBIG1ldGhvZCBhc2tpbmcgaWYgdGhlIGNvbnRyb2wgY2hh
bmdlcyBpdHMgdGludCB3aGVuIHRoZSB3aW5kb3cgaGFzIGZvY3VzIG9yIG5vdC4KICAgICB2aXJ0
dWFsIGJvb2wgY29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
CShyZXZpc2lvbiAxMDY4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dE1hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzQsMTQgKzE1MzQsMTQgQEAgdm9pZCBS
ZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVNYXJnaW5zKCkKICAgICBzdHlsZSgpLT5zZXRNYXJnaW5F
bmQoTGVuZ3RoKG1hcmdpbkVuZCwgRml4ZWQpKTsKIH0KIAotaW50IFJlbmRlckxpc3RNYXJrZXI6
OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwg
TGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5k
ZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKIHsK
ICAgICBpZiAoIWlzSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0tPmxpbmVIZWln
aHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CiAg
ICAgcmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGlu
ZVBvc2l0aW9uTW9kZSk7CiB9CiAKLWludCBSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0
aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29u
c3QKK0xheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFz
ZWxpbmUgYmFzZWxpbmVUeXBlLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGly
ZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CiB7CiAgICAg
aWYgKCFpc0ltYWdlKCkpCiAgICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5iYXNlbGluZVBvc2l0
aW9uKGJhc2VsaW5lVHlwZSwgZmlyc3RMaW5lLCBkaXJlY3Rpb24sIFBvc2l0aW9uT2ZJbnRlcmlv
ckxpbmVCb3hlcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmgJKHJldmlzaW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDggQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgSW5saW5lQm94KiBjcmVhdGVJbmxpbmVCb3goKTsKIAotICAgIHZp
cnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKLSAgICB2
aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9u
Q29udGFpbmluZ0xpbmUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBv
c2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKIAogICAg
IGJvb2wgaXNJbWFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNUZXh0KCkgY29uc3QgeyByZXR1cm4g
IWlzSW1hZ2UoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAJKHJldmlzaW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIFJlbmRlclNsaWRl
cjo6flJlbmRlclNsaWRlcigpCiB7CiB9CiAKLWludCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9z
aXRpb24oRm9udEJhc2VsaW5lLCBib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2Rl
LCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJTbGlkZXI6OmJhc2Vs
aW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rp
b25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBQYXRjaCB0
aGlzIGZ1bmN0aW9uIGZvciB3cml0aW5nLW1vZGUuCiAgICAgcmV0dXJuIGhlaWdodCgpICsgbWFy
Z2luVG9wKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCShy
ZXZpc2lvbiAxMDY4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAi
UmVuZGVyU2xpZGVyIjsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihG
b250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Q7CisgICAgICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNlZFN0eWxl
UmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBsYXlvdXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5s
aW5lQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxp
bmVCb3guaAkocmV2aXNpb24gMTA2ODg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jv
b3RJbmxpbmVCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDggKzEwMSw4IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaXNIeXBoZW5hdGVkKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGludCBiYXNl
bGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUpIGNvbnN0IHsgcmV0dXJuIGJv
eE1vZGVsT2JqZWN0KCktPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVUeXBlLCBtX2ZpcnN0TGlu
ZSwgaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRp
b25PZkludGVyaW9yTGluZUJveGVzKTsgfQotICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoKSBj
b25zdCB7IHJldHVybiBib3hNb2RlbE9iamVjdCgpLT5saW5lSGVpZ2h0KG1fZmlyc3RMaW5lLCBp
c0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9m
SW50ZXJpb3JMaW5lQm94ZXMpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSkgY29uc3QgeyByZXR1cm4gYm94TW9kZWxP
YmplY3QoKS0+YmFzZWxpbmVQb3NpdGlvbihiYXNlbGluZVR5cGUsIG1fZmlyc3RMaW5lLCBpc0hv
cml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50
ZXJpb3JMaW5lQm94ZXMpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoKSBj
b25zdCB7IHJldHVybiBib3hNb2RlbE9iamVjdCgpLT5saW5lSGVpZ2h0KG1fZmlyc3RMaW5lLCBp
c0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9m
SW50ZXJpb3JMaW5lQm94ZXMpOyB9CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBhZGRI
aWdobGlnaHRPdmVyZmxvdygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAJKHJldmlzaW9uIDEwNjg4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBSZW5kZXJNYXRo
TUxGcmFjdGlvbjo6cGFpbnQoUGFpbnRJbgogICAgIGluZm8uY29udGV4dC0+ZHJhd0xpbmUoYWRq
dXN0ZWRQYWludE9mZnNldCwgSW50UG9pbnQoYWRqdXN0ZWRQYWludE9mZnNldC54KCkgKyBvZmZz
ZXRXaWR0aCgpLCBhZGp1c3RlZFBhaW50T2Zmc2V0LnkoKSkpOwogfQogCi1pbnQgUmVuZGVyTWF0
aE1MRnJhY3Rpb246OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUgbGluZURpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5l
UG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6YmFz
ZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSBsaW5lRGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNv
bnN0CiB7CiAgICAgaWYgKGZpcnN0Q2hpbGQoKSAmJiBmaXJzdENoaWxkKCktPmlzUmVuZGVyTWF0
aE1MQmxvY2soKSkgewogICAgICAgICBSZW5kZXJNYXRoTUxCbG9jayogbnVtZXJhdG9yID0gdG9S
ZW5kZXJNYXRoTUxCbG9jayhmaXJzdENoaWxkKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uaAkocmV2aXNp
b24gMTA2ODg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxGcmFjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICBSZW5kZXJNYXRoTUxGcmFjdGlvbihFbGVtZW50KiBmcmFjdGlvbik7CiAgICAgdmlydHVhbCB2
b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hp
bGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICB2aXJ0
dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSBjb25zdDsgCisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oRm9u
dEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OyAKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAkocmV2aXNpb24g
MTA2ODg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxP
cGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw3ICszMzQsNyBAQCBSZW5kZXJCbG9j
ayogUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmNyZWF0CiAgICAgcmV0dXJuIGNvbnRhaW5lcjsKIH0K
IAotaW50IFJlbmRlck1hdGhNTE9wZXJhdG9yOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGlu
ZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24sIExpbmVQ
b3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTWF0
aE1MT3BlcmF0b3I6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUgbGluZURpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5l
UG9zaXRpb25Nb2RlKSBjb25zdAogewogICAgIGlmIChtX2lzU3RhY2tlZCkKICAgICAgICAgcmV0
dXJuIG1fc3RyZXRjaEhlaWdodCAqIDIgLyAzIC0gKG1fc3RyZXRjaEhlaWdodCAtIHN0YXRpY19j
YXN0PGludD4obV9zdHJldGNoSGVpZ2h0IC8gZ09wZXJhdG9yRXhwYW5zaW9uKSkgLyAyOyAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE9wZXJhdG9yLmgJKHJldmlzaW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0cmV0Y2hUb0hlaWdodChp
bnQgcGl4ZWxIZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOyAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5
bGUqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGlu
ZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29u
c3Q7CiAgICAgICAgIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TFJvdy5jcHAJKHJldmlzaW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3
IEBAIHZvaWQgUmVuZGVyTWF0aE1MUm93OjpsYXlvdXQoKSAKICAgICAKIH0gICAgCiAKLWludCBS
ZW5kZXJNYXRoTUxSb3c6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0
TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQ
b3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlck1hdGhNTFJvdzo6YmFzZWxpbmVQ
b3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBk
aXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKIHsKICAg
ICBpZiAoZmlyc3RDaGlsZCgpICYmIGZpcnN0Q2hpbGQoKS0+aXNSZW5kZXJNYXRoTUxCbG9jaygp
KSB7CiAgICAgICAgIFJlbmRlck1hdGhNTEJsb2NrKiBibG9jayA9IHRvUmVuZGVyTWF0aE1MQmxv
Y2soZmlyc3RDaGlsZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUm93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaAkocmV2aXNpb24gMTA2ODg5KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyTWF0aE1MUm93KE5vZGUqIGNvbnRh
aW5lcik7CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTWF0aE1MUm93KCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgaW50IG5vbk9wZXJhdG9ySGVpZ2h0KCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250
YWluaW5nTGluZSkgY29uc3Q7ICAgIAorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBv
c2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsgICAgCiAg
ICAgdmlydHVhbCB2b2lkIHN0cmV0Y2hUb0hlaWdodChpbnQpIHt9CiBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxTdWJTdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3VwLmNwcAkocmV2aXNpb24gMTA2ODg5
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTdWJTdXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsMTMgKzE4MSwxMyBAQCB2b2lkIFJlbmRlck1hdGhN
TFN1YlN1cDo6bGF5b3V0KCkgCiAgICAgfSAgICAKIH0KIAotaW50IFJlbmRlck1hdGhNTFN1YlN1
cDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyTWF0aE1MU3ViU3VwOjpiYXNlbGluZVBvc2l0aW9uKEZv
bnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwg
TGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAogewogICAgIFJlbmRlck9i
amVjdCogYmFzZSA9IGZpcnN0Q2hpbGQoKTsKICAgICBpZiAoIWJhc2UpIAogICAgICAgICByZXR1
cm4gb2Zmc2V0SGVpZ2h0KCk7CiAgICAgCi0gICAgaW50IGJhc2VsaW5lID0gb2Zmc2V0SGVpZ2h0
KCk7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZSA9IG9mZnNldEhlaWdodCgpOwogICAgIGlmICgh
YmFzZSB8fCAhYmFzZS0+aXNCb3hNb2RlbE9iamVjdCgpKSAKICAgICAgICAgcmV0dXJuIGJhc2Vs
aW5lOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TFN1YlN1cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MU3ViU3VwLmgJKHJldmlzaW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3VwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNCYXNlKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgaW50IG5vbk9wZXJhdG9ySGVpZ2h0KCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0cmV0Y2hUb0hlaWdodChpbnQgcGl4ZWxIZWlnaHQpOwot
ICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0
TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29u
dGFpbmluZ0xpbmUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0
aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKIAogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5jcHAJ
KHJldmlzaW9uIDEwNjg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MVW5kZXJPdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDEzICsyNDQsMTMg
QEAgdm9pZCBSZW5kZXJNYXRoTUxVbmRlck92ZXI6OmxheW91dCgpIAogICAgIFJlbmRlckJsb2Nr
OjpsYXlvdXQoKTsKIH0KIAotaW50IFJlbmRlck1hdGhNTFVuZGVyT3Zlcjo6YmFzZWxpbmVQb3Np
dGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJl
Y3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVu
aXQgUmVuZGVyTWF0aE1MVW5kZXJPdmVyOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwg
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9u
TW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAogewogICAgIFJlbmRlck9iamVjdCogY3VycmVu
dCA9IGZpcnN0Q2hpbGQoKTsKICAgICBpZiAoIWN1cnJlbnQgfHwgbGluZVBvc2l0aW9uTW9kZSA9
PSBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpCiAgICAgICAgIHJldHVybiBSZW5kZXJCbG9j
azo6YmFzZWxpbmVQb3NpdGlvbihBbHBoYWJldGljQmFzZWxpbmUsIGZpcnN0TGluZSwgZGlyZWN0
aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKIAotICAgIGludCBiYXNlbGluZSA9IDA7CisgICAgTGF5
b3V0VW5pdCBiYXNlbGluZSA9IDA7CiAgICAgc3dpdGNoIChtX2tpbmQpIHsKICAgICBjYXNlIFVu
ZGVyT3ZlcjoKICAgICBjYXNlIE92ZXI6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmgJKHJldmlzaW9uIDEw
Njg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5k
ZXJPdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQmFzZSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGludCBub25PcGVyYXRvckhlaWdodCgpIGNvbnN0
OwotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9u
Q29udGFpbmluZ0xpbmUpIGNvbnN0OyAgICAKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxp
bmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHN0cmV0Y2hUb0hlaWdodChpbnQgcGl4ZWxIZWlnaHQpOwogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAi
UmVuZGVyTWF0aE1MVW5kZXJPdmVyIjsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>