749 lines
31 KiB
HTML
749 lines
31 KiB
HTML
<!doctype html>
|
|
<html class="no-js" lang="">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<title>aktienbot documentation</title>
|
|
<meta name="description" content="">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
|
|
<link rel="stylesheet" href="../styles/style.css">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="navbar navbar-default navbar-fixed-top visible-xs">
|
|
<a href="../" class="navbar-brand">aktienbot documentation</a>
|
|
<button type="button" class="btn btn-default btn-menu fa fa-bars" id="btn-menu"></button>
|
|
</div>
|
|
|
|
<div class="xs-menu menu" id="mobile-menu">
|
|
<div id="book-search-input" role="search">
|
|
<input type="text" placeholder="Type to search">
|
|
</div>
|
|
<nav>
|
|
|
|
<ul class="list">
|
|
|
|
<li class="title">
|
|
<a href="../">aktienbot documentation</a>
|
|
</li>
|
|
|
|
<li class="divider"></li>
|
|
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="../"><span class="fa fa-home"></span>Getting started</a>
|
|
<ul class="links">
|
|
<li class="link">
|
|
<a href="../" ><span class="fa fa-file-text-o"></span>README</a>
|
|
</li>
|
|
<li class="link">
|
|
<a
|
|
|
|
href="../overview.html"
|
|
href="../overview.html"
|
|
>
|
|
<span class="fa fa-th"></span>Overview
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="./modules.html" >
|
|
<span class="fa fa-archive"></span>
|
|
<span>Modules</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#xs-modules-links"
|
|
></span>
|
|
</a>
|
|
<ul class="links collapse in"
|
|
id="xs-modules-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../modules/AppModule.html" >AppModule</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<div class="simple">
|
|
<span class="fa fa-cogs"></span>
|
|
<span>Components</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#xs-components-links"
|
|
></span>
|
|
</div>
|
|
<ul class="links collapse in"
|
|
id="xs-components-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../components/AppComponent.html" >AppComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/BotSettingsComponent.html" >BotSettingsComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/ConfirmationDialogComponent.html" >ConfirmationDialogComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/DashboardComponent.html" >DashboardComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/HeaderComponent.html" >HeaderComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/HelpDialogComponent.html" >HelpDialogComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/LoginComponent.html" >LoginComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/ProfileComponent.html" >ProfileComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/RegisterComponent.html" >RegisterComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/UserDialogComponent.html" >UserDialogComponent</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li class="chapter">
|
|
<div class="simple">
|
|
<span class="fa fa-long-arrow-down"></span>
|
|
<span>Injectables</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#xs-injectables-links"
|
|
></span>
|
|
</div>
|
|
<ul class="links collapse in"
|
|
id="xs-injectables-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../injectables/AuthInterceptor.html" >AuthInterceptor</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/AuthService.html" >AuthService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/BotService.html" >BotService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/DataService.html" >DataService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/HelperService.html" >HelperService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/ProfileService.html" >ProfileService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/TokenStorageService.html" >TokenStorageService</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<div class="simple">
|
|
<span class="fa fa-info"></span>
|
|
<span>Interfaces</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#xs-interfaces-links"
|
|
></span>
|
|
</div>
|
|
<ul class="links collapse in"
|
|
id="xs-interfaces-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../interfaces/Keyword.html" >Keyword</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../interfaces/Share.html" >Share</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../interfaces/Stock.html" >Stock</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../interfaces/TransactionData.html" class="active" >TransactionData</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="../miscellaneous.html" ><span class="fa fa-cubes"></span>Miscellaneous</a>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="../coverage.html" ><span class="fa fa-tasks"></span>Documentation coverage</a>
|
|
</li>
|
|
|
|
<li class="divider"></li>
|
|
<li class="copyright">
|
|
Documentation generated using <a href="https://compodoc.github.io/compodoc/" target="_blank">
|
|
<img src="..//images/compodoc-vectorise.svg" class="img-responsive">
|
|
</a>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
</div>
|
|
|
|
<div class="container-fluid main">
|
|
<div class="row main">
|
|
<div class="hidden-xs menu">
|
|
<nav>
|
|
|
|
<ul class="list">
|
|
|
|
<li class="title">
|
|
<a href="../">aktienbot documentation</a>
|
|
</li>
|
|
|
|
<li class="divider"></li>
|
|
|
|
<div id="book-search-input" role="search">
|
|
<input type="text" placeholder="Type to search">
|
|
</div>
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="../"><span class="fa fa-home"></span>Getting started</a>
|
|
<ul class="links">
|
|
<li class="link">
|
|
<a href="../" ><span class="fa fa-file-text-o"></span>README</a>
|
|
</li>
|
|
<li class="link">
|
|
<a
|
|
|
|
href="../overview.html"
|
|
href="../overview.html"
|
|
>
|
|
<span class="fa fa-th"></span>Overview
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="./modules.html" >
|
|
<span class="fa fa-archive"></span>
|
|
<span>Modules</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#modules-links"
|
|
></span>
|
|
</a>
|
|
<ul class="links collapse in"
|
|
id="modules-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../modules/AppModule.html" >AppModule</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<div class="simple">
|
|
<span class="fa fa-cogs"></span>
|
|
<span>Components</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#components-links"
|
|
></span>
|
|
</div>
|
|
<ul class="links collapse in"
|
|
id="components-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../components/AppComponent.html" >AppComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/BotSettingsComponent.html" >BotSettingsComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/ConfirmationDialogComponent.html" >ConfirmationDialogComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/DashboardComponent.html" >DashboardComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/HeaderComponent.html" >HeaderComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/HelpDialogComponent.html" >HelpDialogComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/LoginComponent.html" >LoginComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/ProfileComponent.html" >ProfileComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/RegisterComponent.html" >RegisterComponent</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../components/UserDialogComponent.html" >UserDialogComponent</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li class="chapter">
|
|
<div class="simple">
|
|
<span class="fa fa-long-arrow-down"></span>
|
|
<span>Injectables</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#injectables-links"
|
|
></span>
|
|
</div>
|
|
<ul class="links collapse in"
|
|
id="injectables-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../injectables/AuthInterceptor.html" >AuthInterceptor</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/AuthService.html" >AuthService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/BotService.html" >BotService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/DataService.html" >DataService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/HelperService.html" >HelperService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/ProfileService.html" >ProfileService</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../injectables/TokenStorageService.html" >TokenStorageService</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<div class="simple">
|
|
<span class="fa fa-info"></span>
|
|
<span>Interfaces</span>
|
|
<span class="menu-toggler fa fa-angle-up" data-toggle="collapse"
|
|
data-target="#interfaces-links"
|
|
></span>
|
|
</div>
|
|
<ul class="links collapse in"
|
|
id="interfaces-links"
|
|
>
|
|
<li class="link">
|
|
<a href="../interfaces/Keyword.html" >Keyword</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../interfaces/Share.html" >Share</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../interfaces/Stock.html" >Stock</a>
|
|
</li>
|
|
<li class="link">
|
|
<a href="../interfaces/TransactionData.html" class="active" >TransactionData</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="../miscellaneous.html" ><span class="fa fa-cubes"></span>Miscellaneous</a>
|
|
</li>
|
|
|
|
<li class="chapter">
|
|
<a data-type="chapter-link" href="../coverage.html" ><span class="fa fa-tasks"></span>Documentation coverage</a>
|
|
</li>
|
|
|
|
<li class="divider"></li>
|
|
<li class="copyright">
|
|
Documentation generated using <a href="https://compodoc.github.io/compodoc/" target="_blank">
|
|
<img src="..//images/compodoc-vectorise.svg" class="img-responsive">
|
|
</a>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
</div>
|
|
<div class="content interface">
|
|
<div class="content-data">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<ol class="breadcrumb">
|
|
<li>Interfaces</li>
|
|
<li>TransactionData</li>
|
|
</ol>
|
|
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li class="active">
|
|
<a href="#infos" id="infos-tab" role="tab" data-toggle="tab">Infos</a>
|
|
</li>
|
|
<li>
|
|
<a href="#source" role="tab" id="source-tab" data-toggle="tab">Source</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
<div class="tab-pane fade active in" id="infos">
|
|
<p class="comment">
|
|
<h3>File</h3>
|
|
</p>
|
|
<p class="comment">
|
|
<code>src/app/Views/dashboard/dashboard.component.ts</code>
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<section>
|
|
<h3 id="inputs">Properties</h3>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<b>comment</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>comment: <code>string</code>
|
|
</bcode>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code>string</code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<b>count</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>count: <code>number</code>
|
|
</bcode>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code>number</code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<b>isin</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>isin: <code>string</code>
|
|
</bcode>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code>string</code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<b>price</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>price: <code>number</code>
|
|
</bcode>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code>number</code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<b>time</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>time: <code>string</code>
|
|
</bcode>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code>string</code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
</div>
|
|
<div class="tab-pane fade tab-source-code" id="source">
|
|
<pre><code class="hljs javascript">import { Component, OnInit } from '@angular/core';
|
|
import { DataService } from 'src/app/Services/data.service';
|
|
import { MatDialog } from '@angular/material/dialog';
|
|
import { UserDialogComponent } from './user-dialog/user-dialog.component';
|
|
import { HelperService } from 'src/app/Helpers/helper.service';
|
|
|
|
export interface Stock {
|
|
count: number;
|
|
comment: string;
|
|
isin: string;
|
|
last_transaction: string;
|
|
current_price: number;
|
|
}
|
|
|
|
var TRANSACTION_DATA: TransactionData[] = [];
|
|
var STOCK_DATA: Stock[] = [];
|
|
|
|
export interface TransactionData {
|
|
comment: string;
|
|
isin: string;
|
|
time: string;
|
|
count: number;
|
|
price: number;
|
|
}
|
|
|
|
@Component({
|
|
selector: 'app-dashboard',
|
|
templateUrl: './dashboard.component.html',
|
|
styleUrls: ['./dashboard.component.scss'],
|
|
})
|
|
export class DashboardComponent implements OnInit {
|
|
constructor(
|
|
private dataService: DataService,
|
|
private helper: HelperService,
|
|
public dialog: MatDialog
|
|
) {}
|
|
|
|
dataSourceTransactions: TransactionData[] = [];
|
|
dataSourceStocks: Stock[] = [];
|
|
depotCurrentValue: number = 0;
|
|
depotCost: number = 0;
|
|
profit: number = 0;
|
|
|
|
comment: string = '';
|
|
isin: string = '';
|
|
time: Date = new Date();
|
|
count: number = 0.0;
|
|
price: number = 0.0;
|
|
|
|
getTransactions() {
|
|
var TRANSACTION_DATA: TransactionData[] = [];
|
|
this.dataService.getTransactionData().subscribe((response: any) => {
|
|
var data = JSON.parse(response);
|
|
this.depotCost = 0;
|
|
for (let i = 0; i < data.data.length; i++) {
|
|
this.depotCost += data.data[i].price;
|
|
TRANSACTION_DATA.push({
|
|
comment: data.data[i].comment,
|
|
isin: data.data[i].isin,
|
|
time: data.data[i].time,
|
|
count: data.data[i].count,
|
|
price: data.data[i].price,
|
|
});
|
|
}
|
|
this.dataSourceTransactions = TRANSACTION_DATA;
|
|
//TODO move to helper service
|
|
|
|
this.profit = this.depotCurrentValue - this.depotCost;
|
|
});
|
|
}
|
|
|
|
ngOnInit() {
|
|
/**
|
|
* Function gets the stock data and pushes it in the temporary object array
|
|
*/
|
|
this.dataService.getStockData().subscribe((response: any) => {
|
|
var data = JSON.parse(response);
|
|
console.log(data);
|
|
this.depotCurrentValue = 0;
|
|
for (let i = 0; i < data.data.length; i++) {
|
|
this.depotCurrentValue = data.data[i].current_price;
|
|
STOCK_DATA.push({
|
|
count: data.data[i].count,
|
|
comment: data.data[i].comment,
|
|
isin: data.data[i].isin,
|
|
last_transaction: data.data[i].last_transaction,
|
|
current_price: data.data[i].current_price,
|
|
});
|
|
}
|
|
// assign data source
|
|
this.dataSourceStocks = STOCK_DATA;
|
|
this.profit += this.depotCurrentValue;
|
|
});
|
|
|
|
/**
|
|
* Function gets the transaction data and pushes it in the temporary object array
|
|
*/
|
|
this.dataService.getTransactionData().subscribe((response: any) => {
|
|
var data = JSON.parse(response);
|
|
this.depotCost = 0;
|
|
for (let i = 0; i < data.data.length; i++) {
|
|
this.depotCost += data.data[i].price;
|
|
TRANSACTION_DATA.push({
|
|
comment: data.data[i].comment,
|
|
isin: data.data[i].isin,
|
|
time: data.data[i].time,
|
|
count: data.data[i].count,
|
|
price: data.data[i].price,
|
|
});
|
|
}
|
|
// assign data source
|
|
this.dataSourceTransactions = TRANSACTION_DATA;
|
|
this.profit += this.depotCost;
|
|
});
|
|
}
|
|
|
|
// function to open the user dialog to create a new transaction
|
|
openDialog(): void {
|
|
const dialogRef = this.dialog.open(UserDialogComponent, {
|
|
width: '50vw',
|
|
data: {
|
|
comment: this.comment,
|
|
isin: this.isin,
|
|
time: this.time,
|
|
count: this.count,
|
|
price: this.price,
|
|
},
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe((result) => {
|
|
this.helper.delay(1000);
|
|
this.getTransactions();
|
|
});
|
|
}
|
|
|
|
// assign columns for transactions to display in html, you can change order and add/remove columns
|
|
displayedColumns: string[] = [
|
|
'comment',
|
|
'weight',
|
|
'position',
|
|
'name',
|
|
'symbol',
|
|
];
|
|
|
|
// assign columns to display in html, you can change order and add/remove columns
|
|
displayedColumnsStocks: string[] = [
|
|
'count',
|
|
'comment',
|
|
'isin',
|
|
'current_price',
|
|
'last_transaction',
|
|
];
|
|
}
|
|
</code></pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div><div class="search-results">
|
|
<div class="has-results">
|
|
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
|
|
<ul class="search-results-list"></ul>
|
|
</div>
|
|
<div class="no-results">
|
|
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="../js/libs/bootstrap-native.js"></script>
|
|
|
|
<script src="../js/libs/es6-shim.min.js"></script>
|
|
<script src="../js/libs/EventDispatcher.js"></script>
|
|
<script src="../js/libs/promise.min.js"></script>
|
|
<script src="../js/libs/zepto.min.js"></script>
|
|
|
|
<script src="../js/compodoc.js"></script>
|
|
|
|
<script src="../js/search/search.js"></script>
|
|
<script src="../js/search/lunr.min.js"></script>
|
|
<script src="../js/search/search-lunr.js"></script>
|
|
|
|
<script src="../js/menu.js"></script>
|
|
<script src="../js/libs/highlight.pack.js"></script>
|
|
<script src="../js/libs/highlightjs-line-numbers.min.js"></script>
|
|
<script src="../js/search/search_index.js"></script>
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
hljs.initHighlightingOnLoad();
|
|
hljs.initLineNumbersOnLoad();
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|