<?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>134843</bug_id>
          
          <creation_ts>2014-07-11 14:04:04 -0700</creation_ts>
          <short_desc>Implement textStylingAtPosition in WK2</short_desc>
          <delta_ts>2014-07-11 16:24:53 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>benjamin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1021896</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-11 14:04:04 -0700</bug_when>
    <thetext>Provide the same support we have in WebKit on iOS.

&lt;rdar://problem/17614981&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021899</commentid>
    <comment_count>1</comment_count>
      <attachid>234779</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-11 14:09:17 -0700</bug_when>
    <thetext>Created attachment 234779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021923</commentid>
    <comment_count>2</comment_count>
      <attachid>234787</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-11 15:57:19 -0700</bug_when>
    <thetext>Created attachment 234787
Patch2

Fixes the OS X build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021926</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-11 16:01:41 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=234779&amp;action=review

I don&apos;t know much about this code but the patch looks reasonable.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:1198
&gt; +    RetainPtr&lt;CTFontDescriptorRef&gt; fontDescriptor = adoptCF(CTFontDescriptorCreateWithNameAndSize(CFSTR(&quot;Helvetica&quot;), 10));

This could be defined closer to where it is used.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:1205
&gt; +        fontDescriptor = adoptCF(CTFontDescriptorCreateCopyWithSymbolicTraits(fontDescriptor.get(), symbolicTraits, symbolicTraits));

Is there no way to create the font descriptor directly with the traits? It is a little ugly to create a font then copy it.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:1207
&gt; +    RetainPtr&lt;CTFontRef&gt; font = CTFontCreateWithFontDescriptor(fontDescriptor.get(), 10, nullptr);

Shouldn&apos;t this use adoptCF?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:752
&gt; +        if (style) {

WebKit style: if (RenderStyle* ...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021933</commentid>
    <comment_count>4</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-11 16:24:53 -0700</bug_when>
    <thetext>Committed revision 171015.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234779</attachid>
            <date>2014-07-11 14:09:17 -0700</date>
            <delta_ts>2014-07-11 15:57:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>textStylesWK2.txt</filename>
            <type>text/plain</type>
            <size>11117</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MTAxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE0LTA3LTExICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRleHRTdHls
aW5nQXRQb3NpdGlvbiBpbiBXSzIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzQ4NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3NjE0OTgxPgor
ICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkaW5nIHNvbWUgZXhwb3J0cyBhbmQgbWFraW5nIHN0eWxlRm9yU2VsZWN0aW9uU3RhcnQgcHVi
bGljLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuaDoKKwogMjAxNC0wNy0xMSAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBJbXBsZW1lbnQganVzdGlmeS1zZWxm
IGNzcyBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDE3MDk4MCkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkx
LDYgKzEwOTEsNyBAQCBfX1pON1dlYkNvcmU0Tm9kZTE3aXNDb250ZW50RWRpdGFibGVFTlMwCiBf
X1pON1dlYkNvcmU0Tm9kZTE3c3RvcElnbm9yaW5nTGVha3NFdgogX19aTjdXZWJDb3JlNE5vZGUx
OHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBfX1pON1dlYkNvcmU0Tm9kZTE5c2V0TmVlZHNTdHlsZVJl
Y2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlwZUUKK19fWk43V2ViQ29yZTROb2RlNnJlbW92ZUVSaQog
X19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRTdHJpbmdFUktOM1dURjZTdHJpbmdFaAogX19aTjdXZWJD
b3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRz
RDFFdgpAQCAtMTIwNCw2ICsxMjA1LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjE5Y291bnRNYXRj
aGVzRm9yVGV4dAogX19aTjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERpcmVjdGlvbkVOU18x
OFNlbGVjdGlvbkRpcmVjdGlvbkVOU18xNVRleHRHcmFudWxhcml0eUViYgogX19aTjdXZWJDb3Jl
NkVkaXRvcjE5aW5zZXJ0VW5vcmRlcmVkTGlzdEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMjFhcHBs
eVN0eWxlVG9TZWxlY3Rpb25FUE5TXzE1U3R5bGVQcm9wZXJ0aWVzRU5TXzEwRWRpdEFjdGlvbkUK
K19fWk43V2ViQ29yZTZFZGl0b3IyMnN0eWxlRm9yU2VsZWN0aW9uU3RhcnRFUE5TXzVGcmFtZUVS
UE5TXzROb2RlRQogX19aTjdXZWJDb3JlNkVkaXRvcjIyd3JpdGVJbWFnZVRvUGFzdGVib2FyZEVS
TlNfMTBQYXN0ZWJvYXJkRVJOU183RWxlbWVudEVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbkUxNldyaXRpbmdEaXJl
Y3Rpb24KIF9fWk43V2ViQ29yZTZFZGl0b3IyNGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZUVQTlNf
MTVTdHlsZVByb3BlcnRpZXNFTlNfMTBFZGl0QWN0aW9uRQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCShyZXZpc2lvbiAxNzA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjcsNiArNDI3LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGF0aWMgUmVuZGVyU3R5bGUqIHN0eWxlRm9yU2Vs
ZWN0aW9uU3RhcnQoRnJhbWUqICwgTm9kZSAqJm5vZGVUb1JlbW92ZSk7CiAgICAgYm9vbCBpbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JJblF1b3RlZENvbnRlbnQoKTsKICAgICBjb25zdCBTaW1wbGVG
b250RGF0YSogZm9udEZvclNlbGVjdGlvbihib29sJikgY29uc3Q7CiAgICAgTlNEaWN0aW9uYXJ5
KiBmb250QXR0cmlidXRlc0ZvclNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7CkBAIC00ODksOCArNDkw
LDYgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZy
YWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmNlKFBhc3NSZWZQdHI8QXJjaGl2ZVJl
c291cmNlPik7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVu
dEFuZEFkZFJlc291cmNlcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKik7CiAgICAgdm9pZCBmaWxsSW5V
c2VyVmlzaWJsZUZvcm0oUGFzdGVib2FyZFVSTCYpOwotCi0gICAgc3RhdGljIFJlbmRlclN0eWxl
KiBzdHlsZUZvclNlbGVjdGlvblN0YXJ0KEZyYW1lKiAsIE5vZGUgKiZub2RlVG9SZW1vdmUpOwog
I2VuZGlmCiAKICAgICBGcmFtZSYgbV9mcmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3
MTAxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE0LTA3LTExICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IHRleHRTdHlsaW5nQXRQb3NpdGlvbiBpbiBXSzIuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ4NDMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE3NjE0OTgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0eXBpbmcgYXR0
cmlidXRlcyB0byBFZGl0b3JTdGF0ZSBzbworICAgICAgICB0aGF0IHdlIGNhbiBpbXBsZW1lbnQg
dGV4dFN0eWxpbmdBdFBvc2l0aW9uLgorCisgICAgICAgICogU2hhcmVkL0VkaXRvclN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvclN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5o
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JTdGF0ZTo6RWRpdG9yU3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHRleHRTdHlsaW5nQXRQb3NpdGlvbjppbkRpcmVjdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBjYW5QZXJmb3JtQWN0aW9uOndpdGhTZW5kZXI6XSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgdG9nZ2xlQm9sZGZhY2U6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgdG9nZ2xlSXRhbGljczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0b2dn
bGVVbmRlcmxpbmU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjplZGl0b3JTdGF0ZSk6CisKIDIwMTQtMDctMTEg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUaWdodGVuIFdlYkNv
bnRlbnQgc2FuZGJveApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCShy
ZXZpc2lvbiAxNzA5ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIHZvaWQgRWRpdG9yU3RhdGU6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW4KICAgICBlbmNvZGVyIDw8IGZpcnN0TWFya2VkUmVjdDsKICAgICBl
bmNvZGVyIDw8IGxhc3RNYXJrZWRSZWN0OwogICAgIGVuY29kZXIgPDwgbWFya2VkVGV4dDsKKyAg
ICBlbmNvZGVyIDw8IHR5cGluZ0F0dHJpYnV0ZXM7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdU
SykKQEAgLTExNyw2ICsxMTgsOCBAQCBib29sIEVkaXRvclN0YXRlOjpkZWNvZGUoSVBDOjpBcmd1
bWVudERlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5tYXJrZWRUZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LnR5cGluZ0F0dHJpYnV0ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FZGl0b3JTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0
b3JTdGF0ZS5oCShyZXZpc2lvbiAxNzA5ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRp
dG9yU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTMgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKK2VudW0gVHlwaW5nQXR0cmlidXRlcyB7CisgICAgQXR0cmlidXRlTm9uZSA9
IDAsCisgICAgQXR0cmlidXRlQm9sZCA9IDEsCisgICAgQXR0cmlidXRlSXRhbGljcyA9IDIsCisg
ICAgQXR0cmlidXRlVW5kZXJsaW5lID0gNAorfTsKKwogc3RydWN0IEVkaXRvclN0YXRlIHsKICAg
ICBFZGl0b3JTdGF0ZSgpCiAgICAgICAgIDogc2hvdWxkSWdub3JlQ29tcG9zaXRpb25TZWxlY3Rp
b25DaGFuZ2UoZmFsc2UpCkBAIC01Miw2ICs1OSw3IEBAIHN0cnVjdCBFZGl0b3JTdGF0ZSB7CiAg
ICAgICAgICwgY2hhcmFjdGVyQmVmb3JlU2VsZWN0aW9uKDApCiAgICAgICAgICwgdHdvQ2hhcmFj
dGVyQmVmb3JlU2VsZWN0aW9uKDApCiAgICAgICAgICwgc2VsZWN0ZWRUZXh0TGVuZ3RoKDApCisg
ICAgICAgICwgdHlwaW5nQXR0cmlidXRlcyhBdHRyaWJ1dGVOb25lKQogI2VuZGlmCiAgICAgewog
ICAgIH0KQEAgLTc5LDYgKzg3LDcgQEAgc3RydWN0IEVkaXRvclN0YXRlIHsKICAgICBXZWJDb3Jl
OjpJbnRSZWN0IGZpcnN0TWFya2VkUmVjdDsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGxhc3RNYXJr
ZWRSZWN0OwogICAgIFN0cmluZyBtYXJrZWRUZXh0OworICAgIHVpbnQzMl90IHR5cGluZ0F0dHJp
YnV0ZXM7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CShyZXZpc2lvbiAxNzA5ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAog
I2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tGb3JtRGVsZWdhdGUuaCIK
ICNpbXBvcnQgIl9XS0Zvcm1JbnB1dFNlc3Npb24uaCIKKyNpbXBvcnQgPENvcmVUZXh0L0NURm9u
dERlc2NyaXB0b3IuaD4KICNpbXBvcnQgPERhdGFEZXRlY3RvcnNVSS9ERERldGVjdGlvbkNvbnRy
b2xsZXIuaD4KICNpbXBvcnQgPFRleHRJbnB1dC9USV9OU1N0cmluZ0V4dHJhcy5oPgogI2ltcG9y
dCA8VUlLaXQvVUlBcHBsaWNhdGlvbl9Qcml2YXRlLmg+CkBAIC0xMTg0LDYgKzExODUsMzUgQEAg
LSAodm9pZClyZXBsYWNlOihpZClzZW5kZXIKICAgICBbW1VJS2V5Ym9hcmRJbXBsIHNoYXJlZElu
c3RhbmNlXSByZXBsYWNlVGV4dDpzZW5kZXJdOwogfQogCistIChOU0RpY3Rpb25hcnkgKil0ZXh0
U3R5bGluZ0F0UG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopcG9zaXRpb24gaW5EaXJlY3Rpb246
KFVJVGV4dFN0b3JhZ2VEaXJlY3Rpb24pZGlyZWN0aW9uCit7CisgICAgaWYgKCFwb3NpdGlvbiB8
fCAhX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50UmljaGx5RWRpdGFibGUpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiByZXN1bHQgPSBbTlNNdXRh
YmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKKworICAgIC8vIFdlIGNob3NlIGEgcmFuZG9tIGZv
bnQgZmFtaWx5IGFuZCBzaXplLgorICAgIC8vIFdoYXQgbWF0dGVycyBhcmUgdGhlIHRyYWl0cyBi
dXQgdGhlIGNhbGxlciBleHBlY3RzIGEgZm9udCBvYmplY3QKKyAgICAvLyBpbiB0aGUgZGljdGlv
bmFyeSBmb3IgTlNGb250QXR0cmlidXRlTmFtZS4KKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3Jp
cHRvclJlZj4gZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVX
aXRoTmFtZUFuZFNpemUoQ0ZTVFIoIkhlbHZldGljYSIpLCAxMCkpOworICAgIENURm9udFN5bWJv
bGljVHJhaXRzIHN5bWJvbGljVHJhaXRzID0gMDsKKyAgICBpZiAoX3BhZ2UtPmVkaXRvclN0YXRl
KCkudHlwaW5nQXR0cmlidXRlcyAmIEF0dHJpYnV0ZUJvbGQpCisgICAgICAgIHN5bWJvbGljVHJh
aXRzIHw9IGtDVEZvbnRCb2xkVHJhaXQ7CisgICAgaWYgKF9wYWdlLT5lZGl0b3JTdGF0ZSgpLnR5
cGluZ0F0dHJpYnV0ZXMgJiBBdHRyaWJ1dGVJdGFsaWNzKQorICAgICAgICBzeW1ib2xpY1RyYWl0
cyB8PSBrQ1RGb250VHJhaXRJdGFsaWM7CisgICAgaWYgKHN5bWJvbGljVHJhaXRzKQorICAgICAg
ICBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRo
U3ltYm9saWNUcmFpdHMoZm9udERlc2NyaXB0b3IuZ2V0KCksIHN5bWJvbGljVHJhaXRzLCBzeW1i
b2xpY1RyYWl0cykpOworICAgIAorICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBDVEZv
bnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIDEwLCBudWxs
cHRyKTsKKyAgICBpZiAoZm9udCkKKyAgICAgICAgW3Jlc3VsdCBzZXRPYmplY3Q6KGlkKWZvbnQu
Z2V0KCkgZm9yS2V5Ok5TRm9udEF0dHJpYnV0ZU5hbWVdOworICAgIAorICAgIGlmIChfcGFnZS0+
ZWRpdG9yU3RhdGUoKS50eXBpbmdBdHRyaWJ1dGVzICYgQXR0cmlidXRlVW5kZXJsaW5lKQorICAg
ICAgICBbcmVzdWx0IHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpOU1VuZGVybGlu
ZVN0eWxlU2luZ2xlXSBmb3JLZXk6TlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdOworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogLSAoQk9PTCljYW5QZXJmb3JtQWN0aW9uOihTRUwpYWN0
aW9uIHdpdGhTZW5kZXI6KGlkKXNlbmRlcgogewogICAgIEJPT0wgaGFzV2ViU2VsZWN0aW9uID0g
X3dlYlNlbGVjdGlvbkFzc2lzdGFudCAmJiAhQ0dSZWN0SXNFbXB0eShfd2ViU2VsZWN0aW9uQXNz
aXN0YW50LmdldCgpLnNlbGVjdGlvbkZyYW1lKTsKQEAgLTExOTIsNiArMTIyMiw4IEBAIC0gKEJP
T0wpY2FuUGVyZm9ybUFjdGlvbjooU0VMKWFjdGlvbiB3aXQKICAgICAgICAgcmV0dXJuIF9wYWdl
LT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudFJpY2hseUVkaXRhYmxlICYmIF9wYWdlLT5lZGl0b3JT
dGF0ZSgpLnNlbGVjdGlvbklzUmFuZ2UgJiYgIV9zaG93aW5nVGV4dFN0eWxlT3B0aW9uczsKICAg
ICBpZiAoX3Nob3dpbmdUZXh0U3R5bGVPcHRpb25zKQogICAgICAgICByZXR1cm4gKGFjdGlvbiA9
PSBAc2VsZWN0b3IodG9nZ2xlQm9sZGZhY2U6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2ds
ZUl0YWxpY3M6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVVuZGVybGluZTopKTsKKyAg
ICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVCb2xkZmFjZTopIHx8IGFjdGlvbiA9PSBA
c2VsZWN0b3IodG9nZ2xlSXRhbGljczopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlVW5k
ZXJsaW5lOikpCisgICAgICAgIHJldHVybiBfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRS
aWNobHlFZGl0YWJsZTsKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihjdXQ6KSkKICAgICAg
ICAgcmV0dXJuICFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCAmJiBfcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSAmJiBfcGFnZS0+ZWRpdG9yU3RhdGUo
KS5zZWxlY3Rpb25Jc1JhbmdlOwogICAgIApAQCAtMTMzMCw3ICsxMzYyLDcgQEAgLSAodm9pZCl0
b2dnbGVCb2xkZmFjZTooaWQpc2VuZGVyCiAgICAgaWYgKCFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5p
c0NvbnRlbnRSaWNobHlFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3BhZ2UtPmV4
ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoInRvZ2dsZUJvbGQiKSk7CisgICAgW3NlbGYg
ZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrOkAidG9nZ2xlQm9sZCJdOwogfQogCiAtICh2
b2lkKXRvZ2dsZUl0YWxpY3M6KGlkKXNlbmRlcgpAQCAtMTMzOCw3ICsxMzcwLDcgQEAgLSAodm9p
ZCl0b2dnbGVJdGFsaWNzOihpZClzZW5kZXIKICAgICBpZiAoIV9wYWdlLT5lZGl0b3JTdGF0ZSgp
LmlzQ29udGVudFJpY2hseUVkaXRhYmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBfcGFnZS0+
ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgidG9nZ2xlSXRhbGljIikpOworICAgIFtz
ZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAInRvZ2dsZUl0YWxpYyJdOwogfQog
CiAtICh2b2lkKXRvZ2dsZVVuZGVybGluZTooaWQpc2VuZGVyCkBAIC0xMzQ2LDcgKzEzNzgsNyBA
QCAtICh2b2lkKXRvZ2dsZVVuZGVybGluZTooaWQpc2VuZGVyCiAgICAgaWYgKCFfcGFnZS0+ZWRp
dG9yU3RhdGUoKS5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoInRvZ2dsZVVuZGVybGlu
ZSIpKTsKKyAgICBbc2VsZiBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2s6QCJ0b2dnbGVV
bmRlcmxpbmUiXTsKIH0KIAogLSAodm9pZClfc2hvd1RleHRTdHlsZU9wdGlvbnM6KGlkKXNlbmRl
cgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkocmV2aXNpb24gMTcwOTgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw4IEBACiAjaW5jbHVkZSAi
V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNp
bmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxDb3JlVGV4dC9D
VEZvbnREZXNjcmlwdG9yUHJpdi5oPgorI2luY2x1ZGUgPENvcmVUZXh0L0NURm9udFByaXYuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9B
cmNoaXZlUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtNzQ0LDYg
Kzc0NiwyNSBAQCBFZGl0b3JTdGF0ZSBXZWJQYWdlOjplZGl0b3JTdGF0ZSgpIGNvbnN0CiAgICAg
ICAgIGlmIChzZWxlY3RlZFRleHQubGVuZ3RoKCkgPD0gbWF4U2VsZWN0ZWRUZXh0TGVuZ3RoKQog
ICAgICAgICAgICAgcmVzdWx0LndvcmRBdFNlbGVjdGlvbiA9IHNlbGVjdGVkVGV4dDsKICAgICB9
CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgTm9kZSogbm9kZVRvUmVt
b3ZlOworICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBFZGl0b3I6OnN0eWxlRm9yU2VsZWN0
aW9uU3RhcnQoJmZyYW1lLCBub2RlVG9SZW1vdmUpOworICAgICAgICBpZiAoc3R5bGUpIHsKKyAg
ICAgICAgICAgIENURm9udFJlZiBmb250ID0gc3R5bGUtPmZvbnQoKS5wcmltYXJ5Rm9udCgpLT5n
ZXRDVEZvbnQoKTsKKyAgICAgICAgICAgIENURm9udFN5bWJvbGljVHJhaXRzIHRyYWl0cyA9IGZv
bnQgPyBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyhmb250KSA6IDA7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGlmICh0cmFpdHMgJiBrQ1RGb250VHJhaXRCb2xkKQorICAgICAgICAgICAgICAg
IHJlc3VsdC50eXBpbmdBdHRyaWJ1dGVzIHw9IEF0dHJpYnV0ZUJvbGQ7CisgICAgICAgICAgICBp
ZiAodHJhaXRzICYga0NURm9udFRyYWl0SXRhbGljKQorICAgICAgICAgICAgICAgIHJlc3VsdC50
eXBpbmdBdHRyaWJ1dGVzIHw9IEF0dHJpYnV0ZUl0YWxpY3M7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGlmIChzdHlsZS0+dGV4dERlY29yYXRpb25zSW5FZmZlY3QoKSAmIFRleHREZWNvcmF0
aW9uVW5kZXJsaW5lKQorICAgICAgICAgICAgICAgIHJlc3VsdC50eXBpbmdBdHRyaWJ1dGVzIHw9
IEF0dHJpYnV0ZVVuZGVybGluZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5vZGVU
b1JlbW92ZSkKKyAgICAgICAgICAgICAgICBub2RlVG9SZW1vdmUtPnJlbW92ZShBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RL
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234787</attachid>
            <date>2014-07-11 15:57:19 -0700</date>
            <delta_ts>2014-07-11 16:01:55 -0700</delta_ts>
            <desc>Patch2</desc>
            <filename>textStylesWK2.txt</filename>
            <type>text/plain</type>
            <size>11069</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MTAxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE0LTA3LTExICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRleHRTdHls
aW5nQXRQb3NpdGlvbiBpbiBXSzIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzQ4NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3NjE0OTgxPgor
ICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkaW5nIHNvbWUgZXhwb3J0cyBhbmQgbWFraW5nIHN0eWxlRm9yU2VsZWN0aW9uU3RhcnQgcHVi
bGljLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuaDoKKwogMjAxNC0wNy0xMSAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBJbXBsZW1lbnQganVzdGlmeS1zZWxm
IGNzcyBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDE3MDk4MCkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkx
LDYgKzEwOTEsNyBAQCBfX1pON1dlYkNvcmU0Tm9kZTE3aXNDb250ZW50RWRpdGFibGVFTlMwCiBf
X1pON1dlYkNvcmU0Tm9kZTE3c3RvcElnbm9yaW5nTGVha3NFdgogX19aTjdXZWJDb3JlNE5vZGUx
OHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBfX1pON1dlYkNvcmU0Tm9kZTE5c2V0TmVlZHNTdHlsZVJl
Y2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlwZUUKK19fWk43V2ViQ29yZTROb2RlNnJlbW92ZUVSaQog
X19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRTdHJpbmdFUktOM1dURjZTdHJpbmdFaAogX19aTjdXZWJD
b3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRz
RDFFdgpAQCAtMTIwNCw2ICsxMjA1LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjE5Y291bnRNYXRj
aGVzRm9yVGV4dAogX19aTjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERpcmVjdGlvbkVOU18x
OFNlbGVjdGlvbkRpcmVjdGlvbkVOU18xNVRleHRHcmFudWxhcml0eUViYgogX19aTjdXZWJDb3Jl
NkVkaXRvcjE5aW5zZXJ0VW5vcmRlcmVkTGlzdEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMjFhcHBs
eVN0eWxlVG9TZWxlY3Rpb25FUE5TXzE1U3R5bGVQcm9wZXJ0aWVzRU5TXzEwRWRpdEFjdGlvbkUK
K19fWk43V2ViQ29yZTZFZGl0b3IyMnN0eWxlRm9yU2VsZWN0aW9uU3RhcnRFUE5TXzVGcmFtZUVS
UE5TXzROb2RlRQogX19aTjdXZWJDb3JlNkVkaXRvcjIyd3JpdGVJbWFnZVRvUGFzdGVib2FyZEVS
TlNfMTBQYXN0ZWJvYXJkRVJOU183RWxlbWVudEVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbkUxNldyaXRpbmdEaXJl
Y3Rpb24KIF9fWk43V2ViQ29yZTZFZGl0b3IyNGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZUVQTlNf
MTVTdHlsZVByb3BlcnRpZXNFTlNfMTBFZGl0QWN0aW9uRQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCShyZXZpc2lvbiAxNzA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjcsNiArNDI3LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGF0aWMgUmVuZGVyU3R5bGUqIHN0eWxlRm9yU2Vs
ZWN0aW9uU3RhcnQoRnJhbWUqICwgTm9kZSAqJm5vZGVUb1JlbW92ZSk7CiAgICAgYm9vbCBpbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JJblF1b3RlZENvbnRlbnQoKTsKICAgICBjb25zdCBTaW1wbGVG
b250RGF0YSogZm9udEZvclNlbGVjdGlvbihib29sJikgY29uc3Q7CiAgICAgTlNEaWN0aW9uYXJ5
KiBmb250QXR0cmlidXRlc0ZvclNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7CkBAIC00ODksOCArNDkw
LDYgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZy
YWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmNlKFBhc3NSZWZQdHI8QXJjaGl2ZVJl
c291cmNlPik7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVu
dEFuZEFkZFJlc291cmNlcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKik7CiAgICAgdm9pZCBmaWxsSW5V
c2VyVmlzaWJsZUZvcm0oUGFzdGVib2FyZFVSTCYpOwotCi0gICAgc3RhdGljIFJlbmRlclN0eWxl
KiBzdHlsZUZvclNlbGVjdGlvblN0YXJ0KEZyYW1lKiAsIE5vZGUgKiZub2RlVG9SZW1vdmUpOwog
I2VuZGlmCiAKICAgICBGcmFtZSYgbV9mcmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3
MTAxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE0LTA3LTExICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IHRleHRTdHlsaW5nQXRQb3NpdGlvbiBpbiBXSzIuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ4NDMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE3NjE0OTgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0eXBpbmcgYXR0
cmlidXRlcyB0byBFZGl0b3JTdGF0ZSBzbworICAgICAgICB0aGF0IHdlIGNhbiBpbXBsZW1lbnQg
dGV4dFN0eWxpbmdBdFBvc2l0aW9uLgorCisgICAgICAgICogU2hhcmVkL0VkaXRvclN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvclN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5o
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JTdGF0ZTo6RWRpdG9yU3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHRleHRTdHlsaW5nQXRQb3NpdGlvbjppbkRpcmVjdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBjYW5QZXJmb3JtQWN0aW9uOndpdGhTZW5kZXI6XSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgdG9nZ2xlQm9sZGZhY2U6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgdG9nZ2xlSXRhbGljczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0b2dn
bGVVbmRlcmxpbmU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjplZGl0b3JTdGF0ZSk6CisKIDIwMTQtMDctMTEg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUaWdodGVuIFdlYkNv
bnRlbnQgc2FuZGJveApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCShy
ZXZpc2lvbiAxNzA5ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIHZvaWQgRWRpdG9yU3RhdGU6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW4KICAgICBlbmNvZGVyIDw8IGZpcnN0TWFya2VkUmVjdDsKICAgICBl
bmNvZGVyIDw8IGxhc3RNYXJrZWRSZWN0OwogICAgIGVuY29kZXIgPDwgbWFya2VkVGV4dDsKKyAg
ICBlbmNvZGVyIDw8IHR5cGluZ0F0dHJpYnV0ZXM7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdU
SykKQEAgLTExNyw2ICsxMTgsOCBAQCBib29sIEVkaXRvclN0YXRlOjpkZWNvZGUoSVBDOjpBcmd1
bWVudERlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5tYXJrZWRUZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LnR5cGluZ0F0dHJpYnV0ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FZGl0b3JTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0
b3JTdGF0ZS5oCShyZXZpc2lvbiAxNzA5ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRp
dG9yU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTMgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKK2VudW0gVHlwaW5nQXR0cmlidXRlcyB7CisgICAgQXR0cmlidXRlTm9uZSA9
IDAsCisgICAgQXR0cmlidXRlQm9sZCA9IDEsCisgICAgQXR0cmlidXRlSXRhbGljcyA9IDIsCisg
ICAgQXR0cmlidXRlVW5kZXJsaW5lID0gNAorfTsKKwogc3RydWN0IEVkaXRvclN0YXRlIHsKICAg
ICBFZGl0b3JTdGF0ZSgpCiAgICAgICAgIDogc2hvdWxkSWdub3JlQ29tcG9zaXRpb25TZWxlY3Rp
b25DaGFuZ2UoZmFsc2UpCkBAIC01Miw2ICs1OSw3IEBAIHN0cnVjdCBFZGl0b3JTdGF0ZSB7CiAg
ICAgICAgICwgY2hhcmFjdGVyQmVmb3JlU2VsZWN0aW9uKDApCiAgICAgICAgICwgdHdvQ2hhcmFj
dGVyQmVmb3JlU2VsZWN0aW9uKDApCiAgICAgICAgICwgc2VsZWN0ZWRUZXh0TGVuZ3RoKDApCisg
ICAgICAgICwgdHlwaW5nQXR0cmlidXRlcyhBdHRyaWJ1dGVOb25lKQogI2VuZGlmCiAgICAgewog
ICAgIH0KQEAgLTc5LDYgKzg3LDcgQEAgc3RydWN0IEVkaXRvclN0YXRlIHsKICAgICBXZWJDb3Jl
OjpJbnRSZWN0IGZpcnN0TWFya2VkUmVjdDsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGxhc3RNYXJr
ZWRSZWN0OwogICAgIFN0cmluZyBtYXJrZWRUZXh0OworICAgIHVpbnQzMl90IHR5cGluZ0F0dHJp
YnV0ZXM7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CShyZXZpc2lvbiAxNzA5ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAog
I2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tGb3JtRGVsZWdhdGUuaCIK
ICNpbXBvcnQgIl9XS0Zvcm1JbnB1dFNlc3Npb24uaCIKKyNpbXBvcnQgPENvcmVUZXh0L0NURm9u
dERlc2NyaXB0b3IuaD4KICNpbXBvcnQgPERhdGFEZXRlY3RvcnNVSS9ERERldGVjdGlvbkNvbnRy
b2xsZXIuaD4KICNpbXBvcnQgPFRleHRJbnB1dC9USV9OU1N0cmluZ0V4dHJhcy5oPgogI2ltcG9y
dCA8VUlLaXQvVUlBcHBsaWNhdGlvbl9Qcml2YXRlLmg+CkBAIC0xMTg0LDYgKzExODUsMzUgQEAg
LSAodm9pZClyZXBsYWNlOihpZClzZW5kZXIKICAgICBbW1VJS2V5Ym9hcmRJbXBsIHNoYXJlZElu
c3RhbmNlXSByZXBsYWNlVGV4dDpzZW5kZXJdOwogfQogCistIChOU0RpY3Rpb25hcnkgKil0ZXh0
U3R5bGluZ0F0UG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopcG9zaXRpb24gaW5EaXJlY3Rpb246
KFVJVGV4dFN0b3JhZ2VEaXJlY3Rpb24pZGlyZWN0aW9uCit7CisgICAgaWYgKCFwb3NpdGlvbiB8
fCAhX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50UmljaGx5RWRpdGFibGUpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiByZXN1bHQgPSBbTlNNdXRh
YmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKKworICAgIC8vIFdlIGNob3NlIGEgcmFuZG9tIGZv
bnQgZmFtaWx5IGFuZCBzaXplLgorICAgIC8vIFdoYXQgbWF0dGVycyBhcmUgdGhlIHRyYWl0cyBi
dXQgdGhlIGNhbGxlciBleHBlY3RzIGEgZm9udCBvYmplY3QKKyAgICAvLyBpbiB0aGUgZGljdGlv
bmFyeSBmb3IgTlNGb250QXR0cmlidXRlTmFtZS4KKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3Jp
cHRvclJlZj4gZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVX
aXRoTmFtZUFuZFNpemUoQ0ZTVFIoIkhlbHZldGljYSIpLCAxMCkpOworICAgIENURm9udFN5bWJv
bGljVHJhaXRzIHN5bWJvbGljVHJhaXRzID0gMDsKKyAgICBpZiAoX3BhZ2UtPmVkaXRvclN0YXRl
KCkudHlwaW5nQXR0cmlidXRlcyAmIEF0dHJpYnV0ZUJvbGQpCisgICAgICAgIHN5bWJvbGljVHJh
aXRzIHw9IGtDVEZvbnRCb2xkVHJhaXQ7CisgICAgaWYgKF9wYWdlLT5lZGl0b3JTdGF0ZSgpLnR5
cGluZ0F0dHJpYnV0ZXMgJiBBdHRyaWJ1dGVJdGFsaWNzKQorICAgICAgICBzeW1ib2xpY1RyYWl0
cyB8PSBrQ1RGb250VHJhaXRJdGFsaWM7CisgICAgaWYgKHN5bWJvbGljVHJhaXRzKQorICAgICAg
ICBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRo
U3ltYm9saWNUcmFpdHMoZm9udERlc2NyaXB0b3IuZ2V0KCksIHN5bWJvbGljVHJhaXRzLCBzeW1i
b2xpY1RyYWl0cykpOworICAgIAorICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBDVEZv
bnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIDEwLCBudWxs
cHRyKTsKKyAgICBpZiAoZm9udCkKKyAgICAgICAgW3Jlc3VsdCBzZXRPYmplY3Q6KGlkKWZvbnQu
Z2V0KCkgZm9yS2V5Ok5TRm9udEF0dHJpYnV0ZU5hbWVdOworICAgIAorICAgIGlmIChfcGFnZS0+
ZWRpdG9yU3RhdGUoKS50eXBpbmdBdHRyaWJ1dGVzICYgQXR0cmlidXRlVW5kZXJsaW5lKQorICAg
ICAgICBbcmVzdWx0IHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpOU1VuZGVybGlu
ZVN0eWxlU2luZ2xlXSBmb3JLZXk6TlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdOworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogLSAoQk9PTCljYW5QZXJmb3JtQWN0aW9uOihTRUwpYWN0
aW9uIHdpdGhTZW5kZXI6KGlkKXNlbmRlcgogewogICAgIEJPT0wgaGFzV2ViU2VsZWN0aW9uID0g
X3dlYlNlbGVjdGlvbkFzc2lzdGFudCAmJiAhQ0dSZWN0SXNFbXB0eShfd2ViU2VsZWN0aW9uQXNz
aXN0YW50LmdldCgpLnNlbGVjdGlvbkZyYW1lKTsKQEAgLTExOTIsNiArMTIyMiw4IEBAIC0gKEJP
T0wpY2FuUGVyZm9ybUFjdGlvbjooU0VMKWFjdGlvbiB3aXQKICAgICAgICAgcmV0dXJuIF9wYWdl
LT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudFJpY2hseUVkaXRhYmxlICYmIF9wYWdlLT5lZGl0b3JT
dGF0ZSgpLnNlbGVjdGlvbklzUmFuZ2UgJiYgIV9zaG93aW5nVGV4dFN0eWxlT3B0aW9uczsKICAg
ICBpZiAoX3Nob3dpbmdUZXh0U3R5bGVPcHRpb25zKQogICAgICAgICByZXR1cm4gKGFjdGlvbiA9
PSBAc2VsZWN0b3IodG9nZ2xlQm9sZGZhY2U6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2ds
ZUl0YWxpY3M6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVVuZGVybGluZTopKTsKKyAg
ICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVCb2xkZmFjZTopIHx8IGFjdGlvbiA9PSBA
c2VsZWN0b3IodG9nZ2xlSXRhbGljczopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlVW5k
ZXJsaW5lOikpCisgICAgICAgIHJldHVybiBfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRS
aWNobHlFZGl0YWJsZTsKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihjdXQ6KSkKICAgICAg
ICAgcmV0dXJuICFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCAmJiBfcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSAmJiBfcGFnZS0+ZWRpdG9yU3RhdGUo
KS5zZWxlY3Rpb25Jc1JhbmdlOwogICAgIApAQCAtMTMzMCw3ICsxMzYyLDcgQEAgLSAodm9pZCl0
b2dnbGVCb2xkZmFjZTooaWQpc2VuZGVyCiAgICAgaWYgKCFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5p
c0NvbnRlbnRSaWNobHlFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3BhZ2UtPmV4
ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoInRvZ2dsZUJvbGQiKSk7CisgICAgW3NlbGYg
ZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrOkAidG9nZ2xlQm9sZCJdOwogfQogCiAtICh2
b2lkKXRvZ2dsZUl0YWxpY3M6KGlkKXNlbmRlcgpAQCAtMTMzOCw3ICsxMzcwLDcgQEAgLSAodm9p
ZCl0b2dnbGVJdGFsaWNzOihpZClzZW5kZXIKICAgICBpZiAoIV9wYWdlLT5lZGl0b3JTdGF0ZSgp
LmlzQ29udGVudFJpY2hseUVkaXRhYmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBfcGFnZS0+
ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgidG9nZ2xlSXRhbGljIikpOworICAgIFtz
ZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAInRvZ2dsZUl0YWxpYyJdOwogfQog
CiAtICh2b2lkKXRvZ2dsZVVuZGVybGluZTooaWQpc2VuZGVyCkBAIC0xMzQ2LDcgKzEzNzgsNyBA
QCAtICh2b2lkKXRvZ2dsZVVuZGVybGluZTooaWQpc2VuZGVyCiAgICAgaWYgKCFfcGFnZS0+ZWRp
dG9yU3RhdGUoKS5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoInRvZ2dsZVVuZGVybGlu
ZSIpKTsKKyAgICBbc2VsZiBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2s6QCJ0b2dnbGVV
bmRlcmxpbmUiXTsKIH0KIAogLSAodm9pZClfc2hvd1RleHRTdHlsZU9wdGlvbnM6KGlkKXNlbmRl
cgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkocmV2aXNpb24gMTcwOTgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDggQEAKICNpbmNsdWRl
ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaCIKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+Cisj
aW5jbHVkZSA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvclByaXYuaD4KKyNpbmNsdWRlIDxDb3Jl
VGV4dC9DVEZvbnRQcml2Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uLmg+CiAjZW5kaWYKIApA
QCAtNzQ0LDYgKzc0NiwyNSBAQCBFZGl0b3JTdGF0ZSBXZWJQYWdlOjplZGl0b3JTdGF0ZSgpIGNv
bnN0CiAgICAgICAgIGlmIChzZWxlY3RlZFRleHQubGVuZ3RoKCkgPD0gbWF4U2VsZWN0ZWRUZXh0
TGVuZ3RoKQogICAgICAgICAgICAgcmVzdWx0LndvcmRBdFNlbGVjdGlvbiA9IHNlbGVjdGVkVGV4
dDsKICAgICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgTm9kZSog
bm9kZVRvUmVtb3ZlOworICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBFZGl0b3I6OnN0eWxl
Rm9yU2VsZWN0aW9uU3RhcnQoJmZyYW1lLCBub2RlVG9SZW1vdmUpOworICAgICAgICBpZiAoc3R5
bGUpIHsKKyAgICAgICAgICAgIENURm9udFJlZiBmb250ID0gc3R5bGUtPmZvbnQoKS5wcmltYXJ5
Rm9udCgpLT5nZXRDVEZvbnQoKTsKKyAgICAgICAgICAgIENURm9udFN5bWJvbGljVHJhaXRzIHRy
YWl0cyA9IGZvbnQgPyBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyhmb250KSA6IDA7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmICh0cmFpdHMgJiBrQ1RGb250VHJhaXRCb2xkKQorICAgICAg
ICAgICAgICAgIHJlc3VsdC50eXBpbmdBdHRyaWJ1dGVzIHw9IEF0dHJpYnV0ZUJvbGQ7CisgICAg
ICAgICAgICBpZiAodHJhaXRzICYga0NURm9udFRyYWl0SXRhbGljKQorICAgICAgICAgICAgICAg
IHJlc3VsdC50eXBpbmdBdHRyaWJ1dGVzIHw9IEF0dHJpYnV0ZUl0YWxpY3M7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChzdHlsZS0+dGV4dERlY29yYXRpb25zSW5FZmZlY3QoKSAmIFRl
eHREZWNvcmF0aW9uVW5kZXJsaW5lKQorICAgICAgICAgICAgICAgIHJlc3VsdC50eXBpbmdBdHRy
aWJ1dGVzIHw9IEF0dHJpYnV0ZVVuZGVybGluZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aWYgKG5vZGVUb1JlbW92ZSkKKyAgICAgICAgICAgICAgICBub2RlVG9SZW1vdmUtPnJlbW92ZShB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oR1RLKQo=
</data>
<flag name="review"
          id="259329"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>