KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12
System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64
User : ServerPC ( 0)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  C:/Windows/System32/nb-NO/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : C:/Windows/System32/nb-NO/tracerpt.exe.mui
MZ����@���	�!�L�!This program cannot be run in DOS mode.

$�X=��9S��9S��9S������9S���Q��9S�Rich�9S�PEL3�4��!&�

���@ L�8.rdata�@@.rsrcL� �@@3�4�
lPP3�4�$����8.rdata8.rdata$voltmdP�.rdata$zzzdbg �.rsrc$01�%(y.rsrc$02 �ͨ՞{�e<�sQ���<9�PO>�3�4���0�H��(�H�`�x�	������3��?��@�A �B8�CP�Dh�E��F��G��H�����������(��@��X��p�������������� 0@P`p�������� 0@P`p�%��p&���(���1���2��3��D6���8^�4;���Ar�@G`��N ��U���\���d��8l�� t���x
��z��{���|T�}�������t����(��0��MUI
TITLES.XMLXREPORT.XSL���U�]�KA`�5�P�9Y��T�?�T�Zs��76%���MUInb-NO8logfile`l`*`Hendelsessporingsloggfil som skal behandles.4output`o`*`Tekstutdatafil. Standard er dumpfile.xml.Cdefine`df`*`Microsoft-spesifikk skjemafil for telling/rapportering.Ereport`report`*`Rapportfil med tekstutdata. Standard er Workload.xml.Arealtime`rt`session_name`Datakilde for Event Trace-�kt i sanntid.PAKsummary`summary`*`Tekstfil med sammendragsrapport. Standard er Summary.txt.8comp`int`*`Dump tolket strukturinformasjon i angitt fil.<force`y`*`Svar ja p� alle sp�rsm�l uten � be om bekreftelse. format`f`XML|HTML`Rapportformat.�rawtimestamp`rts`*`Rapporter ubehandlet tidsstempel i Event Trace-overskrift. Kan bare brukes med -o, ikke -report eller -summary.1tmffile`tmf`*`Trace Message Format-definisjonsfilQtmfsearchpath`tp`*`S�kebane for TMF-fil. Flere baner kan brukes, atskilt med ";".�image`i`*`Angir avbildningsbane for tjeneste. Den tilsvarende PDB-en vil befinne seg i symbolserveren. Flere baner kan brukes, atskilt med  ";".[symbolserver`pdb`*`Angir banen til symbolserveren. Flere baner kan brukes, atskilt med ";".Awppgmt`gmt`*`Konverter tidsstempler for WPP-nyttelast til GMT-tid?dumpformat`of`CSV|EVTX|XML`Dumpformat. Standardformatet er XML.Ereportlevel`rl`*`Systemrapportniv� fra 1 til 5. Standardverdien er 1.flessstrict`lr`*`Mindre begrenset. Bruk beste fors�k for hendelser som ikke svarer til hendelsesskjema.Lexport`export`*`Eksportfil for hendelsesskjema. Standardfilen er schema.man.*import`import`*`Hendelsesskjema-importfil.PALencoding`en`ANSI|Unicode`Utdatafilkoding. Bare tillatt med CSV-utdataformat.
Inndata
----------------

Utdata
----------------
8Feil!
En angitt fil er ikke en Event Trace-fil (*.ets).
Logger(e):
	Fil(er):
Hendelsesdefinisjoner:  %1!s!
DumpFile:           %1!s!
Rapport:             %1!s!
Sammendrag:            %1!s!
RessursTolket MOF:    %1!s!
�Advarsel!
Enkelte hendelser er ikke i samsvar med skjemaet.
Kj�r kommandoen p� nytt med -lr for � f� en mindre begrenset XML-dump
Eksport:            %1!s!
PA-tracerpt logfile1.etl logfile2.etl -o -reportUtracerpt logfile.etl -o logdmp.xml -of XML -lr -summary logdmp.txt -report logrpt.xml6tracerpt -rt "NT Kernel Logger" -o logfile.csv -of CSV9tracerpt logfile1.etl logfile2.etl -o logdump.xml -of XMLFtracerpt logfile.etl counterfile.blg -report logrpt.xml -df schema.xmlPA#
Linje %d: XMl-analyseringsfeil %X
0
Linje %d: Duplikat attributt "name" i <Report>
1
Linje %d: Duplikat attributt "name" i <Section>
)
Linje %d: Duplikat navn %wZ i <Section>
3
Linje %d: Duplikat attributt "version" i <Report>
?
Linje %d: ugyldig attributtverdi %wZ for "version" i <Report>
PA5
Linje %d: Duplikat attributt "threshold" i <Report>
A
Linje %d: ugyldig attributtverdi %wZ for "threshold" i <Report>
%
Linje %d: Duplikat <Report>-element
;
Linje %d: Mangler obligatorisk attributtnavn for <Report>
7
Linje %d: Mangler obligatorisk attributt for <Import>
<
Linje %d: Mangler obligatorisk attributtnavn for <Section>
?
Linje %d: Mangler obligatorisk attributtnavn for <EventTable>
?
Linje %d: Mangler obligatorisk attributtnavn for <CountTable>
=
Linje %d: Mangler obligatorisk attributteller for <Exclude>
A
Linje %d: Mangler obligatorisk attributtforekomst for <Include>
;
Linje %d: Mangler obligatorisk attributtnavn for <Column>
?
Linje %d: Mangler obligatorisk attributtfelt for <EventField>
>
Linje %d: Mangler obligatorisk attributtversjon for <Report>
>
Linje %d: Mangler obligatorisk attributtn�kkel for <Section> PAA
Linje %d: Mangler obligatorisk attributtobjekt for <CountTable>
K
Linje %d: Mangler obligatorisk payloadGuid for attributt for <EventField>
I
Linje %d: Mangler obligatorisk payloadId for attributt for <EventField>
O
Linje %d: Mangler obligatorisk payloadGuid for attributt for <EventJoinField>
M
Linje %d: Mangler obligatorisk payloadId for attributt for <EventJoinField>
0
Linje %d: Duplikat attributt "file" i <Import>
3
Linje %d: Feil ved �pning av filen %wZ i <Import>
8
Linje %d: Feil ved analysering av filen %wZ i <Import>
0
Linje %d: Duplikat attributt "key" i <Section>
<
Linje %d: Ugyldig attributtverdi %wZ for "key" i <Section>
1
Linje %d: Duplikat attributt "note" i <Section>
PA5
Linje %d: Duplikat attributt "topic" i <EventTable>
,
Linje %d: Duplikat navn %wZ i <EventTable>
4
Linje %d: Duplikat attributt "name" i <EventTable>
5
Linje %d: Duplikat attributt "level" i <EventTable>
A
Linje %d: Ugyldig attributtverdi %wZ for "level" i <EventTable>
9
Linje %d: Duplikat attributt "threshold" i <EventTable>
E
Linje %d: Ugyldig attributtverdi %wZ for "threshold" i <EventTable>
;
Linje %d: Duplikat attributt "transaction" i <EventTable>
F
Linje %d: Ugyldig verdi for transaksjonsattributt %wZ i <EventTable>
4
Linje %d: Duplikat attributt "task" i <EventTable>
@
Linje %d: Ugyldig attributtverdi %wZ for "task" i <EventTable>
8
Linje %d: Duplikat attributt "rowcount" i <EventTable>
D
Linje %d: Ugyldig attributtverdi %wZ for "rowcount" i <EventTable>
3
Linje %d: Duplikat attributt "key" i <EventTable>
?
Linje %d: Ugyldig attributtverdi %wZ for "key" i <EventTable>
4
Linje %d: Duplikat attributt "note" i <EventTable>
4
Linje %d: Duplikat attributt "name" i <CountTable>
,
Linje %d: Duplikat navn %wZ i <CountTable>
5
Linje %d: Duplikat attributt "topic" i <CountTable>
6
Linje %d: Duplikat attributt "object" i <CountTable>
3
Linje %d: Duplikat attributt "key" i <CountTable>
?
Linje %d: Ugyldig attributtverdi %wZ for "key" i <CountTable>
5
Linje %d: Duplikat attributt "level" i <CountTable>
A
Linje %d: Ugyldig attributtverdi %wZ for "level" i <CountTable>
4
Linje %d: Duplikat attributt "note" i <CountTable>
9
Linje %d: Duplikat attributt "threshold" i <CountTable>
E
Linje %d: Ugyldig attributtverdi %wZ for "threshold" i <CountTable>
4
Linje %d: Duplikat attributt "counter" i <Exclude>
@
Linje %d: Ugyldig attributtverdi for "counter" %wZ i <Exclude>
5
Linje %d: Duplikat attributt "instance" i <Include>
B
Linje %d: Ugyldig attributtverdi for  "instance" %wZ i <Include>
0
Linje %d: Duplikat attributt "name" i <Column>
1
Linje %d: Duplikat attributt "align" i <Column>
;
Linje %d: Ugyldig justeringsattributtverdi %wZ i <Column>
2
Linje %d: Duplikat attributt "format" i <Column>
3
Linje %d: Duplikat attributt "visible" i <Column>
;
Linje %d: Ugyldig synlig attributtverdi i %wZ in <Column>
3
Linje %d: Duplikat attributt "summary" i <Column>
<
Linje %d: Ugyldig sammendragsattributtverdi %wZ i <Column>
D
Linje %d: En deltabell kan ikke ha en kolonne med groupby-attributt3
Linje %d: Duplikat attributt "groupby" i <Column>
9
Linje %d: Ugyldig groupby-attributtverdi %wZ i <Column>
0
Linje %d: Duplikat attributt "sort" i <Column>
-
Linje %d: Duplikat prim�r sorteringskolonne
/
Linje %d: Duplikat sekund�r sorteringskolonne
;
Linje %d: Ugyldig sorteringsattributtverdi %wZ i <Column>
1
Linje %d: Duplikat attributt "order" i <Column>
;
Linje %d: Ugyldig rekkef�lgeattributtverdi %wZ i <Column>
0
Linje %d: Duplikat attributt "note" i <Column>
L
Linje %d: <Column> er det f�rste underordnede elementet under <EventTable>
5
Linje %d: Duplikat attributt "field" i <EventField>
:
Linje %d: Duplikat attributt "providerID" i <EventField>
I
Linje %d: Hendelsesfeltet %wZ m� ha <Table> med sann attributtransaksjonF
Linje %d: Ugyldig attributtverdi %wZ for "providerID" i <EventField>
9
Linje %d: Duplikat attributt "payloadId" i <EventField>
E
Linje %d: Ugyldig attributtverdi %wZ for "payloadId" i <EventField>
7
Linje %d: Duplikat attributt "version" i <EventField>
C
Linje %d: Ugyldig attributtverdi %wZ for "version" i <EventField>
B
Linje %d: Kan ikke angi mengde for <EventField> under <SubTable>
9
Linje %d: Duplikat attributt "aggregate" i <EventField>
;
Linje %d: Ugyldig mengdeattributtverdi %wZ i <EventField>
4
Linje %d: Duplikat attributt "note" i <EventField>
B
Linje %d: Det finnes ett og bare ett <EventField> under <Column>
K
Linje %d: <EqualJoin> er valgfritt og f�lger etter <Column> under <Table>
PA9
Linje %d: Duplikat attributt "field" i <EventJoinField>
T
Linje %d: Dette systemfeltet kan ikke v�re sammenf�yningsfelt for <EventJoinField>
>
Linje %d: Duplikat attributt "providerID" i <EventJoinField>
J
Linje %d: Ugyldig attributtverdi %wZ for "providerID" i <EventJoinField>
=
Linje %d: Duplikat attributt "payloadId" i <EventJoinField>
I
Linje %d: Ugyldig attributtverdi %wZ for "payloadId" i <EventJoinField>
;
Linje %d: Duplikat attributt "version" i <EventJoinField>
G
Linje %d: Ugyldig attributtverdi %wZ for "version" i <EventJoinField>
;
Linje %d: Mer enn to sammenf�yningsfelt under <EqualJoin>
C
Linje %d: Mangler obligatorisk attributtfelt for <EventJoinField>
6
Linje %d: Duplikat attributt "rowcount" i <SubTable>
B
Linje %d: Ugyldig attributtverdi %wZ for "rowcount" i <SubTable>
Z
Linje %d: <SubTable> er valgfritt og det siste underordnede elementet under <EventTable>
.
Linje %d: Duplikat attributt "id" i <String>
(
Linje %d: Duplikat navn %wZ i <String>
PA:
Linje %d: Mangler obligatorisk attributt-ID for <String>
3
Linje %d: <Section> er n�dvendig under <Sections>
W
Linje %d: Ingen tabell (CounterTable og/eller EventTable) er definert under <Section>
4
Linje %d: <Column> er n�dvendig under <EventTable>
W
Linje %d: En tabell med groupby-kolonne(r) m� ha mengdefelt i alle de andre kolonnene
R
Linje %d: En tabell som har kolonner med et mengdefelt, m� ha groupby-kolonne(r)
?
Linje %d: En tabell kan ikke ha b�de euqaljoin og transaction
g
Linje %d: En tabell med angitt transaksjonsattributt m� angi kolonner fra start- eller slutthendelser
o
Linje %d: En tabell med to hendelseskilder m� angi <EqualJoin>-tagg, eller transaksjonsattributt m� v�re sant
4
Linje %d: <EventField> er n�dvendig under <Column>
J
Linje %d: Et sammendragsattributt kan bare brukes p� en numerisk filtype
*
Advarsel linje %d: Ugyldig hendelsesfelt
4
Advarsel linje %d: Ugyldig kilde for hendelsesfelt
Q
Linje %d: Kilden for hendelsesfelt i <SubTable> er ikke definert i <EventTable>
PA=
Linje %d: Maksimalt antall feltkilder er to for hver tabell
@
Linje %d: Dette hendelsesfeltet kan ikke ha et mengdeattributt
?
Linje %d: Det m� v�re to sammenf�yningsfelt under <EqualJoin>
Z
Linje %d: To sammenf�yningsfeltkilder m� v�re ulike og allerede definerte under <Column>
<
Advarsel linje %d: Ugyldig sammenf�yningsfelt for hendelse
F
Advarselslinje %d: Ugyldig kilde for sammenf�yningsfelt for hendelse
2
Linje %d: <Column> er n�dvendig under <SubTable>
:
Linje %d: Ingen <String> er definert under <StringTable>
3
Linje %d: Mangler obligatorisk tekst for <String>
PA�Tracerpt behandler bin�re loggfiler for hendelsesspor�kten, sanntidsflyt, 
eller bin�re loggfiler for ytelsesteller fra instrumenterte hendelsessportilbydere og oppretter en rapport eller tekstfil som beskriver hendelsene og/eller tellerdataene.PAdebug`d`level`Feils�king#h`?`*`Viser kontekstsensitiv hjelp.Aini`config`*`Innstillingsfil som inneholder kommandoalternativer.Kommandoen er utf�rt.

Feil:
4Pr�v � kj�re denne kommandoen som en administrator.
Ukjent

Feil: 0x%1!08x!
PAvaluefilename[[tt:]mm:]ssy0Argument %1!s! og %2!s! kan ikke brukes sammen.
Argument %1!s! er p�krevd.
-Det kreves minst ett av f�lgende argumenter:
HArgument %1!s! kan ikke brukes sammen med de andre angitte argumentene.

Verb:
	
Adverb:

Alternativer:
Bruk:
  %1!s! PA[alternativer]
Argument %1!s! er ukjent.
!Argument %1!s! kan ikke negeres.
5Argument '%1!s!' er blitt definert for mange ganger.
)Argument %1!s! krever ekstra parametere.
v
Obs!
  Der [-] er oppf�rt, og ekstranegerer alternativet.
  For eksempel vil --%1!s! deaktivere alternativet -%1!s!.

Eksempler:

Alternativer (%1!s!):

Mer informasjon:
PA:Filen %1!s! finnes allerede. Vil du overskrive den? [y/n] �4VS_VERSION_INFO��
�e
�e?StringFileInfo�041404B0LCompanyNameMicrosoft Corporationn#FileDescriptionRapporteringsverkt�yet Event Traceh$FileVersion10.0.26100.1 (WinBuild.160101.0800):
InternalNameTraceRpt.Exep&LegalCopyright� Microsoft Corporation. Med enerett.JOriginalFilenameTraceRpt.Exe.MUIj%ProductNameOperativsystemet Microsoft� Windows�>
ProductVersion10.0.26100.1DVarFileInfo$Translation�<?xml version="1.0"?>
<!--***************************************************************************

    Copyright (c) Microsoft Corporation. All rights reserved.

****************************************************************************-->
<StringTable>
  <String ID="architecture">Plattform</String>
  <String ID="buffers">Buffere</String>
  <String ID="build">Windows-bygg</String>
  <String ID="client">Informasjon om datamaskin</String>
  <String ID="clock">Prosessorhastighet</String>
  <String ID="collected">Innsamlet</String>
  <String ID="collection">Samlingsinformasjon</String>
  <String ID="computer">Datamaskin</String>

  <String ID="cpu">Prosessor%</String>
  <String ID="tracerptCpusection">Prosessor</String>
  <String ID="tracerptDisk">Disk</String>
  <String ID="diskTotals">Disktotaler</String>
  <String ID="disk">Disknummer</String>
  <String ID="diskInfo">Disk</String>

  <String ID="dpcCPU">DPC-prosessorutnyttelse</String>
  <String ID="dpcExecutionTime">Distribusjon av DPC-kjøringstider</String>
  <String ID="tracerptDpcisr">DPC/ISR</String>
  <String ID="dpcIsrCPU">Fordeling av prosessorutnyttelse for DPC og ISR i tidsintervaller på 2 millisekunder</String>
  <String ID="dpcIsrLatencies">Fordeling av ISR- til DPC-ventetider</String>
  <String ID="duration">Varighet</String>
  <String ID="events">Behandlede hendelser</String>
  <String ID="groupCpu">Gruppeprosessor-%</String>
  <String ID="topProcessGroup">Topprosessgruppe</String>
  <String ID="tracerptHeader">Rapportstatistikk</String>
  <String ID="httpCpuTimeTotal">Alle forespørsler</String>
  <String ID="httpRespTimeTotal">Alle forespørsler</String>
  <String ID="isrCPU">ISR-prosessorutnyttelse</String>
  <String ID="isrExecutionTime">Fordeling av ISR-kjøringstider</String>
  <String ID="lostEvents">Tapte hendelser</String>
  <String ID="skippedEvents">Hendelser som er hoppet over</String>
  <String ID="logger">Loggernavn</String>

  <String ID="processors">Prosessorer</String>
  <String ID="readRate">Leseoperasjoner/sek</String>
  <String ID="readSize">kB/Lese</String>
  <String ID="requestRate">Forespørsler/sek</String>
  <String ID="responseTime">Svartid (ms)</String>
  <String ID="writeRate">Skriveoperasjoner/sek</String>
  <String ID="writeSize">kB/Skrive</String>

  <String ID="transaction">Aktivitet</String>
  <String ID="url">URL-adresse</String>
  <String ID="tracerptUserPdh">Programtellere</String>

  <String ID="httpCpuTime">HTTP - Statistikk for prosessorbruk</String>
  <String ID="httpRespTime">HTTP - Statistikk for svartid</String>

  <String ID="urlTimeDistByCpu">URL-adresse - Statistikk for prosessorbruk</String>
  <String ID="topUrls">URL-adresse - Høyeste forespørselshastighet</String>
  <String ID="topStaticUrls">URL-adresse - Høyeste forespørselshastighet etter statiske URL-adresser</String>
  <String ID="topBytesSentUrls">URL-adresse - Flest byte sendt</String>
  <String ID="slowestUrls">URL-adresse - Lengste svartider</String>

  <String ID="clientRequests">Klienter - Høyeste forespørselstall</String>
  <String ID="clientResponses">Klienter - Lengste svartider</String>

  <String ID="siteCpuTime">Områder - Statistikk for prosessorbruk</String>
  <String ID="siteRequests">Områder - Høyeste forespørselstall</String>
  <String ID="siteBytesSent">Områder - Flest byte sendt</String>
  <String ID="siteResponseTime">Områder - Lengste svartider</String>

  <String ID="service">Tjeneste</String>
  <String ID="serviceName">Tjenestenavn</String>
  <String ID="description">Beskrivelse</String>
  <String ID="status">Status</String>
  <String ID="group">Gruppe</String>
  <String ID="regRate">Registeroperasjoner/sek</String>
  <String ID="pfRate">Sidefeil/sek</String>
  <String ID="serviceStats">Tjenestestatistikk</String>
  <String ID="image">Bildenavn</String>
  <String ID="pid">Prosess-ID</String>
  <String ID="authority">Autoritet</String>
  <String ID="tracerptIis">IIS-server</String>
  <String ID="process">Prosess</String>
  <String ID="imageStats">Bildestatistikk</String>
  <String ID="kernelCpuPer">Kjerneprosessor-%</String>
  <String ID="userCpuPer">Brukerprosessor-%</String>
  <String ID="threads">Tråder</String>
  <String ID="usedThreads">Brukt</String>
  <String ID="launchedThreads">Startet</String>
  <String ID="hotFile">Filer som forårsaker flest disk-I/Uer</String>
  <String ID="file">Fil</String>
  <String ID="diskNumber">Disknummer</String>
  <String ID="staticCachedHttp">Statisk HTTP (i hurtigbuffer)</String>
  <String ID="asp">ASP</String>
  <String ID="staticHttp">Statisk HTTP</String>
  <String ID="cgi">CGI</String>
  <String ID="errors">Feil</String>
  <String ID="requestType">Forespørselstype</String>
  <String ID="aspPercent">ASP%</String>
  <String ID="siteId">Område</String>
  <String ID="cached">Bufret%</String>
  <String ID="bytesSentRate">Sendte byte/sek</String>
  <String ID="ip">IP-adresse</String>
  <String ID="staticPercent">Statisk forespørsel%</String>
  <String ID="cpuTime">Prosessortid (ms)</String>
  <String ID="spoolerQueue">Statistikk for utskriftskø</String>
  <String ID="spoolerJobs">Jobbstatistikk for utskriftskø</String>
  <String ID="jobId">Jobb-ID</String>
  <String ID="type">Type</String>
  <String ID="jobSize">Jobbstørrelse (kB)</String>
  <String ID="pages">Sider</String>
  <String ID="PPS">PPS</String>
  <String ID="files">Filer</String>
  <String ID="xRes">XRes</String>
  <String ID="yRes">YRes</String>
  <String ID="qlty">Qlty</String>
  <String ID="copies">Kopier</String>
  <String ID="ttopt">TTOpt</String>
  <String ID="gdiSize">GDI-størrelse</String>
  <String ID="color">Farge</String>
  <String ID="start">Starttidspunkt</String>
  <String ID="dequeue">Tidspunkt for køavvikling</String>
  <String ID="end">Sluttidspunkt</String>
  <String ID="slowestJob">Langsomste jobb</String>
  <String ID="aveJobSize">Gjennomsnittlig jobbstørrelse (kB)</String>
  <String ID="totalCpu">Total prosessor-%</String>
  <String ID="iisRespTime">Svartid (ms)</String>
  <String ID="iisRequests">HTTP-forespørsler per sekund</String>

  <String ID="dpcisrBreakDown">DPC/ISR-fordeling</String>
  <String ID="diskBreakDown">Diskfordeling</String>
  <String ID="module">Modul</String>
  <String ID="address">Adresse</String>
  <String ID="lowerBound">Nedre grense</String>
  <String ID="upperBound">Øvre grense</String>
  <String ID="percent">Prosent</String>
  <String ID="processor">Prosessor</String>
  <String ID="isr">ISR</String>
  <String ID="dpc">DPC</String>
  <String ID="sum">SUM</String>
  <String ID="isrModule">ISR-modul</String>
  <String ID="isrAddress">ISR-adresse</String>
  <String ID="dpcModule">DPC-modul</String>
  <String ID="dpcAddress">DPC-adresse</String>

  <String ID="transCpuPercent">Prosessorbruk for transaksjoner</String>
  <String ID="transRate">Transaksjonshastighet</String>
  <String ID="minKcpu">Min KCPU</String>
  <String ID="minUcpu">Min UCPU</String>
  <String ID="maxKcpu">Maks KCPU</String>
  <String ID="maxUcpu">Maks UCPU</String>
  <String ID="kCpuPerTrans">KCPU PerTrans</String>
  <String ID="uCpuPerTrans">UCPU PerTrans</String>
  <String ID="toalKcpu">Total KCPU</String>
  <String ID="toalUcpu">Total UCPU</String>
  <String ID="ulPercent">Http.sys%</String>
  <String ID="w3Percent">W3%</String>
  <String ID="w3FilterPercent">W3Filter%</String>
  <String ID="isapiPercent">ISAPI%</String>
  <String ID="cgiPercent">CGI%</String>
  <String ID="hotFiles">Mest aktive filer</String>
  <String ID="jobs">Jobber</String>
  <String ID="overview">Oversikt</String>
  <String ID="clients">Klienter</String>
  <String ID="sites">Områder</String>
  <String ID="fileDuration">Filvarighet</String>
  <String ID="version">Versjon</String>
  <String ID="tracerpt">Sporingsrapport for Windows</String>
  <String ID="tracerptPrintSpooler">Utskriftskø</String>
  <String ID="inclusiveTrans">Inkluderende transaksjoner per sekund</String>
  <String ID="exclusiveTrans">Ekskluderende transaksjoner per prosess</String>
  <String ID="processName">Prosessnavn</String>
  <String ID="transName">Transaksjonsnavn</String>
  <String ID="processCpu">Prosessprosessor</String>
  <String ID="responseTimeDist">Distribusjon av svartid</String>
  <String ID="cpuDist">Prosessorfordeling</String>
  <String ID="task">Oppgave</String>
  <String ID="useTimingWindow">Bruk tidsvindu</String>
  <String ID="count">Antall</String>
  <String ID="event">Hendelse</String>

  <String ID="iisCachedStaticRequests">HTTP - Bufrede forespørsler/sek</String>
  <String ID="iisNonCachedStaticRequests">HTTP - Ikkebufrede forespørsler/sek</String>
  <String ID="slowestUrl">Beste URL-adresse etter svartid</String>
  <String ID="topUrlCpu">Mest brukte URL-adresse etter prosessor-%</String>
  <String ID="topClientRequest">Beste klient etter forespørselshastighet</String>
  <String ID="topFileIO">Beste fil etter I/U-hastighet</String>
  <String ID="topDiskIO">Beste disk etter I/U-hastighet</String>
  <String ID="ioRate">I/U/sek</String>
  <String ID="transactionStats">Statistikk over eksklusiv aktivitet</String>
  <String ID="sendRate">TCP-sendinger/sek</String>
  <String ID="recvRate">TCP-mottak/sek</String>

  <String ID="displayName">Ytelsesteller</String>
  <String ID="instance">Forekomst</String>
  <String ID="machine">Maskin</String>
  <String ID="max">Maksimum</String>
  <String ID="mean">Median</String>
  <String ID="min">Minimum</String>

  <String ID="payloadGuid">Nyttelast-GUID</String>
  <String ID="payloadId">Nyttelast-ID</String>
  <String ID="opcode">Opkode</String>
  <String ID="Client">Klient</String>
  <String ID="Yes">Ja</String>
  <String ID="No">Nei</String>
  <String ID="memory">Minne</String>

  <String ID="error">Feil</String>
  <String ID="errorCode">Feilkode</String>
  <String ID="errorMessage">Feilmelding</String>
  <String ID="unknownError">Ukjent feil</String>

  <String ID="sec">Sekunder</String>
  <String ID="MB">MB</String>
  <String ID="bit">Bit</String>
  <String ID="MHz">MHz</String>

</StringTable>
PA<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:ms="urn:microsoft-performance" exclude-result-prefixes="msxsl" version="1.0">
<xsl:output method="html" indent="no" standalone="yes" encoding="UTF-16"/>

<!--***************************************************************************

    Copyright (c) Microsoft Corporation. All rights reserved.

****************************************************************************-->

<!-- ********** LOCALIZATION ********** -->

<xsl:template name="localization">
  <_locDefinition>
    <_locDefault _loc="locNone"/>
    <_locTag _loc="locData">String</_locTag>
  </_locDefinition>
</xsl:template>

<!-- ********** XSL PARAMETERS ********** -->

<xsl:param name="defaultTop"/>
<xsl:param name="defaultLevel"/>

<!-- ********** XSL FUNCTIONS ********** -->

<msxsl:script language="JScript" implements-prefix="ms">

var g_tag = 0;

function unique(list, index)
{
  var check = index - 1;

  if (!list || check == 0 || index == 0) {
    return 1;
  }

  for (var i=0;i &lt; check;i++) {
    var compare = list.item(i).text;
    if (list.item(check).text == compare) {
      return 0;
    }
  }

  return 1;
}

function idof(name)
{
  var id = 1;

  for (var i=name.length; i&gt;0; i--) {
    if (!isNaN(name.charCodeAt(i))) {
      id = name.charCodeAt(i) + id * 37;
    }
  }

  id = Math.abs(314159269 * id) % 1000000007;

  return id;
}

function top(list, field)
{
  try{
    var topIndex = 0;
    var topValue = 0;
    var filter = "Data[@name = '" + field + "']";

    for (var i=0;i &lt; list.length;i++) {
      var node = list.item(i).selectSingleNode(filter);
      if (node) {
        var test = node.text * 1;
        if (test &gt; topValue) {
          topIndex = i;
          topValue = test;
        }
      }
    }

    return (topIndex+1) * 1;

  }catch(e){
    return 0;
  }
}

function tag()
{
    return ++g_tag;
}

</msxsl:script>

<!-- ********** LOCAL VARIABLES ********** -->

<xsl:variable name="Portable" select="/Report/@portable"/>

<xsl:variable name="titles">
  <String ID="report">Rapport</String>
  <String ID="title">Tittel</String>
  <String ID="summary">Sammendrag</String>
  <String ID="top">Viser:</String>
  <String ID="topOf">Poster:</String>
  <String ID="warnings">Advarsler</String>
  <String ID="type">Type</String>
  <String ID="item">Element</String>
  <String ID="warning">Advarsel</String>
  <String ID="total">Totalt</String>
  <String ID="average">Gjennomsnitt</String>
  <xsl:for-each select="/Report/StringTable/String">
    <xsl:copy-of select="."/>
  </xsl:for-each>
</xsl:variable>

<xsl:variable name="images">
  <xsl:for-each select="/Report/ImageTable/Image">
    <xsl:copy-of select="."/>
  </xsl:for-each>
  <xsl:choose>
    <xsl:when test="$Portable">
      <Image ID="expand"><div style="font-family:webdings;font-size:14pt;line-height:9px;font-weight:100;"><xsl:value-of select="'6'"/></div></Image>
      <Image ID="collapse"><div style="font-family:webdings;font-size:14pt;line-height:9pt;font-weight:100;"><xsl:value-of select="'5'"/></div></Image>
      <Image ID="contents"><div style="font-family:webdings;font-size:13pt;line-height:10pt;font-weight:100;"><xsl:value-of select="'1'"/></div></Image>
      <Image ID="info"><div style="font-family:webdings;font-size:12pt;line-height:9pt;color:deepskyblue;font-weight:100;"><xsl:value-of select="'('"/></div></Image>
      <Image ID="warning"><div style="font-family:webdings;font-size:12pt;line-height:9pt;font-weight:bolder;color:orange;"><xsl:value-of select="'ê'"/></div></Image>
      <Image ID="error"><div style="font-family:webdings;font-size:12pt;line-height:9pt;color:red;font-weight:100;"><xsl:value-of select="'r'"/></div></Image>
      <Image ID="flag"><div style="font-family:wingdings;font-size:10pt;line-height:9pt;color:firebrick;font-weight:100;"><xsl:value-of select="'O'"/></div></Image>
      <Image ID="note"><div style="font-family:webdings;font-size:8pt;line-height:9pt;font-weight:100;"><xsl:value-of select="''"/></div></Image>
      <Image ID="open"> <div style="font-family:arial;font-size:12pt;border:solid 1px black;line-height:9px;">+</div></Image>
      <Image ID="close"><div style="font-family:arial;font-size:10pt;border:solid 1px black;line-height:7px;width:11px;text-align:center;padding-bottom:2px;"><xsl:value-of select="'–'"/></div></Image>
      <Image ID="red"><div style="font-family:webdings;font-size:8pt;line-height:9pt;color:red;font-weight:100;"><xsl:value-of select="'n'"/></div></Image>
      <Image ID="yellow"><div style="font-family:webdings;font-size:8pt;line-height:9pt;color:gold;font-weight:100;"><xsl:value-of select="'n'"/></div></Image>
      <Image ID="green"><div style="font-family:webdings;font-size:8pt;line-height:9pt;color:limegreen;font-weight:100;"><xsl:value-of select="'n'"/></div></Image>
    </xsl:when>
    <xsl:otherwise>
      <Image ID="expand">res://wdc.dll/expand.gif</Image>
      <Image ID="collapse">res://wdc.dll/collapse.gif</Image>
      <Image ID="contents">res://wdc.dll/contents.gif</Image>
      <Image ID="info">res://wdc.dll/info.gif</Image>
      <Image ID="warning">res://wdc.dll/warning.gif</Image>
      <Image ID="error">res://wdc.dll/error.gif</Image>
      <Image ID="flag">res://wdc.dll/flag.gif</Image>
      <Image ID="note">res://wdc.dll/note.gif</Image>
      <Image ID="open">res://wdc.dll/open.gif</Image>
      <Image ID="close">res://wdc.dll/close.gif</Image>
      <Image ID="red">res://wdc.dll/red.gif</Image>
      <Image ID="yellow">res://wdc.dll/yellow.gif</Image>
      <Image ID="green">res://wdc.dll/green.gif</Image>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

<xsl:variable name="tab"><xsl:value-of select="'                '"/></xsl:variable>

<xsl:variable name="Top">
  <xsl:choose>
    <xsl:when test="$defaultTop"><xsl:value-of select="$defaultTop"/></xsl:when>
    <xsl:when test="/Report/@top"><xsl:value-of select="/Report/@top"/></xsl:when>
    <xsl:otherwise>10</xsl:otherwise>
  </xsl:choose>
</xsl:variable>

<xsl:variable name="Level">
  <xsl:choose>
    <xsl:when test="$defaultLevel"><xsl:value-of select="$defaultLevel"/></xsl:when>
    <xsl:when test="/Report/@level"><xsl:value-of select="/Report/@level"/></xsl:when>
    <xsl:otherwise>1</xsl:otherwise>
  </xsl:choose>
</xsl:variable>

<xsl:template match="/">
<html>

<!-- ********** HTML STYLE DEFINITION ********** -->

<style>
  body{ font-family: 'Segoe UI', Arial; color: black; margin-left: 5px; margin-right: 5px; margin-top: 5px;}
  td{ font-size: 75%; }
  th{ font-size: 70%; font-weight: bolder; border: 1px solid lightgrey; vertical-align: bottom; }
  hr{ border:1px solid lightgrey; height:1px; }
  ul{ margin-left: 16px; }
  li { font-size: 90%; }
  li li { font-size: 75%; }
  li li li { font-size: 90%; }

  .block{ border: solid gray 1px; width: 100%; }
  .popup{ position:absolute; z-index:1; background-color:infobackground; border:solid; border-width:1px; border-right-width:2px; border-bottom-width:2px; font-size: x-small;font-weight: normal;text-align: left;padding: 8px; }
  .layout{ border: 0; padding: 0; width: 100%; }
  .content{ border: solid gray 1px; width: 100%; border-top:'none';}
  .local { color: windowtext; }

  .top {
    padding-top: 1px;
    margin: 1px;
    border: none;
    font-size: 100%;
    font-family: Verdana, Arial;
  }

  .title-bar{
    color: buttontext;
    margin-top: 5px;
    border: solid gray 1px;
    width: 100%;
    padding: 3;
    font-weight: bolder;
    vertical-align: middle;
    filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='buttonhighlight',EndColorStr='threedshadow');
  }

  .topic-bar {
    color: buttontext;
    margin-top: 5px;
    border: solid gray 1px;
    width: 100%;
    padding: 4;
    font-weight: bolder;
    font-size: 20%
    vertical-align: middle;
    filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='threedhighlight',EndColorStr='threedlightshadow');
  }

  .toc-window {
    background: window;
    position: absolute;
    z-index: 1;
    border:solid gray;
    border-width:1px;
    border-right-width: 2px;
    border-bottom-width: 2px;
  }

  .toc-top {
    color: gray;
    background: lightgrey;
    border-bottom:solid gray 1px;
    text-align:right;
    text-decoration:none;
    padding-right:2px;
  }

  .toc-content {
    padding-top: 8px;
    background: window;
    font-weight: normal;
    text-align: left;
    padding-left: 8px;
    height: 400px;
    width: 230px;
    overflow-y: scroll;
  }

  .h1{ font-size: 90%; font-weight: bolder; }
  .h2{ font-size: 90%; font-weight: bolder; }
  .h3{ font-size: 80%; font-weight: bolder; font-style: italic; }
  .h4{ font-size: 70%; font-weight: bolder;}

  .b1{ background: white; }
  .b2{ background: whitesmoke; }

  .w1{ background: pink; }

  .bold{ font-weight: bolder; }
  .italic{ font-style: italic; }

  .number{ text-align: right; }
  .string{ text-align: left; }
  .info{ font-size: 70%; }
  .code{ font-family: courier; }
  .span{ text-align: center; border-bottom:1px solid lightgrey;}

  .total{ font-style: normal; }
  .average{ font-style: italic; }
</style>

<body class="b1">
<form>

<!-- ********** RUNTIME SCRIPT ********** -->

<script>

var cc = "";

function popup(d)
{
  var x = window.event.x + 12;
  var y = window.event.clientY + document.body.scrollTop - 5;

  d.style.display = '';

  if ((y + d.clientHeight) - document.body.scrollTop &gt; document.body.clientHeight) {
    y = y - d.clientHeight;
    if (y &lt; document.body.scrollTop) {
      y = document.body.scrollTop + 2;
    }
  }

  d.style.top = y;

  if (d.clientWidth + x &gt; (document.body.clientWidth-4)) {
    d.style.left =  window.event.x - 8 - d.clientWidth;
    d.style.right = window.event.x - 8;
  }else{
    d.style.left =  x;
    d.style.right = x + d.clientWidth;
  }
}

function compare(elem1, elem2, reverse)
{
  var sgn = reverse ? -1 : 1;

  if (elem1.isnum <xsl:value-of select="'&amp;&amp;'"/> !elem2.isnum) {
    return -1;
  }
  if (elem2.isnum <xsl:value-of select="'&amp;&amp;'"/> !elem1.isnum) {
    return 1;
  }
  if (elem1.text &lt; elem2.text) {
    return -sgn;
  }
  if (elem1.text &gt; elem2.text) {
    return sgn;
  }
  return 0;
}

function sort(t)
{
  try{
    var tbody = t.tBodies(0);
    var iColumn = window.event.srcElement.cellIndex;
    var reverse;
    var iRowEnd = tbody.rows.length-1;
    var iSortRowCnt;

    for (var col = 0; col &lt; iColumn; col++) {
      if (tbody.rows[0].cells[col].colSpan &gt; 1) {
        iColumn -= (tbody.rows[0].cells[col].colSpan - 1);
      }
    }

    var key = t.id + "_" + iColumn;

    if (isNaN( tbody.children[0].children[iColumn].innerText.charAt(0))) {
      reverse = false;
    }else{
      reverse = true;
    }

    if (cc == key) {
      cc = "";
      reverse = !reverse;
    }else{
      cc = key;
    }

    var t1 = new Array();
    var t2 = new Array();
    var tab1, tab2;
    var i, j;
    var re =/\D/g;

    iSortRowCnt = 0;
    for (i = 0; i &lt;= iRowEnd; ++i) {
      if (tbody.children[i].child == 'true') {
        continue;
      }

      t1[iSortRowCnt] = new Object();
      if (typeof(tbody.children[i].children[iColumn]) != "undefined") {
        text = tbody.children[i].children[iColumn].innerText;
      }else{
        text = "";
      }

      if (!isNaN(text.charAt(0))) {
        t1[iSortRowCnt].text = eval(text.replace(re, ""));
        t1[iSortRowCnt].isnum = true;
      }else{
        t1[iSortRowCnt].text = text.toLowerCase();
        t1[iSortRowCnt].isnum = false;
      }

      t1[iSortRowCnt].ptr = tbody.children[i];
      iSortRowCnt++;
    }

    tab2 = t1;
    tab1 = t2;
    for (var iSize = 1; iSize &lt; iSortRowCnt; iSize *= 2) {
      var iBeg, iLeft, iRight, iLeftEnd, iRightEnd, iDest;

      if (tab1 == t2) {
        tab1 = t1;
        tab2 = t2;
      }else{
        tab1 = t2;
        tab2 = t1;
      }

      for (iBeg = 0; iBeg &lt; iSortRowCnt; iBeg += iSize*2) {
        iRight = iBeg+iSize;

        if (iRight &gt;= iSortRowCnt) {
          break;
        }

        iRightEnd = iRight+iSize-1;

        if (iRightEnd &gt;= iSortRowCnt) {
          iRightEnd = iSortRowCnt-1;
        }

        iLeftEnd = iRight-1;
        iLeft = iBeg;

        for (iDest = iLeft; iDest &lt;= iRightEnd; ++iDest) {
          if ((iRight &gt; iRightEnd) ||
            (iLeft &lt;= iLeftEnd <xsl:value-of select="'&amp;&amp;'"/>
            compare(tab1[iLeft], tab1[iRight], reverse) &lt;= 0)) {
            tab2[iDest] = tab1[iLeft];
            ++iLeft;
          }else{
            tab2[iDest] = tab1[iRight];
            ++iRight;
          }
        }
      }

      for (iDest = iRightEnd+1; iDest &lt; iSortRowCnt; ++iDest) {
        tab2[iDest] = tab1[iDest];
      }
    }

    for (i = iSortRowCnt-1; i &gt;= 0; --i) {
      var first = tbody.children[0];
      var insert = tab2[i].ptr, next;

      if (insert == first) {
        continue;
      }

      next = insert.nextSibling;
      while (next <xsl:value-of select="'&amp;&amp;'"/> next.child == 'true') {
        tbody.insertBefore(insert, first);
        insert = next;
        next = insert.nextSibling;
      }
      tbody.insertBefore(insert, first);
    }

  } catch(e) {
  }

  if (tbody.mode != "child") {
    show(t);
  }

  shade(tbody);
}

function show(t)
{
  try {
    var tbody = t.tBodies(0);
    var top = document.all("top_"+t.id).value;
    var count = 0;
    var visible = 0;

    for (var i=0; i&lt;tbody.rows.length;i++) {

      if (tbody.children[i].child != 'true') {
        children = 0;
        if (count++ &lt; top){
          tbody.children[i].style.display = '';
          visible++;
        }else{
          tbody.children[i].style.display = 'none';
        }

      }else{
        if (tbody.children[i].style.display == '') {
          folder(tbody.children[i]);
        }
      }
    }

    document.all("top_"+t.id).value = visible;

    shade(tbody);
  }catch(e){
  }
}

function shade(tbody)
{
  var p = 0;

  for (var i = 0; i &lt; tbody.rows.length; i++) {
    if (tbody.children[i].style.display == '') {
      if (tbody.children[i].child != 'true') {
        p++;
      }
      if (p % 2 == 0) {
        className = "b1";
      }else{
        className = "b2";
      }
      if (tbody.children[i].child != 'true' <xsl:value-of select="'&amp;&amp;'"/> tbody.children[i].autoshade != 'true') {
        try{
          tbody.children[i].className = className;
        }catch(e){
        }
      }
    }
  }
}

function pressTop(t)
{
  if (window.event.keyCode == 13) {
    show(t);
    window.event.returnValue = false;
  }
}

function folder(d)
{
  try{
    var temp;
    var i = document.all("e_" + d.id);

    if (d.style.display == 'none') {
      d.style.display = '';
    }else{
      d.style.display = 'none';
    }
    if (i.nodeName == "IMG") {
      temp = i.src;
      i.src = i.altImage;
      i.altImage = temp;
    }else{
      var s = document.all("alt_" + i.id);
      temp = i.innerHTML;
      i.innerHTML = s.innerHTML;
      s.innerHTML = temp;
    }
  } catch(e) {
  }
}

function hideTOC()
{
  TOC.style.display = 'none';
}

function showTOC()
{
  try{
    window.event.cancelBubble = true;
    popup(TOC);
  }catch(e){
  }
}

function reveal(d)
{
  try{
    var t;
    for (var i=0; i&lt;document.anchors.length; i++) {
      if (document.anchors[i].name == d) {
        t = document.anchors[i];
        break;
      }
    }

    if (t) {
      var parent = t.parentElement;

      while (parent) {
        if (parent.expandable == '1' <xsl:value-of select="'&amp;&amp;'"/> parent.style.display == 'none') {
          folder(parent);
        }

        parent = parent.parentElement;
      }
    }
  }catch(e){
  }
}

</script>

<!-- ********** REPORT HEADER ********** -->

<xsl:for-each select="/Report[@name]">
<xsl:variable name="reportId" select="ms:tag()"/>
<xsl:if test="count(//Data[@header]) = 0">
  <a name="title"/>
</xsl:if>
<div class="title-bar">
<xsl:if test="count(//Data[@header])">
  <xsl:attribute name="onclick">folder(c_<xsl:value-of select="$reportId"/>)</xsl:attribute>
</xsl:if>
  <table class="layout">
    <tr>
      <td class="h1" width="400">
        <xsl:call-template name="title"/>
      </td>
      <td>
        <a style="cursor:hand;text-decoration:none;" onclick="showTOC()">
          <xsl:call-template name="image">
            <xsl:with-param name="src" select="'contents'"/>
          </xsl:call-template>
        </a>
      </td>
      <td>
        <xsl:if test="count(//Data[@header])">
          <a style="cursor:hand;text-decoration:none;">
            <div style="float:right">
              <xsl:call-template name="image">
                <xsl:with-param name="src" select="'collapse'"/>
                <xsl:with-param name="alt" select="'expand'"/>
                <xsl:with-param name="id">e_c_<xsl:value-of select="$reportId"/></xsl:with-param>
              </xsl:call-template>
            </div>
          </a>
        </xsl:if>
      </td>
    </tr>
  </table>
</div>
<xsl:if test="count(//Data[@header])">
  <div expandable="1">
  <xsl:attribute name="id">c_<xsl:value-of select="$reportId"/></xsl:attribute>
    <a name="title"/>
    <table class="content" cellpadding="2">
      <tr>
        <td>
          <table>
            <xsl:for-each select="//Data[@header]">
              <tr>
                <td class="h4">
                  <xsl:call-template name="label">
                    <xsl:with-param name="label" select="@header"/>
                  </xsl:call-template>
                  <xsl:text>:</xsl:text>
                </td>
                <td class="info">
                  <xsl:call-template name="data"/>
                  <xsl:apply-templates select="@warning|@note"/>
                </td>
              </tr>
            </xsl:for-each>
          </table>
        </td>
      </tr>
    </table>
  </div>
</xsl:if>
</xsl:for-each>

<!-- ********** SUMMARY SECTION ********** -->

<xsl:if test="//Table[Summary/@topic]">
<xsl:variable name="summaryId">s_<xsl:value-of select="ms:tag()"/></xsl:variable>
<div class="title-bar">
<xsl:attribute name="onclick">folder(c_<xsl:value-of select="$summaryId"/>)</xsl:attribute>
  <table class="layout">
    <tr>
      <td class="h1" width="400">
        <xsl:call-template name="label">
          <xsl:with-param name="label" select="'summary'"/>
        </xsl:call-template>
      </td>
      <td>
        <a style="cursor:hand;text-decoration:none;" onclick="showTOC()">
          <xsl:call-template name="image">
            <xsl:with-param name="src" select="'contents'"/>
          </xsl:call-template>
        </a>
      </td>
      <td>
        <a style="cursor:hand;text-decoration:none;">
          <div style="float:right">
            <xsl:call-template name="image">
              <xsl:with-param name="src" select="'collapse'"/>
              <xsl:with-param name="alt" select="'expand'"/>
              <xsl:with-param name="id">e_c_<xsl:value-of select="$summaryId"/></xsl:with-param>
            </xsl:call-template>
          </div>
        </a>
      </td>
    </tr>
  </table>
</div>
<div expandable="1">
<xsl:attribute name="id">c_<xsl:value-of select="$summaryId"/></xsl:attribute>
  <a name="summary"/>
  <xsl:variable name="topics">
    <xsl:for-each select="//Summary[@topic]">
    <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
    <xsl:sort select="@key" data-type="number"/>
      <xsl:element name="topic">
        <xsl:value-of select="@topic"/>
      </xsl:element>
    </xsl:for-each>
  </xsl:variable>
  <table cellspacing="1" cellpadding="1" class="content">
    <tr>
      <xsl:for-each select="//Summary[@topic]/@topic">
      <xsl:sort select="not(parent::node()/@key) or parent::node()/@key &lt; 0" data-type="number"/>
      <xsl:sort select="parent::node()/@key" data-type="number"/>
        <xsl:if test="ms:unique(msxsl:node-set($topics)/topic, number(position()))">
          <td valign="top">
            <table class="layout">
              <tr>
                <th colspan="2" class="string">
                  <xsl:call-template name="label">
                    <xsl:with-param name="label" select="."/>
                  </xsl:call-template>
                </th>
              </tr>
              <xsl:for-each select="//Summary[@topic=current()]">
              <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
              <xsl:sort select="@key" data-type="number"/>
                <xsl:variable name="summaryTable"><xsl:value-of select="parent::Table/@name"/></xsl:variable>
                <xsl:variable name="exclude" select="@exclude"/>
                <xsl:variable name="value" select="@value"/>
                <xsl:variable name="field" select="@field"/>
                <xsl:for-each select="Data">
                  <xsl:variable name="format" select="@format"/>
                  <tr>
                    <td width="12%" style="white-space:nowrap;" class="info bold" valign="bottom">
                      <xsl:choose>
                        <xsl:when test="position() = 1">
                        <a class="local">
                        <xsl:attribute name="onclick">reveal('<xsl:value-of select="ms:idof(string($summaryTable))"/>')</xsl:attribute>
                        <xsl:attribute name="href">#<xsl:value-of select="ms:idof(string($summaryTable))"/></xsl:attribute>
                          <xsl:call-template name="title">
                            <xsl:with-param name="noUnit" select="1"/>
                          </xsl:call-template>
                        </a>
                        </xsl:when>
                        <xsl:otherwise>
                          <xsl:call-template name="title">
                            <xsl:with-param name="noUnit" select="1"/>
                          </xsl:call-template>
                        </xsl:otherwise>
                      </xsl:choose>
                      <xsl:text>:</xsl:text>
                    </td>
                    <td style="padding-left: 5px;" class="info" valign="bottom">
                      <xsl:choose>
                        <xsl:when test="parent::Summary/@find='total'">
                          <xsl:value-of select="format-number(sum(/Report/Section/Table[@name=$summaryTable]/Item[Data[@name=$exclude] != $value]/Data[@name=$field]), $format)"/>
                        </xsl:when>
                        <xsl:when test="parent::Summary/@find='average'">
                          <xsl:value-of select="format-number(sum(/Report/Section/Table[@name=$summaryTable]/Item[Data[@name=$exclude] = $value or not($exclude)]/Data[@name=$field]) div count(/Report/Section/Table[@name=$summaryTable][1]/Item/Data[@name=$field]), $format)"/>
                        </xsl:when>
                        <xsl:when test="parent::Summary/@find='top'">
                          <xsl:variable name="list" select="/Report/Section/Table[@name=$summaryTable]/Item[Data[@name=$exclude] != $value or not($exclude)]"/>
                          <xsl:variable name="summaryIndex"><xsl:value-of select="ms:top(msxsl:node-set($list), string($field))"/></xsl:variable>
                          <xsl:for-each select="msxsl:node-set($list)[number($summaryIndex)]/Data[@name=current()/@name]">
                            <xsl:if test="position() = 1">
                              <xsl:call-template name="data">
                                <xsl:with-param name="format" select="$format"/>
                                <xsl:with-param name="noLink" select="1"/>
                              </xsl:call-template>
                              <xsl:apply-templates select="@warning|@note"/>
                            </xsl:if>
                          </xsl:for-each>
                        </xsl:when>
                        <xsl:when test="parent::Summary/@find='field'">
                          <xsl:for-each select="/Report/Section/Table[@name=$summaryTable]/Item[Data[@name=$field]=$value or not($value)]/Data[@name=current()/@name]">
                            <xsl:call-template name="data">
                              <xsl:with-param name="format" select="$format"/>
                              <xsl:with-param name="noLink" select="1"/>
                            </xsl:call-template>
                            <xsl:apply-templates select="@warning|@note"/>
                          </xsl:for-each>
                        </xsl:when>
                      </xsl:choose>
                      <xsl:if test="@units">
                        <xsl:value-of select="' '"/>
                        <xsl:call-template name="label">
                          <xsl:with-param name="label" select="@units"/>
                        </xsl:call-template>
                      </xsl:if>
                    </td>
                  </tr>
                </xsl:for-each>
                <xsl:if test="position() != last()">
                  <tr><td colspan="2" height="5"/></tr>
                </xsl:if>
              </xsl:for-each>
            </table>
          </td>
        </xsl:if>
      </xsl:for-each>
    </tr>
  </table>
</div>

</xsl:if>

<!-- ********** SECTION HEADER ********** -->

<xsl:for-each select="Report/Section[(Table[Item[@level &lt;= $Level or not(@level)][not(@visible='false')]][@level &lt;= $Level or not(@level)][ not( @visible='false')]) or (@name='advice' and //@warning) and (@level &gt; $Level or not(@level))]">
<xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
<xsl:sort select="@key" data-type="number"/>

<xsl:variable name="sectionId" select="ms:tag()"/>
<div class="title-bar">
<xsl:attribute name="onclick">folder(c_<xsl:value-of select="$sectionId"/>)</xsl:attribute>
  <table class="layout">
    <tr>
      <td class="h1" width="400">
        <xsl:call-template name="title"/>
        <xsl:apply-templates select="@warning|@note"/>
      </td>
      <td>
        <a style="cursor:hand;text-decoration:none;" onclick="showTOC()">
          <xsl:call-template name="image">
            <xsl:with-param name="src" select="'contents'"/>
          </xsl:call-template>
        </a>
      </td>
      <td>
        <a style="cursor:hand;text-decoration:none;">
          <div style="float:right">
            <xsl:choose>
              <xsl:when test="not(@name='advice' or @expand)">
                <xsl:call-template name="image">
                  <xsl:with-param name="src" select="'expand'"/>
                  <xsl:with-param name="alt" select="'collapse'"/>
                  <xsl:with-param name="id">e_c_<xsl:value-of select="$sectionId"/></xsl:with-param>
                </xsl:call-template>
              </xsl:when>
              <xsl:otherwise>
                <xsl:call-template name="image">
                  <xsl:with-param name="src" select="'collapse'"/>
                  <xsl:with-param name="alt" select="'expand'"/>
                  <xsl:with-param name="id">e_c_<xsl:value-of select="$sectionId"/></xsl:with-param>
                </xsl:call-template>
              </xsl:otherwise>
            </xsl:choose>
          </div>
        </a>
      </td>
    </tr>
  </table>
</div>
<div expandable="1">
<xsl:attribute name="id">c_<xsl:value-of select="$sectionId"/></xsl:attribute>
<xsl:if test="not(@name='advice' or @expand)">
  <xsl:attribute name="style">display:'none';</xsl:attribute>
</xsl:if>

<!-- ********** TOPIC HEADER ********** -->

<xsl:variable name="tables" select="Table[Item[@level &lt;= $Level or not(@level)][not(@visible='false')]][not(@visible = 'false') and (@level &lt;= $Level or not(@level))]"/>

<xsl:variable name="topics">
  <xsl:for-each select="$tables[@topic]">
  <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
  <xsl:sort select="@key" data-type="number"/>
    <xsl:element name="topic">
      <xsl:value-of select="@topic"/>
    </xsl:element>
  </xsl:for-each>
</xsl:variable>

<xsl:for-each select="msxsl:node-set($topics)/topic">
  <xsl:if test="ms:unique(msxsl:node-set($topics)/topic, number(position()))">
    <xsl:variable name="topic" select="."/>
    <xsl:variable name="topicId"><xsl:value-of select="ms:idof(string($topic))"/><xsl:value-of select="ms:idof(string($sectionId))"/></xsl:variable>
    <div class="topic-bar">
    <xsl:attribute name="onclick">folder(c_<xsl:value-of select="$topicId"/>)</xsl:attribute>
      <table class="layout" cellpadding="0" cellspacing="0">
        <tr>
          <td class="h3">
            <xsl:call-template name="label">
              <xsl:with-param name="label" select="$topic"/>
            </xsl:call-template>
          </td>
          <td>
            <a style="cursor:hand;text-decoration:none;">
              <div style="float:right;margin-right:2px;">
                <xsl:choose>
                  <xsl:when test="$tables[@topic=$topic]/@expand">
                    <xsl:call-template name="image">
                      <xsl:with-param name="src" select="'collapse'"/>
                      <xsl:with-param name="alt" select="'expand'"/>
                      <xsl:with-param name="id">e_c_<xsl:value-of select="$topicId"/></xsl:with-param>
                    </xsl:call-template>
                  </xsl:when>
                  <xsl:otherwise>
                    <xsl:call-template name="image">
                      <xsl:with-param name="src" select="'expand'"/>
                      <xsl:with-param name="alt" select="'collapse'"/>
                      <xsl:with-param name="id">e_c_<xsl:value-of select="$topicId"/></xsl:with-param>
                    </xsl:call-template>
                  </xsl:otherwise>
                </xsl:choose>
              </div>
            </a>
          </td>
        </tr>
      </table>
    </div>
    <div expandable="1">
    <xsl:if test="not($tables[@topic=$topic]/@expand)">
      <xsl:attribute name="style">display:'none';</xsl:attribute>
    </xsl:if>

    <xsl:attribute name="id">c_<xsl:value-of select="$topicId"/></xsl:attribute>
      <xsl:for-each select="$tables[@topic=$topic]">
      <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
      <xsl:sort select="@key" data-type="number"/>
        <xsl:apply-templates select="."/>
      </xsl:for-each>
    </div>
  </xsl:if>
</xsl:for-each>

<xsl:for-each select="$tables[not(@topic)]">
<xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
<xsl:sort select="@key" data-type="number"/>
  <xsl:apply-templates select="."/>
</xsl:for-each>

</div>

</xsl:for-each>

<!-- ********** TABLE OF CONTENTS ********** -->

<div id="TOC" style="display:'none';" class="toc-window">
  <div class="toc-top" onclick="hideTOC()">
    <font face="wingdings" size="+1" style="cursor:hand; font-weight: lighter;"><xsl:value-of select="'x'"/></font>
  </div>
  <div class="toc-content">
  <ul>
    <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="//Table[Summary] or /Report[@name]">
      <li>
        <xsl:choose>
          <xsl:when test="/Report/@name">
            <xsl:call-template name="label">
              <xsl:with-param name="label" select="/Report/@name"/>
            </xsl:call-template>
          </xsl:when>
          <xsl:otherwise>
            <xsl:call-template name="label">
              <xsl:with-param name="label" select="'report'"/>
            </xsl:call-template>
          </xsl:otherwise>
        </xsl:choose>
        <ul>
        <xsl:if test="/Report[@name]">
          <li>
            <a class="local" href="#title" onclick="hideTOC();reveal('title')">
              <xsl:call-template name="label">
                <xsl:with-param name="label" select="'title'"/>
              </xsl:call-template>
            </a>
          </li>
        </xsl:if>
        <xsl:if test="//Table[Summary]">
          <li>
            <a class="local" href="#summary" onclick="hideTOC();reveal('summary')">
              <xsl:call-template name="label">
                <xsl:with-param name="label" select="'summary'"/>
              </xsl:call-template>
            </a>
          </li>
        </xsl:if>
        </ul><br/>
      </li>
    </xsl:if>

    <xsl:for-each xmlns:xsl="http://www.w3.org/1999/XSL/Transform" select="Report/Section[(Table[@level &lt;= $Level or not(@level)][Item[@level &lt;= $Level or not(@level)][not(@visible='false')]][ not( @visible='false')]) or (@name='advice' and //@warning)]">
    <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
    <xsl:sort select="@key" data-type="number"/>
      <li>
        <xsl:call-template name="title"/>
      </li>
      <ul>
        <xsl:variable name="tables" select="Table[@level &lt;= $Level or not(@level)][Item[@level &lt;= $Level or not(@level)][not(@visible='false')]][not(@visible='false')]"/>

        <xsl:variable name="topics">
          <xsl:for-each select="$tables[@topic]">
          <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
          <xsl:sort select="@key" data-type="number"/>
            <xsl:element name="topic">
              <xsl:value-of select="@topic"/>
            </xsl:element>
          </xsl:for-each>
        </xsl:variable>

        <xsl:for-each select="msxsl:node-set($topics)/topic">
          <xsl:if test="ms:unique(msxsl:node-set($topics)/topic, number(position()))">
            <xsl:variable name="topic" select="."/>
            <li>
              <xsl:call-template name="label">
                <xsl:with-param name="label" select="$topic"/>
              </xsl:call-template>
            </li>
            <ul>
              <xsl:for-each select="$tables[@topic=$topic]">
              <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
              <xsl:sort select="@key" data-type="number"/>
                <li>
                  <a class="local">
                  <xsl:attribute name="href">#<xsl:value-of select="ms:idof(string(@name))"/></xsl:attribute>
                  <xsl:attribute name="onclick">hideTOC();reveal('<xsl:value-of select="ms:idof(string(@name))"/>')</xsl:attribute>

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

                  </a>
                </li>
              </xsl:for-each>
            </ul>
          </xsl:if>

        </xsl:for-each>

        <xsl:for-each select="$tables[not(@topic)]">
        <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
        <xsl:sort select="@key" data-type="number"/>
          <li>
            <a class="local">
            <xsl:attribute name="href">#<xsl:value-of select="ms:idof(string(@name))"/></xsl:attribute>
            <xsl:attribute name="onclick">hideTOC();reveal('<xsl:value-of select="ms:idof(string(@name))"/>')</xsl:attribute>
              <xsl:call-template name="title"/>
            </a>
          </li>
        </xsl:for-each>
      </ul>
      <br/>
    </xsl:for-each>
  </ul>
  </div>
</div>

</form>
</body>
</html>
</xsl:template>

<!-- ********** TABLE TEMPLATES ********** -->

<xsl:template match="Table">

<xsl:variable name="table"><xsl:value-of select="@name"/></xsl:variable>
<xsl:variable name="tableId">table_<xsl:value-of select="ms:tag()"/></xsl:variable>
<a><xsl:attribute name="name"><xsl:value-of select="ms:idof(string(@name))"/></xsl:attribute></a>
<xsl:for-each select="@anchor|@warning">
  <a>
  <xsl:attribute name="name"><xsl:value-of select="ms:idof(string(.))"/></xsl:attribute>
  </a>
</xsl:for-each>

<!-- ********** TABLE SETUP ********** -->


  <xsl:variable name="count">
    <xsl:call-template name="itemCount"/>
  </xsl:variable>

  <xsl:variable name="totalCount">
    <xsl:choose>
      <xsl:when test="@count">
        <xsl:value-of select="@count"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="count(Item[not(@visible='false')])"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="show">
    <xsl:call-template name="show">
      <xsl:with-param name="header" select="Header"/>
    </xsl:call-template>
  </xsl:variable>

<!-- ********** TABLE TITLE ********** -->

<table class="block" cellspacing="3px" cellpadding="0" style="margin-top: 5px;">
  <tr>
    <td>
      <table width="100%">
        <tr>
          <td class="h2">
            <xsl:call-template name="title"/>
            <xsl:apply-templates select="@warning|@note"/>
          </td>
          <td align="right" valign="top">
            <xsl:if test="not(@style)">
              <font size="-2">
              <xsl:call-template name="label">
                <xsl:with-param name="label" select="'top'"/>
              </xsl:call-template>

              <xsl:value-of select="' '"/>

              <input type="text" size="3" class="top b1" onmouseover="style.border='inset 1px';style.margin='0px'" onmouseout="style.border='none';style.margin='1px'">
              <xsl:attribute name="id">top_<xsl:value-of select="$tableId"/></xsl:attribute>
              <xsl:attribute name="onchange">show(<xsl:value-of select="$tableId"/>)</xsl:attribute>
              <xsl:attribute name="onkeypress">pressTop(<xsl:value-of select="$tableId"/>)</xsl:attribute>
              <xsl:attribute name="value"><xsl:value-of select="$show"/></xsl:attribute>
              </input>

              <xsl:call-template name="label">
                <xsl:with-param name="label" select="'topOf'"/>
              </xsl:call-template>
              <xsl:value-of select="'  '"/>
              <xsl:value-of select="$count"/>
              </font>

              <xsl:value-of select="' '"/>
            </xsl:if>
          </td>
        </tr>
      </table>
    </td>
  </tr>

<!-- ********** TABLE BODY ********** -->

  <tr>
    <td>
      <xsl:choose>
        <xsl:when test="@style='info'">
          <xsl:call-template name="infoTable">
            <xsl:with-param name="Level" select="$Level"/>
            <xsl:with-param name="tableId" select="$tableId"/>
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:call-template name="colTable">
            <xsl:with-param name="header" select="Header"/>
            <xsl:with-param name="id" select="$tableId"/>
            <xsl:with-param name="show" select="$show"/>
          </xsl:call-template>
        </xsl:otherwise>
      </xsl:choose>
    </td>
  </tr>
</table>

</xsl:template>

<!-- ********** TOP SETUP ********** -->

<xsl:template name="show">
<xsl:param name="header"/>
  <xsl:variable name="count">
    <xsl:call-template name="itemCount"/>
  </xsl:variable>
  <xsl:variable name="minField">
    <xsl:choose>
    <xsl:when test="$header/Threshold[@type='min']"><xsl:value-of select="$header/Threshold[@type='min']/@field"/></xsl:when>
    <xsl:otherwise><xsl:value-of select="Item[1]/Data[1]/@name"/></xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="min">
    <xsl:choose>
    <xsl:when test="$header/Threshold[@type='min']"><xsl:value-of select="$header/Threshold[@type='min']/@value"/></xsl:when>
    <xsl:otherwise>all</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="octaveField">
    <xsl:choose>
    <xsl:when test="$header/Threshold[@type='octave']"><xsl:value-of select="$header/Threshold[@type='octave']/@field"/></xsl:when>
    <xsl:otherwise><xsl:value-of select="Item[1]/Data[1]/@name"/></xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="octave">
    <xsl:choose>
    <xsl:when test="$header/Threshold[@type='octave']">
      <xsl:variable name="octaveIndex"><xsl:value-of select="ms:top(Item, string($octaveField))"/></xsl:variable>
      <xsl:value-of select="Item[number($octaveIndex)]/Data[@name=$octaveField] div 2"/>
    </xsl:when>
    <xsl:otherwise>all</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="top">
    <xsl:choose>
    <xsl:when test="$header/Threshold[@type='top']/@type = 'top'"><xsl:value-of select="$header/Threshold[@type='top']/@value"/></xsl:when>
    <xsl:otherwise><xsl:value-of select="$Top"/></xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="octaveCount">
    <xsl:choose>
      <xsl:when test="$octave = 'all'">0</xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="count(Item[@level &lt;= $Level or not(@level)][not(@visible='false')][Data[@name = $octaveField] &gt;= $octave])"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="minCount">
    <xsl:choose>
      <xsl:when test="$min = 'all'">0</xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="count(Item[@level &lt;= $Level or not(@level)][not(@visible='false')][Data[@name = $minField] &gt;= $min])"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="show">
    <xsl:choose>
      <xsl:when test="$octaveCount &gt; $top and $octaveCount &gt;= $minCount">
        <xsl:value-of select="$octaveCount"/>
      </xsl:when>
      <xsl:when test="$minCount &gt; $top and $minCount &gt; $octaveCount">
        <xsl:value-of select="$minCount"/>
      </xsl:when>
      <xsl:when test="$top = 'all' or ($top != 'all' and $top &gt; $count)">
        <xsl:value-of select="$count"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$top"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:value-of select="$show"/>

</xsl:template>

<!-- ********** SORT SETUP ********** -->

<xsl:template name="itemCount">
  <xsl:value-of select="count(Item[@level &lt;= $Level or not(@level)][not(@visible='false')])"/>
</xsl:template>

<xsl:template name="colTable">
<xsl:param name="mode"/>
<xsl:param name="id"/>
<xsl:param name="header"/>
<xsl:param name="show"/>
<xsl:param name="table"/>


  <xsl:variable name="max">
    <xsl:choose>
      <xsl:when test="string-length($show)">all</xsl:when>
      <xsl:otherwise>
        <xsl:call-template name="show">
          <xsl:with-param name="header" select="$header"/>
        </xsl:call-template>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="tableId">
    <xsl:choose>
      <xsl:when test="string-length($id)"><xsl:value-of select="$id"/></xsl:when>
      <xsl:otherwise>table_<xsl:value-of select="ms:tag()"/></xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="order1">
    <xsl:choose>
    <xsl:when test="$header/Sort[1]/@order"><xsl:value-of select="$header/Sort[1]/@order"/></xsl:when>
    <xsl:otherwise>ascending</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="type1">
    <xsl:choose>
    <xsl:when test="$header/Sort[1]/@type"><xsl:value-of select="$header/Sort[1]/@type"/></xsl:when>
    <xsl:otherwise>number</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="order2">
    <xsl:choose>
    <xsl:when test="$header/Sort[2]/@order"><xsl:value-of select="$header/Sort[2]/@order"/></xsl:when>
    <xsl:otherwise>ascending</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="type2">
    <xsl:choose>
    <xsl:when test="$header/Sort[2]/@type"><xsl:value-of select="$header/Sort[2]/@type"/></xsl:when>
    <xsl:otherwise>number</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

<!-- ********** TABLE HEAD ********** -->

  <table class="block" style="table-layout:auto">
  <xsl:attribute name="id"><xsl:value-of select="$tableId"/></xsl:attribute>
  <xsl:attribute name="showId"><xsl:value-of select="@name"/></xsl:attribute>

  <thead style="display: table-header-group">
    <xsl:for-each select="$header">
      <tr>
        <xsl:if test="Header[Data]">
          <td width="1%"/>
        </xsl:if>

        <xsl:apply-templates select="Data[not(@visible='false')][(@level &lt;= $Level or not(@level))]" mode="header">
          <xsl:with-param name="tableId" select="$tableId"/>
          <xsl:with-param name="sort"><xsl:if test="position()=last()">true</xsl:if></xsl:with-param>
        </xsl:apply-templates>

      </tr>
    </xsl:for-each>
  </thead>

<!-- ********** TABLE BODY ********** -->

  <tbody>
  <xsl:if test="string-length($mode)">
    <xsl:attribute name="mode"><xsl:value-of select="$mode"/></xsl:attribute>
  </xsl:if>
    <xsl:for-each select="Item[not(@visible='false')][ ($max = 'all' or position() &lt;= $max)][(@level &lt;= $Level or not(@level))]">

    <xsl:sort select="Data[@name=$header/Sort[1]/@field]" order="{$order1}" data-type="{$type1}"/>
    <xsl:sort select="Data[@name=$header/Sort[2]/@field]" order="{$order2}" data-type="{$type2}"/>

      <xsl:variable name="rowId" select="ms:tag()"/>

      <xsl:variable name="background">
        <xsl:choose>
        <xsl:when test="Data[@warning]">w1</xsl:when>
        <xsl:when test="position() mod 2 = 1">b2</xsl:when>
        <xsl:otherwise>b1</xsl:otherwise>
        </xsl:choose>
      </xsl:variable>

      <tr>
      <xsl:if test="Data[@warning]">
        <xsl:attribute name="autoshade">true</xsl:attribute>
      </xsl:if>
      <xsl:attribute name="class"><xsl:value-of select="$background"/></xsl:attribute>
      <xsl:attribute name="index"><xsl:value-of select="position()"/></xsl:attribute>
      <xsl:attribute name="style">
        <xsl:choose>
          <xsl:when test="not($show)"></xsl:when>
          <xsl:when test="position() &lt;= number($show)">display:''</xsl:when>
          <xsl:otherwise>display:'none'</xsl:otherwise>
        </xsl:choose>
      </xsl:attribute>
        <xsl:choose>
          <xsl:when test="Item and $header/Header[Data]">
            <td>
              <div style="width:12px">
                <a style="cursor:hand;text-decoration:none;">
                <xsl:attribute name="onclick">folder(c_<xsl:value-of select="$rowId"/>)</xsl:attribute>
                  <xsl:call-template name="image">
                    <xsl:with-param name="src" select="'open'"/>
                    <xsl:with-param name="alt" select="'close'"/>
                    <xsl:with-param name="id">e_c_<xsl:value-of select="$rowId"/></xsl:with-param>
                  </xsl:call-template>
                </a>
              </div>
            </td>
          </xsl:when>
          <xsl:when test="$header/Header[Data]"><td/></xsl:when>
        </xsl:choose>

        <xsl:apply-templates select="Data[not(@visible = 'false') and (@level &lt;= $Level or not(@level))]">
          <xsl:with-param name="header" select="$header"/>
        </xsl:apply-templates>
      </tr>

      <xsl:if test="$header/Header[Data]">
        <tr child="true" expandable="1" style="display:'none';">
        <xsl:attribute name="id">c_<xsl:value-of select="$rowId"/></xsl:attribute>
          <td colspan="100">
            <table width="100%" cellpadding="0" cellspacing="0">
              <tr>
                <td width="10px"/>
                <td>
                  <xsl:choose>
                    <xsl:when test="$header/Header[1]/@style = 'info'">
                      <xsl:call-template name="infoTable">
                        <xsl:with-param name="header" select="$header/Header"/>
                        <xsl:with-param name="mode">child</xsl:with-param>
                      </xsl:call-template>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:call-template name="colTable">
                        <xsl:with-param name="header" select="$header/Header"/>
                        <xsl:with-param name="mode">child</xsl:with-param>
                      </xsl:call-template>
                    </xsl:otherwise>
                  </xsl:choose>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </xsl:if>

    </xsl:for-each>
  </tbody>

  <xsl:if test="$header/Data[@summary]">
    <tfoot>
      <tr>
        <xsl:variable name="items" select="Item"/>

        <xsl:if test="$header/Header[Data]">
          <td width="1%"/>
        </xsl:if>

        <xsl:for-each select="$header[Data[@summary]]/Data[not(@visible='false')]">
          <td>
            <xsl:if test="@summary">
              <xsl:attribute name="style">border-top: 1px solid black;</xsl:attribute>
            </xsl:if>
            <xsl:if test="@span">
              <xsl:attribute name="colspan"><xsl:value-of select="@span"/></xsl:attribute>
            </xsl:if>
            <xsl:if test="@class">
              <xsl:attribute name="class"><xsl:value-of select="@class"/></xsl:attribute>
            </xsl:if>

              <xsl:variable name="format">
                <xsl:choose>
                  <xsl:when test="@format"><xsl:value-of select="@format"/></xsl:when>
                  <xsl:otherwise>0</xsl:otherwise>
                </xsl:choose>
              </xsl:variable>

              <xsl:if test="@summary">
                <xsl:choose>
                <xsl:when test="string-length(.)">
                  <xsl:value-of select="format-number(., $format)"/>
                </xsl:when>
                <xsl:when test="@summary='total'">
                  <xsl:value-of select="format-number(sum($items/Data[@name=current()/@name]), $format)"/>
                </xsl:when>
                <xsl:when test="@summary='average'">
                  <i><xsl:value-of select="format-number(sum($items/Data[@name=current()/@name]) div count($items/Data[@name=current()/@name]), $format)"/></i>
                </xsl:when>
                </xsl:choose>
              </xsl:if>

            </td>
          </xsl:for-each>
        </tr>
      </tfoot>
    </xsl:if>
 </table>
</xsl:template>

<!-- ********** TABLE TEMPLATE (INFO STYLE) ********** -->

<xsl:template name="infoTable">
<xsl:param name="Level"/>
<xsl:param name="tableId"/>
  <table class="block">
  <xsl:attribute name="id"><xsl:value-of select="$tableId"/></xsl:attribute>

    <xsl:for-each select="Item[(@level &lt;= $Level or not(@level))][Data[not(@visible='false') and (@level &lt;= $Level or not(@level))]]">
      <xsl:for-each select="Data[not(@visible='false')][(@level &lt;= $Level or not(@level))][not(@set)]">
        <tr>
          <td width="12%" class="h4" style="white-space:nowrap;" valign="top">
            <xsl:if test="not(@name=preceding-sibling::Data/@name)">
              <xsl:call-template name="label">
                <xsl:with-param name="label" select="@name"/>
              </xsl:call-template>
              <xsl:text>:</xsl:text>
            </xsl:if>
          </td>
          <td class="info" valign="center">
          <xsl:if test="position() mod 2=0">
            <xsl:attribute name="class">info b2</xsl:attribute>
          </xsl:if>
            <xsl:call-template name="data"/>
            <xsl:apply-templates select="@note|@warning"/>
          </td>
        </tr>
      </xsl:for-each>
      <xsl:if test="position() != last()">
        <tr><td colspan="3"><hr/></td></tr>
      </xsl:if>
    </xsl:for-each>
  </table>
</xsl:template>

<!-- ********** ITEM/DATA TEMPLATE ********** -->

<xsl:template match="Data">
<xsl:param name="header"/>

  <xsl:if test="not($header/Data[@name=current()/@name]/@visible = 'false')">
    <xsl:variable name="class">
      <xsl:choose>
        <xsl:when test="@class">
          <xsl:value-of select="@class"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$header/Data[@name=current()/@name]/@class"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <td>
    <xsl:if test="(position() != 1 and contains( $class, 'number'))">
      <xsl:attribute name="width">8%</xsl:attribute>
    </xsl:if>
    <xsl:if test="@span">
      <xsl:attribute name="colspan"><xsl:value-of select="@span"/></xsl:attribute>
    </xsl:if>
    <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
      <xsl:value-of select="substring($tab, string-length($tab) - (@tab * 4))"/>
      <xsl:call-template name="data"/>
      <xsl:apply-templates select="@warning|@note"/>
    </td>
  </xsl:if>
</xsl:template>

<!-- ********** COLUMN HEADER TEMPLATE ********** -->

<xsl:template match="Data" mode="header">
<xsl:param name="sort"/>
<xsl:param name="tableId"/>
  <th class="header">
  <xsl:attribute name="colspan"><xsl:value-of select="@span"/></xsl:attribute>
  <xsl:attribute name="class">
    <xsl:choose>
      <xsl:when test="not(@class)"></xsl:when>
      <xsl:when test="@class='code' or @class='string'">string</xsl:when>
      <xsl:when test="@class='span'">span</xsl:when>
      <xsl:otherwise>number</xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
    <xsl:if test="$sort = 'true'">
      <xsl:attribute name="onclick">sort(<xsl:value-of select="$tableId"/>);</xsl:attribute>
      <xsl:attribute name="style">cursor:hand;</xsl:attribute>
    </xsl:if>
    <xsl:call-template name="title"/>
    <xsl:apply-templates select="@warning|@note"/>
  </th>
</xsl:template>

<!-- ********** DATA TEMPLATE ********** -->

<xsl:template name="data">
<xsl:param name="format"/>
<xsl:param name="noLink"/>
  <xsl:choose>
    <xsl:when test="@url">
      <a target="_BLANK">
      <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
        <xsl:call-template name="dataValue">
          <xsl:with-param name="format" select="$format"/>
          <xsl:with-param name="noLink" select="$noLink"/>
        </xsl:call-template>
      </a>
    </xsl:when>
    <xsl:when test="@help">
      <a style="cursor:hand;text-decoration:underline;">
      <xsl:attribute name="onclick">showHelp('<xsl:value-of select="@help"/>')</xsl:attribute>
        <xsl:call-template name="dataValue">
          <xsl:with-param name="format" select="$format"/>
          <xsl:with-param name="noLink" select="$noLink"/>
        </xsl:call-template>
      </a>
    </xsl:when>
    <xsl:when test="@link">
      <a class="local">
      <xsl:attribute name="onclick">reveal('<xsl:value-of select="ms:idof(string(@link))"/>')</xsl:attribute>
      <xsl:attribute name="href">#<xsl:value-of select="ms:idof(string(@link))"/></xsl:attribute>
        <xsl:call-template name="dataValue">
          <xsl:with-param name="format" select="$format"/>
          <xsl:with-param name="noLink" select="$noLink"/>
        </xsl:call-template>
      </a>
    </xsl:when>
    <xsl:otherwise>
      <xsl:call-template name="dataValue">
        <xsl:with-param name="format" select="$format"/>
        <xsl:with-param name="noLink" select="$noLink"/>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template name="dataValue">
<xsl:param name="format"/>
<xsl:param name="noLink"/>
  <xsl:apply-templates select="@img"/>
  <xsl:if test="not($noLink)">
    <xsl:for-each select="@anchor|@note|@warning">
      <a>
      <xsl:attribute name="name"><xsl:value-of select="ms:idof(string(.))"/></xsl:attribute>
      </a>
    </xsl:for-each>
  </xsl:if>
  <xsl:choose>
    <xsl:when test="@translate = 'value'">
      <xsl:call-template name="label">
        <xsl:with-param name="label" select="."/>
      </xsl:call-template>
    </xsl:when>
    <xsl:when test="string-length($format)">
      <xsl:value-of select="format-number(., $format)"/>
    </xsl:when>
    <xsl:when test="@format">
      <xsl:value-of select="format-number(., @format)"/>
    </xsl:when>
    <xsl:when test="ancestor::Table/Header/Data[@name=current()/@name]/@format">
      <xsl:value-of select="format-number(., ancestor::Table/Header/Data[@name=current()/@name]/@format)"/>
    </xsl:when>
    <xsl:otherwise><xsl:copy-of select="child::node()"/></xsl:otherwise>
  </xsl:choose>
  <xsl:if test="@units">
    <xsl:value-of select="' '"/>
    <xsl:call-template name="label">
      <xsl:with-param name="label" select="@units"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

<!-- ********** LABEL TEMPLATE ********** -->

<xsl:template name="label">
<xsl:param name="label"/>

   <xsl:choose>
    <xsl:when test="@translate='false'">
      <xsl:value-of select="$label"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="title">
        <xsl:copy-of select="msxsl:node-set($titles)/String[@ID = $label][1]/child::node()"/>
      </xsl:variable>
      <xsl:choose>
        <xsl:when test="string-length($title)">
          <xsl:copy-of select="$title"/>
        </xsl:when>
        <xsl:otherwise>
         <xsl:value-of select="$label"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ********** TITLE TEMPLATE ********** -->

<xsl:template name="title">
<xsl:param name="noUnit"/>

  <xsl:variable name="label">
    <xsl:choose>
      <xsl:when test="@label"><xsl:value-of select="@label"/></xsl:when>
      <xsl:otherwise><xsl:value-of select="@name"/></xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

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

  <xsl:if test="not($noUnit) and @units">
    <xsl:value-of select="' '"/>
    <xsl:text>(</xsl:text>
    <xsl:call-template name="label">
      <xsl:with-param name="label" select="@units"/>
    </xsl:call-template>
    <xsl:text>)</xsl:text>
  </xsl:if>

  <xsl:if test="@index">
    <xsl:value-of select="' '"/>
    <xsl:value-of select="@index"/>
  </xsl:if>

</xsl:template>

<!-- ********** IMAGE TEMPLATE ********** -->

<xsl:template name="image">
<xsl:param name="src"/>
<xsl:param name="alt"/>
<xsl:param name="id"/>

  <xsl:variable name="srcImage">
    <xsl:choose>
      <xsl:when test="msxsl:node-set($images)/Image[@ID=$src]">
        <xsl:copy-of select="msxsl:node-set($images)/Image[@ID=$src][1]/child::node()"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$src"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="altImage">
    <xsl:choose>
      <xsl:when test="msxsl:node-set($images)/Image[@ID=$alt]">
        <xsl:copy-of select="msxsl:node-set($images)/Image[@ID=$alt][1]/child::node()"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$alt"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:choose>
    <xsl:when test="$Portable">
      <div style="float:left;width:0;letter-spacing:0;">
      <xsl:if test="$id">
        <xsl:attribute name="id"><xsl:copy-of select="$id"/></xsl:attribute>
      </xsl:if>
        <xsl:copy-of select="$srcImage"/>
      </div>
      <xsl:if test="$alt and $id">
        <div style="display:'none'">
        <xsl:attribute name="id">alt_<xsl:value-of select="$id"/></xsl:attribute>
          <xsl:copy-of select="$altImage"/>
        </div>
      </xsl:if>
    </xsl:when>
    <xsl:otherwise>
      <div style="float:left">
        <img border="0" style="margin-right: 5px">
        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="$alt">
          <xsl:attribute name="altImage"><xsl:copy-of select="$altImage"/></xsl:attribute>
        </xsl:if>
        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="$id">
          <xsl:attribute name="id"><xsl:copy-of select="$id"/></xsl:attribute>
        </xsl:if>
        <xsl:attribute xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="src"><xsl:copy-of select="$srcImage"/></xsl:attribute>
        </img>
      </div>
    </xsl:otherwise>
  </xsl:choose>

</xsl:template>

<xsl:template match="@img">
  <xsl:call-template name="image">
    <xsl:with-param name="src" select="."/>
  </xsl:call-template>
</xsl:template>

<!-- ********** NOTE POPUP TEMPLATE ********** -->

<xsl:template match="@note|@warning">
  <xsl:variable name="id">popup_<xsl:value-of select="ms:tag()"/></xsl:variable>
  <a style="cursor:help">
  <xsl:attribute name="onMouseOver">popup(<xsl:value-of select="$id"/>)</xsl:attribute>
  <xsl:attribute name="onMouseOut"><xsl:value-of select="$id"/>.style.display='none'</xsl:attribute>
    <div style="position:absolute;">
      <div style="position:absolute;top:-2px;left:3;">
        <xsl:call-template name="image">
          <xsl:with-param name="src">
            <xsl:choose>
              <xsl:when test="name()='note'">note</xsl:when>
              <xsl:otherwise>flag</xsl:otherwise>
            </xsl:choose>
          </xsl:with-param>
        </xsl:call-template>
      </div>
    </div>
    <xsl:value-of select="'   '"/>
  </a>
  <div class="popup" style="display:'none';width:300;">
  <xsl:variable name="value" select="."/>
  <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
    <xsl:choose>
      <xsl:when test="//Data/@message = .">
        <xsl:for-each select="//Data[@message = $value]">
        <xsl:sort select="not(@key) or @key &lt; 0" data-type="number"/>
          <xsl:call-template name="dataValue"/><br/>
          <xsl:if test="position()!=last()"><hr/></xsl:if>
        </xsl:for-each>
      </xsl:when>
      <xsl:otherwise>
        <xsl:call-template name="label">
          <xsl:with-param name="label" select="$value"/>
        </xsl:call-template>
      </xsl:otherwise>
    </xsl:choose>

  </div>
</xsl:template>

</xsl:stylesheet>
PADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADD

Anon7 - 2021