<?xml version=“1.0” encoding=“UTF-8”?><xsl:stylesheet xmlns:xsl=“www.w3.org/1999/XSL/Transform” xmlns:fo=“www.w3.org/1999/XSL/Format” xmlns:nist=“www.metanorma.org/ns/nist” xmlns:mathml=“www.w3.org/1998/Math/MathML” xmlns:xalan=“xml.apache.org/xalan” xmlns:fox=“xmlgraphics.apache.org/fop/extensions” xmlns:java=“xml.apache.org/xalan/java” exclude-result-prefixes=“java” version=“1.0”>

<xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>

<xsl:param name="svg_images"/>
<xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
<xsl:variable name="images" select="document($svg_images)"/>
<xsl:param name="basepath"/>

<xsl:variable name="pageWidth" select="'8.5in'"/>
<xsl:variable name="pageHeight" select="'11in'"/>

<xsl:variable name="debug">false</xsl:variable>

<xsl:variable name="title" select="/nist:nist-standard/nist:bibdata/nist:title[@language = 'en' and @type = 'main']"/>

<xsl:variable name="date">
        <xsl:choose>
                <xsl:when test="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']">
                        <xsl:call-template name="formatDate">
                                <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']/nist:on"/>
                        </xsl:call-template>
                </xsl:when>
                <xsl:otherwise>
                        <xsl:call-template name="formatDate">
                                <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date/nist:on"/>
                        </xsl:call-template>
                </xsl:otherwise>
        </xsl:choose>
</xsl:variable>
<xsl:variable name="color">rgb(36, 64, 97)</xsl:variable>
<xsl:variable name="seriestitle">
        <xsl:choose>
                <xsl:when test="normalize-space(/nist:nist-standard/nist:bibdata/nist:series[@type = 'main']/nist:abbreviation) = 'NIST CSTS'">
                        <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:series[@type = 'secondary']/nist:title"/>
                </xsl:when>
                <xsl:otherwise>
                        <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:series[@type = 'main']/nist:title"/>
                </xsl:otherwise>
        </xsl:choose>
</xsl:variable>

<!-- Example:
        <item level="1" id="Foreword" display="true">Foreword</item>
        <item id="term-script" display="false">3.2</item>
-->
<xsl:variable name="contents">
        <contents>
                <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary" mode="contents"/>
                <xsl:apply-templates select="/nist:nist-standard/nist:sections/*" mode="contents"/> <!-- /* Main sections -->
                <xsl:apply-templates select="/nist:nist-standard/nist:annex" mode="contents"/>
                <xsl:apply-templates select="/nist:nist-standard/nist:bibliography/nist:references" mode="contents"/>
        </contents>
</xsl:variable>

<xsl:variable name="lang">
        <xsl:call-template name="getLang"/>
</xsl:variable>

<xsl:template match="/">
        <xsl:call-template name="namespaceCheck"/>
        <fo:root font-family="Times New Roman, STIX Two Math" font-size="12pt" xml:lang="{$lang}">
                <fo:layout-master-set>
                        <!-- Cover pages -->
                        <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
                                <fo:region-body margin-top="1.75in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
                                <fo:region-before region-name="header-cover" extent="1.75in"/>
                                <fo:region-after extent="1in"/>
                                <fo:region-start extent="1in"/>
                                <fo:region-end extent="1in"/>
                        </fo:simple-page-master>

                        <!-- Preface page(s) -->
                        <fo:simple-page-master master-name="preface" page-width="{$pageWidth}" page-height="{$pageHeight}">
                                <fo:region-body margin-top="1.15in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
                                <fo:region-before region-name="header-preface" extent="1.15in"/>
                                <fo:region-after region-name="footer" extent="1in"/>
                                <fo:region-start region-name="left" extent="1in"/>
                                <fo:region-end region-name="right" extent="1in"/>
                        </fo:simple-page-master>

                        <!-- Document pages -->
                        <fo:simple-page-master master-name="document" page-width="{$pageWidth}" page-height="{$pageHeight}">
                                <fo:region-body margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
                                <fo:region-before region-name="header" extent="1in"/>
                                <fo:region-after region-name="footer" extent="1in"/>
                                <fo:region-start region-name="left" extent="1in"/>
                                <fo:region-end region-name="right" extent="1in"/>
                        </fo:simple-page-master>

                </fo:layout-master-set>

                <fo:declarations>
                        <xsl:call-template name="addPDFUAmeta"/>
                </fo:declarations>

                <xsl:call-template name="addBookmarks">
                        <xsl:with-param name="contents" select="$contents"/>
                </xsl:call-template>

                <!-- cover page -->
                <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
                        <!-- header -->
                        <fo:static-content flow-name="header-cover" font-family="Times New Roman" font-size="11pt" font-weight="bold" font-style="italic">
                                <fo:block-container color="white" background-color="{$color}" margin-left="-1mm" margin-right="-1mm" margin-top="1in" display-align="after" height="5mm">
                                        <fo:block text-align-last="justify" margin-left="1mm" margin-right="1mm" padding-left="0.5mm" padding-top="0.5mm">
                                                <fo:inline padding-left="0.5mm"> <!-- font-size="7.5pt" -->
                                                        <!-- <xsl:call-template name="recursiveSmallCaps">
                                                                <xsl:with-param name="text" select="$seriestitle"/>
                                                        </xsl:call-template> -->
                                                        <xsl:value-of select="$seriestitle"/>
                                                </fo:inline>
                                                <fo:inline keep-together.within-line="always">
                                                        <fo:leader leader-pattern="space"/>
                                                        <xsl:text>csrc.nist.gov  </xsl:text>
                                                        <!-- <xsl:call-template name="recursiveSmallCaps">
                                                                <xsl:with-param name="text" select="'csrc.nist.gov&#xA0;&#xA0;'"/>
                                                        </xsl:call-template> -->
                                                </fo:inline>
                                        </fo:block>
                                </fo:block-container>
                        </fo:static-content>

                        <fo:flow flow-name="xsl-region-body" color="rgb(36, 64, 97)">
                                <!-- logo -->
                                <fo:block-container absolute-position="fixed" left="25.4mm" top="229mm">
                                        <fo:block>
                                                <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-NIST-Logo))}" width="57mm" content-height="25.4mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image"/>
                                        </fo:block>
                                </fo:block-container>

                                <xsl:if test="contains(/nist:nist-standard/nist:bibdata/nist:status/nist:stage, 'draft')">
                                                <!-- <fo:block-container absolute-position="fixed" left="20mm" top="170mm" fox:transform="rotate(-45)">
                                                        <fo:block font-family="Calibri" font-size="180pt" color="rgb(223, 223, 223)">DRAFT</fo:block>
                                                </fo:block-container> -->
                                                <fo:block-container absolute-position="fixed" left="0mm" top="0mm">
                                                        <fo:block line-height="0">
                                                                <fo:instream-foreign-object fox:alt-text="DRAFT">
                                                                                <svg:svg xmlns:svg="http://www.w3.org/2000/svg" width="200mm" height="250mm">
                                                                                                <svg:g transform="rotate(-45) scale(0.6, 1)">
                                                                                                                <svg:text x="-175mm" y="205mm" style="font-family:Calibri;font-size:260pt;font-weight:normal;fill:rgb(223, 223, 223);">
                                                                                                                                DRAFT
                                                                                                                </svg:text>
                                                                                                </svg:g>
                                                                                </svg:svg>
                                                                </fo:instream-foreign-object>
                                                        </fo:block>
                                                </fo:block-container>
                                </xsl:if>

                                <fo:block>
                                        <fo:block font-family="Arial" font-size="24pt" font-weight="bold" margin-top="12pt" margin-bottom="18pt" letter-spacing="-0.5pt" margin-right="-2mm">
                                                <xsl:value-of select="$title"/>
                                        </fo:block>
                                        <fo:block margin-bottom="12pt"> </fo:block>
                                        <fo:block margin-bottom="20pt"> </fo:block>

                                        <!-- Authors list -->
                                        <fo:block line-height="116%">
                                                <xsl:for-each select="/nist:nist-standard/nist:bibdata/nist:contributor[nist:role/@type = 'author']">
                                                        <xsl:value-of select="nist:person/nist:name/nist:completename"/>
                                                        <xsl:variable name="org-name" select="nist:person/nist:affiliation/nist:organization/nist:name"/>
                                                        <xsl:variable name="subdivision">
                                                                <xsl:for-each select="nist:person/nist:affiliation/nist:organization/nist:subdivision">
                                                                        <xsl:value-of select="."/>
                                                                        <xsl:if test="position() != last()">, </xsl:if>
                                                                </xsl:for-each>
                                                        </xsl:variable>
                                                        <xsl:variable name="following_subdivision">
                                                                <xsl:for-each select="following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:subdivision">
                                                                        <xsl:value-of select="."/>
                                                                        <xsl:if test="position() != last()">, </xsl:if>
                                                                </xsl:for-each>
                                                        </xsl:variable>
                                                        <xsl:variable name="org-address" select="nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress"/>
                                                        <xsl:if test="concat(following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:name,                         $following_subdivision,                         following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress) !=                  concat($org-name, $subdivision, $org-address)">
                                                                <!-- <xsl:for-each select="xalan:tokenize($org-name, ',')">
                                                                        <fo:block>
                                                                                <fo:inline font-style="italic">
                                                                                        <xsl:value-of select="."/>
                                                                                </fo:inline>
                                                                        </fo:block>
                                                                </xsl:for-each> -->
                                                                <fo:block font-style="italic">
                                                                        <xsl:value-of select="$org-name"/>
                                                                </fo:block>
                                                                <xsl:if test="normalize-space($subdivision) != ''">
                                                                        <fo:block font-style="italic">
                                                                                <xsl:value-of select="$subdivision"/>
                                                                        </fo:block>
                                                                </xsl:if>

                                                                <xsl:if test="normalize-space($org-address) != ''">
                                                                        <fo:block>
                                                                                <fo:inline font-style="italic">
                                                                                        <xsl:value-of select="$org-address"/>
                                                                                </fo:inline>
                                                                        </fo:block>
                                                                </xsl:if>
                                                        </xsl:if>
                                                        <xsl:value-of select="$linebreak"/>
                                                </xsl:for-each>
                                        </fo:block>
                                        <fo:block margin-bottom="22pt"> </fo:block>
                                        <fo:block margin-bottom="12pt"> <!-- font-size="14pt"  -->
                                                <xsl:value-of select="$date"/>
                                        </fo:block>
                                        <fo:block margin-bottom="12pt"> </fo:block>

                                        <!-- <xsl:if test="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']">
                                                <fo:block>
                                                        <xsl:text>This publication is available free of charge from:</xsl:text>
                                                        <xsl:value-of select="$linebreak"/>
                                                        <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']"/>
                                                </fo:block>
                                        </xsl:if> -->

                                </fo:block>
                        </fo:flow>
                </fo:page-sequence>

                <fo:page-sequence master-reference="preface" initial-page-number="2" format="i" force-page-count="no-force" line-height="116%">

                        <fo:static-content flow-name="xsl-footnote-separator">
                                <fo:block margin-bottom="4mm">
                                        <fo:leader leader-pattern="rule" leader-length="30%"/>
                                </fo:block>
                        </fo:static-content>
                        <xsl:call-template name="insertFooter"/>

                        <fo:flow flow-name="xsl-region-body">
                                <fo:block margin-top="18pt">

                                        <!-- Abstract -->
                                        <!-- Keywords -->
                                        <!-- Acknowledgements -->
                                        <xsl:apply-templates select="/nist:nist-standard/nist:preface/*"/>

                                        <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:abstract"/> -->

                                        <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:acknowledgements"/> -->

                                        <!-- Keywords -->
                                        <!-- <xsl:if test="/nist:nist-standard/nist:bibdata/nist:keyword">
                                                <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">
                                                        <xsl:call-template name="getLocalizedString">
                                                                <xsl:with-param name="key">keywords</xsl:with-param>
                                                        </xsl:call-template>
                                                </fo:block>
                                                <fo:block margin-bottom="12pt" text-align="justify">
                                                        <xsl:call-template name="insertKeywords">                                                                       
                                                                <xsl:with-param name="charAtEnd"></xsl:with-param>
                                                                <xsl:with-param name="charDelim">; </xsl:with-param>
                                                        </xsl:call-template>
                                                </fo:block>
                                        </xsl:if> -->

                                        <!-- Disclaimer -->
                                        <!-- Additional Information -->
                                        <!-- Comments on this publication may be submitted to -->
                                        <xsl:if test="/nist:nist-standard/nist:boilerplate/nist:legal-statement">
                                                <xsl:apply-templates select="/nist:nist-standard/nist:boilerplate/nist:legal-statement"/>
                                        </xsl:if>

                                        <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">Feedback</fo:block>
                                        <xsl:text>Feedback on this publication is welcome, and can be sent to: code-signing@nist.gov.</xsl:text>

                                        <!-- Keywords -->
                                        <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:clause"/> -->

                                        <fo:block break-after="page"/>

                                        <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:foreword"/> -->

                                        <!-- Executive summary -->
                                        <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary"/> -->

                                        <xsl:if test="$debug = 'true'">
                                                <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
                                                        DEBUG
                                                        contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
                                                <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
                                        </xsl:if>
                                        <!-- CONTENTS -->
                                        <!-- <fo:block break-after="page"/>
                                        <fo:block-container font-family="Arial">
                                                <fo:block font-family="Arial Black" font-size="12pt" margin-top="4pt" margin-bottom="12pt" text-align="center">Table of Contents</fo:block>
                                                        <xsl:for-each select="xalan:nodeset($contents)//item[not(@type = 'table') and not(@type = 'figure')]">
                                                                <xsl:if test="@display = 'true'">
                                                                        <fo:block color="{$color}">
                                                                                <xsl:attribute name="margin-top">6pt</xsl:attribute>
                                                                                <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
                                                                                <xsl:if test="@level = 1">
                                                                                        <xsl:attribute name="font-weight">bold</xsl:attribute>
                                                                                </xsl:if>
                                                                                <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
                                                                                        <xsl:if test="@level &gt;= 2 and @section != ''">
                                                                                                <xsl:attribute name="margin-left">21.5mm</xsl:attribute>
                                                                                        </xsl:if>
                                                                                        <xsl:if test="@type = 'annex'">
                                                                                                <xsl:attribute name="font-weight">bold</xsl:attribute>
                                                                                        </xsl:if>
                                                                                        <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
                                                                                                <xsl:if test="@section != '' and not(@display-section = 'false')">
                                                                                                        <fo:inline>
                                                                                                                <xsl:if test="not(@type = 'annex')">
                                                                                                                        <xsl:attribute name="padding-right">
                                                                                                                                <xsl:choose>
                                                                                                                                        <xsl:when test="@level = 1">6mm</xsl:when>
                                                                                                                                        <xsl:otherwise>5mm</xsl:otherwise>
                                                                                                                                </xsl:choose>
                                                                                                                        </xsl:attribute>
                                                                                                                </xsl:if>
                                                                                                                <xsl:value-of select="@section"/>
                                                                                                                <xsl:choose>
                                                                                                                        <xsl:when test="@type = 'annex'">
                                                                                                                                <xsl:text> — </xsl:text>
                                                                                                                        </xsl:when>
                                                                                                                        <xsl:otherwise>
                                                                                                                                <xsl:text>. </xsl:text>
                                                                                                                        </xsl:otherwise>
                                                                                                                </xsl:choose>
                                                                                                        </fo:inline>
                                                                                                </xsl:if>
                                                                                                <xsl:value-of select="text()"/><xsl:text> </xsl:text>
                                                                                                <fo:inline keep-together.within-line="always">
                                                                                                        <fo:leader leader-pattern="dots"/>
                                                                                                        <fo:page-number-citation ref-id="{@id}"/>
                                                                                                </fo:inline>
                                                                                        </fo:basic-link>
                                                                                </fo:block>
                                                                        </fo:block>
                                                                </xsl:if>
                                                        </xsl:for-each>

                                                        <xsl:if test="xalan:nodeset($contents)//item[@type = 'figure']">
                                                                <fo:block font-size="12pt">&#xA0;</fo:block>
                                                                <fo:block font-size="12pt">&#xA0;</fo:block>
                                                                <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Figures</fo:block>
                                                                <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'figure']">
                                                                        <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
                                                                                <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
                                                                                        <xsl:value-of select="@section"/>
                                                                                        <xsl:if test="text() != ''">
                                                                                                <xsl:text> — </xsl:text>
                                                                                                <xsl:value-of select="text()"/>
                                                                                        </xsl:if>
                                                                                        <fo:inline keep-together.within-line="always">
                                                                                                <fo:leader leader-pattern="dots"/>
                                                                                                <fo:page-number-citation ref-id="{@id}"/>
                                                                                        </fo:inline>
                                                                                </fo:basic-link>
                                                                        </fo:block>
                                                                </xsl:for-each>
                                                        </xsl:if>

                                                        <xsl:if test="xalan:nodeset($contents)//item[@type = 'table']">
                                                                <fo:block font-size="12pt">&#xA0;</fo:block>
                                                                <fo:block font-size="12pt">&#xA0;</fo:block>
                                                                <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Tables</fo:block>
                                                                <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'table']">
                                                                        <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
                                                                                <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
                                                                                        <xsl:value-of select="@section"/>
                                                                                        <xsl:if test="text() != ''">
                                                                                                <xsl:text> — </xsl:text>
                                                                                                <xsl:value-of select="text()"/>
                                                                                        </xsl:if>
                                                                                        <fo:inline keep-together.within-line="always">
                                                                                                <fo:leader leader-pattern="dots"/>
                                                                                                <fo:page-number-citation ref-id="{@id}"/>
                                                                                        </fo:inline>
                                                                                </fo:basic-link>
                                                                        </fo:block>
                                                                </xsl:for-each>
                                                        </xsl:if>
                                        </fo:block-container> -->
                                </fo:block>
                        </fo:flow>
                </fo:page-sequence>

                <!-- BODY -->
                <fo:page-sequence master-reference="document" initial-page-number="1" force-page-count="no-force" line-height="116%">
                        <fo:static-content flow-name="xsl-footnote-separator">
                                <fo:block margin-bottom="4mm">
                                        <fo:leader leader-pattern="rule" leader-length="30%"/>
                                </fo:block>
                        </fo:static-content>

                        <xsl:call-template name="insertHeaderFooter"/>

                        <fo:flow flow-name="xsl-region-body">
                                <!-- Clause(s) -->
                                <fo:block>
                                        <xsl:apply-templates select="/nist:nist-standard/nist:sections/*"/>

                                        <xsl:apply-templates select="/nist:nist-standard/nist:annex"/>

                                        <!-- Bibliography -->
                                        <xsl:apply-templates select="/nist:nist-standard/nist:bibliography"/>

                                </fo:block>

                        </fo:flow>
                </fo:page-sequence>

        </fo:root>
</xsl:template>

<xsl:template match="node()">           
        <xsl:apply-templates/>                  
</xsl:template>

<!-- ============================= -->
<!-- CONTENTS                                       -->
<!-- ============================= -->
<xsl:template match="node()" mode="contents">           
        <xsl:apply-templates mode="contents"/>                  
</xsl:template>

<!-- element with title -->
<xsl:template match="*[nist:title]" mode="contents">
        <xsl:variable name="level">
                <xsl:call-template name="getLevel">
                        <xsl:with-param name="depth" select="nist:title/@depth"/>
                </xsl:call-template>
        </xsl:variable>

        <xsl:variable name="display">
                <xsl:choose>
                        <xsl:when test="ancestor::nist:annex and $level &gt;= 2">false</xsl:when>
                        <xsl:when test="$level &gt; 3">false</xsl:when>
                        <xsl:otherwise>true</xsl:otherwise>
                </xsl:choose>
        </xsl:variable>

        <xsl:variable name="skip">
                <xsl:choose>
                        <xsl:when test="ancestor-or-self::nist:bibitem">true</xsl:when>
                        <xsl:when test="ancestor-or-self::nist:term">true</xsl:when>                            
                        <xsl:otherwise>false</xsl:otherwise>
                </xsl:choose>
        </xsl:variable>

        <xsl:if test="$skip = 'false'">

                <xsl:variable name="section">
                        <xsl:call-template name="getSection"/>
                </xsl:variable>

                <xsl:variable name="title">
                        <xsl:call-template name="getName"/>
                </xsl:variable>

                <xsl:variable name="type">
                        <xsl:value-of select="local-name()"/>
                </xsl:variable>

                <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" display="{$display}">
                        <title>
                                <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
                        </title>
                        <xsl:apply-templates mode="contents"/>
                </item>
        </xsl:if>
</xsl:template>

<xsl:template match="nist:bibitem" mode="contents"/>

<!-- ============================= -->
<!-- ============================= -->

<xsl:template match="/*/*[local-name() = 'preface']/*" priority="3">            
        <fo:block>
                <xsl:call-template name="setId"/>
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<!-- ============================= -->
<!-- Authority -->
<!-- ============================= -->
<xsl:template match="/nist:nist-standard/nist:boilerplate/nist:feedback-statement/nist:clause" priority="2">
        <fo:block id="{@id}" font-family="Arial" font-size="12pt" space-before="6pt">
        <xsl:apply-templates>
                <xsl:with-param name="margin">12pt</xsl:with-param>
        </xsl:apply-templates>
        </fo:block>
</xsl:template>
<!-- ============================= -->
<!-- ============================= -->

<!-- ============================= -->
<!-- PARAGRAPHS                                    -->
<!-- ============================= -->
<xsl:template match="nist:p">
        <xsl:param name="margin"/>
        <fo:block>
                <xsl:attribute name="margin-bottom">
                        <xsl:choose>
                                <xsl:when test="(local-name(..) = 'td' or local-name(..) = 'th') and ancestor::nist:annex">0</xsl:when>
                                <xsl:when test="$margin != ''"><xsl:value-of select="$margin"/></xsl:when>
                                <xsl:otherwise>12pt</xsl:otherwise>
                        </xsl:choose>
                </xsl:attribute>
                <xsl:attribute name="text-align">
                        <xsl:choose>
                                <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
                                <xsl:when test="ancestor::nist:preface or ancestor::nist:boilerplate">justify</xsl:when>
                                <xsl:otherwise>left</xsl:otherwise>
                        </xsl:choose>
                </xsl:attribute>
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<xsl:template match="nist:admonition">
        <fo:block-container border="1pt solid black" margin-left="-2mm" margin-right="-2mm" padding-top="6mm" padding-bottom="7mm" background-color="rgb(222,222,222)">
                <fo:block margin-left="8mm" margin-right="8mm">
                        <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
                                <xsl:choose>
                                        <xsl:when test="@type='important'"><xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@type))"/></xsl:when>
                                        <xsl:when test="@type='tip'">
                                                <xsl:apply-templates select="nist:name" mode="process"/>
                                        </xsl:when>
                                        <xsl:otherwise>
                                                <xsl:apply-templates select="nist:name" mode="process"/>
                                        </xsl:otherwise>
                                </xsl:choose>
                        </fo:block>
                        <xsl:apply-templates/>
                </fo:block>
        </fo:block-container>
        <fo:block margin-bottom="6pt"> </fo:block>
</xsl:template>

<xsl:template match="nist:admonition/nist:name"/>
<xsl:template match="nist:admonition/nist:name" mode="process">
        <xsl:apply-templates/>
</xsl:template>

<xsl:template match="nist:admonition/nist:p">
        <fo:block><xsl:apply-templates/></fo:block>
</xsl:template>

<!-- ============================= -->
<!-- ============================= -->

<!-- ============================= -->
<!-- Bibliography -->
<!-- ============================= -->

        <!-- Examples:
        [b-ASM] b-ASM, http://www.eecs.umich.edu/gasm/ (accessed 20 March 2018).
        [b-Börger & Stärk]      b-Börger & Stärk, Börger, E., and Stärk, R. S. (2003), Abstract State Machines: A Method for High-Level System Design and Analysis, Springer-Verlag.
        -->
<xsl:template match="nist:bibitem">
        <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm">
                <fo:list-item>
                        <fo:list-item-label end-indent="label-end()">
                                <fo:block>
                                        <fo:inline id="{@id}">
                                                <!-- <xsl:number format="[1]"/> -->
                                                <xsl:value-of select="nist:docidentifier[@display = 'true']"/>
                                        </fo:inline>
                                </fo:block>
                        </fo:list-item-label>
                        <fo:list-item-body start-indent="body-start()">
                                <fo:block>
                                        <xsl:apply-templates select="nist:formattedref"/>
                                </fo:block>
                        </fo:list-item-body>
                </fo:list-item>
        </fo:list-block>
</xsl:template>

<xsl:template match="nist:formattedref">
        <xsl:apply-templates/>
</xsl:template>
<!-- ============================= -->
<!-- ============================= -->

<!-- ====== -->
<!-- title      -->
<!-- ====== --> 

<xsl:template match="nist:legal-statement//nist:title">
        <fo:block font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt" color="{$color}" keep-with-next="always">
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<xsl:template match="nist:executivesummary//nist:title">
        <fo:block-container color="white" background-color="black" margin-bottom="12pt" keep-with-next="always">
                <fo:block font-family="Arial" font-size="12pt" font-weight="bold" text-align="left" margin-left="4mm" padding-top="1mm">
                        <xsl:apply-templates/>
                </fo:block>
        </fo:block-container>
</xsl:template>

<xsl:template match="nist:preface//nist:title" priority="3">
        <fo:block font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" space-before="12pt" margin-bottom="12pt" color="{$color}" keep-with-next="always">
                <xsl:if test="local-name(..) = 'acknowledgements'">
                        <xsl:attribute name="space-before">18pt</xsl:attribute>
                </xsl:if>
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<xsl:template match="/nist:nist-standard/nist:bibliography">
        <fo:block break-after="page"/>
        <xsl:apply-templates/>
</xsl:template>

<xsl:template match="nist:references">
        <fo:block id="{@id}">
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>
<xsl:template match="nist:references/nist:title">
        <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="5mm" margin-left="-0.5mm" margin-right="-0.5mm">
                <fo:block font-family="Arial" font-size="12pt" font-weight="bold" margin-left="1mm" padding-top="0.3mm">
                        <xsl:apply-templates/>                          
                </fo:block>
        </fo:block-container>
</xsl:template>

<xsl:template match="nist:title">

        <xsl:variable name="level">
                <xsl:call-template name="getLevel"/>
        </xsl:variable>

        <xsl:variable name="font-size">
                <xsl:choose>
                        <xsl:when test="$level = 1">12pt</xsl:when>
                        <xsl:when test="$level &gt;= 2">11pt</xsl:when>
                        <xsl:otherwise>11pt</xsl:otherwise>
                </xsl:choose>
        </xsl:variable>

        <xsl:variable name="space-after">
                <xsl:choose>
                                <xsl:when test="$level = 2">12pt</xsl:when>
                                <xsl:otherwise>6pt</xsl:otherwise>
                        </xsl:choose>
        </xsl:variable>

        <xsl:choose>                    
                <xsl:when test="ancestor::nist:annex and $level &gt;= 3">
                        <fo:block font-family="Arial" font-size="11pt" font-weight="bold" margin-top="3pt" margin-bottom="12pt">                                        
                                <xsl:apply-templates/>
                        </fo:block>
                </xsl:when>
                <xsl:when test="ancestor::nist:annex and $level &gt;= 2">
                        <fo:block font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-top="3pt" margin-bottom="12pt">                                    
                                <xsl:apply-templates/>
                        </fo:block>
                </xsl:when>
                <xsl:when test="$level = 1">
                        <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="6mm" margin-left="-2mm" margin-right="-2mm">
                                <fo:block font-family="Arial" font-size="{$font-size}" font-weight="bold" text-align="left" keep-with-next="always" margin-left="4mm" padding-top="1mm">                                        
                                        <xsl:apply-templates/>
                                </fo:block>
                        </fo:block-container>
                </xsl:when>
                <xsl:otherwise>
                        <fo:block font-family="Arial" font-size="{$font-size}" color="{$color}" font-weight="bold" text-align="left" space-after="{$space-after}" keep-with-next="always">                                      
                                        <xsl:apply-templates/>
                                </fo:block>
                </xsl:otherwise>
        </xsl:choose>
</xsl:template>

<!-- ====== -->
<!-- ====== --> 

<xsl:template match="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn" priority="2">
        <fo:footnote>
                <xsl:variable name="number">
                        <xsl:number level="any" count="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn"/>
                </xsl:variable>
                <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
                        <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
                                <xsl:value-of select="$number + count(//nist:bibitem//nist:note)"/>
                        </fo:basic-link>
                </fo:inline>
                <fo:footnote-body>
                        <fo:block-container margin-left="3mm">
                                <fo:block font-size="9pt" font-family="Times New Roman" font-style="normal" font-weight="normal" margin-left="-3mm" margin-top="6pt" margin-bottom="12pt" start-indent="0mm" text-indent="-2mm" line-height="10pt" page-break-inside="avoid">
                                        <fo:inline id="footnote_{@reference}_{$number}" font-size="75%" keep-with-next.within-line="always" vertical-align="super" padding-right="1mm"> <!-- alignment-baseline="hanging" -->
                                                <xsl:value-of select="$number + count(//nist:bibitem//nist:note)"/>
                                        </fo:inline>
                                        <xsl:for-each select="nist:p">
                                                <xsl:apply-templates/>
                                        </xsl:for-each>
                                </fo:block>
                        </fo:block-container>
                </fo:footnote-body>
        </fo:footnote>
</xsl:template>

<xsl:template match="*[local-name()='tt']" priority="2">
        <xsl:variable name="element-name">
                <xsl:choose>
                        <xsl:when test="normalize-space(ancestor::nist:p[1]//text()[not(parent::nist:tt)]) != ''">fo:inline</xsl:when>
                        <xsl:otherwise>fo:block</xsl:otherwise>
                </xsl:choose>
        </xsl:variable>
        <xsl:element name="{$element-name}">
                <xsl:attribute name="font-family">Courier</xsl:attribute>                       
                <xsl:attribute name="font-size">
                        <xsl:choose>
                                <xsl:when test="ancestor::*[local-name()='note']">9pt</xsl:when>
                                <xsl:otherwise>10pt</xsl:otherwise>
                        </xsl:choose>
                </xsl:attribute>
                <xsl:attribute name="text-align">center</xsl:attribute>
                <xsl:apply-templates/>
        </xsl:element>
</xsl:template>

<xsl:template match="nist:ul | nist:ol" mode="ul_ol">
        <fo:list-block>
                <xsl:apply-templates/>
        </fo:list-block>
        <xsl:apply-templates select="./nist:note" mode="process"/>
</xsl:template>

<xsl:template match="nist:ul//nist:note |  nist:ol//nist:note" priority="2"/>
<xsl:template match="nist:ul//nist:note  | nist:ol//nist:note" mode="process">
        <fo:block id="{@id}">                   
                <xsl:apply-templates mode="process"/>
        </fo:block>
</xsl:template>

<xsl:template match="nist:ul//nist:note/nist:name  | nist:ol//nist:note/nist:name" mode="process" priority="2"/>

<xsl:template match="nist:ul//nist:note/nist:p  | nist:ol//nist:note/nist:p" mode="process" priority="2">
        <fo:block font-size="11pt" margin-top="4pt">
                <xsl:apply-templates select="../nist:name" mode="presentation"/>                        
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<xsl:template match="nist:ul//nist:note/*  | nist:ol//nist:note/*" mode="process">              
        <fo:block font-size="11pt">
                <xsl:apply-templates select="."/>
        </fo:block>
</xsl:template>

<xsl:template match="nist:li">
        <xsl:variable name="level">
                <xsl:variable name="numtmp">
                        <xsl:number level="multiple" count="nist:ol"/>
                </xsl:variable>
                <!-- level example: 1.1
                        calculate counts of '.' in numtmp value - level of nested lists
                -->
                <xsl:value-of select="string-length($numtmp) - string-length(translate($numtmp, '.', '')) + 1"/>
        </xsl:variable>
        <fo:list-item>
                <fo:list-item-label end-indent="label-end()">
                        <fo:block>
                                <xsl:choose>
                                        <!-- <xsl:when test="local-name(..) = 'ul'">&#x2014;</xsl:when>--> <!-- dash -->
                                        <xsl:when test="local-name(..) = 'ul'">•</xsl:when>
                                        <xsl:otherwise> <!-- for ordered lists -->
                                                <xsl:choose>
                                                        <xsl:when test="../@class = 'steps'">
                                                                <xsl:number format="1."/>
                                                        </xsl:when>
                                                        <xsl:when test="../@type = 'arabic'">
                                                                <xsl:number format="a)" lang="en"/>
                                                        </xsl:when>
                                                        <xsl:when test="../@type = 'alphabet'">
                                                                <xsl:number format="1)"/>
                                                        </xsl:when>
                                                        <xsl:when test="ancestor::*[nist:annex]">
                                                                <xsl:choose>
                                                                        <xsl:when test="$level = 1">
                                                                                <xsl:number format="a)" lang="en"/>
                                                                        </xsl:when>
                                                                        <xsl:when test="$level = 2">
                                                                                <xsl:number format="i)"/>
                                                                        </xsl:when>
                                                                        <xsl:otherwise>
                                                                                <xsl:number format="1.)"/>
                                                                        </xsl:otherwise>
                                                                </xsl:choose>
                                                        </xsl:when>
                                                        <xsl:otherwise>
                                                                <xsl:number format="1."/>
                                                        </xsl:otherwise>
                                                </xsl:choose>
                                        </xsl:otherwise>
                                </xsl:choose>
                        </fo:block>
                </fo:list-item-label>
                <fo:list-item-body start-indent="body-start()">
                        <fo:block>
                                <xsl:apply-templates/>
                                <xsl:apply-templates select=".//nist:note" mode="process"/>
                        </fo:block>
                </fo:list-item-body>
        </fo:list-item>
</xsl:template>

<xsl:template match="nist:li//nist:p">
        <xsl:variable name="num"><xsl:number/></xsl:variable>
        <fo:block margin-bottom="6pt">
                <xsl:if test="$num &gt;= 2">
                        <xsl:attribute name="font-size">11pt</xsl:attribute>
                </xsl:if>
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<xsl:template match="nist:link" priority="2">
        <xsl:if test="ancestor::*[local-name()='formattedref']">
                <xsl:value-of select="$linebreak"/>
        </xsl:if>
        <fo:inline color="blue" text-decoration="underline">
                <xsl:call-template name="link"/>
        </fo:inline>
</xsl:template>

<xsl:template match="nist:formula/nist:stem" name="formula-nist" priority="2">
        <fo:block margin-top="6pt"> <!--  text-align="center" -->
                <fo:table table-layout="fixed" width="100%">
                        <fo:table-column column-width="95%"/>
                        <fo:table-column column-width="5%"/>
                        <fo:table-body>
                                <fo:table-row>
                                        <fo:table-cell>
                                                <fo:block text-align="center">
                                                        <xsl:if test="ancestor::nist:annex">
                                                                <xsl:attribute name="text-align">left</xsl:attribute>
                                                                <xsl:attribute name="margin-left">7mm</xsl:attribute>
                                                        </xsl:if>
                                                        <xsl:apply-templates/>
                                                </fo:block>
                                        </fo:table-cell>
                                        <fo:table-cell> <!--  display-align="center" -->
                                                <fo:block text-align="right">
                                                        <xsl:apply-templates select="../nist:name" mode="presentation"/>
                                                </fo:block>
                                        </fo:table-cell>
                                </fo:table-row>
                        </fo:table-body>
                </fo:table>                     
        </fo:block>
</xsl:template>

<xsl:template match="nist:formula" mode="process">
        <xsl:call-template name="formula-nist"/>
</xsl:template>

<xsl:template match="nist:terms[nist:term[nist:preferred and nist:definition]]">
        <fo:block id="{@id}">
                <fo:table width="100%" table-layout="fixed">
                        <fo:table-column column-width="22%"/>
                        <fo:table-column column-width="78%"/>
                        <fo:table-body>
                                <xsl:apply-templates mode="table"/>
                        </fo:table-body>
                </fo:table>
        </fo:block>
</xsl:template>
<xsl:template match="nist:term" mode="table">
        <fo:table-row id="{@id}">
                <fo:table-cell padding-right="1mm">
                        <fo:block margin-bottom="12pt">
                                <xsl:apply-templates select="nist:preferred"/>
                        </fo:block>
                </fo:table-cell>
                <fo:table-cell>
                        <fo:block margin-bottom="12pt">
                                <xsl:apply-templates select="nist:*[local-name(.) != 'preferred']"/>
                        </fo:block>
                </fo:table-cell>
        </fo:table-row>
</xsl:template>
<xsl:template match="nist:preferred">
        <fo:inline>
                <xsl:apply-templates/>
        </fo:inline>
</xsl:template>
<xsl:template match="nist:definition/nist:p" priority="2">
        <fo:block>
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<xsl:template match="nist:quote" priority="2">  
        <fo:block-container margin-left="0mm">
                <xsl:if test="parent::*[local-name() = 'note']">
                        <xsl:if test="not(ancestor::*[local-name() = 'table'])">
                                <xsl:attribute name="margin-left">5mm</xsl:attribute>
                        </xsl:if>
                </xsl:if>
                <fo:block-container margin-left="0mm">

                        <fo:block-container margin-left="7mm" margin-right="7mm">
                                <fo:block>
                                        <xsl:apply-templates/>
                                        <xsl:apply-templates select="nist:author" mode="process"/>
                                </fo:block>
                        </fo:block-container>

                </fo:block-container>
        </fo:block-container>
</xsl:template>

<xsl:template match="nist:quote/nist:author" priority="2"/>
<xsl:template match="nist:quote/nist:p" priority="2">
        <fo:block text-align="justify" margin-bottom="12pt">
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>
<xsl:template match="nist:quote/nist:author" mode="process" priority="2">
        <fo:block text-align="right" margin-left="0.5in" margin-right="0.5in">
                <fo:inline>— </fo:inline>
                <xsl:apply-templates/>
        </fo:block>
</xsl:template>

<xsl:template name="insertHeaderFooter">
        <xsl:call-template name="insertHeader"/>
        <xsl:call-template name="insertFooter"/>
</xsl:template>

<xsl:template name="insertHeader">
        <fo:static-content flow-name="header" font-family="Arial" font-size="7.5pt">
                <fo:block-container height="1in" display-align="before" color="{$color}">
                        <fo:block padding-top="0.5in" margin-bottom="7pt" line-height="115%"> <!-- text-align-last="justify" -->
                                <fo:table table-layout="fixed" width="100%">
                                        <fo:table-column column-width="70%"/>
                                        <fo:table-column column-width="30%"/>
                                        <fo:table-body>
                                                <fo:table-row>
                                                        <fo:table-cell>
                                                                <fo:block>
                                                                        <xsl:call-template name="recursiveSmallCaps">
                                                                                <xsl:with-param name="text" select="$seriestitle"/>
                                                                        </xsl:call-template>
                                                                </fo:block>
                                                        </fo:table-cell>
                                                        <fo:table-cell>
                                                                <fo:block text-align="right">
                                                                        <xsl:call-template name="recursiveSmallCaps">
                                                                                <xsl:with-param name="text" select="$title"/>
                                                                        </xsl:call-template>
                                                                </fo:block>
                                                        </fo:table-cell>
                                                </fo:table-row>
                                        </fo:table-body>
                                </fo:table>                                     
                        </fo:block>                             
                </fo:block-container>
        </fo:static-content>
</xsl:template>

<xsl:template name="insertFooter">
        <fo:static-content flow-name="footer" font-size="11pt">
                <fo:block-container height="1in" display-align="after" color="{$color}">
                        <fo:block text-align="center" padding-bottom="0.65in"><fo:page-number/></fo:block>
                </fo:block-container>
        </fo:static-content>
</xsl:template>

<xsl:variable name="Image-NIST-Logo">
        <xsl:text>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</xsl:text>
</xsl:variable>

<!-- convert YYYY-MM-DD to (Month YYYY) -->
<xsl:template name="formatDate">
        <xsl:param name="date"/>
        <xsl:variable name="year" select="substring($date, 1, 4)"/>
        <xsl:variable name="month" select="substring($date, 6, 2)"/>
        <xsl:variable name="day" select="substring($date, 9)"/>
        <xsl:variable name="monthStr">
                <xsl:choose>
                        <xsl:when test="$month = '01'">January</xsl:when>
                        <xsl:when test="$month = '02'">February</xsl:when>
                        <xsl:when test="$month = '03'">March</xsl:when>
                        <xsl:when test="$month = '04'">April</xsl:when>
                        <xsl:when test="$month = '05'">May</xsl:when>
                        <xsl:when test="$month = '06'">June</xsl:when>
                        <xsl:when test="$month = '07'">July</xsl:when>
                        <xsl:when test="$month = '08'">August</xsl:when>
                        <xsl:when test="$month = '09'">September</xsl:when>
                        <xsl:when test="$month = '10'">October</xsl:when>
                        <xsl:when test="$month = '11'">November</xsl:when>
                        <xsl:when test="$month = '12'">December</xsl:when>
                </xsl:choose>
        </xsl:variable>
        <xsl:variable name="result" select="normalize-space(concat($monthStr, ' ', $day, ', ', $year))"/>
        <xsl:value-of select="$result"/>
</xsl:template>

<xsl:variable name=“titles” select=“xalan:nodeset($titles_)”/><xsl:variable name=“titles_”>

              <title-annex lang="en">Annex </title-annex>
              <title-annex lang="fr">Annexe </title-annex>

                      <title-annex lang="zh">Annex </title-annex>

              <title-edition lang="en">

                              <xsl:text>Edition </xsl:text>

              </title-edition>

              <title-edition lang="fr">

                              <xsl:text>Édition </xsl:text>

              </title-edition>

              <title-toc lang="en">

                              <xsl:text>Table of Contents</xsl:text>

              </title-toc>
              <title-toc lang="fr">

                              <xsl:text>Sommaire</xsl:text>

                      </title-toc>

                      <title-toc lang="zh">Contents</title-toc>

              <title-page lang="en">Page</title-page>
              <title-page lang="fr">Page</title-page>

              <title-key lang="en">Key</title-key>
              <title-key lang="fr">Légende</title-key>

              <title-where lang="en">where</title-where>
              <title-where lang="fr">où</title-where>

              <title-descriptors lang="en">Descriptors</title-descriptors>

              <title-part lang="en">

              </title-part>
              <title-part lang="fr">

              </title-part>           
              <title-part lang="zh">第 # 部分:</title-part>

              <title-subpart lang="en">                       

              </title-subpart>
              <title-subpart lang="fr">               

              </title-subpart>

              <title-modified lang="en">modified</title-modified>
              <title-modified lang="fr">modifiée</title-modified>

                      <title-modified lang="zh">modified</title-modified>

              <title-source lang="en">

                              <xsl:text>SOURCE</xsl:text>

              </title-source>

              <title-keywords lang="en">Keywords</title-keywords>

              <title-deprecated lang="en">DEPRECATED</title-deprecated>
              <title-deprecated lang="fr">DEPRECATED</title-deprecated>

              <title-list-tables lang="en">List of Tables</title-list-tables>

              <title-list-figures lang="en">List of Figures</title-list-figures>

              <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>

              <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>

              <title-abstract lang="en">Abstract</title-abstract>

              <title-summary lang="en">Summary</title-summary>

              <title-in lang="en">in </title-in>

              <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
              <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>

              <title-completion-date lang="en">Completion date for this manuscript</title-completion-date>
              <title-completion-date lang="zh">本稿完成日期</title-completion-date>

              <title-issuance-date lang="en">Issuance Date: #</title-issuance-date>
              <title-issuance-date lang="zh"># 发布</title-issuance-date>

              <title-implementation-date lang="en">Implementation Date: #</title-implementation-date>
              <title-implementation-date lang="zh"># 实施</title-implementation-date>

              <title-obligation-normative lang="en">normative</title-obligation-normative>
              <title-obligation-normative lang="zh">规范性附录</title-obligation-normative>

              <title-caution lang="en">CAUTION</title-caution>
              <title-caution lang="zh">注意</title-caution>

              <title-warning lang="en">WARNING</title-warning>
              <title-warning lang="zh">警告</title-warning>

              <title-amendment lang="en">AMENDMENT</title-amendment>

              <title-continued lang="en">(continued)</title-continued>
              <title-continued lang="fr">(continué)</title-continued>

      </xsl:variable><xsl:variable name="bibdata">
              <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
              <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
      </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
              <xsl:param name="name"/>
              <xsl:param name="lang"/>
              <xsl:variable name="lang_">
                      <xsl:choose>
                              <xsl:when test="$lang != ''">
                                      <xsl:value-of select="$lang"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:call-template name="getLang"/>
                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <xsl:variable name="language" select="normalize-space($lang_)"/>
              <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
              <xsl:choose>
                      <xsl:when test="normalize-space($title_) != ''">
                              <xsl:value-of select="$title_"/>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">

      </xsl:attribute-set><xsl:attribute-set name="link-style">

      </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
              <xsl:attribute name="white-space">pre</xsl:attribute>
              <xsl:attribute name="wrap-option">wrap</xsl:attribute>

                      <xsl:attribute name="font-family">Courier</xsl:attribute>                       
                      <xsl:attribute name="margin-top">6pt</xsl:attribute>
                      <xsl:attribute name="margin-bottom">6pt</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="permission-style">

      </xsl:attribute-set><xsl:attribute-set name="permission-name-style">

      </xsl:attribute-set><xsl:attribute-set name="permission-label-style">

      </xsl:attribute-set><xsl:attribute-set name="requirement-style">

      </xsl:attribute-set><xsl:attribute-set name="requirement-name-style">

      </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">

      </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
      </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
      </xsl:attribute-set><xsl:attribute-set name="recommendation-style">

      </xsl:attribute-set><xsl:attribute-set name="recommendation-name-style">

      </xsl:attribute-set><xsl:attribute-set name="recommendation-label-style">

      </xsl:attribute-set><xsl:attribute-set name="termexample-style">

      </xsl:attribute-set><xsl:attribute-set name="example-style">

                      <xsl:attribute name="font-size">11pt</xsl:attribute>
                      <xsl:attribute name="margin-top">12pt</xsl:attribute>
                      <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
                      <xsl:attribute name="margin-left">15mm</xsl:attribute>                  

      </xsl:attribute-set><xsl:attribute-set name="example-body-style">

      </xsl:attribute-set><xsl:attribute-set name="example-name-style">

                      <xsl:attribute name="font-size">10pt</xsl:attribute>
                      <xsl:attribute name="font-weight">bold</xsl:attribute>                  
                      <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
                      <xsl:attribute name="keep-with-next">always</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="example-p-style">

                      <xsl:attribute name="margin-bottom">12pt</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">

      </xsl:attribute-set><xsl:attribute-set name="table-name-style">
              <xsl:attribute name="keep-with-next">always</xsl:attribute>

                      <xsl:attribute name="font-weight">bold</xsl:attribute>
                      <xsl:attribute name="text-align">center</xsl:attribute>
                      <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
                      <xsl:attribute name="font-family">Arial</xsl:attribute>
                      <xsl:attribute name="font-size">9pt</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="appendix-style">

      </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">

      </xsl:attribute-set><xsl:attribute-set name="xref-style">

                      <xsl:attribute name="color">blue</xsl:attribute>
                      <xsl:attribute name="text-decoration">underline</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="eref-style">

                      <xsl:attribute name="color">blue</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="note-style">

                      <xsl:attribute name="font-size">11pt</xsl:attribute>
                      <xsl:attribute name="space-before">4pt</xsl:attribute>

      </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">

      </xsl:attribute-set><xsl:attribute-set name="note-p-style">

                      <xsl:attribute name="space-before">4pt</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="termnote-style">

                      <xsl:attribute name="margin-top">4pt</xsl:attribute>                    

      </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">              

      </xsl:attribute-set><xsl:attribute-set name="quote-style">              

      </xsl:attribute-set><xsl:attribute-set name="quote-source-style">               

      </xsl:attribute-set><xsl:attribute-set name="termsource-style">

      </xsl:attribute-set><xsl:attribute-set name="origin-style">

      </xsl:attribute-set><xsl:attribute-set name="term-style">

      </xsl:attribute-set><xsl:attribute-set name="figure-name-style">

                      <xsl:attribute name="font-weight">bold</xsl:attribute>
                      <xsl:attribute name="text-align">center</xsl:attribute>                 
                      <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
                      <xsl:attribute name="keep-with-previous">always</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="formula-style">

      </xsl:attribute-set><xsl:attribute-set name="image-style">
              <xsl:attribute name="text-align">center</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">

      </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">

                      <xsl:attribute name="width">75%</xsl:attribute>
                      <xsl:attribute name="content-height">100%</xsl:attribute>
                      <xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
                      <xsl:attribute name="scaling">uniform</xsl:attribute>                   

      </xsl:attribute-set><xsl:attribute-set name="tt-style">

      </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
              <xsl:attribute name="font-size">11pt</xsl:attribute>
              <xsl:attribute name="font-weight">bold</xsl:attribute>
              <xsl:attribute name="text-align">center</xsl:attribute>
              <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
              <xsl:attribute name="keep-with-previous">always</xsl:attribute>

      </xsl:attribute-set><xsl:attribute-set name="domain-style">

      </xsl:attribute-set><xsl:attribute-set name="admitted-style">

      </xsl:attribute-set><xsl:attribute-set name="deprecates-style">

      </xsl:attribute-set><xsl:attribute-set name="definition-style">

      </xsl:attribute-set><xsl:variable name="color-added-text">
              <xsl:text>rgb(0, 255, 0)</xsl:text>
      </xsl:variable><xsl:attribute-set name="add-style">
              <xsl:attribute name="color">red</xsl:attribute>
              <xsl:attribute name="text-decoration">underline</xsl:attribute>
              <!-- <xsl:attribute name="color">black</xsl:attribute>
              <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
              <xsl:attribute name="padding-top">1mm</xsl:attribute>
              <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
      </xsl:attribute-set><xsl:variable name="color-deleted-text">
              <xsl:text>red</xsl:text>
      </xsl:variable><xsl:attribute-set name="del-style">
              <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
              <xsl:attribute name="text-decoration">line-through</xsl:attribute>
      </xsl:attribute-set><xsl:attribute-set name="mathml-style">
              <xsl:attribute name="font-family">STIX Two Math</xsl:attribute>

      </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
      </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
              <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>                   

              <!-- Normative references  -->
              <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>       
              <!-- Terms and definitions -->
              <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] |                        /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] |                       /*/*[local-name()='sections']/*[local-name()='definitions'] |                        /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>         
              <!-- Another main sections -->
              <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and                                                local-name() != 'definitions' and                                                not(@type='scope') and                                               not(local-name() = 'clause' and .//*[local-name()='terms']) and                                               not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
              <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>              
              <!-- Bibliography -->
              <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
      </xsl:template><xsl:template name="processPrefaceSectionsDefault">
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
              <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
      </xsl:template><xsl:template name="processMainSectionsDefault">                 
              <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>

              <!-- Normative references  -->
              <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
              <!-- Terms and definitions -->
              <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] |                        /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] |                       /*/*[local-name()='sections']/*[local-name()='definitions'] |                        /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
              <!-- Another main sections -->
              <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and                                                local-name() != 'definitions' and                                                not(@type='scope') and                                               not(local-name() = 'clause' and .//*[local-name()='terms']) and                                               not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
              <xsl:apply-templates select="/*/*[local-name()='annex']"/>
              <!-- Bibliography -->
              <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
      </xsl:template><xsl:template match="text()">
              <xsl:value-of select="."/>
      </xsl:template><xsl:template match="*[local-name()='br']">
              <xsl:value-of select="$linebreak"/>
      </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
              <!-- <xsl:call-template name="add-zero-spaces"/> -->
              <xsl:call-template name="add-zero-spaces-java"/>
      </xsl:template><xsl:template match="*[local-name()='table']" name="table">

              <xsl:variable name="table-preamble">

              </xsl:variable>

              <xsl:variable name="table">

                      <xsl:variable name="simple-table">      
                              <xsl:call-template name="getSimpleTable"/>                      
                      </xsl:variable>

                      <!-- <xsl:if test="$namespace = 'bipm'">
                              <fo:block>&#xA0;</fo:block>                             
                      </xsl:if> -->

                      <!-- $namespace = 'iso' or  -->

                              <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>

                      <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>

                      <!-- <xsl:variable name="cols-count">
                              <xsl:choose>
                                      <xsl:when test="*[local-name()='thead']">
                                              <xsl:call-template name="calculate-columns-numbers">
                                                      <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
                                              </xsl:call-template>
                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:call-template name="calculate-columns-numbers">
                                                      <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
                                              </xsl:call-template>
                                      </xsl:otherwise>
                              </xsl:choose>
                      </xsl:variable> -->
                      <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
                      <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->

                      <xsl:variable name="colwidths">
                              <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
                                      <xsl:call-template name="calculate-column-widths">
                                              <xsl:with-param name="cols-count" select="$cols-count"/>
                                              <xsl:with-param name="table" select="$simple-table"/>
                                      </xsl:call-template>
                              </xsl:if>
                      </xsl:variable>
                      <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->

                      <!-- <xsl:variable name="colwidths2">
                              <xsl:call-template name="calculate-column-widths">
                                      <xsl:with-param name="cols-count" select="$cols-count"/>
                              </xsl:call-template>
                      </xsl:variable> -->

                      <!-- cols-count=<xsl:copy-of select="$cols-count"/>
                      colwidthsNew=<xsl:copy-of select="$colwidths"/>
                      colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->

                      <xsl:variable name="margin-left">
                              <xsl:choose>
                                      <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
                                      <xsl:otherwise>0</xsl:otherwise>
                              </xsl:choose>
                      </xsl:variable>

                      <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">                   

                                      <xsl:attribute name="space-after">6pt</xsl:attribute>

                                      <xsl:if test="ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface']">
                                              <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
                                              <xsl:attribute name="font-size">10pt</xsl:attribute>
                                      </xsl:if>
                                      <xsl:if test="not(ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface'])">
                                              <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
                                              <xsl:attribute name="font-size">12pt</xsl:attribute>
                                      </xsl:if>
                                      <xsl:attribute name="margin-bottom">12pt</xsl:attribute>

                              <xsl:variable name="table_width">
                                      <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
                                      100%

                              </xsl:variable>

                              <xsl:variable name="table_attributes">
                                      <attribute name="table-layout">fixed</attribute>
                                      <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
                                      <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
                                      <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>

                              </xsl:variable>

                              <fo:table id="{@id}" table-omit-footer-at-break="true">

                                      <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">                                      
                                              <xsl:attribute name="{@name}">
                                                      <xsl:value-of select="."/>
                                              </xsl:attribute>
                                      </xsl:for-each>

                                      <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>                           
                                      <xsl:if test="$isNoteOrFnExist = 'true'">
                                              <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer  -->
                                      </xsl:if>

                                      <xsl:choose>
                                              <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
                                                      <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
                                                              <fo:table-column column-width="{@width}"/>
                                                      </xsl:for-each>
                                              </xsl:when>
                                              <xsl:otherwise>
                                                      <xsl:for-each select="xalan:nodeset($colwidths)//column">
                                                              <xsl:choose>
                                                                      <xsl:when test=". = 1 or . = 0">
                                                                              <fo:table-column column-width="proportional-column-width(2)"/>
                                                                      </xsl:when>
                                                                      <xsl:otherwise>
                                                                              <fo:table-column column-width="proportional-column-width({.})"/>
                                                                      </xsl:otherwise>
                                                              </xsl:choose>
                                                      </xsl:for-each>
                                              </xsl:otherwise>
                                      </xsl:choose>

                                      <xsl:choose>
                                              <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
                                                      <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
                                              </xsl:when>
                                              <xsl:otherwise>
                                                      <xsl:apply-templates/>
                                              </xsl:otherwise>
                                      </xsl:choose>

                              </fo:table>

                              <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>                             
                              <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
                                      <xsl:call-template name="insertTableFooterInSeparateTable">
                                              <xsl:with-param name="table_attributes" select="$table_attributes"/>
                                              <xsl:with-param name="colwidths" select="$colwidths"/>                          
                                              <xsl:with-param name="colgroup" select="$colgroup"/>                            
                                      </xsl:call-template>
                              </xsl:for-each>

                              <!-- insert footer as table -->
                              <!-- <fo:table>
                                      <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
                                              <xsl:attribute name="{@name}">
                                                      <xsl:value-of select="."/>
                                              </xsl:attribute>
                                      </xsl:for-each>

                                      <xsl:for-each select="xalan:nodeset($colwidths)//column">
                                              <xsl:choose>
                                                      <xsl:when test=". = 1 or . = 0">
                                                              <fo:table-column column-width="proportional-column-width(2)"/>
                                                      </xsl:when>
                                                      <xsl:otherwise>
                                                              <fo:table-column column-width="proportional-column-width({.})"/>
                                                      </xsl:otherwise>
                                              </xsl:choose>
                                      </xsl:for-each>
                              </fo:table>-->

                      </fo:block-container>
              </xsl:variable>

              <xsl:variable name="isAdded" select="@added"/>
              <xsl:variable name="isDeleted" select="@deleted"/>

              <xsl:choose>
                      <xsl:when test="@width">

                              <!-- centered table when table name is centered (see table-name-style) -->

                                      <fo:table table-layout="fixed" width="100%">
                                              <fo:table-column column-width="proportional-column-width(1)"/>
                                              <fo:table-column column-width="{@width}"/>
                                              <fo:table-column column-width="proportional-column-width(1)"/>
                                              <fo:table-body>
                                                      <fo:table-row>
                                                              <fo:table-cell column-number="2">
                                                                      <xsl:copy-of select="$table-preamble"/>
                                                                      <fo:block>
                                                                              <xsl:call-template name="setTrackChangesStyles">
                                                                                      <xsl:with-param name="isAdded" select="$isAdded"/>
                                                                                      <xsl:with-param name="isDeleted" select="$isDeleted"/>
                                                                              </xsl:call-template>
                                                                              <xsl:copy-of select="$table"/>
                                                                      </fo:block>
                                                              </fo:table-cell>
                                                      </fo:table-row>
                                              </fo:table-body>
                                      </fo:table>

                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:choose>
                                      <xsl:when test="$isAdded = 'true' or $isDeleted = 'true'">
                                              <xsl:copy-of select="$table-preamble"/>
                                              <fo:block>
                                                      <xsl:call-template name="setTrackChangesStyles">
                                                              <xsl:with-param name="isAdded" select="$isAdded"/>
                                                              <xsl:with-param name="isDeleted" select="$isDeleted"/>
                                                      </xsl:call-template>
                                                      <xsl:copy-of select="$table"/>
                                              </fo:block>
                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:copy-of select="$table-preamble"/>
                                              <xsl:copy-of select="$table"/>
                                      </xsl:otherwise>
                              </xsl:choose>
                      </xsl:otherwise>
              </xsl:choose>

      </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
              <xsl:param name="continued"/>
              <xsl:if test="normalize-space() != ''">
                      <fo:block xsl:use-attribute-sets="table-name-style">

                              <xsl:choose>
                                      <xsl:when test="$continued = 'true'"> 
                                              <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->

                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:apply-templates/>
                                      </xsl:otherwise>
                              </xsl:choose>

                      </fo:block>
              </xsl:if>
      </xsl:template><xsl:template name="calculate-columns-numbers">
              <xsl:param name="table-row"/>
              <xsl:variable name="columns-count" select="count($table-row/*)"/>
              <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
              <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
              <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
      </xsl:template><xsl:template name="calculate-column-widths">
              <xsl:param name="table"/>
              <xsl:param name="cols-count"/>
              <xsl:param name="curr-col" select="1"/>
              <xsl:param name="width" select="0"/>

              <xsl:if test="$curr-col &lt;= $cols-count">
                      <xsl:variable name="widths">
                              <xsl:choose>
                                      <xsl:when test="not($table)"><!-- this branch is not using in production, for debug only -->
                                              <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
                                                      <xsl:variable name="words">
                                                              <xsl:call-template name="tokenize">
                                                                      <xsl:with-param name="text" select="translate(*[local-name()='th'][$curr-col],'- —:', '    ')"/>
                                                              </xsl:call-template>
                                                      </xsl:variable>
                                                      <xsl:variable name="max_length">
                                                              <xsl:call-template name="max_length">
                                                                      <xsl:with-param name="words" select="xalan:nodeset($words)"/>
                                                              </xsl:call-template>
                                                      </xsl:variable>
                                                      <width>
                                                              <xsl:value-of select="$max_length"/>
                                                      </width>
                                              </xsl:for-each>
                                              <xsl:for-each select="*[local-name()='tbody']//*[local-name()='tr']">
                                                      <xsl:variable name="words">
                                                              <xsl:call-template name="tokenize">
                                                                      <xsl:with-param name="text" select="translate(*[local-name()='td'][$curr-col],'- —:', '    ')"/>
                                                              </xsl:call-template>
                                                      </xsl:variable>
                                                      <xsl:variable name="max_length">
                                                              <xsl:call-template name="max_length">
                                                                      <xsl:with-param name="words" select="xalan:nodeset($words)"/>
                                                              </xsl:call-template>
                                                      </xsl:variable>
                                                      <width>
                                                              <xsl:value-of select="$max_length"/>
                                                      </width>

                                              </xsl:for-each>
                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:for-each select="xalan:nodeset($table)/*/tr">
                                                      <xsl:variable name="td_text">
                                                              <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>

                                                              <!-- <xsl:if test="$namespace = 'bipm'">
                                                                      <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">                                                                 
                                                                              <word><xsl:value-of select="normalize-space(.)"/></word>
                                                                      </xsl:for-each>
                                                              </xsl:if> -->

                                                      </xsl:variable>
                                                      <xsl:variable name="words">
                                                              <xsl:variable name="string_with_added_zerospaces">
                                                                      <xsl:call-template name="add-zero-spaces-java">
                                                                              <xsl:with-param name="text" select="$td_text"/>
                                                                      </xsl:call-template>
                                                              </xsl:variable>
                                                              <xsl:call-template name="tokenize">
                                                                      <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', '    ')"/> -->
                                                                      <!-- 2009 thinspace -->
                                                                      <!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', '    ')"/> -->
                                                                      <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​', ' '))"/>
                                                              </xsl:call-template>
                                                      </xsl:variable>
                                                      <xsl:variable name="max_length">
                                                              <xsl:call-template name="max_length">
                                                                      <xsl:with-param name="words" select="xalan:nodeset($words)"/>
                                                              </xsl:call-template>
                                                      </xsl:variable>
                                                      <width>
                                                              <xsl:variable name="divider">
                                                                      <xsl:choose>
                                                                              <xsl:when test="td[$curr-col]/@divide">
                                                                                      <xsl:value-of select="td[$curr-col]/@divide"/>
                                                                              </xsl:when>
                                                                              <xsl:otherwise>1</xsl:otherwise>
                                                                      </xsl:choose>
                                                              </xsl:variable>
                                                              <xsl:value-of select="$max_length div $divider"/>
                                                      </width>

                                              </xsl:for-each>

                                      </xsl:otherwise>
                              </xsl:choose>
                      </xsl:variable>

                      <column>
                              <xsl:for-each select="xalan:nodeset($widths)//width">
                                      <xsl:sort select="." data-type="number" order="descending"/>
                                      <xsl:if test="position()=1">
                                                      <xsl:value-of select="."/>
                                      </xsl:if>
                              </xsl:for-each>
                      </column>
                      <xsl:call-template name="calculate-column-widths">
                              <xsl:with-param name="cols-count" select="$cols-count"/>
                              <xsl:with-param name="curr-col" select="$curr-col +1"/>
                              <xsl:with-param name="table" select="$table"/>
                      </xsl:call-template>
              </xsl:if>
      </xsl:template><xsl:template match="text()" mode="td_text">
              <xsl:variable name="zero-space">​</xsl:variable>
              <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
      </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
              <xsl:value-of select="*[local-name()='origin']/@citeas"/>
      </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
              <xsl:value-of select="@target"/>
      </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
              <xsl:variable name="mathml">
                      <xsl:for-each select="*">
                              <xsl:if test="local-name() != 'unit' and local-name() != 'prefix' and local-name() != 'dimension' and local-name() != 'quantity'">
                                      <xsl:copy-of select="."/>
                              </xsl:if>
                      </xsl:for-each>
              </xsl:variable>

              <xsl:variable name="math_text" select="normalize-space(xalan:nodeset($mathml))"/>
              <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
      </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
              <xsl:param name="cols-count"/>
              <!-- font-weight="bold" -->
              <fo:table-header>

                      <xsl:apply-templates/>
              </fo:table-header>
      </xsl:template><xsl:template name="table-header-title">
              <xsl:param name="cols-count"/>
              <!-- row for title -->
              <fo:table-row>
                      <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">

                              <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
                                      <xsl:with-param name="continued">true</xsl:with-param>
                              </xsl:apply-templates>
                              <xsl:for-each select="ancestor::*[local-name()='table'][1]">
                                      <xsl:call-template name="fn_name_display"/>
                              </xsl:for-each>

                      </fo:table-cell>
              </fo:table-row>
      </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">              
              <fo:table-body>
                      <xsl:apply-templates/>
              </fo:table-body>
      </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
              <xsl:apply-templates/>
      </xsl:template><xsl:template name="insertTableFooter">
              <xsl:param name="cols-count"/>
              <xsl:if test="../*[local-name()='tfoot']">
                      <fo:table-footer>                       
                              <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
                      </fo:table-footer>
              </xsl:if>
      </xsl:template><xsl:template name="insertTableFooter2">
              <xsl:param name="cols-count"/>
              <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
              <xsl:if test="../*[local-name()='tfoot'] or           $isNoteOrFnExist = 'true'">

                      <fo:table-footer>

                              <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>

                              <!-- if there are note(s) or fn(s) then create footer row -->
                              <xsl:if test="$isNoteOrFnExist = 'true'">

                                      <fo:table-row>
                                              <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">

                                                      <!-- fn will be processed inside 'note' processing -->

                                                      <!-- except gb -->

                                                              <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>

                                                      <!-- show Note under table in preface (ex. abstract) sections -->
                                                      <!-- empty, because notes show at page side in main sections -->
                                                      <!-- <xsl:if test="$namespace = 'bipm'">
                                                              <xsl:choose>
                                                                      <xsl:when test="ancestor::*[local-name()='preface']">                                                                           
                                                                              <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
                                                                      </xsl:when>
                                                                      <xsl:otherwise>                                                                         
                                                                      <fo:block/>
                                                                      </xsl:otherwise>
                                                              </xsl:choose>
                                                      </xsl:if> -->

                                                      <!-- horizontal row separator -->

                                                      <!-- fn processing -->
                                                      <xsl:call-template name="fn_display"/>

                                              </fo:table-cell>
                                      </fo:table-row>

                              </xsl:if>
                      </fo:table-footer>

              </xsl:if>
      </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
              <xsl:param name="table_attributes"/>
              <xsl:param name="colwidths"/>
              <xsl:param name="colgroup"/>

              <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>

              <xsl:if test="$isNoteOrFnExist = 'true'">

                      <xsl:variable name="cols-count">
                              <xsl:choose>
                                      <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
                                              <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
                                      </xsl:otherwise>
                              </xsl:choose>
                      </xsl:variable>

                      <fo:table keep-with-previous="always">
                              <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
                                      <xsl:choose>
                                              <xsl:when test="@name = 'border-top'">
                                                      <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
                                              </xsl:when>
                                              <xsl:when test="@name = 'border'">
                                                      <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
                                                      <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
                                              </xsl:when>
                                              <xsl:otherwise>
                                                      <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
                                              </xsl:otherwise>
                                      </xsl:choose>
                              </xsl:for-each>

                              <xsl:choose>
                                      <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
                                              <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
                                                      <fo:table-column column-width="{@width}"/>
                                              </xsl:for-each>
                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:for-each select="xalan:nodeset($colwidths)//column">
                                                      <xsl:choose>
                                                              <xsl:when test=". = 1 or . = 0">
                                                                      <fo:table-column column-width="proportional-column-width(2)"/>
                                                              </xsl:when>
                                                              <xsl:otherwise>
                                                                      <fo:table-column column-width="proportional-column-width({.})"/>
                                                              </xsl:otherwise>
                                                      </xsl:choose>
                                              </xsl:for-each>
                                      </xsl:otherwise>
                              </xsl:choose>

                              <fo:table-body>
                                      <fo:table-row>
                                              <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">

                                                      <!-- fn will be processed inside 'note' processing -->

                                                      <!-- except gb  -->

                                                              <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>

                                                      <!-- <xsl:if test="$namespace = 'bipm'">
                                                              <xsl:choose>
                                                                      <xsl:when test="ancestor::*[local-name()='preface']">
                                                                              show Note under table in preface (ex. abstract) sections
                                                                              <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
                                                                      </xsl:when>
                                                                      <xsl:otherwise>
                                                                              empty, because notes show at page side in main sections
                                                                      <fo:block/>
                                                                      </xsl:otherwise>
                                                              </xsl:choose>
                                                      </xsl:if> -->

                                                      <!-- horizontal row separator -->

                                                      <!-- fn processing -->
                                                      <xsl:call-template name="fn_display"/>

                                              </fo:table-cell>
                                      </fo:table-row>
                              </fo:table-body>

                      </fo:table>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name()='tbody']">

              <xsl:variable name="cols-count">
                      <xsl:choose>
                              <xsl:when test="../*[local-name()='thead']">                                    
                                      <xsl:call-template name="calculate-columns-numbers">
                                              <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
                                      </xsl:call-template>
                              </xsl:when>
                              <xsl:otherwise>                                 
                                      <xsl:call-template name="calculate-columns-numbers">
                                              <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
                                      </xsl:call-template>
                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>

              <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
                      <xsl:with-param name="cols-count" select="$cols-count"/>
              </xsl:apply-templates>

              <xsl:call-template name="insertTableFooter">
                      <xsl:with-param name="cols-count" select="$cols-count"/>
              </xsl:call-template>

              <fo:table-body>

                      <xsl:apply-templates/>
                      <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->

              </fo:table-body>

      </xsl:template><xsl:template match="*[local-name()='tr']">
              <xsl:variable name="parent-name" select="local-name(..)"/>
              <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
              <fo:table-row min-height="4mm">
                              <xsl:if test="$parent-name = 'thead'">
                                      <xsl:attribute name="font-weight">bold</xsl:attribute>

                                              <xsl:attribute name="font-family">Arial</xsl:attribute>
                                              <xsl:attribute name="font-size">10pt</xsl:attribute>

                              </xsl:if>
                              <xsl:if test="$parent-name = 'tfoot'">

                              </xsl:if>

                              <!-- <xsl:if test="$namespace = 'bipm'">
                                      <xsl:attribute name="height">8mm</xsl:attribute>
                              </xsl:if> -->

                      <xsl:apply-templates/>
              </fo:table-row>
      </xsl:template><xsl:template match="*[local-name()='th']">
              <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
                      <xsl:attribute name="text-align">
                              <xsl:choose>
                                      <xsl:when test="@align">
                                              <xsl:call-template name="setAlignment"/>
                                              <!-- <xsl:value-of select="@align"/> -->
                                      </xsl:when>
                                      <xsl:otherwise>center</xsl:otherwise>
                              </xsl:choose>
                      </xsl:attribute>

                              <xsl:attribute name="text-align">center</xsl:attribute>
                              <xsl:attribute name="background-color">black</xsl:attribute>
                              <xsl:attribute name="color">white</xsl:attribute>

                      <xsl:if test="$lang = 'ar'">
                              <xsl:attribute name="padding-right">1mm</xsl:attribute>
                      </xsl:if>
                      <xsl:if test="@colspan">
                              <xsl:attribute name="number-columns-spanned">
                                      <xsl:value-of select="@colspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:if test="@rowspan">
                              <xsl:attribute name="number-rows-spanned">
                                      <xsl:value-of select="@rowspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:call-template name="display-align"/>
                      <fo:block>
                              <xsl:apply-templates/>
                      </fo:block>
              </fo:table-cell>
      </xsl:template><xsl:template name="display-align">
              <xsl:if test="@valign">
                      <xsl:attribute name="display-align">
                              <xsl:choose>
                                      <xsl:when test="@valign = 'top'">before</xsl:when>
                                      <xsl:when test="@valign = 'middle'">center</xsl:when>
                                      <xsl:when test="@valign = 'bottom'">after</xsl:when>
                                      <xsl:otherwise>before</xsl:otherwise>
                              </xsl:choose>                                   
                      </xsl:attribute>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name()='td']">
              <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
                      <xsl:attribute name="text-align">
                              <xsl:choose>
                                      <xsl:when test="@align">
                                              <xsl:call-template name="setAlignment"/>
                                              <!-- <xsl:value-of select="@align"/> -->
                                      </xsl:when>
                                      <xsl:otherwise>left</xsl:otherwise>
                              </xsl:choose>
                      </xsl:attribute>
                      <xsl:if test="$lang = 'ar'">
                              <xsl:attribute name="padding-right">1mm</xsl:attribute>
                      </xsl:if>

                              <xsl:if test="ancestor::*[local-name()='thead']">
                                      <xsl:attribute name="font-weight">normal</xsl:attribute>
                              </xsl:if>

                      <xsl:if test=".//*[local-name() = 'table']">
                              <xsl:attribute name="padding-right">1mm</xsl:attribute>
                      </xsl:if>
                      <xsl:if test="@colspan">
                              <xsl:attribute name="number-columns-spanned">
                                      <xsl:value-of select="@colspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:if test="@rowspan">
                              <xsl:attribute name="number-rows-spanned">
                                      <xsl:value-of select="@rowspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:call-template name="display-align"/>
                      <fo:block>

                              <xsl:apply-templates/>
                      </fo:block>                     
              </fo:table-cell>
      </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">

                      <fo:block font-size="10pt" margin-bottom="12pt">

                              <fo:inline padding-right="2mm">

                                      <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>

                              </fo:inline>

                              <xsl:apply-templates mode="process"/>
                      </fo:block>

      </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='name']" mode="process"/><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
              <xsl:apply-templates/>
      </xsl:template><xsl:template name="fn_display">
              <xsl:variable name="references">
                      <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
                              <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">

                                      <xsl:apply-templates/>
                              </fn>
                      </xsl:for-each>
              </xsl:variable>
              <xsl:for-each select="xalan:nodeset($references)//fn">
                      <xsl:variable name="reference" select="@reference"/>
                      <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
                              <fo:block margin-bottom="12pt">

                                      <fo:inline font-size="80%" padding-right="5mm" id="{@id}">

                                                      <xsl:attribute name="vertical-align">super</xsl:attribute>

                                                      <xsl:attribute name="font-size">10pt</xsl:attribute>

                                              <xsl:value-of select="@reference"/>

                                      </fo:inline>
                                      <fo:inline>

                                                      <xsl:attribute name="font-size">10pt</xsl:attribute>

                                              <!-- <xsl:apply-templates /> -->
                                              <xsl:copy-of select="./node()"/>
                                      </fo:inline>
                              </fo:block>
                      </xsl:if>
              </xsl:for-each>
      </xsl:template><xsl:template name="fn_name_display">
              <!-- <xsl:variable name="references">
                      <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
                              <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
                                      <xsl:apply-templates />
                              </fn>
                      </xsl:for-each>
              </xsl:variable>
              $references=<xsl:copy-of select="$references"/> -->
              <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
                      <xsl:variable name="reference" select="@reference"/>
                      <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
                      <fo:block margin-bottom="12pt">
                              <xsl:apply-templates/>
                      </fo:block>
              </xsl:for-each>
      </xsl:template><xsl:template name="fn_display_figure">
              <xsl:variable name="key_iso">
                       <!-- and (not(@class) or @class !='pseudocode') -->
              </xsl:variable>
              <xsl:variable name="references">
                      <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
                              <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
                                      <xsl:apply-templates/>
                              </fn>
                      </xsl:for-each>
              </xsl:variable>

              <!-- current hierarchy is 'figure' element -->
              <xsl:variable name="following_dl_colwidths">
                      <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
                              <xsl:variable name="html-table">
                                      <xsl:variable name="doc_ns">

                                      </xsl:variable>
                                      <xsl:variable name="ns">
                                              <xsl:choose>
                                                      <xsl:when test="normalize-space($doc_ns)  != ''">
                                                              <xsl:value-of select="normalize-space($doc_ns)"/>
                                                      </xsl:when>
                                                      <xsl:otherwise>
                                                              <xsl:value-of select="substring-before(name(/*), '-')"/>
                                                      </xsl:otherwise>
                                              </xsl:choose>
                                      </xsl:variable>
                                      <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
                                      <!-- <xsl:element name="{$ns}:table"> -->
                                              <xsl:for-each select="*[local-name() = 'dl'][1]">
                                                      <tbody>
                                                              <xsl:apply-templates mode="dl"/>
                                                      </tbody>
                                              </xsl:for-each>
                                      <!-- </xsl:element> -->
                              </xsl:variable>

                              <xsl:call-template name="calculate-column-widths">
                                      <xsl:with-param name="cols-count" select="2"/>
                                      <xsl:with-param name="table" select="$html-table"/>
                              </xsl:call-template>

                      </xsl:if>
              </xsl:variable>

              <xsl:variable name="maxlength_dt">
                      <xsl:for-each select="*[local-name() = 'dl'][1]">
                              <xsl:call-template name="getMaxLength_dt"/>                     
                      </xsl:for-each>
              </xsl:variable>

              <xsl:if test="xalan:nodeset($references)//fn">
                      <fo:block>
                              <fo:table width="95%" table-layout="fixed">
                                      <xsl:if test="normalize-space($key_iso) = 'true'">
                                              <xsl:attribute name="font-size">10pt</xsl:attribute>

                                      </xsl:if>
                                      <xsl:choose>
                                              <!-- if there 'dl', then set same columns width -->
                                              <xsl:when test="xalan:nodeset($following_dl_colwidths)//column">
                                                      <xsl:call-template name="setColumnWidth_dl">
                                                              <xsl:with-param name="colwidths" select="$following_dl_colwidths"/>                                                             
                                                              <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>                                                            
                                                      </xsl:call-template>
                                              </xsl:when>
                                              <xsl:otherwise>
                                                      <fo:table-column column-width="15%"/>
                                                      <fo:table-column column-width="85%"/>
                                              </xsl:otherwise>
                                      </xsl:choose>
                                      <fo:table-body>
                                              <xsl:for-each select="xalan:nodeset($references)//fn">
                                                      <xsl:variable name="reference" select="@reference"/>
                                                      <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
                                                              <fo:table-row>
                                                                      <fo:table-cell>
                                                                              <fo:block>
                                                                                      <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">

                                                                                              <xsl:value-of select="@reference"/>
                                                                                      </fo:inline>
                                                                              </fo:block>
                                                                      </fo:table-cell>
                                                                      <fo:table-cell>
                                                                              <fo:block text-align="justify" margin-bottom="12pt">

                                                                                      <xsl:if test="normalize-space($key_iso) = 'true'">
                                                                                              <xsl:attribute name="margin-bottom">0</xsl:attribute>
                                                                                      </xsl:if>

                                                                                      <!-- <xsl:apply-templates /> -->
                                                                                      <xsl:copy-of select="./node()"/>
                                                                              </fo:block>
                                                                      </fo:table-cell>
                                                              </fo:table-row>
                                                      </xsl:if>
                                              </xsl:for-each>
                                      </fo:table-body>
                              </fo:table>
                      </fo:block>
              </xsl:if>

      </xsl:template><xsl:template match="*[local-name()='fn']">
              <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
              <fo:inline font-size="80%" keep-with-previous.within-line="always">

                              <xsl:attribute name="vertical-align">super</xsl:attribute>
                              <xsl:attribute name="color">blue</xsl:attribute>

                              <xsl:attribute name="text-decoration">underline</xsl:attribute>

                      <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference   | ancestor::*[local-name()='clause'][1]/@id-->

                              <xsl:value-of select="@reference"/>

                      </fo:basic-link>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
              <fo:inline>
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='dl']">
              <xsl:variable name="isAdded" select="@added"/>
              <xsl:variable name="isDeleted" select="@deleted"/>
              <fo:block-container>

                              <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
                                      <xsl:attribute name="margin-left">0mm</xsl:attribute>
                              </xsl:if>

                      <xsl:if test="parent::*[local-name() = 'note']">
                              <xsl:attribute name="margin-left">
                                      <xsl:choose>
                                              <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
                                              <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
                                      </xsl:choose>
                              </xsl:attribute>

                      </xsl:if>

                      <xsl:call-template name="setTrackChangesStyles">
                              <xsl:with-param name="isAdded" select="$isAdded"/>
                              <xsl:with-param name="isDeleted" select="$isDeleted"/>
                      </xsl:call-template>

                      <fo:block-container>

                                      <xsl:attribute name="margin-left">0mm</xsl:attribute>
                                      <xsl:attribute name="margin-right">0mm</xsl:attribute>

                              <xsl:variable name="parent" select="local-name(..)"/>

                              <xsl:variable name="key_iso">
                                       <!-- and  (not(../@class) or ../@class !='pseudocode') -->
                              </xsl:variable>

                              <xsl:choose>
                                      <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->

                                                      <fo:block margin-bottom="12pt" text-align="left">

                                                              <xsl:variable name="title-where">

                                                                              <xsl:call-template name="getTitle">
                                                                                      <xsl:with-param name="name" select="'title-where'"/>
                                                                              </xsl:call-template>

                                                              </xsl:variable>
                                                              <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
                                                              <xsl:apply-templates select="*[local-name()='dt']/*"/>
                                                              <xsl:text/>
                                                              <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
                                                      </fo:block>

                                      </xsl:when>
                                      <xsl:when test="$parent = 'formula'"> <!-- a few components -->
                                              <fo:block margin-bottom="12pt" text-align="left">

                                                      <xsl:variable name="title-where">

                                                                      <xsl:call-template name="getTitle">
                                                                              <xsl:with-param name="name" select="'title-where'"/>
                                                                      </xsl:call-template>

                                                      </xsl:variable>
                                                      <xsl:value-of select="$title-where"/>
                                              </fo:block>
                                      </xsl:when>
                                      <xsl:when test="$parent = 'figure' and  (not(../@class) or ../@class !='pseudocode')">
                                              <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">

                                                      <xsl:variable name="title-key">

                                                                      <xsl:call-template name="getTitle">
                                                                              <xsl:with-param name="name" select="'title-key'"/>
                                                                      </xsl:call-template>

                                                      </xsl:variable>
                                                      <xsl:value-of select="$title-key"/>
                                              </fo:block>
                                      </xsl:when>
                              </xsl:choose>

                              <!-- a few components -->
                              <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
                                      <fo:block>

                                                      <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
                                                              <xsl:attribute name="margin-left">5mm</xsl:attribute>
                                                      </xsl:if>

                                              <fo:block>

                                                              <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
                                                                      <xsl:attribute name="margin-left">-2.5mm</xsl:attribute>
                                                              </xsl:if>

                                                      <fo:table width="95%" table-layout="fixed">

                                                              <xsl:choose>
                                                                      <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
                                                                              <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
                                                                      </xsl:when>
                                                                      <xsl:when test="normalize-space($key_iso) = 'true'">
                                                                              <xsl:attribute name="font-size">10pt</xsl:attribute>

                                                                      </xsl:when>
                                                              </xsl:choose>
                                                              <!-- create virtual html table for dl/[dt and dd] -->
                                                              <xsl:variable name="html-table">
                                                                      <xsl:variable name="doc_ns">

                                                                      </xsl:variable>
                                                                      <xsl:variable name="ns">
                                                                              <xsl:choose>
                                                                                      <xsl:when test="normalize-space($doc_ns)  != ''">
                                                                                              <xsl:value-of select="normalize-space($doc_ns)"/>
                                                                                      </xsl:when>
                                                                                      <xsl:otherwise>
                                                                                              <xsl:value-of select="substring-before(name(/*), '-')"/>
                                                                                      </xsl:otherwise>
                                                                              </xsl:choose>
                                                                      </xsl:variable>
                                                                      <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
                                                                      <!-- <xsl:element name="{$ns}:table"> -->
                                                                              <tbody>
                                                                                      <xsl:apply-templates mode="dl"/>
                                                                              </tbody>
                                                                      <!-- </xsl:element> -->
                                                              </xsl:variable>
                                                              <!-- html-table<xsl:copy-of select="$html-table"/> -->
                                                              <xsl:variable name="colwidths">
                                                                      <xsl:call-template name="calculate-column-widths">
                                                                              <xsl:with-param name="cols-count" select="2"/>
                                                                              <xsl:with-param name="table" select="$html-table"/>
                                                                      </xsl:call-template>
                                                              </xsl:variable>
                                                              <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
                                                              <xsl:variable name="maxlength_dt">                                                      
                                                                      <xsl:call-template name="getMaxLength_dt"/>                                                     
                                                              </xsl:variable>
                                                              <xsl:call-template name="setColumnWidth_dl">
                                                                      <xsl:with-param name="colwidths" select="$colwidths"/>                                                  
                                                                      <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
                                                              </xsl:call-template>
                                                              <fo:table-body>
                                                                      <xsl:apply-templates>
                                                                              <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
                                                                      </xsl:apply-templates>
                                                              </fo:table-body>
                                                      </fo:table>
                                              </fo:block>
                                      </fo:block>
                              </xsl:if>
                      </fo:block-container>
              </fo:block-container>
      </xsl:template><xsl:template name="setColumnWidth_dl">
              <xsl:param name="colwidths"/>           
              <xsl:param name="maxlength_dt"/>
              <xsl:choose>
                      <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
                              <fo:table-column column-width="50%"/>
                              <fo:table-column column-width="50%"/>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:choose>
                                      <!-- to set width check most wide chars like `W` -->
                                      <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 2"> <!-- if dt contains short text like t90, a, etc -->
                                              <fo:table-column column-width="7%"/>
                                              <fo:table-column column-width="93%"/>
                                      </xsl:when>
                                      <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like ABC, etc -->
                                              <fo:table-column column-width="15%"/>
                                              <fo:table-column column-width="85%"/>
                                      </xsl:when>
                                      <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 7"> <!-- if dt contains short text like ABCDEF, etc -->
                                              <fo:table-column column-width="20%"/>
                                              <fo:table-column column-width="80%"/>
                                      </xsl:when>
                                      <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 10"> <!-- if dt contains short text like ABCDEFEF, etc -->
                                              <fo:table-column column-width="25%"/>
                                              <fo:table-column column-width="75%"/>
                                      </xsl:when>
                                      <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
                                              <fo:table-column column-width="60%"/>
                                              <fo:table-column column-width="40%"/>
                                      </xsl:when> -->
                                      <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.3">
                                              <fo:table-column column-width="50%"/>
                                              <fo:table-column column-width="50%"/>
                                      </xsl:when>
                                      <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 0.5">
                                              <fo:table-column column-width="40%"/>
                                              <fo:table-column column-width="60%"/>
                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:for-each select="xalan:nodeset($colwidths)//column">
                                                      <xsl:choose>
                                                              <xsl:when test=". = 1 or . = 0">
                                                                      <fo:table-column column-width="proportional-column-width(2)"/>
                                                              </xsl:when>
                                                              <xsl:otherwise>
                                                                      <fo:table-column column-width="proportional-column-width({.})"/>
                                                              </xsl:otherwise>
                                                      </xsl:choose>
                                              </xsl:for-each>
                                      </xsl:otherwise>
                              </xsl:choose>
                              <!-- <fo:table-column column-width="15%"/>
                              <fo:table-column column-width="85%"/> -->
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="getMaxLength_dt">
              <xsl:variable name="lengths">
                      <xsl:for-each select="*[local-name()='dt']">
                              <xsl:variable name="maintext_length" select="string-length(normalize-space(.))"/>
                              <xsl:variable name="attributes">
                                      <xsl:for-each select=".//@open"><xsl:value-of select="."/></xsl:for-each>
                                      <xsl:for-each select=".//@close"><xsl:value-of select="."/></xsl:for-each>
                              </xsl:variable>
                              <length><xsl:value-of select="string-length(normalize-space(.)) + string-length($attributes)"/></length>
                      </xsl:for-each>
              </xsl:variable>
              <xsl:variable name="maxLength">
                      <!-- <xsl:for-each select="*[local-name()='dt']">
                              <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
                              <xsl:if test="position() = 1">
                                      <xsl:value-of select="string-length(normalize-space(.))"/>
                              </xsl:if>
                      </xsl:for-each> -->
                      <xsl:for-each select="xalan:nodeset($lengths)/length">
                              <xsl:sort select="." data-type="number" order="descending"/>
                              <xsl:if test="position() = 1">
                                      <xsl:value-of select="."/>
                              </xsl:if>
                      </xsl:for-each>
              </xsl:variable>
              <!-- <xsl:message>DEBUG:<xsl:value-of select="$maxLength"/></xsl:message> -->
              <xsl:value-of select="$maxLength"/>
      </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
              <xsl:param name="key_iso"/>

              <!-- <tr>
                      <td>NOTE</td>
                      <td>
                              <xsl:apply-templates />
                      </td>
              </tr>
               -->
              <fo:table-row>
                      <fo:table-cell>
                              <fo:block margin-top="6pt">
                                      <xsl:if test="normalize-space($key_iso) = 'true'">
                                              <xsl:attribute name="margin-top">0</xsl:attribute>
                                      </xsl:if>
                                      <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
                              </fo:block>
                      </fo:table-cell>
                      <fo:table-cell>
                              <fo:block>
                                      <xsl:apply-templates/>
                              </fo:block>
                      </fo:table-cell>
              </fo:table-row>
      </xsl:template><xsl:template match="*[local-name()='dt']" mode="dl">
              <tr>
                      <td>
                              <xsl:apply-templates/>
                      </td>
                      <td>

                                      <xsl:if test="local-name(*[1]) != 'stem'">
                                              <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
                                      </xsl:if>

                      </td>
              </tr>

                      <xsl:if test="local-name(*[1]) = 'stem'">
                              <tr>
                                      <td>
                                              <xsl:text> </xsl:text>
                                      </td>
                                      <td>
                                              <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="dl_process"/>
                                      </td>
                              </tr>
                      </xsl:if>

      </xsl:template><xsl:template match="*[local-name()='dt']">
              <xsl:param name="key_iso"/>

              <fo:table-row>

                      <fo:table-cell>

                              <fo:block margin-top="6pt">

                                      <xsl:if test="normalize-space($key_iso) = 'true'">
                                              <xsl:attribute name="margin-top">0</xsl:attribute>

                                      </xsl:if>

                                              <xsl:attribute name="margin-top">0</xsl:attribute>
                                              <xsl:attribute name="margin-bottom">12pt</xsl:attribute>

                                      <xsl:apply-templates/>
                                      <!-- <xsl:if test="$namespace = 'gb'">
                                              <xsl:if test="ancestor::*[local-name()='formula']">
                                                      <xsl:text>—</xsl:text>
                                              </xsl:if>
                                      </xsl:if> -->
                              </fo:block>
                      </fo:table-cell>
                      <fo:table-cell>
                              <fo:block>

                                      <!-- <xsl:if test="$namespace = 'nist-cswp'  or $namespace = 'nist-sp'">
                                              <xsl:if test="local-name(*[1]) != 'stem'">
                                                      <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
                                              </xsl:if>
                                      </xsl:if> -->

                                              <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>

                              </fo:block>
                      </fo:table-cell>
              </fo:table-row>
              <!-- <xsl:if test="$namespace = 'nist-cswp'  or $namespace = 'nist-sp'">
                      <xsl:if test="local-name(*[1]) = 'stem'">
                              <fo:table-row>
                              <fo:table-cell>
                                      <fo:block margin-top="6pt">
                                              <xsl:if test="normalize-space($key_iso) = 'true'">
                                                      <xsl:attribute name="margin-top">0</xsl:attribute>
                                              </xsl:if>
                                              <xsl:text>&#xA0;</xsl:text>
                                      </fo:block>
                              </fo:table-cell>
                              <fo:table-cell>
                                      <fo:block>
                                              <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
                                      </fo:block>
                              </fo:table-cell>
                      </fo:table-row>
                      </xsl:if>
              </xsl:if> -->
      </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
              <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
      </xsl:template><xsl:template match="*[local-name()='em']">
              <fo:inline font-style="italic">
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
              <fo:inline font-weight="bold">

                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='sup']">
              <fo:inline font-size="80%" vertical-align="super">
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='sub']">
              <fo:inline font-size="80%" vertical-align="sub">
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='tt']">
              <fo:inline xsl:use-attribute-sets="tt-style">
                      <xsl:variable name="_font-size">

                      </xsl:variable>
                      <xsl:variable name="font-size" select="normalize-space($_font-size)"/>          
                      <xsl:if test="$font-size != ''">
                              <xsl:attribute name="font-size">
                                      <xsl:choose>
                                              <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
                                              <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
                                      </xsl:choose>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='underline']">
              <fo:inline text-decoration="underline">
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='add']">
              <xsl:choose>
                      <xsl:when test="@amendment">
                              <fo:inline>
                                      <xsl:call-template name="insertTag">
                                              <xsl:with-param name="kind">A</xsl:with-param>
                                              <xsl:with-param name="value"><xsl:value-of select="@amendment"/></xsl:with-param>
                                      </xsl:call-template>
                                      <xsl:apply-templates/>
                                      <xsl:call-template name="insertTag">
                                              <xsl:with-param name="type">closing</xsl:with-param>
                                              <xsl:with-param name="kind">A</xsl:with-param>
                                              <xsl:with-param name="value"><xsl:value-of select="@amendment"/></xsl:with-param>
                                      </xsl:call-template>
                              </fo:inline>
                      </xsl:when>
                      <xsl:when test="@corrigenda">
                              <fo:inline>
                                      <xsl:call-template name="insertTag">
                                              <xsl:with-param name="kind">C</xsl:with-param>
                                              <xsl:with-param name="value"><xsl:value-of select="@corrigenda"/></xsl:with-param>
                                      </xsl:call-template>
                                      <xsl:apply-templates/>
                                      <xsl:call-template name="insertTag">
                                              <xsl:with-param name="type">closing</xsl:with-param>
                                              <xsl:with-param name="kind">C</xsl:with-param>
                                              <xsl:with-param name="value"><xsl:value-of select="@corrigenda"/></xsl:with-param>
                                      </xsl:call-template>
                              </fo:inline>
                      </xsl:when>
                      <xsl:otherwise>
                              <fo:inline xsl:use-attribute-sets="add-style">
                                      <xsl:apply-templates/>
                              </fo:inline>
                      </xsl:otherwise>
              </xsl:choose>

      </xsl:template><xsl:template name="insertTag">
              <xsl:param name="type"/>
              <xsl:param name="kind"/>
              <xsl:param name="value"/>
              <xsl:variable name="add_width" select="string-length($value) * 20"/>
              <xsl:variable name="maxwidth" select="60 + $add_width"/>
                      <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
                              <!-- <xsl:attribute name="width">7mm</xsl:attribute>
                              <xsl:attribute name="content-height">100%</xsl:attribute> -->
                              <xsl:attribute name="height">5mm</xsl:attribute>
                              <xsl:attribute name="content-width">100%</xsl:attribute>
                              <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
                              <xsl:attribute name="scaling">uniform</xsl:attribute>
                              <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
                                      <g>
                                              <xsl:if test="$type = 'closing'">
                                                      <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
                                              </xsl:if>
                                              <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
                                              <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
                                      </g>
                                      <text font-family="Arial" x="15" y="57" font-size="40pt">
                                              <xsl:if test="$type = 'closing'">
                                                      <xsl:attribute name="x">25</xsl:attribute>
                                              </xsl:if>
                                              <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
                                      </text>
                              </svg>
                      </fo:instream-foreign-object>
      </xsl:template><xsl:template match="*[local-name()='del']">
              <fo:inline xsl:use-attribute-sets="del-style">
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='hi']">
              <fo:inline background-color="yellow">
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
              <xsl:variable name="text" select="normalize-space(.)"/>
              <fo:inline font-size="75%">
                              <xsl:if test="string-length($text) &gt; 0">
                                      <xsl:call-template name="recursiveSmallCaps">
                                              <xsl:with-param name="text" select="$text"/>
                                      </xsl:call-template>
                              </xsl:if>
                      </fo:inline> 
      </xsl:template><xsl:template name="recursiveSmallCaps">
  <xsl:param name="text"/>
  <xsl:variable name="char" select="substring($text,1,1)"/>
  <!-- <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/> -->
              <xsl:variable name="upperCase" select="java:toUpperCase(java:java.lang.String.new($char))"/>
  <xsl:choose>
    <xsl:when test="$char=$upperCase">
      <fo:inline font-size="{100 div 0.75}%">
        <xsl:value-of select="$upperCase"/>
      </fo:inline>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$upperCase"/>
    </xsl:otherwise>
  </xsl:choose>
  <xsl:if test="string-length($text) &gt; 1">
    <xsl:call-template name="recursiveSmallCaps">
      <xsl:with-param name="text" select="substring($text,2)"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template><xsl:template name="tokenize">
              <xsl:param name="text"/>
              <xsl:param name="separator" select="' '"/>
              <xsl:choose>
                      <xsl:when test="not(contains($text, $separator))">
                              <word>
                                      <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
                                      <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
                                      <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
                                      <xsl:variable name="len_str">
                                              <xsl:choose>
                                                      <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
                                                              <xsl:value-of select="$len_str_tmp * 1.5"/>
                                                      </xsl:when>
                                                      <xsl:otherwise>
                                                              <xsl:value-of select="$len_str_tmp"/>
                                                      </xsl:otherwise>
                                              </xsl:choose>
                                      </xsl:variable> 

                                      <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
                                              <xsl:message>
                                                      div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
                                                      len_str=<xsl:value-of select="$len_str"/>
                                                      len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
                                              </xsl:message>
                                      </xsl:if> -->
                                      <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
                                      <len_str><xsl:value-of select="$len_str"/></len_str> -->
                                      <xsl:choose>
                                              <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
                                                      <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
                                              </xsl:when>
                                              <xsl:otherwise>
                                                      <xsl:value-of select="$len_str"/>
                                              </xsl:otherwise>
                                      </xsl:choose>
                              </word>
                      </xsl:when>
                      <xsl:otherwise>
                              <word>
                                      <xsl:value-of select="string-length(normalize-space(substring-before($text, $separator)))"/>
                              </word>
                              <xsl:call-template name="tokenize">
                                      <xsl:with-param name="text" select="substring-after($text, $separator)"/>
                              </xsl:call-template>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="max_length">
              <xsl:param name="words"/>
              <xsl:for-each select="$words//word">
                              <xsl:sort select="." data-type="number" order="descending"/>
                              <xsl:if test="position()=1">
                                              <xsl:value-of select="."/>
                              </xsl:if>
              </xsl:for-each>
      </xsl:template><xsl:template name="add-zero-spaces-java">
              <xsl:param name="text" select="."/>
              <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space  -->
              <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
      </xsl:template><xsl:template name="add-zero-spaces-link-java">
              <xsl:param name="text" select="."/>
              <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space  -->
              <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |,)','$1​')"/>
      </xsl:template><xsl:template name="add-zero-spaces">
              <xsl:param name="text" select="."/>
              <xsl:variable name="zero-space-after-chars">-</xsl:variable>
              <xsl:variable name="zero-space-after-dot">.</xsl:variable>
              <xsl:variable name="zero-space-after-colon">:</xsl:variable>
              <xsl:variable name="zero-space-after-equal">=</xsl:variable>
              <xsl:variable name="zero-space-after-underscore">_</xsl:variable>
              <xsl:variable name="zero-space">​</xsl:variable>
              <xsl:choose>
                      <xsl:when test="contains($text, $zero-space-after-chars)">
                              <xsl:value-of select="substring-before($text, $zero-space-after-chars)"/>
                              <xsl:value-of select="$zero-space-after-chars"/>
                              <xsl:value-of select="$zero-space"/>
                              <xsl:call-template name="add-zero-spaces">
                                      <xsl:with-param name="text" select="substring-after($text, $zero-space-after-chars)"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:when test="contains($text, $zero-space-after-dot)">
                              <xsl:value-of select="substring-before($text, $zero-space-after-dot)"/>
                              <xsl:value-of select="$zero-space-after-dot"/>
                              <xsl:value-of select="$zero-space"/>
                              <xsl:call-template name="add-zero-spaces">
                                      <xsl:with-param name="text" select="substring-after($text, $zero-space-after-dot)"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:when test="contains($text, $zero-space-after-colon)">
                              <xsl:value-of select="substring-before($text, $zero-space-after-colon)"/>
                              <xsl:value-of select="$zero-space-after-colon"/>
                              <xsl:value-of select="$zero-space"/>
                              <xsl:call-template name="add-zero-spaces">
                                      <xsl:with-param name="text" select="substring-after($text, $zero-space-after-colon)"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:when test="contains($text, $zero-space-after-equal)">
                              <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
                              <xsl:value-of select="$zero-space-after-equal"/>
                              <xsl:value-of select="$zero-space"/>
                              <xsl:call-template name="add-zero-spaces">
                                      <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:when test="contains($text, $zero-space-after-underscore)">
                              <xsl:value-of select="substring-before($text, $zero-space-after-underscore)"/>
                              <xsl:value-of select="$zero-space-after-underscore"/>
                              <xsl:value-of select="$zero-space"/>
                              <xsl:call-template name="add-zero-spaces">
                                      <xsl:with-param name="text" select="substring-after($text, $zero-space-after-underscore)"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:value-of select="$text"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="add-zero-spaces-equal">
              <xsl:param name="text" select="."/>
              <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
              <xsl:variable name="zero-space-after-equal">=</xsl:variable>
              <xsl:variable name="zero-space">​</xsl:variable>
              <xsl:choose>
                      <xsl:when test="contains($text, $zero-space-after-equals)">
                              <xsl:value-of select="substring-before($text, $zero-space-after-equals)"/>
                              <xsl:value-of select="$zero-space-after-equals"/>
                              <xsl:value-of select="$zero-space"/>
                              <xsl:call-template name="add-zero-spaces-equal">
                                      <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equals)"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:when test="contains($text, $zero-space-after-equal)">
                              <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
                              <xsl:value-of select="$zero-space-after-equal"/>
                              <xsl:value-of select="$zero-space"/>
                              <xsl:call-template name="add-zero-spaces-equal">
                                      <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:value-of select="$text"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="getSimpleTable">
              <xsl:variable name="simple-table">

                      <!-- Step 1. colspan processing -->
                      <xsl:variable name="simple-table-colspan">
                              <tbody>
                                      <xsl:apply-templates mode="simple-table-colspan"/>
                              </tbody>
                      </xsl:variable>

                      <!-- Step 2. rowspan processing -->
                      <xsl:variable name="simple-table-rowspan">
                              <xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
                      </xsl:variable>

                      <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>

                      <!-- <xsl:choose>
                              <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">

                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:copy-of select="current()"/>
                              </xsl:otherwise>
                      </xsl:choose> -->
              </xsl:variable>
              <xsl:copy-of select="$simple-table"/>
      </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
              <xsl:apply-templates mode="simple-table-colspan"/>
      </xsl:template><xsl:template match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
              <xsl:choose>
                      <xsl:when test="@colspan">
                              <xsl:variable name="td">
                                      <xsl:element name="td">
                                              <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
                                              <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
                                              <xsl:apply-templates mode="simple-table-colspan"/>
                                      </xsl:element>
                              </xsl:variable>
                              <xsl:call-template name="repeatNode">
                                      <xsl:with-param name="count" select="@colspan"/>
                                      <xsl:with-param name="node" select="$td"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:element name="td">
                                      <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
                                      <xsl:apply-templates mode="simple-table-colspan"/>
                              </xsl:element>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template match="@colspan" mode="simple-table-colspan"/><xsl:template match="*[local-name()='tr']" mode="simple-table-colspan">
              <xsl:element name="tr">
                      <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
                      <xsl:apply-templates mode="simple-table-colspan"/>
              </xsl:element>
      </xsl:template><xsl:template match="@*|node()" mode="simple-table-colspan">
              <xsl:copy>
                              <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
              </xsl:copy>
      </xsl:template><xsl:template name="repeatNode">
              <xsl:param name="count"/>
              <xsl:param name="node"/>

              <xsl:if test="$count &gt; 0">
                      <xsl:call-template name="repeatNode">
                              <xsl:with-param name="count" select="$count - 1"/>
                              <xsl:with-param name="node" select="$node"/>
                      </xsl:call-template>
                      <xsl:copy-of select="$node"/>
              </xsl:if>
      </xsl:template><xsl:template match="@*|node()" mode="simple-table-rowspan">
              <xsl:copy>
                              <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
              </xsl:copy>
      </xsl:template><xsl:template match="tbody" mode="simple-table-rowspan">
              <xsl:copy>
                              <xsl:copy-of select="tr[1]"/>
                              <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
                                              <xsl:with-param name="previousRow" select="tr[1]"/>
                              </xsl:apply-templates>
              </xsl:copy>
      </xsl:template><xsl:template match="tr" mode="simple-table-rowspan">
              <xsl:param name="previousRow"/>
              <xsl:variable name="currentRow" select="."/>

              <xsl:variable name="normalizedTDs">
                              <xsl:for-each select="xalan:nodeset($previousRow)//td">
                                              <xsl:choose>
                                                              <xsl:when test="@rowspan &gt; 1">
                                                                              <xsl:copy>
                                                                                              <xsl:attribute name="rowspan">
                                                                                                              <xsl:value-of select="@rowspan - 1"/>
                                                                                              </xsl:attribute>
                                                                                              <xsl:copy-of select="@*[not(name() = 'rowspan')]"/>
                                                                                              <xsl:copy-of select="node()"/>
                                                                              </xsl:copy>
                                                              </xsl:when>
                                                              <xsl:otherwise>
                                                                              <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
                                                              </xsl:otherwise>
                                              </xsl:choose>
                              </xsl:for-each>
              </xsl:variable>

              <xsl:variable name="newRow">
                              <xsl:copy>
                                              <xsl:copy-of select="$currentRow/@*"/>
                                              <xsl:copy-of select="xalan:nodeset($normalizedTDs)"/>
                              </xsl:copy>
              </xsl:variable>
              <xsl:copy-of select="$newRow"/>

              <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
                              <xsl:with-param name="previousRow" select="$newRow"/>
              </xsl:apply-templates>
      </xsl:template><xsl:template name="getLang">
              <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
              <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
              <xsl:variable name="language">
                      <xsl:choose>
                              <xsl:when test="$language_current != ''">
                                      <xsl:value-of select="$language_current"/>
                              </xsl:when>
                              <xsl:when test="$language_current_2 != ''">
                                      <xsl:value-of select="$language_current_2"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>

              <xsl:choose>
                      <xsl:when test="$language = 'English'">en</xsl:when>
                      <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="capitalizeWords">
              <xsl:param name="str"/>
              <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
              <xsl:choose>
                      <xsl:when test="contains($str2, ' ')">
                              <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
                              <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
                              <xsl:value-of select="substring($substr, 2)"/> -->
                              <xsl:call-template name="capitalize">
                                      <xsl:with-param name="str" select="$substr"/>
                              </xsl:call-template>
                              <xsl:text> </xsl:text>
                              <xsl:call-template name="capitalizeWords">
                                      <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
                              </xsl:call-template>
                      </xsl:when>
                      <xsl:otherwise>
                              <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
                              <xsl:value-of select="substring($str2, 2)"/> -->
                              <xsl:call-template name="capitalize">
                                      <xsl:with-param name="str" select="$str2"/>
                              </xsl:call-template>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="capitalize">
              <xsl:param name="str"/>
              <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
              <xsl:value-of select="substring($str, 2)"/>             
      </xsl:template><xsl:template match="mathml:math">
              <xsl:variable name="isAdded" select="@added"/>
              <xsl:variable name="isDeleted" select="@deleted"/>

              <fo:inline xsl:use-attribute-sets="mathml-style">

                      <xsl:call-template name="setTrackChangesStyles">
                              <xsl:with-param name="isAdded" select="$isAdded"/>
                              <xsl:with-param name="isDeleted" select="$isDeleted"/>
                      </xsl:call-template>

                      <xsl:variable name="mathml">
                              <xsl:apply-templates select="." mode="mathml"/>
                      </xsl:variable>
                      <fo:instream-foreign-object fox:alt-text="Math">

                              <!-- <xsl:copy-of select="."/> -->
                              <xsl:copy-of select="xalan:nodeset($mathml)"/>
                      </fo:instream-foreign-object>                   
              </fo:inline>
      </xsl:template><xsl:template match="@*|node()" mode="mathml">
              <xsl:copy>
                              <xsl:apply-templates select="@*|node()" mode="mathml"/>
              </xsl:copy>
      </xsl:template><xsl:template match="mathml:mtext" mode="mathml">
              <xsl:copy>
                      <!-- replace start and end spaces to non-break space -->
                      <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
              </xsl:copy>
      </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
              <xsl:copy>
                      <xsl:apply-templates select="@*|node()" mode="mathml"/>
              </xsl:copy>
              <mathml:mspace width="0.5ex"/>
      </xsl:template><xsl:template match="mathml:math/*[local-name()='unit']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='prefix']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='dimension']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='quantity']" mode="mathml"/><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
              <xsl:variable name="target">
                      <xsl:choose>
                              <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
                                      <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:value-of select="normalize-space(@target)"/>
                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <fo:inline xsl:use-attribute-sets="link-style">

                      <xsl:choose>
                              <xsl:when test="$target = ''">
                                      <xsl:apply-templates/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
                                              <xsl:choose>
                                                      <xsl:when test="normalize-space(.) = ''">
                                                              <!-- <xsl:value-of select="$target"/> -->
                                                              <xsl:call-template name="add-zero-spaces-link-java">
                                                                      <xsl:with-param name="text" select="$target"/>
                                                              </xsl:call-template>
                                                      </xsl:when>
                                                      <xsl:otherwise>
                                                              <xsl:apply-templates/>
                                                      </xsl:otherwise>
                                              </xsl:choose>
                                      </fo:basic-link>
                              </xsl:otherwise>
                      </xsl:choose>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name()='appendix']">
              <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
                      <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
              </fo:block>
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
              <fo:inline><xsl:apply-templates/></fo:inline>
      </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
              <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">                   
                      <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
              </fo:block>
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name() = 'callout']">               
              <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
      </xsl:template><xsl:template match="*[local-name() = 'annotation']">
              <xsl:variable name="annotation-id" select="@id"/>
              <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>            
              <fo:block id="{$annotation-id}" white-space="nowrap">                   
                      <fo:inline>                             
                              <xsl:apply-templates>
                                      <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
                              </xsl:apply-templates>
                      </fo:inline>
              </fo:block>             
      </xsl:template><xsl:template match="*[local-name() = 'annotation']/*[local-name() = 'p']">
              <xsl:param name="callout"/>
              <fo:inline id="{@id}">
                      <!-- for first p in annotation, put <x> -->
                      <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
                      <xsl:apply-templates/>
              </fo:inline>            
      </xsl:template><xsl:template match="*[local-name() = 'modification']">
              <xsl:variable name="title-modified">

                              <xsl:call-template name="getTitle">
                                      <xsl:with-param name="name" select="'title-modified'"/>
                              </xsl:call-template>

              </xsl:variable>

              <xsl:choose>
                      <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
                      <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
              </xsl:choose>
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name() = 'xref']">
              <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">

                      <xsl:apply-templates/>
              </fo:basic-link>
      </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
              <fo:block-container margin-left="0mm">
                      <xsl:if test="parent::*[local-name() = 'note']">
                              <xsl:attribute name="margin-left">
                                      <xsl:choose>
                                              <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
                                              <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
                                      </xsl:choose>
                              </xsl:attribute>

                      </xsl:if>
                      <fo:block-container margin-left="0mm">  
                              <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
                                      <xsl:apply-templates/>
                              </fo:block>
                      </fo:block-container>
              </fo:block-container>
      </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
              <fo:inline>
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'admitted']/*[local-name() = 'stem']">
              <fo:inline>
                      <xsl:apply-templates/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">
                      <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">

              <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">

                      <fo:block-container margin-left="0mm">

                                      <fo:block>

                                              <fo:inline xsl:use-attribute-sets="note-name-style">

                                                      <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
                                              </fo:inline>
                                              <xsl:apply-templates/>
                                      </fo:block>

                      </fo:block-container>
              </fo:block-container>

      </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
              <xsl:variable name="num"><xsl:number/></xsl:variable>
              <xsl:choose>
                      <xsl:when test="$num = 1">
                              <fo:inline xsl:use-attribute-sets="note-p-style">
                                      <xsl:apply-templates/>
                              </fo:inline>
                      </xsl:when>
                      <xsl:otherwise>
                              <fo:block xsl:use-attribute-sets="note-p-style">                                                
                                      <xsl:apply-templates/>
                              </fo:block>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template match="*[local-name() = 'termnote']">
              <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">                   
                      <fo:inline xsl:use-attribute-sets="termnote-name-style">

                              <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
                      </fo:inline>
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name'] |               *[local-name() = 'termnote']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']" mode="presentation">
              <xsl:param name="sfx"/>
              <xsl:variable name="suffix">
                      <xsl:choose>
                              <xsl:when test="$sfx != ''">
                                      <xsl:value-of select="$sfx"/>                                   
                              </xsl:when>
                              <xsl:otherwise>

                                              <xsl:text> – </xsl:text>

                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <xsl:if test="normalize-space() != ''">
                      <xsl:apply-templates/>
                      <xsl:value-of select="$suffix"/>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
              <xsl:param name="sfx"/>
              <xsl:variable name="suffix">
                      <xsl:choose>
                              <xsl:when test="$sfx != ''">
                                      <xsl:value-of select="$sfx"/>                                   
                              </xsl:when>
                              <xsl:otherwise>

                                              <xsl:text> – </xsl:text>

                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <xsl:if test="normalize-space() != ''">
                      <xsl:apply-templates/>
                      <xsl:value-of select="$suffix"/>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
              <fo:inline><xsl:apply-templates/></fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'terms']">
              <fo:block id="{@id}">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'term']">
              <fo:block id="{@id}" xsl:use-attribute-sets="term-style">

                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">
                      <fo:inline>
                              <xsl:apply-templates/>
                              <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
                                      <xsl:text>.</xsl:text>
                              </xsl:if> -->
                      </fo:inline>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
              <xsl:variable name="isAdded" select="@added"/>
              <xsl:variable name="isDeleted" select="@deleted"/>
              <fo:block-container id="{@id}">                 

                      <xsl:call-template name="setTrackChangesStyles">
                              <xsl:with-param name="isAdded" select="$isAdded"/>
                              <xsl:with-param name="isDeleted" select="$isDeleted"/>
                      </xsl:call-template>

                      <fo:block>
                              <xsl:apply-templates/>
                      </fo:block>
                      <xsl:call-template name="fn_display_figure"/>
                      <xsl:for-each select="*[local-name() = 'note']">
                              <xsl:call-template name="note"/>
                      </xsl:for-each>

                              <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>

              </fo:block-container>
      </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
              <fo:block id="{@id}">
                      <xsl:apply-templates/>
              </fo:block>
              <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
      </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
              <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'image']">
              <xsl:variable name="isAdded" select="../@added"/>
              <xsl:variable name="isDeleted" select="../@deleted"/>
              <xsl:choose>
                      <xsl:when test="ancestor::*[local-name() = 'title']">
                              <fo:inline padding-left="1mm" padding-right="1mm">
                                      <xsl:variable name="src">
                                              <xsl:call-template name="image_src"/>
                                      </xsl:variable>
                                      <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/>
                              </fo:inline>
                      </xsl:when>
                      <xsl:otherwise>
                              <fo:block xsl:use-attribute-sets="image-style">

                                      <xsl:variable name="src">
                                              <xsl:call-template name="image_src"/>
                                      </xsl:variable>

                                      <xsl:choose>
                                              <xsl:when test="$isDeleted = 'true'">
                                                      <!-- enclose in svg -->
                                                      <fo:instream-foreign-object fox:alt-text="Image {@alt}">
                                                              <xsl:attribute name="width">100%</xsl:attribute>
                                                              <xsl:attribute name="content-height">100%</xsl:attribute>
                                                              <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
                                                              <xsl:attribute name="scaling">uniform</xsl:attribute>

                                                                      <xsl:apply-templates select="." mode="cross_image"/>

                                                      </fo:instream-foreign-object>
                                              </xsl:when>
                                              <xsl:otherwise>
                                                      <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
                                              </xsl:otherwise>
                                      </xsl:choose>

                              </fo:block>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="image_src">
              <xsl:choose>
                      <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
                              <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
                      </xsl:when>
                      <xsl:when test="not(starts-with(@src, 'data:'))">
                              <xsl:value-of select="concat('url(file:',$basepath, @src, ')')"/>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:value-of select="@src"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template match="*[local-name() = 'image']" mode="cross_image">
              <xsl:choose>
                      <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
                              <xsl:variable name="src">
                                      <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
                              </xsl:variable>
                              <xsl:variable name="width" select="document($src)/@width"/>
                              <xsl:variable name="height" select="document($src)/@height"/>
                              <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
                                      <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{$src}" style="overflow:visible;"/>
                              </svg>
                      </xsl:when>
                      <xsl:when test="not(starts-with(@src, 'data:'))">
                              <xsl:variable name="src">
                                      <xsl:value-of select="concat('url(file:',$basepath, @src, ')')"/>
                              </xsl:variable>
                              <xsl:variable name="file" select="java:java.io.File.new(@src)"/>
                              <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($file)"/>
                              <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
                              <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
                              <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
                                      <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{$src}" style="overflow:visible;"/>
                              </svg>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:variable name="base64String" select="substring-after(@src, 'base64,')"/>
                              <xsl:variable name="decoder" select="java:java.util.Base64.getDecoder()"/>
                              <xsl:variable name="fileContent" select="java:decode($decoder, $base64String)"/>
                              <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
                              <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
                              <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
                              <!-- width=<xsl:value-of select="$width"/> -->
                              <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
                              <!-- height=<xsl:value-of select="$height"/> -->
                              <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
                                      <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
                                      <xsl:call-template name="svg_cross">
                                              <xsl:with-param name="width" select="$width"/>
                                              <xsl:with-param name="height" select="$height"/>
                                      </xsl:call-template>
                              </svg>
                      </xsl:otherwise>
              </xsl:choose>

      </xsl:template><xsl:template name="svg_cross">
              <xsl:param name="width"/>
              <xsl:param name="height"/>
              <line xmlns="http://www.w3.org/2000/svg" x1="0" y1="0" x2="{$width}" y2="{$height}" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
              <line xmlns="http://www.w3.org/2000/svg" x1="0" y1="{$height}" x2="{$width}" y2="0" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
      </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] |                *[local-name() = 'table']/*[local-name() = 'name'] |               *[local-name() = 'permission']/*[local-name() = 'name'] |               *[local-name() = 'recommendation']/*[local-name() = 'name'] |               *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">           
              <xsl:apply-templates mode="contents"/>
              <xsl:text> </xsl:text>
      </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] |                *[local-name() = 'table']/*[local-name() = 'name'] |               *[local-name() = 'permission']/*[local-name() = 'name'] |               *[local-name() = 'recommendation']/*[local-name() = 'name'] |               *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">             
              <xsl:apply-templates mode="bookmarks"/>
              <xsl:text> </xsl:text>
      </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="contents" priority="2">
              <xsl:value-of select="."/>
      </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
              <xsl:value-of select="."/>
      </xsl:template><xsl:template match="node()" mode="contents">
              <xsl:apply-templates mode="contents"/>
      </xsl:template><xsl:template match="node()" mode="bookmarks">
              <xsl:apply-templates mode="bookmarks"/>
      </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
              <xsl:apply-templates select="."/>
      </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
              <xsl:apply-templates mode="bookmarks"/>
      </xsl:template><xsl:template name="addBookmarks">
              <xsl:param name="contents"/>
              <xsl:if test="xalan:nodeset($contents)//item">
                      <fo:bookmark-tree>
                              <xsl:choose>
                                      <xsl:when test="xalan:nodeset($contents)/doc">
                                              <xsl:choose>
                                                      <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
                                                              <xsl:for-each select="xalan:nodeset($contents)/doc">
                                                                      <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
                                                                              <fo:bookmark-title>
                                                                                      <xsl:variable name="bookmark-title_">
                                                                                              <xsl:call-template name="getLangVersion">
                                                                                                      <xsl:with-param name="lang" select="@lang"/>
                                                                                                      <xsl:with-param name="doctype" select="@doctype"/>
                                                                                                      <xsl:with-param name="title" select="@title-part"/>
                                                                                              </xsl:call-template>
                                                                                      </xsl:variable>
                                                                                      <xsl:choose>
                                                                                              <xsl:when test="normalize-space($bookmark-title_) != ''">
                                                                                                      <xsl:value-of select="normalize-space($bookmark-title_)"/>
                                                                                              </xsl:when>
                                                                                              <xsl:otherwise>
                                                                                                      <xsl:choose>
                                                                                                              <xsl:when test="@lang = 'en'">English</xsl:when>
                                                                                                              <xsl:when test="@lang = 'fr'">Français</xsl:when>
                                                                                                              <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
                                                                                                              <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
                                                                                                      </xsl:choose>
                                                                                              </xsl:otherwise>
                                                                                      </xsl:choose>
                                                                              </fo:bookmark-title>
                                                                              <xsl:apply-templates select="contents/item" mode="bookmark"/>

                                                                              <xsl:call-template name="insertFigureBookmarks">
                                                                                      <xsl:with-param name="contents" select="contents"/>
                                                                              </xsl:call-template>

                                                                              <xsl:call-template name="insertTableBookmarks">
                                                                                      <xsl:with-param name="contents" select="contents"/>
                                                                                      <xsl:with-param name="lang" select="@lang"/>
                                                                              </xsl:call-template>

                                                                      </fo:bookmark>

                                                              </xsl:for-each>
                                                      </xsl:when>
                                                      <xsl:otherwise>
                                                              <xsl:for-each select="xalan:nodeset($contents)/doc">

                                                                      <xsl:apply-templates select="contents/item" mode="bookmark"/>

                                                                      <xsl:call-template name="insertFigureBookmarks">
                                                                              <xsl:with-param name="contents" select="contents"/>
                                                                      </xsl:call-template>

                                                                      <xsl:call-template name="insertTableBookmarks">
                                                                              <xsl:with-param name="contents" select="contents"/>
                                                                              <xsl:with-param name="lang" select="@lang"/>
                                                                      </xsl:call-template>

                                                              </xsl:for-each>
                                                      </xsl:otherwise>
                                              </xsl:choose>
                                      </xsl:when>
                                      <xsl:otherwise>
                                              <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>                          
                                      </xsl:otherwise>
                              </xsl:choose>

                      </fo:bookmark-tree>
              </xsl:if>
      </xsl:template><xsl:template name="insertFigureBookmarks">
              <xsl:param name="contents"/>
              <xsl:if test="xalan:nodeset($contents)/figure">
                      <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
                              <fo:bookmark-title>Figures</fo:bookmark-title>
                              <xsl:for-each select="xalan:nodeset($contents)/figure">
                                      <fo:bookmark internal-destination="{@id}">
                                              <fo:bookmark-title>
                                                      <xsl:value-of select="normalize-space(title)"/>
                                              </fo:bookmark-title>
                                      </fo:bookmark>
                              </xsl:for-each>
                      </fo:bookmark>  
              </xsl:if>
      </xsl:template><xsl:template name="insertTableBookmarks">
              <xsl:param name="contents"/>
              <xsl:param name="lang"/>
              <xsl:if test="xalan:nodeset($contents)/table">
                      <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
                              <fo:bookmark-title>
                                      <xsl:choose>
                                              <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
                                              <xsl:otherwise>Tables</xsl:otherwise>
                                      </xsl:choose>
                              </fo:bookmark-title>
                              <xsl:for-each select="xalan:nodeset($contents)/table">
                                      <fo:bookmark internal-destination="{@id}">
                                              <fo:bookmark-title>
                                                      <xsl:value-of select="normalize-space(title)"/>
                                              </fo:bookmark-title>
                                      </fo:bookmark>
                              </xsl:for-each>
                      </fo:bookmark>  
              </xsl:if>
      </xsl:template><xsl:template name="getLangVersion">
              <xsl:param name="lang"/>
              <xsl:param name="doctype" select="''"/>
              <xsl:param name="title" select="''"/>
              <xsl:choose>
                      <xsl:when test="$lang = 'en'">

                              </xsl:when>
                      <xsl:when test="$lang = 'fr'">

                      </xsl:when>
                      <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
                      <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template match="item" mode="bookmark">
              <fo:bookmark internal-destination="{@id}" starting-state="hide">
                              <fo:bookmark-title>
                                      <xsl:if test="@section != ''">
                                              <xsl:value-of select="@section"/> 
                                              <xsl:text> </xsl:text>
                                      </xsl:if>
                                      <xsl:value-of select="normalize-space(title)"/>
                              </fo:bookmark-title>
                              <xsl:apply-templates mode="bookmark"/>                          
              </fo:bookmark>
      </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] |         *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">                 
                      <fo:block xsl:use-attribute-sets="figure-name-style">

                                      <xsl:if test="nist:dl">
                                              <xsl:attribute name="space-before">12pt</xsl:attribute>
                                      </xsl:if>

                              <xsl:apply-templates/>
                      </fo:block>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fn']" priority="2"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note']"/><xsl:template match="*[local-name() = 'title']" mode="contents_item">
              <xsl:apply-templates mode="contents_item"/>
              <!-- <xsl:text> </xsl:text> -->
      </xsl:template><xsl:template name="getSection">
              <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
              <!-- 
              <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
                      <xsl:value-of select="."/>
              </xsl:for-each>
              -->

      </xsl:template><xsl:template name="getName">
              <xsl:choose>
                      <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
                              <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:copy-of select="*[local-name() = 'title']/node()"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="insertTitleAsListItem">
              <xsl:param name="provisional-distance-between-starts" select="'9.5mm'"/>
              <xsl:variable name="section">                                           
                      <xsl:for-each select="..">
                              <xsl:call-template name="getSection"/>
                      </xsl:for-each>
              </xsl:variable>                                                 
              <fo:list-block provisional-distance-between-starts="{$provisional-distance-between-starts}">                                            
                      <fo:list-item>
                              <fo:list-item-label end-indent="label-end()">
                                      <fo:block>
                                              <xsl:value-of select="$section"/>
                                      </fo:block>
                              </fo:list-item-label>
                              <fo:list-item-body start-indent="body-start()">
                                      <fo:block>                                              
                                              <xsl:choose>
                                                      <xsl:when test="*[local-name() = 'tab']">
                                                              <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
                                                      </xsl:when>
                                                      <xsl:otherwise>
                                                              <xsl:apply-templates/>
                                                      </xsl:otherwise>
                                              </xsl:choose>
                                      </fo:block>
                              </fo:list-item-body>
                      </fo:list-item>
              </fo:list-block>
      </xsl:template><xsl:template name="extractSection">
              <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
      </xsl:template><xsl:template name="extractTitle">
              <xsl:choose>
                              <xsl:when test="*[local-name() = 'tab']">
                                      <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:apply-templates/>
                              </xsl:otherwise>
                      </xsl:choose>
      </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
              <xsl:text> </xsl:text>
      </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
              <xsl:copy>
                      <xsl:apply-templates mode="contents_item"/>
              </xsl:copy>             
      </xsl:template><xsl:template match="*[local-name() = 'em']" mode="contents_item">
              <xsl:copy>
                      <xsl:apply-templates mode="contents_item"/>
              </xsl:copy>             
      </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents_item">
              <xsl:copy-of select="."/>
      </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
              <xsl:text> </xsl:text>
      </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">

              <fo:block-container margin-left="0mm">
                      <xsl:if test="parent::*[local-name() = 'note']">
                              <xsl:attribute name="margin-left">
                                      <xsl:choose>
                                              <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
                                              <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
                                      </xsl:choose>
                              </xsl:attribute>

                      </xsl:if>
                      <fo:block-container margin-left="0mm">

                              <fo:block xsl:use-attribute-sets="sourcecode-style">
                                      <xsl:variable name="_font-size">

                                              10

                              </xsl:variable>
                              <xsl:variable name="font-size" select="normalize-space($_font-size)"/>          
                              <xsl:if test="$font-size != ''">
                                      <xsl:attribute name="font-size">
                                              <xsl:choose>
                                                      <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
                                                      <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
                                              </xsl:choose>
                                      </xsl:attribute>
                              </xsl:if>
                                      <xsl:apply-templates/>                  
                              </fo:block>
                              <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>

                      </fo:block-container>
              </fo:block-container>
      </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
              <xsl:variable name="text">
                      <xsl:call-template name="add-zero-spaces-equal"/>
              </xsl:variable>
              <xsl:call-template name="add-zero-spaces-java">
                      <xsl:with-param name="text" select="$text"/>
              </xsl:call-template>
      </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">         
                      <fo:block xsl:use-attribute-sets="sourcecode-name-style">                               
                              <xsl:apply-templates/>
                      </fo:block>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'permission']">
              <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">                 
                      <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">
                      <fo:block xsl:use-attribute-sets="permission-name-style">
                              <xsl:apply-templates/>

                      </fo:block>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'label']">
              <fo:block xsl:use-attribute-sets="permission-label-style">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'requirement']">
              <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">                        
                      <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
                      <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
                      <xsl:apply-templates select="@obligation" mode="presentation"/>
                      <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">
                      <fo:block xsl:use-attribute-sets="requirement-name-style">

                              <xsl:apply-templates/>

                      </fo:block>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
              <fo:block xsl:use-attribute-sets="requirement-label-style">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
                      <fo:block>
                              <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
                      </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
              <fo:block xsl:use-attribute-sets="requirement-subject-style">
                      <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
              <fo:block xsl:use-attribute-sets="requirement-inherit-style">
                      <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
              <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">                     
                      <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">
                      <fo:block xsl:use-attribute-sets="recommendation-name-style">
                              <xsl:apply-templates/>

                      </fo:block>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'label']">
              <fo:block xsl:use-attribute-sets="recommendation-label-style">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
              <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
                      <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
                              <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
                      </xsl:if>
                      <fo:block-container margin-left="0mm" margin-right="0mm">
                              <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
                                      <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
                                              <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
                                      </xsl:if>
                                      <xsl:variable name="simple-table">      
                                              <xsl:call-template name="getSimpleTable"/>                      
                                      </xsl:variable>                                 
                                      <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
                                      <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
                                              <!-- <fo:table-column column-width="35mm"/>
                                              <fo:table-column column-width="115mm"/> -->
                                              <fo:table-column column-width="30%"/>
                                              <fo:table-column column-width="70%"/>
                                      </xsl:if>
                                      <xsl:apply-templates mode="requirement"/>
                              </fo:table>
                              <!-- fn processing -->
                              <xsl:if test=".//*[local-name() = 'fn']">
                                      <xsl:for-each select="*[local-name() = 'tbody']">
                                              <fo:block font-size="90%" border-bottom="1pt solid black">
                                                      <xsl:call-template name="fn_display"/>
                                              </fo:block>
                                      </xsl:for-each>
                              </xsl:if>
                      </fo:block-container>
              </fo:block-container>
      </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">                
              <fo:table-header>                       
                      <xsl:apply-templates mode="requirement"/>
              </fo:table-header>
      </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">                
              <fo:table-body>
                      <xsl:apply-templates mode="requirement"/>
              </fo:table-body>
      </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
              <fo:table-row height="7mm" border-bottom="0.5pt solid grey">                    
                      <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
                              <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
                              <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
                      </xsl:if>
                      <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
                              <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
                      </xsl:if>
                      <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
                              <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
                      </xsl:if>
                      <xsl:apply-templates mode="requirement"/>
              </fo:table-row>
      </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
              <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
                      <xsl:attribute name="text-align">
                              <xsl:choose>
                                      <xsl:when test="@align">
                                              <xsl:value-of select="@align"/>
                                      </xsl:when>
                                      <xsl:otherwise>left</xsl:otherwise>
                              </xsl:choose>
                      </xsl:attribute>
                      <xsl:if test="@colspan">
                              <xsl:attribute name="number-columns-spanned">
                                      <xsl:value-of select="@colspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:if test="@rowspan">
                              <xsl:attribute name="number-rows-spanned">
                                      <xsl:value-of select="@rowspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:call-template name="display-align"/>

                      <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
                              <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
                              <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>                               
                      </xsl:if>
                      <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
                              <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
                              <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>                               
                      </xsl:if> -->

                      <fo:block>
                              <xsl:apply-templates/>
                      </fo:block>
              </fo:table-cell>
      </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
              <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
                      <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
                              <xsl:attribute name="padding">0mm</xsl:attribute>
                              <xsl:attribute name="padding-left">0mm</xsl:attribute>
                      </xsl:if>
                      <xsl:attribute name="text-align">
                              <xsl:choose>
                                      <xsl:when test="@align">
                                              <xsl:value-of select="@align"/>
                                      </xsl:when>
                                      <xsl:otherwise>left</xsl:otherwise>
                              </xsl:choose>
                      </xsl:attribute>
                      <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
                              <xsl:attribute name="font-weight">bold</xsl:attribute>
                      </xsl:if>
                      <xsl:if test="@colspan">
                              <xsl:attribute name="number-columns-spanned">
                                      <xsl:value-of select="@colspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:if test="@rowspan">
                              <xsl:attribute name="number-rows-spanned">
                                      <xsl:value-of select="@rowspan"/>
                              </xsl:attribute>
                      </xsl:if>
                      <xsl:call-template name="display-align"/>

                      <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
                              <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
                              <xsl:attribute name="padding-top">0.5mm</xsl:attribute>                          
                              <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
                                      <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>                                       
                              </xsl:if>
                      </xsl:if> -->
                      <!-- 2nd line and below -->

                      <fo:block>                      
                              <xsl:apply-templates/>
                      </fo:block>                     
              </fo:table-cell>
      </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
              <fo:block font-size="11pt" color="rgb(237, 193, 35)"> <!-- font-weight="bold" margin-bottom="4pt" text-align="center"  -->
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
              <fo:block> <!-- margin-bottom="10pt" -->
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'termexample']">
              <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">                        
                      <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
              <xsl:if test="normalize-space() != ''">
                      <fo:inline xsl:use-attribute-sets="termexample-name-style">
                              <xsl:apply-templates/>
                      </fo:inline>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
              <fo:inline><xsl:apply-templates/></fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'example']">
              <fo:block id="{@id}" xsl:use-attribute-sets="example-style">

                      <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>

                      <xsl:variable name="element">
                              block                           

                              <xsl:if test=".//*[local-name() = 'table']">block</xsl:if> 
                      </xsl:variable>

                      <xsl:choose>
                              <xsl:when test="contains(normalize-space($element), 'block')">
                                      <fo:block xsl:use-attribute-sets="example-body-style">
                                              <xsl:apply-templates/>
                                      </fo:block>
                              </xsl:when>
                              <xsl:otherwise>
                                      <fo:inline>
                                              <xsl:apply-templates/>
                                      </fo:inline>
                              </xsl:otherwise>
                      </xsl:choose>

              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">

              <xsl:variable name="element">
                      block

                      <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if> 
              </xsl:variable>         
              <xsl:choose>
                      <xsl:when test="ancestor::*[local-name() = 'appendix']">
                              <fo:inline>
                                      <xsl:apply-templates/>
                              </fo:inline>
                      </xsl:when>
                      <xsl:when test="contains(normalize-space($element), 'block')">
                              <fo:block xsl:use-attribute-sets="example-name-style">
                                      <xsl:apply-templates/>
                              </fo:block>
                      </xsl:when>
                      <xsl:otherwise>
                              <fo:inline xsl:use-attribute-sets="example-name-style">
                                      <xsl:apply-templates/>
                              </fo:inline>
                      </xsl:otherwise>
              </xsl:choose>

      </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
              <xsl:variable name="num"><xsl:number/></xsl:variable>
              <xsl:variable name="element">
                      block

              </xsl:variable>         
              <xsl:choose>                    
                      <xsl:when test="normalize-space($element) = 'block'">
                              <fo:block xsl:use-attribute-sets="example-p-style">

                                              <xsl:variable name="num"><xsl:number/></xsl:variable>
                                              <xsl:if test="$num = 1">
                                                      <xsl:attribute name="margin-left">5mm</xsl:attribute>
                                              </xsl:if>

                                      <xsl:apply-templates/>
                              </fo:block>
                      </xsl:when>
                      <xsl:otherwise>
                              <fo:inline xsl:use-attribute-sets="example-p-style">
                                      <xsl:apply-templates/>                                  
                              </fo:inline>
                      </xsl:otherwise>
              </xsl:choose>   
      </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
              <fo:block xsl:use-attribute-sets="termsource-style">
                      <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->                     
                      <xsl:variable name="termsource_text">
                              <xsl:apply-templates/>
                      </xsl:variable>

                      <xsl:choose>
                              <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
                                      <!-- <xsl:apply-templates /> -->
                                      <xsl:copy-of select="$termsource_text"/>
                              </xsl:when>
                              <xsl:otherwise>                                 

                                              <xsl:text>[</xsl:text>

                                      <!-- <xsl:apply-templates />                                     -->
                                      <xsl:copy-of select="$termsource_text"/>

                                              <xsl:text>]</xsl:text>

                              </xsl:otherwise>
                      </xsl:choose>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
              <xsl:if test="normalize-space() != ''">
                      <xsl:value-of select="."/>
              </xsl:if>
      </xsl:template><xsl:variable name="localized.source">
              <xsl:call-template name="getLocalizedString">
                              <xsl:with-param name="key">source</xsl:with-param>
                      </xsl:call-template>
      </xsl:variable><xsl:template match="*[local-name() = 'origin']">
              <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
                      <xsl:if test="normalize-space(@citeas) = ''">
                              <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
                      </xsl:if>

                      <fo:inline xsl:use-attribute-sets="origin-style">
                              <xsl:apply-templates/>
                      </fo:inline>
                      </fo:basic-link>
      </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
              <fo:inline><xsl:apply-templates/></fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
              <xsl:if test="normalize-space() != ''">
                      <xsl:value-of select="."/>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'quote']">         
              <fo:block-container margin-left="0mm">
                      <xsl:if test="parent::*[local-name() = 'note']">
                              <xsl:if test="not(ancestor::*[local-name() = 'table'])">
                                      <xsl:attribute name="margin-left">5mm</xsl:attribute>
                              </xsl:if>
                      </xsl:if>

                      <fo:block-container margin-left="0mm">

                              <fo:block xsl:use-attribute-sets="quote-style">
                                      <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->

                                      <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
                              </fo:block>
                              <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
                                      <fo:block xsl:use-attribute-sets="quote-source-style">
                                              <!-- — ISO, ISO 7301:2011, Clause 1 -->
                                              <xsl:apply-templates select="*[local-name() = 'author']"/>
                                              <xsl:apply-templates select="*[local-name() = 'source']"/>                              
                                      </fo:block>
                              </xsl:if>

                      </fo:block-container>
              </fo:block-container>
      </xsl:template><xsl:template match="*[local-name() = 'source']">
              <xsl:if test="../*[local-name() = 'author']">
                      <xsl:text>, </xsl:text>
              </xsl:if>
              <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
                      <xsl:apply-templates/>
              </fo:basic-link>
      </xsl:template><xsl:template match="*[local-name() = 'author']">
              <xsl:text>— </xsl:text>
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name() = 'eref']">

              <xsl:variable name="bibitemid">
                      <xsl:choose>
                              <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"/>
                              <xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
                              <xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>

              <xsl:choose>
                      <xsl:when test="normalize-space($bibitemid) != ''">
                              <fo:inline xsl:use-attribute-sets="eref-style">
                                      <xsl:if test="@type = 'footnote'">

                                                      <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
                                                      <xsl:attribute name="font-size">80%</xsl:attribute>
                                                      <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
                                                      <xsl:attribute name="vertical-align">super</xsl:attribute>

                                      </xsl:if>       

                                      <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
                                              <xsl:if test="normalize-space(@citeas) = ''">
                                                      <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
                                              </xsl:if>
                                              <xsl:if test="@type = 'inline'">

                                                              <xsl:attribute name="text-decoration">underline</xsl:attribute>

                                              </xsl:if>

                                              <xsl:apply-templates/>
                                      </fo:basic-link>

                              </fo:inline>
                      </xsl:when>
                      <xsl:otherwise>
                              <fo:inline><xsl:apply-templates/></fo:inline>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template match="*[local-name() = 'tab']">
              <!-- zero-space char -->
              <xsl:variable name="depth">
                      <xsl:call-template name="getLevel">
                              <xsl:with-param name="depth" select="../@depth"/>
                      </xsl:call-template>
              </xsl:variable>

              <xsl:variable name="padding">

                              <xsl:choose>
                                      <xsl:when test="$depth = 1 and local-name(..) != 'annex'">7.5</xsl:when>                                                                                
                                      <xsl:otherwise>4</xsl:otherwise>
                              </xsl:choose>

              </xsl:variable>

              <xsl:variable name="padding-right">
                      <xsl:choose>
                              <xsl:when test="normalize-space($padding) = ''">0</xsl:when>
                              <xsl:otherwise>
                                      <xsl:value-of select="normalize-space($padding)"/>
                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>

              <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>

              <xsl:choose>
                      <xsl:when test="$language = 'zh'">
                              <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
                      </xsl:when>
                      <xsl:when test="../../@inline-header = 'true'">
                              <fo:inline font-size="90%">
                                      <xsl:call-template name="insertNonBreakSpaces">
                                              <xsl:with-param name="count" select="$padding-right"/>
                                      </xsl:call-template>
                              </fo:inline>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:variable name="direction"><xsl:if test="$lang = 'ar'"><xsl:value-of select="$RLM"/></xsl:if></xsl:variable>
                              <fo:inline padding-right="{$padding-right}mm"><xsl:value-of select="$direction"/>​</fo:inline>
                      </xsl:otherwise>
              </xsl:choose>

      </xsl:template><xsl:template name="insertNonBreakSpaces">
              <xsl:param name="count"/>
              <xsl:if test="$count &gt; 0">
                      <xsl:text> </xsl:text>
                      <xsl:call-template name="insertNonBreakSpaces">
                              <xsl:with-param name="count" select="$count - 1"/>
                      </xsl:call-template>
              </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'domain']">
              <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
              <xsl:text> </xsl:text>
      </xsl:template><xsl:template match="*[local-name() = 'admitted']">
              <fo:block xsl:use-attribute-sets="admitted-style">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
              <xsl:variable name="title-deprecated">

                              <xsl:call-template name="getTitle">
                                      <xsl:with-param name="name" select="'title-deprecated'"/>
                              </xsl:call-template>

              </xsl:variable>
              <fo:block xsl:use-attribute-sets="deprecates-style">
                      <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'definition']">
              <fo:block xsl:use-attribute-sets="definition-style">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]">
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p']">
              <fo:inline> <xsl:apply-templates/></fo:inline>
              <fo:block> </fo:block>
      </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">

              <fo:block>
                      <xsl:call-template name="setId"/>

                      <xsl:apply-templates/>
              </fo:block>

                              <xsl:if test="position() != last()">
                                      <fo:block break-after="page"/>
                              </xsl:if>

      </xsl:template><xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
              <fo:block break-after="page"/>
              <fo:block>
                      <xsl:call-template name="setId"/>
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'clause']">
              <fo:block>
                      <xsl:call-template name="setId"/>

                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'definitions']">
              <fo:block id="{@id}">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">

                      <fo:block break-after="page"/>

              <fo:block id="{@id}">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'annex']">
              <fo:block break-after="page"/>
              <fo:block id="{@id}">

              </fo:block>
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name() = 'review']">
              <!-- comment 2019-11-29 -->
              <!-- <fo:block font-weight="bold">Review:</fo:block>
              <xsl:apply-templates /> -->
      </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
              <!-- 0xA0 to space replacement -->
              <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
      </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
              <xsl:choose>
                      <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
                              <fo:block-container>
                                      <xsl:attribute name="margin-left">
                                              <xsl:choose>
                                                      <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
                                                      <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
                                              </xsl:choose>
                                      </xsl:attribute>

                                      <fo:block-container margin-left="0mm">
                                              <fo:block>
                                                      <xsl:apply-templates select="." mode="ul_ol"/>
                                              </fo:block>
                                      </fo:block-container>
                              </fo:block-container>
                      </xsl:when>
                      <xsl:otherwise>
                              <fo:block>
                                      <xsl:apply-templates select="." mode="ul_ol"/>
                              </fo:block>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
              <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
                      <bookmark><xsl:value-of select="@id"/></bookmark>
              </xsl:for-each>
      </xsl:variable><xsl:template match="@*|node()" mode="index_add_id">
              <xsl:copy>
                              <xsl:apply-templates select="@*|node()" mode="index_add_id"/>
              </xsl:copy>
      </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="index_add_id">
              <xsl:variable name="id">
                      <xsl:call-template name="generateIndexXrefId"/>
              </xsl:variable>
              <xsl:copy> <!-- add id to xref -->
                      <xsl:apply-templates select="@*" mode="index_add_id"/>
                      <xsl:attribute name="id">
                              <xsl:value-of select="$id"/>
                      </xsl:attribute>
                      <xsl:apply-templates mode="index_add_id"/>
              </xsl:copy>
              <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
              <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
              <xsl:if test="@to">
                      <xsl:value-of select="$dash"/>
                      <xsl:copy>
                              <xsl:copy-of select="@*"/>
                              <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
                              <xsl:attribute name="id">
                                      <xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
                              </xsl:attribute>
                              <xsl:apply-templates mode="index_add_id"/>
                      </xsl:copy>
              </xsl:if>
      </xsl:template><xsl:template match="@*|node()" mode="index_update">
              <xsl:copy>
                              <xsl:apply-templates select="@*|node()" mode="index_update"/>
              </xsl:copy>
      </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" mode="index_update">
              <xsl:copy>
                      <xsl:apply-templates select="@*" mode="index_update"/>
              <xsl:apply-templates select="node()[1]" mode="process_li_element"/>
              </xsl:copy>
      </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/node()" mode="process_li_element" priority="2">
              <xsl:param name="element"/>
              <xsl:param name="remove" select="'false'"/>
              <xsl:param name="target"/>
              <!-- <node></node> -->
              <xsl:choose>
                      <xsl:when test="self::text()  and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
                              <!-- skip text (i.e. remove it) and process next element -->
                              <!-- [removed_<xsl:value-of select="."/>] -->
                              <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
                                      <xsl:with-param name="target"><xsl:value-of select="$target"/></xsl:with-param>
                              </xsl:apply-templates>
                      </xsl:when>
                      <xsl:when test="self::text()">
                              <xsl:value-of select="."/>
                              <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
                      </xsl:when>
                      <xsl:when test="self::* and local-name(.) = 'xref'">
                              <xsl:variable name="id" select="@id"/>
                              <xsl:variable name="page" select="$index//item[@id = $id]"/>
                              <xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
                              <xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>

                              <xsl:variable name="id_prev" select="preceding-sibling::*[local-name() = 'xref'][1]/@id"/>
                              <xsl:variable name="page_prev" select="$index//item[@id = $id_prev]"/>

                              <xsl:choose>
                                      <!-- 2nd pass -->
                                      <!-- if page is equal to page for next and page is not the end of range -->
                                      <xsl:when test="$page != '' and $page_next != '' and $page = $page_next and not(contains($page, '_to'))">  <!-- case: 12, 12-14 -->
                                              <!-- skip element (i.e. remove it) and remove next text ',' -->
                                              <!-- [removed_xref] -->

                                              <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
                                                      <xsl:with-param name="remove">true</xsl:with-param>
                                                      <xsl:with-param name="target">
                                                              <xsl:choose>
                                                                      <xsl:when test="$target != ''"><xsl:value-of select="$target"/></xsl:when>
                                                                      <xsl:otherwise><xsl:value-of select="@target"/></xsl:otherwise>
                                                              </xsl:choose>
                                                      </xsl:with-param>
                                              </xsl:apply-templates>
                                      </xsl:when>

                                      <xsl:when test="$page != '' and $page_prev != '' and $page = $page_prev and contains($page_prev, '_to')"> <!-- case: 12-14, 14, ... -->
                                              <!-- remove xref -->
                                              <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
                                                      <xsl:with-param name="remove">true</xsl:with-param>
                                              </xsl:apply-templates>
                                      </xsl:when>

                                      <xsl:otherwise>
                                              <xsl:apply-templates select="." mode="xref_copy">
                                                      <xsl:with-param name="target" select="$target"/>
                                              </xsl:apply-templates>
                                              <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
                                      </xsl:otherwise>
                              </xsl:choose>
                      </xsl:when>
                      <xsl:when test="self::* and local-name(.) = 'ul'">
                              <!-- ul -->
                              <xsl:apply-templates select="." mode="index_update"/>
                      </xsl:when>
                      <xsl:otherwise>
                       <xsl:apply-templates select="." mode="xref_copy">
                                      <xsl:with-param name="target" select="$target"/>
                              </xsl:apply-templates>
                              <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template match="@*|node()" mode="xref_copy">
              <xsl:param name="target"/>
              <xsl:copy>
                      <xsl:apply-templates select="@*" mode="xref_copy"/>
                      <xsl:if test="$target != '' and not(xalan:nodeset($bookmark_in_fn)//bookmark[. = $target])">
                              <xsl:attribute name="target"><xsl:value-of select="$target"/></xsl:attribute>
                      </xsl:if>
                      <xsl:apply-templates select="node()" mode="xref_copy"/>
              </xsl:copy>
      </xsl:template><xsl:template name="generateIndexXrefId">
              <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>

              <xsl:variable name="docid">
                      <xsl:call-template name="getDocumentId"/>
              </xsl:variable>
              <xsl:variable name="item_number">
                      <xsl:number count="*[local-name() = 'li'][ancestor::*[local-name() = 'indexsect']]" level="any"/>
              </xsl:variable>
              <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
              <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_',  -->
      </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
              <xsl:apply-templates/>
              <fo:block>
              <xsl:if test="following-sibling::*[local-name() = 'clause']">
                      <fo:block> </fo:block>
              </xsl:if>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
              <xsl:apply-templates/>
      </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
              <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
              <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
              <fo:inline id="{@id}" font-size="1pt"/>
      </xsl:template><xsl:template match="*[local-name() = 'errata']">
              <!-- <row>
                                      <date>05-07-2013</date>
                                      <type>Editorial</type>
                                      <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
                                      <pages>D-3</pages>
                              </row>
              -->
              <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
                      <fo:table-column column-width="20mm"/>
                      <fo:table-column column-width="23mm"/>
                      <fo:table-column column-width="107mm"/>
                      <fo:table-column column-width="15mm"/>
                      <fo:table-body>
                              <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">

                                              <xsl:attribute name="font-family">Arial</xsl:attribute>

                                      <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
                                      <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
                                      <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
                                      <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
                              </fo:table-row>
                              <xsl:apply-templates/>
                      </fo:table-body>
              </fo:table>
      </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']">
              <fo:table-row>
                      <xsl:apply-templates/>
              </fo:table-row>
      </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']/*">
              <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
                      <fo:block><xsl:apply-templates/></fo:block>
              </fo:table-cell>
      </xsl:template><xsl:template name="processBibitem">

              <!-- end BIPM bibitem processing-->

      </xsl:template><xsl:template name="processBibitemDocId">
              <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
              <xsl:choose>
                      <xsl:when test="normalize-space($_doc_ident) != ''">
                              <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
                              <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
                                      <xsl:value-of select="$type"/><xsl:text> </xsl:text>
                              </xsl:if>
                              <xsl:value-of select="$_doc_ident"/>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
                              <xsl:if test="$type != ''">
                                      <xsl:value-of select="$type"/><xsl:text> </xsl:text>
                              </xsl:if>
                              <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="processPersonalAuthor">
              <xsl:choose>
                      <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">
                              <author>
                                      <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'completename']"/>
                              </author>
                      </xsl:when>
                      <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'initial']">
                              <author>
                                      <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
                                      <xsl:text> </xsl:text>
                                      <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'initial']" mode="strip"/>
                              </author>
                      </xsl:when>
                      <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'forename']">
                              <author>
                                      <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
                                      <xsl:text> </xsl:text>
                                      <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'forename']" mode="strip"/>
                              </author>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:apply-templates/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="renderDate">         
                      <xsl:if test="normalize-space(*[local-name() = 'on']) != ''">
                              <xsl:value-of select="*[local-name() = 'on']"/>
                      </xsl:if>
                      <xsl:if test="normalize-space(*[local-name() = 'from']) != ''">
                              <xsl:value-of select="concat(*[local-name() = 'from'], '–', *[local-name() = 'to'])"/>
                      </xsl:if>
      </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'initial']/text()" mode="strip">
              <xsl:value-of select="translate(.,'. ','')"/>
      </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
              <xsl:value-of select="substring(.,1,1)"/>
      </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
              <fo:inline><xsl:apply-templates/></fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'form']">
              <fo:block>
                      <xsl:apply-templates/>
              </fo:block>
      </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'label']">
              <fo:inline><xsl:apply-templates/></fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'text' or @type = 'date' or @type = 'file' or @type = 'password']">
              <fo:inline>
                      <xsl:call-template name="text_input"/>
              </fo:inline>
      </xsl:template><xsl:template name="text_input">
              <xsl:variable name="count">
                      <xsl:choose>
                              <xsl:when test="normalize-space(@maxlength) != ''"><xsl:value-of select="@maxlength"/></xsl:when>
                              <xsl:when test="normalize-space(@size) != ''"><xsl:value-of select="@size"/></xsl:when>
                              <xsl:otherwise>10</xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <xsl:call-template name="repeat">
                      <xsl:with-param name="char" select="'_'"/>
                      <xsl:with-param name="count" select="$count"/>
              </xsl:call-template>
              <xsl:text> </xsl:text>
      </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'button']">
              <xsl:variable name="caption">
                      <xsl:choose>
                              <xsl:when test="normalize-space(@value) != ''"><xsl:value-of select="@value"/></xsl:when>
                              <xsl:otherwise>BUTTON</xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <fo:inline>[<xsl:value-of select="$caption"/>]</fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'checkbox']">
              <fo:inline padding-right="1mm">
                      <fo:instream-foreign-object fox:alt-text="Box" baseline-shift="-10%">
                              <xsl:attribute name="height">3.5mm</xsl:attribute>
                              <xsl:attribute name="content-width">100%</xsl:attribute>
                              <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
                              <xsl:attribute name="scaling">uniform</xsl:attribute>
                              <svg xmlns="http://www.w3.org/2000/svg" width="80" height="80">
                                      <polyline points="0,0 80,0 80,80 0,80 0,0" stroke="black" stroke-width="5" fill="white"/>
                              </svg>
                      </fo:instream-foreign-object>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'radio']">
              <fo:inline padding-right="1mm">
                      <fo:instream-foreign-object fox:alt-text="Box" baseline-shift="-10%">
                              <xsl:attribute name="height">3.5mm</xsl:attribute>
                              <xsl:attribute name="content-width">100%</xsl:attribute>
                              <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
                              <xsl:attribute name="scaling">uniform</xsl:attribute>
                              <svg xmlns="http://www.w3.org/2000/svg" width="80" height="80">
                                      <circle cx="40" cy="40" r="30" stroke="black" stroke-width="5" fill="white"/>
                                      <circle cx="40" cy="40" r="15" stroke="black" stroke-width="5" fill="white"/>
                              </svg>
                      </fo:instream-foreign-object>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'select']">
              <fo:inline>
                      <xsl:call-template name="text_input"/>
              </fo:inline>
      </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'textarea']">
              <fo:block-container border="1pt solid black" width="50%">
                      <fo:block> </fo:block>
              </fo:block-container>
      </xsl:template><xsl:template name="convertDate">
              <xsl:param name="date"/>
              <xsl:param name="format" select="'short'"/>
              <xsl:variable name="year" select="substring($date, 1, 4)"/>
              <xsl:variable name="month" select="substring($date, 6, 2)"/>
              <xsl:variable name="day" select="substring($date, 9, 2)"/>
              <xsl:variable name="monthStr">
                      <xsl:choose>
                              <xsl:when test="$month = '01'">January</xsl:when>
                              <xsl:when test="$month = '02'">February</xsl:when>
                              <xsl:when test="$month = '03'">March</xsl:when>
                              <xsl:when test="$month = '04'">April</xsl:when>
                              <xsl:when test="$month = '05'">May</xsl:when>
                              <xsl:when test="$month = '06'">June</xsl:when>
                              <xsl:when test="$month = '07'">July</xsl:when>
                              <xsl:when test="$month = '08'">August</xsl:when>
                              <xsl:when test="$month = '09'">September</xsl:when>
                              <xsl:when test="$month = '10'">October</xsl:when>
                              <xsl:when test="$month = '11'">November</xsl:when>
                              <xsl:when test="$month = '12'">December</xsl:when>
                      </xsl:choose>
              </xsl:variable>
              <xsl:variable name="result">
                      <xsl:choose>
                              <xsl:when test="$format = 'ddMMyyyy'">
                                      <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
                                      <xsl:text> </xsl:text>
                                      <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
                              </xsl:when>
                              <xsl:when test="$format = 'ddMM'">
                                      <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
                                      <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
                              </xsl:when>
                              <xsl:when test="$format = 'short' or $day = ''">
                                      <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <xsl:value-of select="$result"/>
      </xsl:template><xsl:template name="convertDateLocalized">
              <xsl:param name="date"/>
              <xsl:param name="format" select="'short'"/>
              <xsl:variable name="year" select="substring($date, 1, 4)"/>
              <xsl:variable name="month" select="substring($date, 6, 2)"/>
              <xsl:variable name="day" select="substring($date, 9, 2)"/>
              <xsl:variable name="monthStr">
                      <xsl:choose>
                              <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
                              <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
                      </xsl:choose>
              </xsl:variable>
              <xsl:variable name="result">
                      <xsl:choose>
                              <xsl:when test="$format = 'ddMMyyyy'">
                                      <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
                                      <xsl:text> </xsl:text>
                                      <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
                              </xsl:when>
                              <xsl:when test="$format = 'ddMM'">
                                      <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
                                      <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
                              </xsl:when>
                              <xsl:when test="$format = 'short' or $day = ''">
                                      <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
                              </xsl:otherwise>
                      </xsl:choose>
              </xsl:variable>
              <xsl:value-of select="$result"/>
      </xsl:template><xsl:template name="insertKeywords">
              <xsl:param name="sorting" select="'true'"/>
              <xsl:param name="charAtEnd" select="'.'"/>
              <xsl:param name="charDelim" select="', '"/>
              <xsl:choose>
                      <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
                              <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
                                      <xsl:sort data-type="text" order="ascending"/>
                                      <xsl:call-template name="insertKeyword">
                                              <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
                                              <xsl:with-param name="charDelim" select="$charDelim"/>
                                      </xsl:call-template>
                              </xsl:for-each>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
                                      <xsl:call-template name="insertKeyword">
                                              <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
                                              <xsl:with-param name="charDelim" select="$charDelim"/>
                                      </xsl:call-template>
                              </xsl:for-each>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="insertKeyword">
              <xsl:param name="charAtEnd"/>
              <xsl:param name="charDelim"/>
              <xsl:apply-templates/>
              <xsl:choose>
                      <xsl:when test="position() != last()"><xsl:value-of select="$charDelim"/></xsl:when>
                      <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="addPDFUAmeta">
              <xsl:variable name="lang">
                      <xsl:call-template name="getLang"/>
              </xsl:variable>
              <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
                              <pdf:dictionary type="normal" key="ViewerPreferences">
                                      <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
                              </pdf:dictionary>
                      </pdf:catalog>
              <x:xmpmeta xmlns:x="adobe:ns:meta/">
                      <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
                              <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
                              <!-- Dublin Core properties go here -->
                                      <dc:title>
                                              <xsl:variable name="title">
                                                      <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">

                                                                      <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>

                                                      </xsl:for-each>
                                              </xsl:variable>
                                              <xsl:choose>
                                                      <xsl:when test="normalize-space($title) != ''">
                                                              <xsl:value-of select="$title"/>
                                                      </xsl:when>
                                                      <xsl:otherwise>
                                                              <xsl:text> </xsl:text>
                                                      </xsl:otherwise>
                                              </xsl:choose>                                                   
                                      </dc:title>
                                      <dc:creator>
                                              <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">

                                                              <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
                                                                      <xsl:value-of select="*[local-name() = 'person']/*[local-name() = 'name']/*[local-name() = 'completename']"/>
                                                                      <xsl:if test="position() != last()">; </xsl:if>
                                                              </xsl:for-each>

                                              </xsl:for-each>
                                      </dc:creator>
                                      <dc:description>
                                              <xsl:variable name="abstract">

                                                              <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>                                                                       

                                              </xsl:variable>
                                              <xsl:value-of select="normalize-space($abstract)"/>
                                      </dc:description>
                                      <pdf:Keywords>
                                              <xsl:call-template name="insertKeywords"/>
                                      </pdf:Keywords>
                              </rdf:Description>
                              <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
                                      <!-- XMP properties go here -->
                                      <xmp:CreatorTool/>
                              </rdf:Description>
                      </rdf:RDF>
              </x:xmpmeta>
      </xsl:template><xsl:template name="getId">
              <xsl:choose>
                      <xsl:when test="../@id">
                              <xsl:value-of select="../@id"/>
                      </xsl:when>
                      <xsl:otherwise>
                              <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
                              <xsl:value-of select="concat(generate-id(..), '_', text())"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="getLevel">
              <xsl:param name="depth"/>
              <xsl:choose>
                      <xsl:when test="normalize-space(@depth) != ''">
                              <xsl:value-of select="@depth"/>
                      </xsl:when>
                      <xsl:when test="normalize-space($depth) != ''">
                              <xsl:value-of select="$depth"/>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:variable name="level_total" select="count(ancestor::*)"/>
                              <xsl:variable name="level">
                                      <xsl:choose>
                                              <xsl:when test="parent::*[local-name() = 'preface']">
                                                      <xsl:value-of select="$level_total - 1"/>
                                              </xsl:when>
                                              <xsl:when test="ancestor::*[local-name() = 'preface']">
                                                      <xsl:value-of select="$level_total - 2"/>
                                              </xsl:when>
                                              <!-- <xsl:when test="parent::*[local-name() = 'sections']">
                                                      <xsl:value-of select="$level_total - 1"/>
                                              </xsl:when> -->
                                              <xsl:when test="ancestor::*[local-name() = 'sections']">
                                                      <xsl:value-of select="$level_total - 1"/>
                                              </xsl:when>
                                              <xsl:when test="ancestor::*[local-name() = 'bibliography']">
                                                      <xsl:value-of select="$level_total - 1"/>
                                              </xsl:when>
                                              <xsl:when test="parent::*[local-name() = 'annex']">
                                                      <xsl:value-of select="$level_total - 1"/>
                                              </xsl:when>
                                              <xsl:when test="ancestor::*[local-name() = 'annex']">
                                                      <xsl:value-of select="$level_total"/>
                                              </xsl:when>
                                              <xsl:when test="local-name() = 'annex'">1</xsl:when>
                                              <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
                                              <xsl:otherwise>
                                                      <xsl:value-of select="$level_total - 1"/>
                                              </xsl:otherwise>
                                      </xsl:choose>
                              </xsl:variable>
                              <xsl:value-of select="$level"/>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="split">
              <xsl:param name="pText" select="."/>
              <xsl:param name="sep" select="','"/>
              <xsl:param name="normalize-space" select="'true'"/>
              <xsl:if test="string-length($pText) &gt;0">
              <item>
                      <xsl:choose>
                              <xsl:when test="$normalize-space = 'true'">
                                      <xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
                              </xsl:otherwise>
                      </xsl:choose>
              </item>
              <xsl:call-template name="split">
                      <xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
                      <xsl:with-param name="sep" select="$sep"/>
                      <xsl:with-param name="normalize-space" select="$normalize-space"/>
              </xsl:call-template>
              </xsl:if>
      </xsl:template><xsl:template name="getDocumentId">              
              <xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
      </xsl:template><xsl:template name="namespaceCheck">
              <xsl:variable name="documentNS" select="namespace-uri(/*)"/>
              <xsl:variable name="XSLNS">                     

                              <xsl:value-of select="document('')//*/namespace::nist"/>

              </xsl:variable>
              <xsl:if test="$documentNS != $XSLNS">
                      <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
              </xsl:if>
      </xsl:template><xsl:template name="getLanguage">
              <xsl:param name="lang"/>                
              <xsl:variable name="language" select="java:toLowerCase(java:java.lang.String.new($lang))"/>
              <xsl:choose>
                      <xsl:when test="$language = 'en'">English</xsl:when>
                      <xsl:when test="$language = 'fr'">French</xsl:when>
                      <xsl:when test="$language = 'de'">Deutsch</xsl:when>
                      <xsl:when test="$language = 'cn'">Chinese</xsl:when>
                      <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:template name="setId">
              <xsl:attribute name="id">
                      <xsl:choose>
                              <xsl:when test="@id">
                                      <xsl:value-of select="@id"/>
                              </xsl:when>
                              <xsl:otherwise>
                                      <xsl:value-of select="generate-id()"/>
                              </xsl:otherwise>
                      </xsl:choose>                                   
              </xsl:attribute>
      </xsl:template><xsl:template name="add-letter-spacing">
              <xsl:param name="text"/>
              <xsl:param name="letter-spacing" select="'0.15'"/>
              <xsl:if test="string-length($text) &gt; 0">
                      <xsl:variable name="char" select="substring($text, 1, 1)"/>
                      <fo:inline padding-right="{$letter-spacing}mm">
                              <xsl:if test="$char = '®'">
                                      <xsl:attribute name="font-size">58%</xsl:attribute>
                                      <xsl:attribute name="baseline-shift">30%</xsl:attribute>
                              </xsl:if>                               
                              <xsl:value-of select="$char"/>
                      </fo:inline>
                      <xsl:call-template name="add-letter-spacing">
                              <xsl:with-param name="text" select="substring($text, 2)"/>
                              <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
                      </xsl:call-template>
              </xsl:if>
      </xsl:template><xsl:template name="repeat">
              <xsl:param name="char" select="'*'"/>
              <xsl:param name="count"/>
              <xsl:if test="$count &gt; 0">
                      <xsl:value-of select="$char"/>
                      <xsl:call-template name="repeat">
                              <xsl:with-param name="char" select="$char"/>
                              <xsl:with-param name="count" select="$count - 1"/>
                      </xsl:call-template>
              </xsl:if>
      </xsl:template><xsl:template name="getLocalizedString">
              <xsl:param name="key"/> 

              <xsl:variable name="curr_lang">
                      <xsl:call-template name="getLang"/>
              </xsl:variable>

              <xsl:variable name="data_value" select="normalize-space(xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang])"/>

              <xsl:choose>
                      <xsl:when test="$data_value != ''">
                              <xsl:value-of select="$data_value"/>
                      </xsl:when>
                      <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
                              <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
                      </xsl:when>
                      <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
              </xsl:choose>

      </xsl:template><xsl:template name="setTrackChangesStyles">
              <xsl:param name="isAdded"/>
              <xsl:param name="isDeleted"/>
              <xsl:choose>
                      <xsl:when test="local-name() = 'math'">
                              <xsl:if test="$isAdded = 'true'">
                                      <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
                              </xsl:if>
                              <xsl:if test="$isDeleted = 'true'">
                                      <xsl:attribute name="background-color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
                              </xsl:if>
                      </xsl:when>
                      <xsl:otherwise>
                              <xsl:if test="$isAdded = 'true'">
                                      <xsl:attribute name="border"><xsl:value-of select="$border-block-added"/></xsl:attribute>
                                      <xsl:attribute name="padding">2mm</xsl:attribute>
                              </xsl:if>
                              <xsl:if test="$isDeleted = 'true'">
                                      <xsl:attribute name="border"><xsl:value-of select="$border-block-deleted"/></xsl:attribute>
                                      <xsl:if test="local-name() = 'table'">
                                              <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
                                      </xsl:if>
                                      <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
                                      <xsl:attribute name="padding">2mm</xsl:attribute>
                              </xsl:if>
                      </xsl:otherwise>
              </xsl:choose>
      </xsl:template><xsl:variable name="LRM" select="'‎'"/><xsl:variable name="RLM" select="'‏'"/><xsl:template name="setWritingMode">
              <xsl:if test="$lang = 'ar'">
                      <xsl:attribute name="writing-mode">rl-tb</xsl:attribute>
              </xsl:if>
      </xsl:template><xsl:template name="setAlignment">
              <xsl:param name="align" select="normalize-space(@align)"/>
              <xsl:choose>
                      <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
                      <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
                      <xsl:when test="$align != ''">
                              <xsl:value-of select="$align"/>
                      </xsl:when>
              </xsl:choose>
      </xsl:template></xsl:stylesheet>