Commit cc9a01a1fec2b3f2915c7a51fefc7a32bf9326bb

Authored by Gagandeep
1 parent 6c57e8be

Admin UI Added

Showing 106 changed files with 14829 additions and 0 deletions

Too many changes.

To preserve performance only 100 of 106 files are displayed.

400-SOURCECODE/Admin/.angular-cli.json 0 → 100644
  1 +{
  2 + "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  3 + "project": {
  4 + "name": "aianew"
  5 + },
  6 + "apps": [
  7 + {
  8 + "root": "src",
  9 + "outDir": "dist",
  10 + "assets": [
  11 + "assets",
  12 + "favicon.ico"
  13 + ],
  14 + "index": "index.html",
  15 + "main": "main.ts",
  16 + "polyfills": "polyfills.ts",
  17 + "test": "test.ts",
  18 + "tsconfig": "tsconfig.app.json",
  19 + "testTsconfig": "tsconfig.spec.json",
  20 + "prefix": "app",
  21 + "styles": [
  22 + "styles.css"
  23 + ],
  24 + "scripts": [],
  25 + "environmentSource": "environments/environment.ts",
  26 + "environments": {
  27 + "dev": "environments/environment.ts",
  28 + "prod": "environments/environment.prod.ts"
  29 + }
  30 + }
  31 + ],
  32 + "e2e": {
  33 + "protractor": {
  34 + "config": "./protractor.conf.js"
  35 + }
  36 + },
  37 + "lint": [
  38 + {
  39 + "project": "src/tsconfig.app.json",
  40 + "exclude": "**/node_modules/**"
  41 + },
  42 + {
  43 + "project": "src/tsconfig.spec.json",
  44 + "exclude": "**/node_modules/**"
  45 + },
  46 + {
  47 + "project": "e2e/tsconfig.e2e.json",
  48 + "exclude": "**/node_modules/**"
  49 + }
  50 + ],
  51 + "test": {
  52 + "karma": {
  53 + "config": "./karma.conf.js"
  54 + }
  55 + },
  56 + "defaults": {
  57 + "styleExt": "css",
  58 + "class": {
  59 + "spec": false
  60 + },
  61 + "component": {}
  62 + }
  63 +}
... ...
400-SOURCECODE/Admin/.editorconfig 0 → 100644
  1 +# Editor configuration, see http://editorconfig.org
  2 +root = true
  3 +
  4 +[*]
  5 +charset = utf-8
  6 +indent_style = space
  7 +indent_size = 2
  8 +insert_final_newline = true
  9 +trim_trailing_whitespace = true
  10 +
  11 +[*.md]
  12 +max_line_length = off
  13 +trim_trailing_whitespace = false
... ...
400-SOURCECODE/Admin/.gitignore 0 → 100644
  1 +# See http://help.github.com/ignore-files/ for more about ignoring files.
  2 +
  3 +# compiled output
  4 +/dist
  5 +/tmp
  6 +/out-tsc
  7 +
  8 +# dependencies
  9 +/node_modules
  10 +
  11 +# IDEs and editors
  12 +/.idea
  13 +.project
  14 +.classpath
  15 +.c9/
  16 +*.launch
  17 +.settings/
  18 +*.sublime-workspace
  19 +
  20 +# IDE - VSCode
  21 +.vscode/*
  22 +!.vscode/settings.json
  23 +!.vscode/tasks.json
  24 +!.vscode/launch.json
  25 +!.vscode/extensions.json
  26 +
  27 +# misc
  28 +/.sass-cache
  29 +/connect.lock
  30 +/coverage
  31 +/libpeerconnection.log
  32 +npm-debug.log
  33 +testem.log
  34 +/typings
  35 +
  36 +# e2e
  37 +/e2e/*.js
  38 +/e2e/*.map
  39 +
  40 +# System Files
  41 +.DS_Store
  42 +Thumbs.db
... ...
400-SOURCECODE/Admin/AIAHTML5.ADMIN.Web.csproj 0 → 100644
  1 +<Project Sdk="Microsoft.NET.Sdk.Web">
  2 +
  3 + <PropertyGroup>
  4 + <TargetFramework>netcoreapp2.0</TargetFramework>
  5 + </PropertyGroup>
  6 +
  7 + <ItemGroup>
  8 + <Compile Remove="src1\**" />
  9 + <Content Remove="src1\**" />
  10 + <EmbeddedResource Remove="src1\**" />
  11 + <None Remove="src1\**" />
  12 + </ItemGroup>
  13 +
  14 + <ItemGroup>
  15 + <None Remove="src\app\components\changeuserid.component.html" />
  16 + <None Remove="src\app\components\changeuserid.component.ts" />
  17 + <None Remove="src\app\components\ChangeUserID\changeuserid.component.html" />
  18 + <None Remove="src\app\components\changeuserpassword.component.html" />
  19 + <None Remove="src\app\components\changeuserpassword.component.ts" />
  20 + <None Remove="src\app\components\UpdateProfile\updateuserprofile.component.html" />
  21 + <None Remove="src\app\components\UserEntity\changeuserid.component.html" />
  22 + <None Remove="src\app\components\UserEntity\updateuserprofile.component.html" />
  23 + <None Remove="src\app\components\UserEntity\users.component.html" />
  24 + </ItemGroup>
  25 +
  26 + <ItemGroup>
  27 + <Content Include="src\app\components\ChangeUserID\changeuserid.component.html">
  28 + <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  29 + </Content>
  30 + <Content Include="src\app\components\UpdateProfile\updateuserprofile.component.html">
  31 + <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  32 + </Content>
  33 + <Content Include="src\app\components\UserEntity\users.component.html">
  34 + <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  35 + </Content>
  36 + <Content Include="src\app\components\UserEntity\changeuserid.component.html">
  37 + <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  38 + </Content>
  39 + <Content Include="src\app\components\UserEntity\updateuserprofile.component.html">
  40 + <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  41 + </Content>
  42 + </ItemGroup>
  43 +
  44 + <ItemGroup>
  45 + <None Include="wwwroot\HTML\UpdateProfile\updateuserprofile.component.html" />
  46 + </ItemGroup>
  47 +
  48 + <ItemGroup>
  49 + <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
  50 + </ItemGroup>
  51 +
  52 +</Project>
... ...
400-SOURCECODE/Admin/Program.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.IO;
  4 +using System.Linq;
  5 +using System.Threading.Tasks;
  6 +using Microsoft.AspNetCore;
  7 +using Microsoft.AspNetCore.Hosting;
  8 +using Microsoft.Extensions.Configuration;
  9 +using Microsoft.Extensions.Logging;
  10 +
  11 +namespace AIAHTML5.ADMIN.Web
  12 +{
  13 + public class Program
  14 + {
  15 + public static void Main(string[] args)
  16 + {
  17 + BuildWebHost(args).Run();
  18 + }
  19 +
  20 + public static IWebHost BuildWebHost(string[] args) =>
  21 + WebHost.CreateDefaultBuilder(args)
  22 + .UseStartup<Startup>()
  23 + .Build();
  24 + }
  25 +}
... ...
400-SOURCECODE/Admin/Properties/launchSettings.json 0 → 100644
  1 +{
  2 + "iisSettings": {
  3 + "windowsAuthentication": false,
  4 + "anonymousAuthentication": true,
  5 + "iisExpress": {
  6 + "applicationUrl": "http://localhost:52177/",
  7 + "sslPort": 0
  8 + }
  9 + },
  10 + "profiles": {
  11 + "IIS Express": {
  12 + "commandName": "IISExpress",
  13 + "launchBrowser": true,
  14 + "environmentVariables": {
  15 + "ASPNETCORE_ENVIRONMENT": "Development"
  16 + }
  17 + },
  18 + "AIAHTML5.ADMIN.Web": {
  19 + "commandName": "Project",
  20 + "launchBrowser": true,
  21 + "environmentVariables": {
  22 + "ASPNETCORE_ENVIRONMENT": "Development"
  23 + },
  24 + "applicationUrl": "http://localhost:52178/"
  25 + }
  26 + }
  27 +}
... ...
400-SOURCECODE/Admin/README.md 0 → 100644
  1 +# Aianew
  2 +
  3 +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.4.9.
  4 +
  5 +## Development server
  6 +
  7 +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
  8 +
  9 +## Code scaffolding
  10 +
  11 +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
  12 +
  13 +## Build
  14 +
  15 +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
  16 +
  17 +## Running unit tests
  18 +
  19 +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
  20 +
  21 +## Running end-to-end tests
  22 +
  23 +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
  24 +
  25 +## Further help
  26 +
  27 +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
... ...
400-SOURCECODE/Admin/Startup.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Threading.Tasks;
  5 +using Microsoft.AspNetCore.Builder;
  6 +using Microsoft.AspNetCore.Hosting;
  7 +using Microsoft.AspNetCore.Http;
  8 +using Microsoft.Extensions.DependencyInjection;
  9 +
  10 +namespace AIAHTML5.ADMIN.Web
  11 +{
  12 + public class Startup
  13 + {
  14 + // This method gets called by the runtime. Use this method to add services to the container.
  15 + // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
  16 + public void ConfigureServices(IServiceCollection services)
  17 + {
  18 + }
  19 +
  20 + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  21 + public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  22 + {
  23 + if (env.IsDevelopment())
  24 + {
  25 + app.UseDeveloperExceptionPage();
  26 + }
  27 +
  28 + app.Run(async (context) =>
  29 + {
  30 + await context.Response.WriteAsync("Hello World!");
  31 + });
  32 + }
  33 + }
  34 +}
... ...
400-SOURCECODE/Admin/e2e/app.e2e-spec.ts 0 → 100644
  1 +import { AppPage } from './app.po';
  2 +
  3 +describe('aianew App', () => {
  4 + let page: AppPage;
  5 +
  6 + beforeEach(() => {
  7 + page = new AppPage();
  8 + });
  9 +
  10 + it('should display welcome message', () => {
  11 + page.navigateTo();
  12 + expect(page.getParagraphText()).toEqual('Welcome to app!');
  13 + });
  14 +});
... ...
400-SOURCECODE/Admin/e2e/app.po.ts 0 → 100644
  1 +import { browser, by, element } from 'protractor';
  2 +
  3 +export class AppPage {
  4 + navigateTo() {
  5 + return browser.get('/');
  6 + }
  7 +
  8 + getParagraphText() {
  9 + return element(by.css('app-root h1')).getText();
  10 + }
  11 +}
... ...
400-SOURCECODE/Admin/e2e/tsconfig.e2e.json 0 → 100644
  1 +{
  2 + "extends": "../tsconfig.json",
  3 + "compilerOptions": {
  4 + "outDir": "../out-tsc/e2e",
  5 + "baseUrl": "./",
  6 + "module": "commonjs",
  7 + "target": "es5",
  8 + "types": [
  9 + "jasmine",
  10 + "jasminewd2",
  11 + "node"
  12 + ]
  13 + }
  14 +}
... ...
400-SOURCECODE/Admin/karma.conf.js 0 → 100644
  1 +// Karma configuration file, see link for more information
  2 +// https://karma-runner.github.io/1.0/config/configuration-file.html
  3 +
  4 +module.exports = function (config) {
  5 + config.set({
  6 + basePath: '',
  7 + frameworks: ['jasmine', '@angular/cli'],
  8 + plugins: [
  9 + require('karma-jasmine'),
  10 + require('karma-chrome-launcher'),
  11 + require('karma-jasmine-html-reporter'),
  12 + require('karma-coverage-istanbul-reporter'),
  13 + require('@angular/cli/plugins/karma')
  14 + ],
  15 + client:{
  16 + clearContext: false // leave Jasmine Spec Runner output visible in browser
  17 + },
  18 + coverageIstanbulReporter: {
  19 + reports: [ 'html', 'lcovonly' ],
  20 + fixWebpackSourcePaths: true
  21 + },
  22 + angularCli: {
  23 + environment: 'dev'
  24 + },
  25 + reporters: ['progress', 'kjhtml'],
  26 + port: 9876,
  27 + colors: true,
  28 + logLevel: config.LOG_INFO,
  29 + autoWatch: true,
  30 + browsers: ['Chrome'],
  31 + singleRun: false
  32 + });
  33 +};
... ...
400-SOURCECODE/Admin/package.json 0 → 100644
  1 +{
  2 + "name": "aianew",
  3 + "version": "0.0.0",
  4 + "license": "MIT",
  5 + "scripts": {
  6 + "ng": "ng",
  7 + "start": "ng serve",
  8 + "build": "ng build",
  9 + "test": "ng test",
  10 + "lint": "ng lint",
  11 + "e2e": "ng e2e"
  12 + },
  13 + "private": true,
  14 + "dependencies": {
  15 + "@angular/animations": "^4.2.4",
  16 + "@angular/common": "^4.2.4",
  17 + "@angular/compiler": "^4.2.4",
  18 + "@angular/core": "^4.2.4",
  19 + "@angular/forms": "^4.2.4",
  20 + "@angular/http": "^4.2.4",
  21 + "@angular/platform-browser": "^4.2.4",
  22 + "@angular/platform-browser-dynamic": "^4.2.4",
  23 + "@angular/router": "^4.2.4",
  24 + "core-js": "^2.4.1",
  25 + "ng2-bs3-modal": "0.10.4",
  26 + "ng2-datetime-picker": "0.15.1",
  27 + "ng2-modal": "0.0.25",
  28 + "ng2-select2": "1.0.0-beta.10",
  29 + "rxjs": "^5.4.2",
  30 + "zone.js": "^0.8.14"
  31 + },
  32 + "devDependencies": {
  33 + "@angular/cli": "1.4.9",
  34 + "@angular/compiler-cli": "^4.2.4",
  35 + "@angular/language-service": "^4.2.4",
  36 + "@types/jasmine": "~2.5.53",
  37 + "@types/jasminewd2": "~2.0.2",
  38 + "@types/node": "~6.0.60",
  39 + "codelyzer": "~3.2.0",
  40 + "jasmine-core": "~2.6.2",
  41 + "jasmine-spec-reporter": "~4.1.0",
  42 + "karma": "~1.7.0",
  43 + "karma-chrome-launcher": "~2.1.1",
  44 + "karma-cli": "~1.0.1",
  45 + "karma-coverage-istanbul-reporter": "^1.2.1",
  46 + "karma-jasmine": "~1.1.0",
  47 + "karma-jasmine-html-reporter": "^0.2.2",
  48 + "protractor": "~5.1.2",
  49 + "ts-node": "~3.2.0",
  50 + "tslint": "~5.7.0",
  51 + "typescript": "~2.3.3"
  52 + }
  53 +}
... ...
400-SOURCECODE/Admin/protractor.conf.js 0 → 100644
  1 +// Protractor configuration file, see link for more information
  2 +// https://github.com/angular/protractor/blob/master/lib/config.ts
  3 +
  4 +const { SpecReporter } = require('jasmine-spec-reporter');
  5 +
  6 +exports.config = {
  7 + allScriptsTimeout: 11000,
  8 + specs: [
  9 + './e2e/**/*.e2e-spec.ts'
  10 + ],
  11 + capabilities: {
  12 + 'browserName': 'chrome'
  13 + },
  14 + directConnect: true,
  15 + baseUrl: 'http://localhost:4200/',
  16 + framework: 'jasmine',
  17 + jasmineNodeOpts: {
  18 + showColors: true,
  19 + defaultTimeoutInterval: 30000,
  20 + print: function() {}
  21 + },
  22 + onPrepare() {
  23 + require('ts-node').register({
  24 + project: 'e2e/tsconfig.e2e.json'
  25 + });
  26 + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  27 + }
  28 +};
... ...
400-SOURCECODE/Admin/src/app/app.component.css 0 → 100644
400-SOURCECODE/Admin/src/app/app.component.html 0 → 100644
  1 +
  2 +<!-- navigation -->
  3 +<nav class="navbar navbar-inverse navbar-fixed-top">
  4 + <div class="container-fluid">
  5 + <div class="navbar-header">
  6 + <a class="navbar-brand" href="#"><img src="../assets/img/logo-main.png" class="img-responsive" alt=""></a>
  7 + <div class="">
  8 + <div class="btn-group pull-right">
  9 + <ul class="nav navbar-nav navbar-right visible-sm visible-md">
  10 + <li class="marginR5" data-toggle="tooltip" data-placement="top" title="Logout"><a href="login.html"><i class="fa fa-power-off"></i></a></li>
  11 + </ul>
  12 + </div>
  13 + <div class="btn-group pull-right mar-top17 visible-sm visible-md">
  14 + <button type="button" class="btn btn-primary dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  15 + Welcome Maribel Brogden <span class="caret"></span>
  16 + </button>
  17 + <ul class="dropdown-menu">
  18 + <li><a href="#"><strong>Date:</strong> 11/21/2016</a></li>
  19 + </ul>
  20 + </div>
  21 + </div>
  22 + <button type="button" class="navbar-toggle collapsed mar-top17" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
  23 + <span class="sr-only">Toggle navigation</span>
  24 + <span class="icon-bar"></span>
  25 + <span class="icon-bar"></span>
  26 + <span class="icon-bar"></span>
  27 + </button>
  28 + </div>
  29 +
  30 + <div id="navbar" class="navbar-collapse collapse">
  31 + <ul class="nav navbar-nav toperMenu-spaceleft">
  32 + <li class="dropdown">
  33 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Profile<span class="caret"></span></a>
  34 + <ul class="dropdown-menu">
  35 + <li><a [routerLink]="['updateuserprofile']">Update Profile</a></li>
  36 +
  37 + <li><a [routerLink]="['changeuserpassword']">Change Password</a></li>
  38 +
  39 + <li><a [routerLink]="['changeuserid']">Change User ID</a></li>
  40 + <li><!--<a href="admin-change-user-id.html">Change User ID</a>--></li>
  41 + </ul>
  42 + </li>
  43 + <li class="dropdown">
  44 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Licenses<span class="caret"></span></a>
  45 + <ul class="dropdown-menu">
  46 + <!--<li><a [routerlink]="['managediscountcode']">Search License</a></li>-->
  47 + <li><a href="admin-add-new-license.html">Add New License</a></li>
  48 + <li><a href="admin-setup-test-account.html">Setup Test Account</a></li>
  49 + </ul>
  50 + </li>
  51 + <li class="dropdown">
  52 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Product Features<span class="caret"></span></a>
  53 + <ul class="dropdown-menu">
  54 + <li><a href="admin-manage-discount-code.html">Manage Discount Code</a></li>
  55 + <li><a href="admin-subscription-price.html">Subscription Price</a></li>
  56 + </ul>
  57 + </li>
  58 + <li class="dropdown">
  59 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Users<span class="caret"></span></a>
  60 + <ul class="dropdown-menu">
  61 + <li><a [routerLink]="['users']">List User</a></li>
  62 + <li><a href="admin-add-user.html">Add User</a></li>
  63 + <li><a href="admin-Unblock-user.html">Unblock User</a></li>
  64 + <li><a href="admin-user-group.html">User Group</a></li>
  65 + </ul>
  66 + </li>
  67 + <li class="dropdown">
  68 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Reports<span class="caret"></span></a>
  69 + <ul class="dropdown-menu">
  70 + <li><a href="admin-usage-report.html">Usage Report</a></li>
  71 + <li><a href="customer-summary-report.html">Customer Summary Report</a></li>
  72 + <li><a href="admin-expiring-subscription-report.html">Expiring Subscription Report</a></li>
  73 + <li><a href="admin-new-subscription-report.html">New Subscription Report</a></li>
  74 + <li><a href="admin-subscription-cancellation-report.html">Subscription Cancellation Report</a></li>
  75 + <li><a href="admin-net-ad-subscription-report.html">Net AD Subscription Report</a></li>
  76 + <li><a href="admin-site-license-usage-report.html">Site License Usage Report</a></li>
  77 + <li><a href="admin-discount-code-report.html">Discount Code Report</a></li>
  78 + <li><a href="admin-image-export-report.html">Image Export Report</a></li>
  79 + </ul>
  80 + </li>
  81 + <li class="dropdown">
  82 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Site Account<span class="caret"></span></a>
  83 + <ul class="dropdown-menu">
  84 + <li><a href="admin-add-building-level-account.html">Add Building Level Account</a></li>
  85 + </ul>
  86 + </li>
  87 + <li class="dropdown">
  88 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Profile<span class="caret"></span></a>
  89 + <ul class="dropdown-menu">
  90 + <li><a href="admin-view-update-profile.html">View/Update Profile</a></li>
  91 + <li><a href="admin-manage-modesty-settings.html">Manage Modesty Settings</a></li>
  92 + <li><a href="admin-manage-module.html">Manage Module</a></li>
  93 + </ul>
  94 + </li>
  95 + <li><a href="#">Product</a></li>
  96 + </ul>
  97 + <!--logout-->
  98 + <div class="wel-brog">
  99 + <div class="btn-group pull-right mob1">
  100 + <ul class="nav navbar-nav navbar-right hidden-sm">
  101 + <li class="marginR5" data-toggle="tooltip" data-placement="top" title="Logout"><a href="login.html"><i class="fa fa-power-off"></i></a></li>
  102 + </ul>
  103 + </div>
  104 + <div class="btn-group pull-right hidden-sm mar-top17 mob2">
  105 + <button type="button" class="btn btn-primary dropdown-toggle btn-sm" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  106 + Welcome Maribel Brogden <span class="caret"></span>
  107 + </button>
  108 + <ul class="dropdown-menu">
  109 + <li><a href="#"><strong>Date:</strong> 11/21/2016</a></li>
  110 + </ul>
  111 + </div>
  112 + </div>
  113 + <!--logout-->
  114 + </div>
  115 + </div>
  116 +</nav>
  117 +
  118 +<!-- navigation -->
  119 +<div class="clearfix"></div>
  120 +<div class="row">
  121 + <router-outlet>
  122 + <modal-confirm></modal-confirm>
  123 + </router-outlet>
  124 + <!-- main-heading -->
  125 + <!--<div class="col-sm-12 pageHeading">
  126 + <h4>Update Profile</h4>
  127 + </div>-->
  128 + <!-- main-heading -->
  129 + <!-- container -->
  130 + <!--<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  131 + <div class="container-fluid main-full">-->
  132 + <!-- html of other components -->
  133 +
  134 +
  135 + <!--</div>
  136 + </div>-->
  137 + <!-- container -->
  138 +</div>
... ...
400-SOURCECODE/Admin/src/app/app.component.spec.ts 0 → 100644
  1 +import { TestBed, async } from '@angular/core/testing';
  2 +
  3 +import { AppComponent } from './app.component';
  4 +
  5 +describe('AppComponent', () => {
  6 + beforeEach(async(() => {
  7 + TestBed.configureTestingModule({
  8 + declarations: [
  9 + AppComponent
  10 + ],
  11 + }).compileComponents();
  12 + }));
  13 +
  14 + it('should create the app', async(() => {
  15 + const fixture = TestBed.createComponent(AppComponent);
  16 + const app = fixture.debugElement.componentInstance;
  17 + expect(app).toBeTruthy();
  18 + }));
  19 +
  20 + it(`should have as title 'app'`, async(() => {
  21 + const fixture = TestBed.createComponent(AppComponent);
  22 + const app = fixture.debugElement.componentInstance;
  23 + expect(app.title).toEqual('app');
  24 + }));
  25 +
  26 + it('should render title in a h1 tag', async(() => {
  27 + const fixture = TestBed.createComponent(AppComponent);
  28 + fixture.detectChanges();
  29 + const compiled = fixture.debugElement.nativeElement;
  30 + expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!');
  31 + }));
  32 +});
... ...
400-SOURCECODE/Admin/src/app/app.component.ts 0 → 100644
  1 +import { Component, OnInit } from '@angular/core';
  2 +import { UserService } from './components/UserEntity/user.service';
  3 +import { ManageDiscountCodeService } from './components/ManageDiscountCode/managediscountcode.service';
  4 +@Component({
  5 + selector: 'app-component',
  6 + templateUrl: '../app/app.component.html',
  7 + providers: [UserService, ManageDiscountCodeService]
  8 +})
  9 +
  10 +export class AppComponent implements OnInit {
  11 +
  12 + constructor(private userservice: UserService) { }
  13 +
  14 + ngOnInit(): void { }
  15 +
  16 +}
... ...
400-SOURCECODE/Admin/src/app/app.module.ts 0 → 100644
  1 +
  2 +
  3 +import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  4 +import { BrowserModule } from '@angular/platform-browser';
  5 +import { NgModule } from '@angular/core';
  6 +import { RouterModule, Routes } from '@angular/router';
  7 +import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
  8 +import { APP_BASE_HREF } from '@angular/common';
  9 +import { HttpModule } from '@angular/http';
  10 +import { Ng2Bs3ModalModule } from 'ng2-bs3-modal/ng2-bs3-modal';
  11 +
  12 +//import { ModalModule } from 'ngx-bootstrap/modal';
  13 +import { UpdateUserProfile } from './components/UserEntity/updateuserprofile.component';
  14 +import { ChangeUserPassword } from './components/UserEntity/changeuserpassword.component';
  15 +import { ChangeUserID } from './components/UserEntity/changeuserid.component';
  16 +import { UsersList } from './components/UserEntity/users.component';
  17 +import { ManageDiscountCode } from './components/ManageDiscountCode/managediscountcode.component';
  18 +import { AppComponent } from './app.component';
  19 +import { AppRoutingModule } from './app.routing.module';
  20 +//import { AuthGuard } from '../app/authguard.service';
  21 +//import { AuthService } from '../app/auth.service';
  22 +//import { MyInterceptor } from '../app/token.interceptor';
  23 +import { GlobalService } from './Shared/global';
  24 +import { ConfirmService } from './Shared/Confirm/confirm.service';
  25 +import { ConfirmComponent } from "./Shared/Confirm/confirm.component"
  26 +@NgModule({
  27 + declarations: [
  28 + ChangeUserPassword, ChangeUserID,
  29 + UpdateUserProfile, UsersList,
  30 + ManageDiscountCode,
  31 + AppComponent, ConfirmComponent
  32 + ],
  33 + imports: [
  34 + BrowserModule, AppRoutingModule, HttpClientModule, FormsModule, ReactiveFormsModule, HttpModule, Ng2Bs3ModalModule //ModalModule.forRoot()
  35 + ],
  36 + providers: [GlobalService, ConfirmService,
  37 + //AuthService,
  38 + //AuthGuard,
  39 + //{
  40 + // provide: HTTP_INTERCEPTORS,
  41 + // useClass: MyInterceptor,
  42 + // multi: true
  43 + //}
  44 + { provide: APP_BASE_HREF, useValue: '/' }
  45 +
  46 + ],
  47 + bootstrap: [AppComponent]
  48 +})
  49 +
  50 +export class AppModule { }
... ...
400-SOURCECODE/Admin/src/app/app.routing.module.ts 0 → 100644
  1 +import { NgModule } from '@angular/core';
  2 +import { RouterModule, Routes } from '@angular/router';
  3 +import { UpdateUserProfile } from './components/UserEntity/updateuserprofile.component';
  4 +import { ChangeUserPassword } from './components/UserEntity/changeuserpassword.component';
  5 +import { ChangeUserID } from './components/UserEntity/changeuserid.component';
  6 +import { UsersList } from './components/UserEntity/users.component';
  7 +import { ManageDiscountCode } from './components/ManageDiscountCode/managediscountcode.component';
  8 +//import { AuthGuard } from './authguard.service';
  9 +
  10 +const appRoutes: Routes = [
  11 + //{ path: '', redirectTo:'updateuserprofile',pathMatch }
  12 + { path: 'updateuserprofile', component: UpdateUserProfile },
  13 + { path: 'changeuserpassword', component: ChangeUserPassword },
  14 + { path: 'changeuserid', component: ChangeUserID },
  15 + { path: 'users', component: UsersList },
  16 + { path: 'managediscountcode', component: ManageDiscountCode },
  17 +];
  18 +
  19 +@NgModule({
  20 + imports: [
  21 + RouterModule.forRoot(appRoutes, { enableTracing: true }) // <-- debugging purposes only
  22 + ],
  23 + exports: [
  24 + RouterModule
  25 + ]
  26 +})
  27 +
  28 +export class AppRoutingModule { }
... ...
400-SOURCECODE/Admin/src/app/components/ChangePassword/changeuserpassword.component.html 0 → 100644
  1 +<div class="row">
  2 + <!-- main-heading -->
  3 + <div class="col-sm-12 pageHeading">
  4 + <h4>Change User Password</h4>
  5 + </div>
  6 + <!-- main-heading -->
  7 + <!-- container -->
  8 + <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  9 + <div class="container-fluid main-full">
  10 +
  11 + <div class="row">
  12 + <div class="well">
  13 + <div class="row">
  14 + <div class="col-sm-12">
  15 + <h5 class="text-center text-success"><strong>**To change your profile fill all the text fields carefully.</strong></h5>
  16 + <div class="panel-body">
  17 + <!-- form -->
  18 + <form class="form-horizontal" [formGroup]="changeUserPasswordFrm" (submit)="onFormSubmit()">
  19 + <div class="form-group" *ngIf="alerts !== ''">
  20 + <div class="col-xs-12">
  21 + <div class="alert alert-danger" [innerHTML]="alerts">
  22 + </div>
  23 + </div>
  24 + </div>
  25 + <div class="form-group">
  26 + <label for="inputEmail3" class="col-sm-4 control-label">User Id <span class="red">*</span> :</label>
  27 + <div class="col-sm-7">
  28 + <label type="text" class="form-control" formControlName="loginId" placeholder="Superadmin">{{changeUserPasswordFrm.controls.loginId.value}}</label>
  29 + </div>
  30 + </div>
  31 + <div class="form-group">
  32 + <label for="inputPassword3" class="col-sm-4 control-label">Old Password <span class="red">*</span> :</label>
  33 + <div class="col-sm-7">
  34 + <input type="password" class="form-control" formControlName="oldPassword" placeholder="">
  35 + <div *ngIf="!changeUserPasswordFrm.controls.oldPassword.valid && changeUserPasswordFrm.controls.oldPassword.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Old password is required</div>
  36 + </div>
  37 + </div>
  38 + <div class="form-group">
  39 + <label for="inputPassword3" class="col-sm-4 control-label">New Password <span class="red">*</span> :</label>
  40 + <div class="col-sm-7">
  41 + <input type="password" class="form-control" formControlName="newPassword" placeholder="">
  42 + <span class="help-block">(Minimum 8 characters)</span>
  43 + <div *ngIf="!changeUserPasswordFrm.controls.newPassword.valid && changeUserPasswordFrm.controls.newPassword.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">New password of minimum 8 characters is required</div>
  44 + </div>
  45 + </div>
  46 + <div class="form-group">
  47 + <label for="inputPassword3" class="col-sm-4 control-label">Confirm Password <span class="red">*</span> :</label>
  48 + <div class="col-sm-7">
  49 + <input type="password" class="form-control" formControlName="confirmPassword" placeholder="">
  50 + <div *ngIf="!changeUserPasswordFrm.controls.confirmPassword.valid && changeUserPasswordFrm.controls.confirmPassword.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Confirm password is required</div>
  51 + </div>
  52 + </div>
  53 + <div class="form-group">
  54 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  55 + <button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-check"></i> Update</button>
  56 + <button type="button" class="btn btn-primary btn-sm" (click)="ResetFormFields()"><i class="fa fa-close"></i> Cancel</button>
  57 + </div>
  58 + </div>
  59 + <!--cancel-button-->
  60 + <div class="modal fade bs-example-modal-sm ui-draggable" tabindex="-1" role="dialog" id="mymodal">
  61 + <div class="modal-dialog modal-sm" role="document">
  62 + <div class="modal-content">
  63 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  64 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  65 + <h4 class="modal-title" id="">Alert</h4>
  66 + </div>
  67 + <div class="modal-body">
  68 + <h5>Please enter your old password</h5>
  69 + </div>
  70 + <div class="modal-footer">
  71 + <div class="row">
  72 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  73 + </div>
  74 + </div>
  75 +
  76 + </div><!-- /.modal-content -->
  77 + </div><!-- /.modal-dialog -->
  78 + </div><!-- /.modal -->
  79 + <!--cancel-button-->
  80 + </form>
  81 + <!-- form -->
  82 + </div>
  83 + </div>
  84 + </div>
  85 + </div>
  86 + </div>
  87 + </div>
  88 + </div>
  89 +
  90 +
  91 +</div>
  92 +
... ...
400-SOURCECODE/Admin/src/app/components/ChangePassword/changeuserpassword.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit } from '@angular/core';
  2 +import { ChangeUserPasswordService } from './changeuserpassword.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
  5 +import { User } from '../UpdateProfile/datamodel';
  6 +import { Http, Response } from '@angular/http';
  7 +//import { Global } from '../../Shared/global';
  8 +//import { DBOperation } from 'S';
  9 +//import { Observable } from 'rxjs/Observable';
  10 +
  11 +@Component({
  12 + templateUrl: './changeuserpassword.component.html'
  13 +})
  14 +
  15 +export class ChangeUserPassword implements OnInit {
  16 +
  17 +user: User;
  18 +changeUserPasswordFrm: FormGroup;
  19 +error: any;
  20 +alerts: string;
  21 +
  22 +constructor(private changeUserPasswordService: ChangeUserPasswordService, private router: Router, private fb: FormBuilder) { }
  23 +
  24 + ngOnInit(): void {
  25 + this.user = new User();
  26 + this.alerts = '';
  27 + this.changeUserPasswordFrm = this.fb.group({
  28 + loginId: ['', Validators.required],
  29 + oldPassword: ['', Validators.required],
  30 + newPassword: ['', [Validators.required, Validators.minLength(8)]],
  31 + confirmPassword: ['', Validators.required]
  32 + });
  33 + this.GetUserById();
  34 + }
  35 +
  36 + GetUserById() {
  37 + this.changeUserPasswordService.GetUserById()
  38 + .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  39 + }
  40 +
  41 + public onFormSubmit() {
  42 + if(this.user.Password != this.changeUserPasswordFrm.value.oldPassword){
  43 + this.alerts = '<span>Old password is invalid</span>';
  44 + }
  45 + if(this.changeUserPasswordFrm.value.newPassword != this.changeUserPasswordFrm.value.confirmPassword){
  46 + this.alerts += '</br><span>New password and confirm password must be same</span>';
  47 + }
  48 + if(this.alerts != ''){
  49 + this.user = this.changeUserPasswordFrm.value;
  50 + var obj = this.user
  51 + return this.changeUserPasswordService.ChangeUserPassword(obj)
  52 + .subscribe(
  53 + n => (this.AfterInsertData(n)),
  54 + error => this.error = <any>error);
  55 + }
  56 + }
  57 +
  58 + AfterInsertData(data) {
  59 + if (data.Status == "false") {
  60 + this.alerts = "<span>Password change unsuccessfull</span>";
  61 + } else {
  62 + this.alerts = "<span>Password changed successfully</span>";
  63 + }
  64 + }
  65 +
  66 + BindFormFields(data){
  67 + this.user = data[0];
  68 + this.changeUserPasswordFrm.controls['loginId'].setValue(this.user.LoginId);
  69 + }
  70 +
  71 + ResetFormFields(){
  72 + this.changeUserPasswordFrm.reset()
  73 + this.changeUserPasswordFrm.controls['loginId'].setValue(this.user.LoginId);
  74 + this.changeUserPasswordFrm.controls['oldPassword'].setValue('');
  75 + this.changeUserPasswordFrm.controls['newPassword'].setValue('');
  76 + this.changeUserPasswordFrm.controls['confirmPassword'].setValue('');
  77 + this.alerts = '';
  78 + }
  79 +
  80 +}
... ...
400-SOURCECODE/Admin/src/app/components/ChangePassword/changeuserpassword.service.ts 0 → 100644
  1 +import { Injectable, Inject } from '@angular/core';
  2 +//import { HttpClient, HttpParams, HttpRequest} from "@angular/common/http";
  3 +import { Http, Response, Headers, RequestOptions, HttpModule } from '@angular/http';
  4 +import 'rxjs/add/operator/map';
  5 +import 'rxjs/add/operator/catch';
  6 +import 'rxjs/add/observable/throw';
  7 +import { User } from '../UpdateProfile/datamodel';
  8 +import 'rxjs/add/operator/do';
  9 +import { Observable } from 'rxjs/Observable';
  10 +import { GlobalService } from '../../Shared/global';
  11 +
  12 +@Injectable()
  13 +export class ChangeUserPasswordService {
  14 +
  15 + constructor(private http: Http, private commonService: GlobalService ) { }
  16 +
  17 + //public GetUserById(Id: any): Observable<User> {
  18 + // return this.http.request<User>(
  19 + // 'GET',
  20 + // 'http://192.168.86.13:92/API/Api/Users/' + Id);
  21 + //}
  22 +
  23 + //GetUserByLoginIdPassword(LoginId: string, Password: string): Observable<User> {
  24 + // return this.http.request<User>(
  25 + // 'GET',
  26 + // 'http://192.168.86.13:92/API/Api/Users/{LoginId=' + LoginId + '&Password=' + Password + '}');
  27 + //}
  28 +
  29 + //UpdateProfile(UserObj: User): Observable<any> {
  30 + // return this.http.request<any>(
  31 + // 'POST',
  32 + // 'http://192.168.86.13:92/API/Api/Users/UpdateProfile',
  33 + // {
  34 + // body: UserObj
  35 + // });
  36 + //}
  37 +
  38 + GetUserById() {
  39 + return this.http.get(this.commonService.resourceBaseUrl + "/api/GetUserProfile/1")
  40 + .map(this.extractData)
  41 + .catch((res: Response) => this.handleError(res));;
  42 + }
  43 +
  44 + ChangeUserPassword(obj: User) {
  45 + //let options = new RequestOptions({ headers: this.headers });
  46 + return this.http.post(this.commonService.resourceBaseUrl + "/api/ChangeUserPassword", obj)
  47 + .map(this.extractData)
  48 + .catch((res: Response) => this.handleError(res));
  49 + }
  50 +
  51 + extractData(res: Response) {
  52 + //debugger;
  53 + let body = res.json();
  54 + return body;
  55 + }
  56 +
  57 + handleError(error: any) {
  58 + // In a real world app, we might use a remote logging infrastructure
  59 + // We'd also dig deeper into the error to get a better message
  60 + let errMsg = (error.message) ? error.message :
  61 + error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  62 + console.error(errMsg); // log to console instead
  63 + return Observable.throw(errMsg);
  64 + }
  65 +
  66 + ////public GetUserById(url: string): Observable<any> {
  67 +
  68 + //// return this._http.get(url)
  69 + //// .map((response: Response) => <any>response.json())
  70 + //// .do(data => console.log("All: " + JSON.stringify(data)))
  71 + //// .catch(this.handleError);
  72 + ////}
  73 + //// private handleError(error: Response) {
  74 + //// console.error(error);
  75 + //// return Observable.throw(error.json().error || 'Server error');
  76 + //// }
  77 +
  78 +}
... ...
400-SOURCECODE/Admin/src/app/components/ChangeUserID/UserInfo.ts 0 → 100644
  1 +export class UserInfo {
  2 + Id: number;
  3 + LoginId: string;
  4 + NewLoginId: string;
  5 + ConfirmLoginId: string;
  6 +}
  7 +
... ...
400-SOURCECODE/Admin/src/app/components/ChangeUserID/changeuserid.component.html 0 → 100644
  1 +<div class="row">
  2 + <!-- main-heading -->
  3 + <div class="col-sm-12 pageHeading">
  4 + <h4>Change User ID</h4>
  5 + </div>
  6 + <!-- main-heading -->
  7 + <!-- container -->
  8 + <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  9 + <div class="container-fluid main-full">
  10 + <div class="row">
  11 + <div class="well">
  12 + <div class="row">
  13 + <div class="col-sm-12">
  14 + <h5 class="text-center text-success"><strong>**To change your user ID fill all the text fields carefully.</strong></h5>
  15 + <div class="panel-body">
  16 + <!-- form -->
  17 + <form class="form-horizontal" novalidate [formGroup]="ChangeUserIdFrm">
  18 + <div class="form-group">
  19 + <label for="inputEmail3" class="col-sm-4 control-label">Old User Id <span class="red">*</span> :</label>
  20 + <div class="col-sm-7">
  21 + <input type="text" class="form-control" id="inputEmail3" placeholder="UserId" formControlName="loginid">
  22 + <div *ngIf="!ChangeUserIdFrm.controls.loginid.valid && ChangeUserIdFrm.controls.loginid.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">UserId is required</div>
  23 + </div>
  24 + </div>
  25 + <div class="form-group">
  26 + <label for="inputPassword3" class="col-sm-4 control-label">New User Id <span class="red">*</span> :</label>
  27 + <div class="col-sm-7">
  28 + <input type="text" class="form-control" id="inputPassword" formControlName="newloginid" >
  29 + <span class="help-block">(Minimum 8 characters)</span>
  30 + <div *ngIf="ChangeUserIdFrm.controls.newloginid.invalid && !ChangeUserIdFrm.controls.newloginid.value && ChangeUserIdFrm.controls.loginid.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">New userid is required</div>
  31 +
  32 + <div *ngIf="ChangeUserIdFrm.controls.newloginid.invalid && ChangeUserIdFrm.controls.newloginid.value" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">
  33 + Minimum 8 characters.
  34 + </div>
  35 + </div>
  36 + </div>
  37 + <div class="form-group">
  38 + <label for="inputPassword3" class="col-sm-4 control-label">Confirm User Id <span class="red">*</span> :</label>
  39 + <div class="col-sm-7">
  40 + <input type="text" class="form-control" id="inputPasswor" formControlName="confirmloginid">
  41 + </div>
  42 + </div>
  43 +
  44 + <div class="form-group">
  45 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  46 + <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal"><i class="fa fa-check"></i> Update</button>
  47 + <!--cancel-button-->
  48 + <div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" id="mymodal">
  49 + <div class="modal-dialog modal-sm" role="document">
  50 + <div class="modal-content">
  51 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  52 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  53 + <h4 class="modal-title" id="">Alert</h4>
  54 + </div>
  55 + <div class="modal-body">
  56 + <h5>Please enter your old user ID.</h5>
  57 + </div>
  58 + <div class="modal-footer">
  59 + <div class="row">
  60 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  61 + </div>
  62 + </div>
  63 +
  64 + </div><!-- /.modal-content -->
  65 + </div><!-- /.modal-dialog -->
  66 + </div><!-- /.modal -->
  67 + <!--cancel-button-->
  68 + <button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-close"></i> Cancel</button>
  69 + </div>
  70 +
  71 + </div>
  72 + </form>
  73 + <!-- form -->
  74 + </div>
  75 + </div>
  76 + </div>
  77 + </div>
  78 + </div>
  79 + <!-- container -->
  80 + </div>
  81 + </div>
  82 +
  83 +
  84 + </div>
... ...
400-SOURCECODE/Admin/src/app/components/ChangeUserID/changeuserid.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit,ViewChild } from '@angular/core';
  2 +import { ChangeUserIDService } from '../ChangeUserID/changeuserid.service';
  3 +import { UserService } from '../UpdateProfile/user.service';
  4 +import { Router } from '@angular/router';
  5 +import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
  6 +import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  7 +import { UserInfo } from '../ChangeUserID/UserInfo';
  8 +import { Http, Response } from '@angular/http';
  9 +//import { Global } from '../../Shared/global';
  10 +//import { DBOperation } from 'S';
  11 +import { Observable } from 'rxjs/Observable';
  12 +import { ConfirmService } from '../../Shared/Confirm/confirm.service';
  13 +import 'rxjs/Rx';
  14 +import 'rxjs/add/operator/map';
  15 +import 'rxjs/add/operator/filter';
  16 +
  17 +
  18 +@Component({
  19 + templateUrl:'./changeuserid.component.html' // '../../../../../wwwroot/html/UpdateProfile/updateuserprofile.component.html'
  20 +})
  21 +
  22 +export class ChangeUserID implements OnInit {
  23 + UserId: number=1;
  24 + //users: IUser[];
  25 + user: UserInfo;
  26 + //msg: string;
  27 + //indLoading: boolean = false;
  28 + // dbops: DBOperation;
  29 + modalTitle: string;
  30 + modalBtnTitle: string;
  31 + baseUrl: string = "User";
  32 + ChangeUserIdFrm: FormGroup;
  33 + useFname: string;
  34 + error;
  35 + status: boolean;
  36 + alerts: string;
  37 + emailPattern = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$";
  38 + //@ViewChild("profileModal")
  39 + //profileModal: ModalComponent;
  40 + //errorMessage: any;
  41 + constructor(private userservice: UserService, private router: Router, private fb: FormBuilder, private http: Http,
  42 + private _confirmService: ConfirmService
  43 + ) { }
  44 +
  45 + ngOnInit(): void {
  46 + this.user = new UserInfo();
  47 + this.alerts = '';
  48 + //this.userservice.GetUserById(this.UserId);
  49 + this.ChangeUserIdFrm = this.fb.group({
  50 + id: [''],
  51 + loginid: ['', Validators.required],
  52 + newloginid: ['', Validators.required],
  53 + confirmloginid: ['', Validators.required]
  54 + // LastName: [''],
  55 + // Gender: ['', Validators.required],
  56 + // Email: ['']
  57 +
  58 + });
  59 + this.GetUserById();
  60 + }
  61 + //ngAfterviewint() {
  62 + // this.LoadUsers();
  63 + //}
  64 +
  65 +
  66 + //getCustomerById(UserId) {
  67 + // return this.userservice.GetUserById(UserId)
  68 + // .map((response: Response) => response.json())
  69 + // .catch(this._errorHandler)
  70 + //}
  71 + //formErrors = {
  72 + // 'firstName': '',
  73 + // 'lastName': '',
  74 + // 'email': ''
  75 + //};
  76 + GetUserById() {
  77 +
  78 + this.userservice.GetUserById()
  79 + .subscribe(x => { console.log(x); this.bindUsers(x) }, error => this.error = <any>error);
  80 + }
  81 + UpdateUserProfile(this) {
  82 + // debugger;
  83 + this.user = this.ChangeUserIdFrm.value;
  84 + //if(this.user.)
  85 + console.log(this.user);
  86 + var obj = this.user
  87 + if (this.ChangeUserIdFrm.valid) {
  88 + return this.userservice.UpdateUserProfileById(obj)
  89 + .subscribe(
  90 + n => (this.AfterInsertData(n)),
  91 + error => this.error = <any>error);
  92 + }
  93 + }
  94 + AfterInsertData(data) {
  95 + //debugger;
  96 + if (data.Status == "False") {
  97 + // this._confirmService.activate(data.ResponseMessage, "alertMsg");
  98 + //setTimeout(() => this.amCode.nativeElement.focus(), 0);
  99 + // this.closeflag = false;
  100 + return false;
  101 + } else {
  102 + this.status = true;
  103 + debugger;
  104 +
  105 + this._confirmService.activate("User Profile Updated Successfully.", "alertMsg");
  106 + //this.profileModal.open();
  107 + // this.submitted = false;
  108 + // this.GetAllAcctMgr();
  109 + // this.DisableAllControls();
  110 + // this.AccountManagerID.enable();
  111 + // let accountManagerID: string = data.Id == null ? "" : data.Id.toString();
  112 + // console.log(accountManagerID);
  113 +
  114 + // this.GetAcctMgr(Number(accountManagerID));
  115 + //this.GetAccountManagerListOptions(false);
  116 + // this.defautValue = data.id;
  117 + // this.BtnReset = true;
  118 + // this.BtnSave = true;
  119 + // this.BtnEdit = false;
  120 + // this.BtnNew = false;
  121 + // this.BtnDelete = false;
  122 + // this.Abbrevtion = this.Abbrev.value;
  123 + // setTimeout(() => this.AMform.controls["AccountManagerID"].setValue(accountManagerID.toString()), 1000);
  124 + // setTimeout(() => this.AMform.markAsPristine(), 2000);
  125 + }
  126 + //if (this.closeflag) {
  127 + // this.close.emit(null);
  128 + //}
  129 + //else {
  130 + //}
  131 + }
  132 + bindUsers(data) {
  133 + debugger;
  134 + //console.log(data);
  135 + //alert(JSON.stringify(data));
  136 + this.user = data[0];
  137 +
  138 + console.log(this.user);
  139 + this.ChangeUserIdFrm.controls['id'].setValue(this.user.Id)
  140 + this.ChangeUserIdFrm.controls['loginid'].setValue(this.user.LoginId)
  141 + this.ChangeUserIdFrm.controls['newloginid'].setValue('')
  142 + this.ChangeUserIdFrm.controls['confirmloginid'].setValue('')
  143 + // this.GetClientListOptions(false);
  144 + // this.GetCrossRefClientListOptions(false);
  145 + }
  146 + //extractData(res: Response) {
  147 + // //debugger;
  148 + // let body = res.json();
  149 + // return body;
  150 + //}
  151 + //handleError(error: any) {
  152 +
  153 + // // In a real world app, we might use a remote logging infrastructure
  154 + // // We'd also dig deeper into the error to get a better message
  155 + // let errMsg = (error.message) ? error.message :
  156 + // error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  157 + // console.error(errMsg); // log to console instead
  158 + // return Observable.throw(errMsg);
  159 + //}
  160 + validationMessages = {
  161 + 'firstName': {
  162 + 'required': 'First name is required.'
  163 + },
  164 + 'lastName': {
  165 + 'required': 'Last name is required.'
  166 + },
  167 + 'email': {
  168 + 'required': 'Email is required.',
  169 + 'pattern': 'Email pattern is not valid.'
  170 + }
  171 + }
  172 +
  173 +}
... ...
400-SOURCECODE/Admin/src/app/components/ChangeUserID/changeuserid.service.ts 0 → 100644
  1 +import { Injectable, Inject } from '@angular/core';
  2 +//import { HttpClient, HttpParams, HttpRequest} from "@angular/common/http";
  3 +import { Http, Response, Headers, RequestOptions, HttpModule } from '@angular/http';
  4 +import 'rxjs/add/operator/map';
  5 +import 'rxjs/add/operator/catch';
  6 +import 'rxjs/add/observable/throw';
  7 +import { UserInfo } from '../ChangeUserID/UserInfo';
  8 +import 'rxjs/add/operator/do';
  9 +import { Observable } from 'rxjs/Observable';
  10 +import { GlobalService } from '../../Shared/global';
  11 +@Injectable()
  12 +export class ChangeUserIDService {
  13 +
  14 + constructor(private http: Http, private commonService: GlobalService ) { }
  15 +
  16 + GetUserById() {
  17 +
  18 + return this.http.get(this.commonService.resourceBaseUrl + "/api/GetUserProfile/1")
  19 + .map(this.extractData)
  20 + .catch((res: Response) => this.handleError(res));;
  21 +
  22 + }
  23 + UpdateUserProfileById(obj: UserInfo) {
  24 + //let options = new RequestOptions({ headers: this.headers });
  25 + return this.http.post(this.commonService.resourceBaseUrl + "/api/UpdateProfile", obj)
  26 + .map(this.extractData)
  27 + .catch((res: Response) => this.handleError(res));
  28 + }
  29 +
  30 + extractData(res: Response) {
  31 + //debugger;
  32 + let body = res.json();
  33 + return body;
  34 + }
  35 + handleError(error: any) {
  36 +
  37 + // In a real world app, we might use a remote logging infrastructure
  38 + // We'd also dig deeper into the error to get a better message
  39 + let errMsg = (error.message) ? error.message :
  40 + error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  41 + console.error(errMsg); // log to console instead
  42 + return Observable.throw(errMsg);
  43 + }
  44 + ////public GetUserById(url: string): Observable<any> {
  45 +
  46 + //// return this._http.get(url)
  47 + //// .map((response: Response) => <any>response.json())
  48 + //// .do(data => console.log("All: " + JSON.stringify(data)))
  49 + //// .catch(this.handleError);
  50 + ////}
  51 + //// private handleError(error: Response) {
  52 + //// console.error(error);
  53 + //// return Observable.throw(error.json().error || 'Server error');
  54 + //// }
  55 +
  56 +}
... ...
400-SOURCECODE/Admin/src/app/components/ManageDiscountCode/managediscountcode.component.html 0 → 100644
  1 +<div class="row">
  2 + <!-- main-heading -->
  3 + <div class="col-sm-12 pageHeading">
  4 + <h4>{{Mode}} Discount Code</h4>
  5 + </div>
  6 + <!-- main-heading -->
  7 + <!-- container -->
  8 + <div [className]="divClass">
  9 + <div class="container-fluid main-full">
  10 + <div class="form-group" *ngIf="alerts != ''">
  11 + <div class="col-xs-12">
  12 + <div class="alert alert-danger" [innerHTML]="alerts">
  13 + </div>
  14 + </div>
  15 + </div>
  16 + <!-- form -->
  17 + <form class="form-horizontal" [formGroup]="manageDiscountCodeFrm">
  18 +
  19 + <div [style.visibility]="(Mode == 'Manage') ? 'visible' : 'hidden'" class="row">
  20 + <div class="well no-margin-btm">
  21 + <div class="row">
  22 + <div class="col-lg-3 col-sm-4">
  23 + <div class="row">
  24 + <div class="col-sm-12">
  25 + <div class="form-group marginTop5">
  26 + <label for="searchDiscountCode" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Discount Code : </label>
  27 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  28 + <input type="text" class="form-control" id="searchDiscountCode" formControlName="searchDiscountCode">
  29 + </div>
  30 + </div>
  31 + </div>
  32 + </div>
  33 + </div>
  34 + <div class="col-lg-4 col-sm-4">
  35 + <div class="row">
  36 + <div class="col-sm-12">
  37 + <div class="form-group marginTop5">
  38 + <label for="searchStartDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Discount Start Date :</label>
  39 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  40 + <div id="datetimepicker1" class="input-group input-append date">
  41 + <input id="searchStartDate" type="text" class="form-control" formControlName="searchStartDate">
  42 + <span class="input-group-btn add-on">
  43 + <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
  44 + </span>
  45 + </div>
  46 + </div>
  47 + </div>
  48 + </div>
  49 + </div>
  50 + </div>
  51 + <div class="col-lg-4 col-sm-4">
  52 + <div class="row">
  53 + <div class="col-sm-12">
  54 + <div class="form-group marginTop5">
  55 + <label for="searchEndDate" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Discount End Date :</label>
  56 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  57 + <div id="datetimepicker2" class="input-group input-append date">
  58 + <input id="searchEndDate" type="text" class="form-control" formControlName="searchEndDate">
  59 + <span class="input-group-btn add-on">
  60 + <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
  61 + </span>
  62 + </div>
  63 + </div>
  64 + </div>
  65 + </div>
  66 + </div>
  67 + </div>
  68 +
  69 + <div class="col-lg-1 col-sm-4">
  70 + <div class="row">
  71 + <div class="col-sm-12">
  72 + <div class="form-group marginTop5">
  73 + <button (click)="SearchDiscountCodes()" type="button" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> Search</button>
  74 + </div>
  75 + </div>
  76 + </div>
  77 + </div>
  78 + </div>
  79 + </div>
  80 +
  81 + <div class="well">
  82 + <div class="table-responsive blue table-fixT">
  83 + <table class="table table-condensed table-bordered margin-btm0 table-striped table-hover table-fixed">
  84 + <thead>
  85 + <tr>
  86 + <th>Discount Code</th>
  87 + <th>Percentage</th>
  88 + <th>Discount Start Date</th>
  89 + <th>Discount End Date</th>
  90 + <th>Status</th>
  91 + </tr>
  92 + </thead>
  93 + <tbody>
  94 + <tr *ngFor="let item of this.manageDiscountCodeFrm.controls['discountCodes'].value">
  95 + <td><input type="hidden" value="{{item.Id}}">{{item.DiscountCode}}</td>
  96 + <td>{{item.Percentage | number : '1.2'}}</td>
  97 + <td>{{item.StartDate | date: 'MM/dd/yyyy'}}</td>
  98 + <td>{{item.EndDate | date: 'MM/dd/yyyy'}}</td>
  99 + <td>
  100 + <span *ngIf="item.IsActive" class="label label-success">Active</span>
  101 + <span *ngIf="!item.IsActive" class="label label-default">Inactive</span>
  102 + </td>
  103 + </tr>
  104 + </tbody>
  105 + </table>
  106 + </div>
  107 + <div class="row">
  108 + <div class="col-sm-12 marginTop20 text-center">
  109 + <button (click)="AddDiscountCode()" class="btn btn-primary btn-sm"><i class="fa fa-plus-circle"></i> Add</button>
  110 + <button (click)="EditDiscountCode()" class="btn btn-primary btn-sm"><i class="fa fa-edit"></i> Edit</button>
  111 + </div>
  112 + </div>
  113 + </div>
  114 + </div>
  115 + </form>
  116 + <!-- form -->
  117 +
  118 + <div style="position: absolute; z-index: 100;" [style.top]="topPos" [style.visibility]="(Mode=='Add' || Mode=='Edit') ? 'visible' : 'hidden'"
  119 + class="well">
  120 + <div class="row">
  121 + <div class="col-sm-12">
  122 + <div class="panel-body">
  123 + <!-- form -->
  124 + <form class="form-horizontal" [formGroup]="insertUpdateDiscountCodeFrm" (submit)="InsertUpdateDiscountCode()">
  125 + <div class="form-group">
  126 + <label for="discountCode" class="col-sm-4 control-label">Discount Code :</label>
  127 + <div class="col-sm-7">
  128 + <input type="hidden" formControlName="discountId">
  129 + <input type="text" class="form-control" id="discountCode" placeholder="" formControlName="discountCode">
  130 + </div>
  131 + </div>
  132 + <div class="form-group">
  133 + <label for="startDate" class="col-sm-4 control-label">Discount Start Date <span class="red">*</span> :</label>
  134 + <div class="col-sm-7">
  135 + <div id="datetimepicker1" class="input-group input-group-sm input-append date">
  136 + <input type="text" class="form-control" id="startDate" formControlName="startDate">
  137 + <span class="input-group-btn add-on">
  138 + <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
  139 + </span>
  140 + </div>
  141 + </div>
  142 + </div>
  143 + <div class="form-group">
  144 + <label for="endDate" class="col-sm-4 control-label">Discount End Date <span class="red">*</span> :</label>
  145 + <div class="col-sm-7">
  146 + <div id="datetimepicker2" class="input-group input-group-sm input-append date">
  147 + <input type="text" class="form-control" id="endDate" formControlName="endDate">
  148 + <span class="input-group-btn add-on">
  149 + <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
  150 + </span>
  151 + </div>
  152 + </div>
  153 + </div>
  154 +
  155 + <div class="form-group">
  156 + <label for="percentage" class="col-sm-4 control-label">Percentage <span class="red">*</span> :</label>
  157 + <div class="col-sm-7">
  158 + <input type="text" class="form-control" id="percentage" placeholder="" formControlName="percentage">
  159 + </div>
  160 + </div>
  161 +
  162 + <div class="form-group">
  163 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  164 + <button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-plus-circle"></i> Save</button>
  165 + <button type="button" (click)="CancelAddEdit()" class="btn btn-primary btn-sm"><i class="fa fa-times-circle"></i> Cancel</button>
  166 + </div>
  167 + </div>
  168 + <!--cancel-button-->
  169 + <div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" id="mymodal">
  170 + <div class="modal-dialog modal-sm" role="document">
  171 + <div class="modal-content">
  172 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  173 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  174 + <h4 class="modal-title" id="">Alert</h4>
  175 + </div>
  176 + <div class="modal-body">
  177 + <h5>Discount Percentage should be greater than one.</h5>
  178 + </div>
  179 + <div class="modal-footer">
  180 + <div class="row">
  181 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  182 + </div>
  183 + </div>
  184 +
  185 + </div>
  186 + <!-- /.modal-content -->
  187 + </div>
  188 + <!-- /.modal-dialog -->
  189 + </div>
  190 + <!-- /.modal -->
  191 + <!--cancel-button-->
  192 + </form>
  193 + <!-- form -->
  194 + </div>
  195 + </div>
  196 + </div>
  197 + </div>
  198 + </div>
  199 + </div>
  200 + <!-- container -->
  201 +</div>
0 202 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/components/ManageDiscountCode/managediscountcode.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit, Input, Output, EventEmitter } from '@angular/core';
  2 +import { ManageDiscountCodeService } from './managediscountcode.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
  5 +import { DiscountCode } from '../UserEntity/datamodel';
  6 +//import { BsDatepickerModule } from 'ngx-bootstrap';
  7 +import { Http, Response } from '@angular/http';
  8 +
  9 +//import { Global } from '../../Shared/global';
  10 +//import { DBOperation } from 'S';
  11 +//import { Observable } from 'rxjs/Observable';
  12 +
  13 +@Component({
  14 + templateUrl: './managediscountcode.component.html'
  15 +})
  16 +
  17 +export class ManageDiscountCode implements OnInit {
  18 +
  19 +Mode: string = 'Manage';
  20 +discountCode: DiscountCode;
  21 +discountCodes: Array<DiscountCode>;
  22 +manageDiscountCodeFrm: FormGroup;
  23 +insertUpdateDiscountCodeFrm: FormGroup;
  24 +error: any;
  25 +alerts: string;
  26 +divClass: string = '';
  27 +topPos: string = '2000px';
  28 +bsValue: Date = new Date();
  29 +
  30 +constructor(private manageDiscountCodeService: ManageDiscountCodeService, private router: Router, private fb: FormBuilder) { }
  31 +
  32 + ngOnInit(): void {
  33 + this.divClass = 'col-sm-12';
  34 + this.discountCode = new DiscountCode();
  35 + this.alerts = '';
  36 + this.manageDiscountCodeFrm = this.fb.group({
  37 + searchDiscountCode: [''],
  38 + searchStartDate: [''],
  39 + searchEndDate: [''],
  40 + discountCodes: this.fb.array([])
  41 + });
  42 + this.insertUpdateDiscountCodeFrm = this.fb.group({
  43 + discountId: [''],
  44 + discountCode: ['', Validators.required],
  45 + startDate: ['', Validators.required],
  46 + endDate: ['', Validators.required],
  47 + percentage: ['', Validators.required],
  48 + isActive: ['']
  49 + });
  50 + this.SearchDiscountCodes();
  51 + }
  52 +
  53 + SearchDiscountCodes() {
  54 + console.log(this.manageDiscountCodeFrm.controls['searchDiscountCode'].value + ', ' +
  55 + this.manageDiscountCodeFrm.controls['searchStartDate'].value + ', ' +
  56 + this.manageDiscountCodeFrm.controls['searchEndDate'].value);
  57 + this.manageDiscountCodeService.GetDiscountCodes(
  58 + {
  59 + discountCode: this.manageDiscountCodeFrm.controls['searchDiscountCode'].value,
  60 + startDate: this.manageDiscountCodeFrm.controls['searchStartDate'].value,
  61 + endDate: this.manageDiscountCodeFrm.controls['searchEndDate'].value
  62 + })
  63 + .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  64 + }
  65 +
  66 + public InsertUpdateDiscountCode() {
  67 + console.log('InsertUpdateDiscountCode');
  68 + this.alerts = '';
  69 +
  70 + if(this.alerts == ''){
  71 + var obj = this.insertUpdateDiscountCodeFrm.value;
  72 + return this.manageDiscountCodeService.InsertDiscountCode(obj)
  73 + .subscribe(
  74 + n => (this.AfterInsertData(n)),
  75 + error => this.error = <any>error);
  76 + }
  77 + }
  78 +
  79 + AfterInsertData(data) {
  80 + if (data.Status == "false") {
  81 + this.alerts = "<span>Password change unsuccessfully</span>";
  82 + } else {
  83 + this.alerts = "<span>Password changed successfully</span>";
  84 + }
  85 + }
  86 +
  87 + BindFormFields(data){
  88 + this.discountCodes = data;
  89 + this.manageDiscountCodeFrm.setControl('discountCodes', this.fb.array(this.discountCodes));
  90 + }
  91 +
  92 + ResetFormFields(){
  93 + this.manageDiscountCodeFrm.reset()
  94 + //this.manageDiscountCodeFrm.controls['loginId'].setValue(this.user.LoginId);
  95 + //this.manageDiscountCodeFrm.controls['oldPassword'].setValue('');
  96 + //this.manageDiscountCodeFrm.controls['newPassword'].setValue('');
  97 + //this.manageDiscountCodeFrm.controls['confirmPassword'].setValue('');
  98 + this.alerts = '';
  99 + }
  100 +
  101 + AddDiscountCode(){
  102 + this.Mode = 'Add';
  103 + this.topPos = '100px';
  104 + this.divClass = 'col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3';
  105 + }
  106 +
  107 + EditDiscountCode(){
  108 + this.Mode = 'Edit';
  109 + this.topPos = '100px';
  110 + this.divClass = 'col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3';
  111 + }
  112 +
  113 + CancelAddEdit(){
  114 + this.Mode = 'Manage';
  115 + this.topPos = '2000px';
  116 + this.divClass = 'col-sm-12';
  117 + }
  118 +}
... ...
400-SOURCECODE/Admin/src/app/components/ManageDiscountCode/managediscountcode.service.ts 0 → 100644
  1 +import { Injectable, Inject } from '@angular/core';
  2 +//import { HttpClient, HttpParams, HttpRequest} from "@angular/common/http";
  3 +import { Http, Response, Headers, RequestOptions, HttpModule } from '@angular/http';
  4 +import 'rxjs/add/operator/map';
  5 +import 'rxjs/add/operator/catch';
  6 +import 'rxjs/add/observable/throw';
  7 +import 'rxjs/add/operator/do';
  8 +import { Observable } from 'rxjs/Observable';
  9 +import { GlobalService } from '../../Shared/global';
  10 +
  11 +@Injectable()
  12 +export class ManageDiscountCodeService {
  13 +
  14 + constructor(private http: Http, private commonService: GlobalService ) { }
  15 +
  16 + //public GetUserById(Id: any): Observable<User> {
  17 + // return this.http.request<User>(
  18 + // 'GET',
  19 + // 'http://192.168.86.13:92/API/Api/Users/' + Id);
  20 + //}
  21 +
  22 + //GetUserByLoginIdPassword(LoginId: string, Password: string): Observable<User> {
  23 + // return this.http.request<User>(
  24 + // 'GET',
  25 + // 'http://192.168.86.13:92/API/Api/Users/{LoginId=' + LoginId + '&Password=' + Password + '}');
  26 + //}
  27 +
  28 + //UpdateProfile(UserObj: User): Observable<any> {
  29 + // return this.http.request<any>(
  30 + // 'POST',
  31 + // 'http://192.168.86.13:92/API/Api/Users/UpdateProfile',
  32 + // {
  33 + // body: UserObj
  34 + // });
  35 + //}
  36 +
  37 + GetDiscountCodes(obj: any) {
  38 + if(obj.startDate == ''){
  39 + obj.startDate = '1/1/1';
  40 + }
  41 + if(obj.endDate == ''){
  42 + obj.endDate = '1/1/9999';
  43 + }
  44 + return this.http.get(this.commonService.resourceBaseUrl + "/api/GetDiscountCodes?discountCode="
  45 + + obj.discountCode + "&startDate=" + obj.startDate + "&endDate=" + obj.endDate)
  46 + .map(this.extractData)
  47 + .catch((res: Response) => this.handleError(res));
  48 + }
  49 +
  50 + InsertDiscountCode(obj: any) {
  51 + //let options = new RequestOptions({ headers: this.headers });
  52 + var jsonData = {'id': obj.userId, 'newPassword': obj.newPassword };
  53 + console.log(obj);
  54 + var headers = new Headers({
  55 + 'Content-Type': 'application/json'
  56 + });
  57 + return this.http.post(this.commonService.resourceBaseUrl + "/api/ChangeUserPassword",
  58 + JSON.stringify(jsonData), {headers: headers})
  59 + .map(this.extractData)
  60 + .catch((res: Response) => this.handleError(res));
  61 + }
  62 +
  63 + UpdateDiscountCode(obj: any) {
  64 + //let options = new RequestOptions({ headers: this.headers });
  65 + var jsonData = {'id': obj.userId, 'newPassword': obj.newPassword };
  66 + console.log(obj);
  67 + var headers = new Headers({
  68 + 'Content-Type': 'application/json'
  69 + });
  70 + return this.http.post(this.commonService.resourceBaseUrl + "/api/ChangeUserPassword",
  71 + JSON.stringify(jsonData), {headers: headers})
  72 + .map(this.extractData)
  73 + .catch((res: Response) => this.handleError(res));
  74 + }
  75 +
  76 + extractData(res: Response) {
  77 + //debugger;
  78 + let body = res.json();
  79 + return body;
  80 + }
  81 +
  82 + handleError(error: any) {
  83 + // In a real world app, we might use a remote logging infrastructure
  84 + // We'd also dig deeper into the error to get a better message
  85 + let errMsg = (error.message) ? error.message :
  86 + error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  87 + console.error(errMsg); // log to console instead
  88 + return Observable.throw(errMsg);
  89 + }
  90 +
  91 + ////public GetUserById(url: string): Observable<any> {
  92 +
  93 + //// return this._http.get(url)
  94 + //// .map((response: Response) => <any>response.json())
  95 + //// .do(data => console.log("All: " + JSON.stringify(data)))
  96 + //// .catch(this.handleError);
  97 + ////}
  98 + //// private handleError(error: Response) {
  99 + //// console.error(error);
  100 + //// return Observable.throw(error.json().error || 'Server error');
  101 + //// }
  102 +
  103 +}
... ...
400-SOURCECODE/Admin/src/app/components/UpdateProfile/datamodel.ts 0 → 100644
  1 +export class User {
  2 + LoginId: string;
  3 + Password: string;
  4 + Id: number;
  5 + FirstName: string;
  6 + LastName: string;
  7 + EmailId: string;
  8 +}
  9 +//export class User {
  10 +// userId: number;
  11 +// firstName: string;
  12 +// lastName: string;
  13 +// emailId: string;
  14 +// loginId: string;
  15 +// Password: string;
  16 +// securityQuestiuonId: number;
  17 +// securityAnswer: string;
  18 +// creatorId: number;
  19 +// creationDate: Date;
  20 +// deactivationDate: Date;
  21 +// modifierId: number;
  22 +// modifiedDate: Date;
  23 +// userTypeId: number;
  24 +// isActive: boolean;
  25 +//}
  26 +
  27 +export interface IUser {
  28 + userId: number;
  29 + firstName: string;
  30 + lastName: string;
  31 + emailId: string;
  32 + loginId: string;
  33 + password: string;
  34 + securityQuestiuonId: number;
  35 + securityAnswer: string;
  36 + creatorId: number;
  37 + creationDate: Date;
  38 + deactivationDate: Date;
  39 + modifierId: number;
  40 + modifiedDate: Date;
  41 + userTypeId: number;
  42 + isActive: boolean;
  43 +}
... ...
400-SOURCECODE/Admin/src/app/components/UpdateProfile/updateuserprofile.component.html 0 → 100644
  1 +<div class="row">
  2 + <!-- main-heading -->
  3 + <div class="col-sm-12 pageHeading">
  4 + <h4>Update Profile</h4>
  5 + </div>
  6 + <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  7 + <div class="container-fluid main-full">
  8 + <div class="row">
  9 + <div class="well">
  10 + <div class="row">
  11 + <div class="col-sm-12">
  12 + <h5 class="text-center text-success"><strong>**To update your profile fill all the text fields carefully.</strong></h5>
  13 + <div class="panel-body">
  14 + <!-- form -->
  15 + <form class="form-horizontal" novalidate [formGroup]="userFrm">
  16 + <div class="form-group" *ngIf="alerts !== ''">
  17 + <div class="col-xs-12">
  18 + <div class="alert alert-danger" [innerHTML]="alerts">
  19 + </div>
  20 + </div>
  21 + </div>
  22 + <div class="form-group">
  23 +
  24 + <label for="inputEmail3" class="col-sm-4 control-label">First Name <span class="red">*</span> :</label>
  25 + <div class="col-sm-7">
  26 + <input type="text" formControlName="firstName" class="form-control" id="inputEmail3">
  27 + <div *ngIf="!userFrm.controls.firstName.valid && userFrm.controls.firstName.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">First name is required</div>
  28 + </div>
  29 + </div>
  30 + <div class="form-group">
  31 + <label for="inputPassword3" class="col-sm-4 control-label">Last Name <span class="red">*</span> :</label>
  32 + <div class="col-sm-7">
  33 + <input type="text" class="form-control" id="inputPassword3" formControlName="lastName">
  34 + <div *ngIf="!userFrm.controls.lastName.valid && userFrm.controls.lastName.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Last name is required</div>
  35 + </div>
  36 + </div>
  37 + <div class="form-group">
  38 + <label for="inputPassword3" class="col-sm-4 control-label">Email Id <span class="red">*</span> :</label>
  39 + <div class="col-sm-7">
  40 + <input type="text" class="form-control" required="required" id="inputPassword3" formControlName="emailId" pattern="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,3}$">
  41 +
  42 + <div *ngIf="userFrm.controls.emailId.invalid && !userFrm.controls.emailId.value" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Email id is required</div>
  43 +
  44 + <div *ngIf="userFrm.controls.emailId.invalid && userFrm.controls.emailId.value" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">
  45 + Please enter the correct email.
  46 + </div>
  47 + </div>
  48 + </div>
  49 + <div class="form-group">
  50 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  51 + <button type="submit" class="btn btn-primary btn-sm" data-toggle="modal" (click)="UpdateUserProfile(this)"><i class="fa fa-check"></i> Update</button>
  52 + <!--cancel-button-->
  53 +
  54 + <div class="modal fade bs-example-modal-sm" tabindex="-1" #profileModal role="dialog" id="mymodal">
  55 + <div class="modal-dialog modal-sm" role="document">
  56 + <div class="modal-content">
  57 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  58 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  59 + <h4 class="modal-title" id="">Alert</h4>
  60 + </div>
  61 + <div class="modal-body">
  62 + <h5>User profile has been updated successfully.</h5>
  63 + </div>
  64 + <div class="modal-footer">
  65 + <div class="row">
  66 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  67 + </div>
  68 + </div>
  69 +
  70 + </div><!-- /.modal-content -->
  71 + </div><!-- /.modal-dialog -->
  72 + </div><!-- /.modal -->
  73 + <!--cancel-button-->
  74 + <button type="submit" class="btn btn-primary btn-sm" (click)="GetUserById()"><i class="fa fa-close"></i> Cancel</button>
  75 + </div>
  76 +
  77 + </div>
  78 + </form>
  79 + <!-- form -->
  80 + </div>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + </div>
  85 + </div>
  86 + </div>
  87 +</div>
... ...
400-SOURCECODE/Admin/src/app/components/UpdateProfile/updateuserprofile.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit,ViewChild } from '@angular/core';
  2 +import { UserService } from '../UpdateProfile/user.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
  5 +import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  6 +import { User } from '../UpdateProfile/datamodel';
  7 +import { Http, Response } from '@angular/http';
  8 +//import { Global } from '../../Shared/global';
  9 +//import { DBOperation } from 'S';
  10 +import { Observable } from 'rxjs/Observable';
  11 +import { ConfirmService } from '../../Shared/Confirm/confirm.service';
  12 +import 'rxjs/Rx';
  13 +import 'rxjs/add/operator/map';
  14 +import 'rxjs/add/operator/filter';
  15 +
  16 +
  17 +@Component({
  18 + templateUrl:'./updateuserprofile.component.html' // '../../../../../wwwroot/html/UpdateProfile/updateuserprofile.component.html'
  19 +})
  20 +
  21 +export class UpdateUserProfile implements OnInit {
  22 + UserId: number=1;
  23 + //users: IUser[];
  24 + user: User;
  25 + msg: string;
  26 + indLoading: boolean = false;
  27 + // dbops: DBOperation;
  28 + modalTitle: string;
  29 + modalBtnTitle: string;
  30 + baseUrl: string = "User";
  31 + userFrm: FormGroup;
  32 + useFname: string;
  33 + error;
  34 + status: boolean;
  35 + alerts: string;
  36 + emailPattern = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$";
  37 + //@ViewChild("profileModal")
  38 + //profileModal: ModalComponent;
  39 + //errorMessage: any;
  40 + constructor(private userservice: UserService, private router: Router, private fb: FormBuilder, private http: Http,
  41 + private _confirmService: ConfirmService
  42 + ) { }
  43 +
  44 + ngOnInit(): void {
  45 + this.user = new User();
  46 + this.alerts = '';
  47 + //this.userservice.GetUserById(this.UserId);
  48 + this.userFrm = this.fb.group({
  49 + id: [''],
  50 + firstName: ['', Validators.required],
  51 + lastName: ['', Validators.required],
  52 + emailId: ['', Validators.required]
  53 + // LastName: [''],
  54 + // Gender: ['', Validators.required],
  55 + // Email: ['']
  56 +
  57 + });
  58 + this.GetUserById();
  59 + }
  60 + //ngAfterviewint() {
  61 + // this.LoadUsers();
  62 + //}
  63 +
  64 +
  65 + //getCustomerById(UserId) {
  66 + // return this.userservice.GetUserById(UserId)
  67 + // .map((response: Response) => response.json())
  68 + // .catch(this._errorHandler)
  69 + //}
  70 + //formErrors = {
  71 + // 'firstName': '',
  72 + // 'lastName': '',
  73 + // 'email': ''
  74 + //};
  75 + GetUserById() {
  76 +
  77 + this.userservice.GetUserById()
  78 + .subscribe(x => { console.log(x); this.bindUsers(x) }, error => this.error = <any>error);
  79 + }
  80 + UpdateUserProfile(this) {
  81 + // debugger;
  82 + this.user = this.userFrm.value;
  83 + //if(this.user.)
  84 + console.log(this.user);
  85 + var obj = this.user
  86 + if (this.userFrm.valid) {
  87 + return this.userservice.UpdateUserProfileById(obj)
  88 + .subscribe(
  89 + n => (this.AfterInsertData(n)),
  90 + error => this.error = <any>error);
  91 + }
  92 + }
  93 + AfterInsertData(data) {
  94 + //debugger;
  95 + if (data.Status == "False") {
  96 + // this._confirmService.activate(data.ResponseMessage, "alertMsg");
  97 + //setTimeout(() => this.amCode.nativeElement.focus(), 0);
  98 + // this.closeflag = false;
  99 + return false;
  100 + } else {
  101 + this.status = true;
  102 + debugger;
  103 +
  104 + this._confirmService.activate("User Profile Updated Successfully.", "alertMsg");
  105 + //this.profileModal.open();
  106 + // this.submitted = false;
  107 + // this.GetAllAcctMgr();
  108 + // this.DisableAllControls();
  109 + // this.AccountManagerID.enable();
  110 + // let accountManagerID: string = data.Id == null ? "" : data.Id.toString();
  111 + // console.log(accountManagerID);
  112 +
  113 + // this.GetAcctMgr(Number(accountManagerID));
  114 + //this.GetAccountManagerListOptions(false);
  115 + // this.defautValue = data.id;
  116 + // this.BtnReset = true;
  117 + // this.BtnSave = true;
  118 + // this.BtnEdit = false;
  119 + // this.BtnNew = false;
  120 + // this.BtnDelete = false;
  121 + // this.Abbrevtion = this.Abbrev.value;
  122 + // setTimeout(() => this.AMform.controls["AccountManagerID"].setValue(accountManagerID.toString()), 1000);
  123 + // setTimeout(() => this.AMform.markAsPristine(), 2000);
  124 + }
  125 + //if (this.closeflag) {
  126 + // this.close.emit(null);
  127 + //}
  128 + //else {
  129 + //}
  130 + }
  131 + bindUsers(data) {
  132 + debugger;
  133 + //console.log(data);
  134 + //alert(JSON.stringify(data));
  135 + this.user = data[0];
  136 +
  137 + console.log(this.user);
  138 + this.userFrm.controls['id'].setValue(this.user.Id)
  139 + this.userFrm.controls['firstName'].setValue(this.user.FirstName)
  140 + this.userFrm.controls['lastName'].setValue(this.user.LastName)
  141 + this.userFrm.controls['emailId'].setValue(this.user.EmailId)
  142 + // this.GetClientListOptions(false);
  143 + // this.GetCrossRefClientListOptions(false);
  144 + }
  145 + //extractData(res: Response) {
  146 + // //debugger;
  147 + // let body = res.json();
  148 + // return body;
  149 + //}
  150 + //handleError(error: any) {
  151 +
  152 + // // In a real world app, we might use a remote logging infrastructure
  153 + // // We'd also dig deeper into the error to get a better message
  154 + // let errMsg = (error.message) ? error.message :
  155 + // error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  156 + // console.error(errMsg); // log to console instead
  157 + // return Observable.throw(errMsg);
  158 + //}
  159 + validationMessages = {
  160 + 'firstName': {
  161 + 'required': 'First name is required.'
  162 + },
  163 + 'lastName': {
  164 + 'required': 'Last name is required.'
  165 + },
  166 + 'email': {
  167 + 'required': 'Email is required.',
  168 + 'pattern': 'Email pattern is not valid.'
  169 + }
  170 + }
  171 +
  172 +}
... ...
400-SOURCECODE/Admin/src/app/components/UpdateProfile/user.service.ts 0 → 100644
  1 +import { Injectable, Inject } from '@angular/core';
  2 +//import { HttpClient, HttpParams, HttpRequest} from "@angular/common/http";
  3 +import { Http, Response, Headers, RequestOptions, HttpModule } from '@angular/http';
  4 +import 'rxjs/add/operator/map';
  5 +import 'rxjs/add/operator/catch';
  6 +import 'rxjs/add/observable/throw';
  7 +import { User } from '../UpdateProfile/datamodel';
  8 +import 'rxjs/add/operator/do';
  9 +import { Observable } from 'rxjs/Observable';
  10 +import { GlobalService } from '../../Shared/global';
  11 +@Injectable()
  12 +export class UserService {
  13 +
  14 + constructor(private http: Http, private commonService: GlobalService ) { }
  15 +
  16 + GetUserById() {
  17 +
  18 + return this.http.get(this.commonService.resourceBaseUrl + "/api/GetUserProfile/1")
  19 + .map(this.extractData)
  20 + .catch((res: Response) => this.handleError(res));;
  21 +
  22 + }
  23 + UpdateUserProfileById(obj: User) {
  24 + //let options = new RequestOptions({ headers: this.headers });
  25 + return this.http.post(this.commonService.resourceBaseUrl + "/api/UpdateProfile", obj)
  26 + .map(this.extractData)
  27 + .catch((res: Response) => this.handleError(res));
  28 + }
  29 +
  30 + extractData(res: Response) {
  31 + //debugger;
  32 + let body = res.json();
  33 + return body;
  34 + }
  35 + handleError(error: any) {
  36 +
  37 + // In a real world app, we might use a remote logging infrastructure
  38 + // We'd also dig deeper into the error to get a better message
  39 + let errMsg = (error.message) ? error.message :
  40 + error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  41 + console.error(errMsg); // log to console instead
  42 + return Observable.throw(errMsg);
  43 + }
  44 + ////public GetUserById(url: string): Observable<any> {
  45 +
  46 + //// return this._http.get(url)
  47 + //// .map((response: Response) => <any>response.json())
  48 + //// .do(data => console.log("All: " + JSON.stringify(data)))
  49 + //// .catch(this.handleError);
  50 + ////}
  51 + //// private handleError(error: Response) {
  52 + //// console.error(error);
  53 + //// return Observable.throw(error.json().error || 'Server error');
  54 + //// }
  55 +
  56 +}
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/changeuserid.component.html 0 → 100644
  1 +<div class="row">
  2 + <!-- main-heading -->
  3 + <div class="col-sm-12 pageHeading">
  4 + <h4>Change User ID</h4>
  5 + </div>
  6 + <!-- main-heading -->
  7 + <!-- container -->
  8 + <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  9 + <div class="container-fluid main-full">
  10 + <div class="row">
  11 + <div class="well">
  12 + <div class="row">
  13 + <div class="col-sm-12">
  14 + <h5 class="text-center text-success"><strong>**To change your user ID fill all the text fields carefully.</strong></h5>
  15 + <div class="panel-body">
  16 + <!-- form -->
  17 + <form class="form-horizontal" novalidate [formGroup]="ChangeUserIdFrm">
  18 + <div class="form-group" *ngIf="alerts !== ''">
  19 + <div class="col-xs-12">
  20 + <div class="alert alert-danger" [innerHTML]="alerts">
  21 + </div>
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <label for="inputEmail3" class="col-sm-4 control-label">Old User Id <span class="red">*</span> :</label>
  26 + <div class="col-sm-7">
  27 + <label type="text" class="form-control">{{ChangeUserIdFrm.controls.loginid.value}}</label>
  28 + </div>
  29 + </div>
  30 + <div class="form-group">
  31 + <label for="inputPassword3" class="col-sm-4 control-label">New User Id <span class="red">*</span> :</label>
  32 + <div class="col-sm-7">
  33 + <input type="text" class="form-control" id="inputPassword" formControlName="newloginid">
  34 + <span class="help-block">(Minimum 8 characters)</span>
  35 + <div *ngIf="!ChangeUserIdFrm.controls.newloginid.valid && ChangeUserIdFrm.controls.newloginid.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Minimum 8 characters is required</div>
  36 +
  37 + </div>
  38 + </div>
  39 + <div class="form-group">
  40 + <label for="inputPassword3" class="col-sm-4 control-label">Confirm User Id <span class="red">*</span> :</label>
  41 + <div class="col-sm-7">
  42 + <input type="text" class="form-control" id="inputPasswor" formControlName="confirmloginid">
  43 + <div *ngIf="!ChangeUserIdFrm.controls.confirmloginid.valid && ChangeUserIdFrm.controls.confirmloginid.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Confirm userid is required</div>
  44 + </div>
  45 + </div>
  46 +
  47 + <div class="form-group">
  48 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  49 + <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" (click)="UpdateUserId(this)"><i class="fa fa-check"></i> Update</button>
  50 + <button type="button" class="btn btn-primary btn-sm" (click)="ResetFormFields()"><i class="fa fa-close"></i> Cancel</button>
  51 + <!--cancel-button-->
  52 + <div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" id="mymodal">
  53 + <div class="modal-dialog modal-sm" role="document">
  54 + <div class="modal-content">
  55 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  56 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  57 + <h4 class="modal-title" id="">Alert</h4>
  58 + </div>
  59 + <div class="modal-body">
  60 + <h5>Please enter your old user ID.</h5>
  61 + </div>
  62 + <div class="modal-footer">
  63 + <div class="row">
  64 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  65 + </div>
  66 + </div>
  67 +
  68 + </div><!-- /.modal-content -->
  69 + </div><!-- /.modal-dialog -->
  70 + </div><!-- /.modal -->
  71 + <!--cancel-button-->
  72 +
  73 + </div>
  74 +
  75 + </div>
  76 + </form>
  77 + <!-- form -->
  78 + </div>
  79 + </div>
  80 + </div>
  81 + </div>
  82 + </div>
  83 + <!-- container -->
  84 + </div>
  85 + </div>
  86 +
  87 +
  88 + </div>
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/changeuserid.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit,ViewChild } from '@angular/core';
  2 +import { UserService } from './user.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
  5 +import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  6 +import { User } from '../UserEntity/datamodel';
  7 +import { Http, Response } from '@angular/http';
  8 +//import { Global } from '../../Shared/global';
  9 +//import { DBOperation } from 'S';
  10 +import { Observable } from 'rxjs/Observable';
  11 +import { ConfirmService } from '../../Shared/Confirm/confirm.service';
  12 +import 'rxjs/Rx';
  13 +import 'rxjs/add/operator/map';
  14 +import 'rxjs/add/operator/filter';
  15 +
  16 +
  17 +@Component({
  18 + templateUrl:'./changeuserid.component.html' // '../../../../../wwwroot/html/UpdateProfile/updateuserprofile.component.html'
  19 +})
  20 +
  21 +export class ChangeUserID implements OnInit {
  22 + UserId: number=1;
  23 + user: User;
  24 + modalTitle: string;
  25 + modalBtnTitle: string;
  26 + baseUrl: string = "User";
  27 + ChangeUserIdFrm: FormGroup;
  28 + useFname: string;
  29 + error;
  30 + status: boolean;
  31 + alerts: string;
  32 + //@ViewChild("profileModal")
  33 + //profileModal: ModalComponent;
  34 + //errorMessage: any;
  35 + constructor(private userservice: UserService, private router: Router, private fb: FormBuilder, private http: Http,
  36 + private _confirmService: ConfirmService
  37 + ) { }
  38 +
  39 + ngOnInit(): void {
  40 + this.user = new User();
  41 + this.alerts = '';
  42 + //this.userservice.GetUserById(this.UserId);
  43 + this.ChangeUserIdFrm = this.fb.group({
  44 + id: [''],
  45 + loginid: ['', Validators.required],
  46 + newloginid: ['', [Validators.required, Validators.minLength(8)]],
  47 + confirmloginid: ['', Validators.required]
  48 + // LastName: [''],
  49 + // Gender: ['', Validators.required],
  50 + // Email: ['']
  51 +
  52 + });
  53 + this.GetUserById();
  54 + }
  55 +
  56 + GetUserById() {
  57 + this.userservice.GetUserById()
  58 + .subscribe(x => { console.log(x); this.bindUsers(x) }, error => this.error = <any>error);
  59 + }
  60 + UpdateUserId(this) {
  61 + // debugger;
  62 + this.alerts = '';
  63 +
  64 + if (this.user.LoginId == this.ChangeUserIdFrm.value.newloginid) {
  65 + this.alerts += '</br><span>New userid and old userid must be different</span>';
  66 + }
  67 + if (this.ChangeUserIdFrm.value.newloginid != this.ChangeUserIdFrm.value.confirmloginid) {
  68 + this.alerts += '</br><span>New userid and confirm userid must be same</span>';
  69 + }
  70 + if (this.alerts == '') {
  71 + this.user = this.ChangeUserIdFrm.value;
  72 + //if(this.user.)
  73 + console.log(this.user);
  74 + var obj = this.user
  75 + if (this.ChangeUserIdFrm.valid) {
  76 + return this.userservice.UpdateUserId(obj)
  77 + .subscribe(
  78 + n => (this.AfterInsertData(n)),
  79 + error => this.error = <any>error);
  80 + }
  81 + }
  82 + }
  83 + AfterInsertData(data) {
  84 +
  85 + if (data == "success") {
  86 + this._confirmService.activate("Userid Updated Successfully.", "alertMsg");
  87 +
  88 + } else {
  89 + this.alerts += '<span>' + data+'</span>';
  90 + return false;
  91 +
  92 +
  93 + }
  94 + //if (this.closeflag) {
  95 + // this.close.emit(null);
  96 + //}
  97 + //else {
  98 + //}
  99 + }
  100 + bindUsers(data) {
  101 +
  102 + //console.log(data);
  103 + //alert(JSON.stringify(data));
  104 + this.user = data[0];
  105 +
  106 + console.log(this.user);
  107 + this.ChangeUserIdFrm.controls['id'].setValue(this.user.Id)
  108 + this.ChangeUserIdFrm.controls['loginid'].setValue(this.user.LoginId)
  109 + this.ChangeUserIdFrm.controls['newloginid'].setValue(this.user.NewLoginId)
  110 + this.ChangeUserIdFrm.controls['confirmloginid'].setValue('')
  111 + }
  112 + ResetFormFields() {
  113 + this.ChangeUserIdFrm.reset()
  114 + this.ChangeUserIdFrm.controls['id'].setValue(this.user.Id)
  115 + this.ChangeUserIdFrm.controls['loginid'].setValue(this.user.LoginId)
  116 + this.ChangeUserIdFrm.controls['newloginid'].setValue('')
  117 + this.ChangeUserIdFrm.controls['confirmloginid'].setValue('')
  118 + this.alerts = '';
  119 + }
  120 +
  121 +}
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/changeuserpassword.component.html 0 → 100644
  1 +<div class="row">
  2 + <!-- main-heading -->
  3 + <div class="col-sm-12 pageHeading">
  4 + <h4>Change User Password</h4>
  5 + </div>
  6 + <!-- main-heading -->
  7 + <!-- container -->
  8 + <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  9 + <div class="container-fluid main-full">
  10 + <div class="row">
  11 + <div class="well">
  12 + <div class="row">
  13 + <div class="col-sm-12">
  14 + <h5 class="text-center text-success"><strong>**To change your profile fill all the text fields carefully.</strong></h5>
  15 + <div class="panel-body">
  16 + <!-- form -->
  17 + <form class="form-horizontal" [formGroup]="changeUserPasswordFrm" (submit)="onFormSubmit()">
  18 + <div class="form-group" *ngIf="alerts != ''">
  19 + <div class="col-xs-12">
  20 + <div class="alert alert-danger" [innerHTML]="alerts">
  21 + </div>
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <label for="inputEmail3" class="col-sm-4 control-label">User Id <span class="red">*</span> :</label>
  26 + <div class="col-sm-7">
  27 + <input type="hidden" class="form-control" formControlName="userId" placeholder="">
  28 + <label type="text" class="form-control">{{changeUserPasswordFrm.controls.loginId.value}}</label>
  29 + </div>
  30 + </div>
  31 + <div class="form-group">
  32 + <label for="inputPassword3" class="col-sm-4 control-label">Old Password <span class="red">*</span> :</label>
  33 + <div class="col-sm-7">
  34 + <input type="password" class="form-control" formControlName="oldPassword" placeholder="" maxlength="50">
  35 + <div *ngIf="!changeUserPasswordFrm.controls.oldPassword.valid && changeUserPasswordFrm.controls.oldPassword.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Old password is required</div>
  36 + </div>
  37 + </div>
  38 + <div class="form-group">
  39 + <label for="inputPassword3" class="col-sm-4 control-label">New Password <span class="red">*</span> :</label>
  40 + <div class="col-sm-7">
  41 + <input type="password" class="form-control" formControlName="newPassword" placeholder="" maxlength="50">
  42 + <span class="help-block">(Minimum 8 characters)</span>
  43 + <div *ngIf="!changeUserPasswordFrm.controls.newPassword.valid && changeUserPasswordFrm.controls.newPassword.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">New password of minimum 8 characters is required</div>
  44 + </div>
  45 + </div>
  46 + <div class="form-group">
  47 + <label for="inputPassword3" class="col-sm-4 control-label">Confirm Password <span class="red">*</span> :</label>
  48 + <div class="col-sm-7">
  49 + <input type="password" class="form-control" formControlName="confirmPassword" placeholder="" maxlength="50">
  50 + <div *ngIf="!changeUserPasswordFrm.controls.confirmPassword.valid && changeUserPasswordFrm.controls.confirmPassword.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Confirm password is required</div>
  51 + </div>
  52 + </div>
  53 + <div class="form-group">
  54 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  55 + <button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-check"></i> Update</button>
  56 + <button type="button" class="btn btn-primary btn-sm" (click)="ResetFormFields()"><i class="fa fa-close"></i> Cancel</button>
  57 + </div>
  58 + </div>
  59 + <!--cancel-button-->
  60 + <div class="modal fade bs-example-modal-sm ui-draggable" tabindex="-1" role="dialog" id="mymodal">
  61 + <div class="modal-dialog modal-sm" role="document">
  62 + <div class="modal-content">
  63 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  64 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  65 + <h4 class="modal-title" id="">Alert</h4>
  66 + </div>
  67 + <div class="modal-body">
  68 + <h5>Please enter your old password</h5>
  69 + </div>
  70 + <div class="modal-footer">
  71 + <div class="row">
  72 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  73 + </div>
  74 + </div>
  75 +
  76 + </div><!-- /.modal-content -->
  77 + </div><!-- /.modal-dialog -->
  78 + </div><!-- /.modal -->
  79 + <!--cancel-button-->
  80 + </form>
  81 + <!-- form -->
  82 + </div>
  83 + </div>
  84 + </div>
  85 + </div>
  86 + </div>
  87 +
  88 + </div>
  89 + </div>
  90 +
  91 +
  92 +</div>
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/changeuserpassword.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';
  2 +import { UserService } from './user.service';
  3 +//import { ChangeUserPasswordService } from '../ChangePassword/changeuserpassword.service';
  4 +import { Router } from '@angular/router';
  5 +import { FormControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
  6 +import { User } from '../UserEntity/datamodel';
  7 +import { Http, Response } from '@angular/http';
  8 +//import { Global } from '../../Shared/global';
  9 +//import { DBOperation } from 'S';
  10 +//import { Observable } from 'rxjs/Observable';
  11 +import { Observable } from 'rxjs/Observable';
  12 +import { ConfirmService } from '../../Shared/Confirm/confirm.service';
  13 +import 'rxjs/Rx';
  14 +import 'rxjs/add/operator/map';
  15 +import 'rxjs/add/operator/filter';
  16 +
  17 +@Component({
  18 + templateUrl: './changeuserpassword.component.html'
  19 +})
  20 +
  21 +export class ChangeUserPassword implements OnInit {
  22 +
  23 +user: User;
  24 +changeUserPasswordFrm: FormGroup;
  25 +error: any;
  26 +alerts: string;
  27 +
  28 +constructor(private changeUserPasswordService: UserService, private router: Router, private fb: FormBuilder, private _confirmService: ConfirmService) { }
  29 +
  30 + ngOnInit(): void {
  31 + this.user = new User();
  32 + this.alerts = '';
  33 + this.changeUserPasswordFrm = this.fb.group({
  34 + userId: [''],
  35 + loginId: ['', Validators.required],
  36 + oldPassword: ['', Validators.required],
  37 + newPassword: ['', [Validators.required, Validators.minLength(8)]],
  38 + confirmPassword: ['', Validators.required]
  39 + });
  40 + this.GetUserById();
  41 + }
  42 +
  43 + GetUserById() {
  44 +
  45 + this.changeUserPasswordService.GetUserById()
  46 + .subscribe(x => { this.BindFormFields(x) }, error => this.error = error);
  47 + }
  48 +
  49 + public onFormSubmit() {
  50 + this.alerts = '';
  51 + if (this.user.Password != this.changeUserPasswordFrm.value.oldPassword) {
  52 + this.alerts = '<span>Old password is invalid</span>';
  53 + }
  54 + if (this.user.Password == this.changeUserPasswordFrm.value.newPassword) {
  55 + this.alerts += '</br><span>New password and old password must be different</span>';
  56 + }
  57 + if (this.changeUserPasswordFrm.value.newPassword != this.changeUserPasswordFrm.value.confirmPassword) {
  58 + this.alerts += '</br><span>New password and confirm password must be same</span>';
  59 + }
  60 + if (this.alerts == '') {
  61 + var obj = this.changeUserPasswordFrm.value;
  62 + return this.changeUserPasswordService.ChangeUserPassword(obj)
  63 + .subscribe(
  64 + n => (this.AfterInsertData(n)),
  65 + error => this.error = <any>error);
  66 + }
  67 + }
  68 +
  69 +
  70 + AfterInsertData(data) {
  71 + if (data.Status == "false") {
  72 + this.alerts = "<span>Password change unsuccessfull</span>";
  73 + } else {
  74 + this._confirmService.activate("Password changed successfully.", "alertMsg");
  75 + //this.alerts = "<span>Password changed successfully</span>";
  76 + }
  77 + }
  78 +
  79 + BindFormFields(data){
  80 + this.user = data[0];
  81 + this.changeUserPasswordFrm.controls['userId'].setValue(this.user.Id);
  82 + this.changeUserPasswordFrm.controls['loginId'].setValue(this.user.LoginId);
  83 +
  84 + }
  85 +
  86 + ResetFormFields(){
  87 + this.changeUserPasswordFrm.reset()
  88 + this.changeUserPasswordFrm.controls['loginId'].setValue(this.user.LoginId);
  89 + this.changeUserPasswordFrm.controls['oldPassword'].setValue('');
  90 + this.changeUserPasswordFrm.controls['newPassword'].setValue('');
  91 + this.changeUserPasswordFrm.controls['confirmPassword'].setValue('');
  92 + this.alerts = '';
  93 + }
  94 +
  95 +}
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/datamodel.ts 0 → 100644
  1 +export class User {
  2 + LoginId: string;
  3 + Password: string;
  4 + Id: number;
  5 + FirstName: string;
  6 + LastName: string;
  7 + EmailId: string;
  8 + NewLoginId: string;
  9 +}
  10 +export class DiscountCode {
  11 + Id: number;
  12 + DiscountCode: string;
  13 + StartDate: Date;
  14 + EndDate: Date;
  15 + Percentage: DoubleRange;
  16 + IsActive: boolean;
  17 +}
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/updateuserprofile.component.html 0 → 100644
  1 +<div class="row">
  2 + <!-- main-heading -->
  3 + <div class="col-sm-12 pageHeading">
  4 + <h4>Update Profile</h4>
  5 + </div>
  6 + <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  7 + <div class="container-fluid main-full">
  8 + <div class="row">
  9 + <div class="well">
  10 + <div class="row">
  11 + <div class="col-sm-12">
  12 + <h5 class="text-center text-success"><strong>**To update your profile fill all the text fields carefully.</strong></h5>
  13 + <div class="panel-body">
  14 + <!-- form -->
  15 + <form class="form-horizontal" novalidate [formGroup]="userFrm">
  16 + <div class="form-group" *ngIf="alerts !== ''">
  17 + <div class="col-xs-12">
  18 + <div class="alert alert-danger" [innerHTML]="alerts">
  19 + </div>
  20 + </div>
  21 + </div>
  22 + <div class="form-group">
  23 +
  24 + <label for="inputEmail3" class="col-sm-4 control-label">First Name <span class="red">*</span> :</label>
  25 + <div class="col-sm-7">
  26 + <input type="text" formControlName="firstName" class="form-control" id="inputEmail3">
  27 + <div *ngIf="!userFrm.controls.firstName.valid && userFrm.controls.firstName.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">First name is required</div>
  28 + </div>
  29 + </div>
  30 + <div class="form-group">
  31 + <label for="inputPassword3" class="col-sm-4 control-label">Last Name <span class="red">*</span> :</label>
  32 + <div class="col-sm-7">
  33 + <input type="text" class="form-control" id="inputPassword3" formControlName="lastName">
  34 + <div *ngIf="!userFrm.controls.lastName.valid && userFrm.controls.lastName.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Last name is required</div>
  35 + </div>
  36 + </div>
  37 + <div class="form-group">
  38 + <label for="inputPassword3" class="col-sm-4 control-label">Email Id <span class="red">*</span> :</label>
  39 + <div class="col-sm-7">
  40 + <input type="text" class="form-control" required="required" id="inputPassword3" formControlName="emailId" pattern="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,3}$">
  41 +
  42 + <div *ngIf="userFrm.controls.emailId.invalid && !userFrm.controls.emailId.value && userFrm.controls.lastName.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Email id is required</div>
  43 +
  44 + <div *ngIf="userFrm.controls.emailId.invalid && userFrm.controls.emailId.value" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">
  45 + Please enter the correct email.
  46 + </div>
  47 + </div>
  48 + </div>
  49 + <div class="form-group">
  50 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  51 + <button type="submit" class="btn btn-primary btn-sm" data-toggle="modal" (click)="UpdateUserProfile(this)"><i class="fa fa-check"></i> Update</button>
  52 + <!--cancel-button-->
  53 +
  54 + <div class="modal fade bs-example-modal-sm" tabindex="-1" #profileModal role="dialog" id="mymodal">
  55 + <div class="modal-dialog modal-sm" role="document">
  56 + <div class="modal-content">
  57 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  58 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  59 + <h4 class="modal-title" id="">Alert</h4>
  60 + </div>
  61 + <div class="modal-body">
  62 + <h5>User profile has been updated successfully.</h5>
  63 + </div>
  64 + <div class="modal-footer">
  65 + <div class="row">
  66 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  67 + </div>
  68 + </div>
  69 +
  70 + </div><!-- /.modal-content -->
  71 + </div><!-- /.modal-dialog -->
  72 + </div><!-- /.modal -->
  73 + <!--cancel-button-->
  74 + <button type="submit" class="btn btn-primary btn-sm" (click)="GetUserById()"><i class="fa fa-close"></i> Cancel</button>
  75 + </div>
  76 +
  77 + </div>
  78 + </form>
  79 + <!-- form -->
  80 + </div>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + </div>
  85 + </div>
  86 + </div>
  87 +</div>
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/updateuserprofile.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit,ViewChild } from '@angular/core';
  2 +import { UserService } from '../UserEntity/user.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
  5 +import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  6 +import { User } from '../UserEntity/datamodel';
  7 +import { Http, Response } from '@angular/http';
  8 +//import { Global } from '../../Shared/global';
  9 +//import { DBOperation } from 'S';
  10 +import { Observable } from 'rxjs/Observable';
  11 +import { ConfirmService } from '../../Shared/Confirm/confirm.service';
  12 +import 'rxjs/Rx';
  13 +import 'rxjs/add/operator/map';
  14 +import 'rxjs/add/operator/filter';
  15 +
  16 +
  17 +@Component({
  18 + templateUrl:'./updateuserprofile.component.html' // '../../../../../wwwroot/html/UpdateProfile/updateuserprofile.component.html'
  19 +})
  20 +
  21 +export class UpdateUserProfile implements OnInit {
  22 + UserId: number=1;
  23 + //users: IUser[];
  24 + user: User;
  25 + msg: string;
  26 + indLoading: boolean = false;
  27 + // dbops: DBOperation;
  28 + modalTitle: string;
  29 + modalBtnTitle: string;
  30 + baseUrl: string = "User";
  31 + userFrm: FormGroup;
  32 + useFname: string;
  33 + error;
  34 + status: boolean;
  35 + alerts: string;
  36 + emailPattern = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$";
  37 + //@ViewChild("profileModal")
  38 + //profileModal: ModalComponent;
  39 + //errorMessage: any;
  40 + constructor(private userservice: UserService, private router: Router, private fb: FormBuilder, private http: Http,
  41 + private _confirmService: ConfirmService
  42 + ) { }
  43 +
  44 + ngOnInit(): void {
  45 + this.user = new User();
  46 + this.alerts = '';
  47 + //this.userservice.GetUserById(this.UserId);
  48 + this.userFrm = this.fb.group({
  49 + id: [''],
  50 + firstName: ['', Validators.required],
  51 + lastName: ['', Validators.required],
  52 + emailId: ['', Validators.required]
  53 + // LastName: [''],
  54 + // Gender: ['', Validators.required],
  55 + // Email: ['']
  56 +
  57 + });
  58 + this.GetUserById();
  59 + }
  60 + //ngAfterviewint() {
  61 + // this.LoadUsers();
  62 + //}
  63 +
  64 +
  65 + //getCustomerById(UserId) {
  66 + // return this.userservice.GetUserById(UserId)
  67 + // .map((response: Response) => response.json())
  68 + // .catch(this._errorHandler)
  69 + //}
  70 + //formErrors = {
  71 + // 'firstName': '',
  72 + // 'lastName': '',
  73 + // 'email': ''
  74 + //};
  75 + GetUserById() {
  76 +
  77 + this.userservice.GetUserById()
  78 + .subscribe(x => { console.log(x); this.bindUsers(x) }, error => this.error = <any>error);
  79 + }
  80 + UpdateUserProfile(this) {
  81 + // debugger;
  82 + this.user = this.userFrm.value;
  83 + //if(this.user.)
  84 + //console.log(this.user);
  85 + var obj = this.user
  86 + if (this.userFrm.valid) {
  87 + return this.userservice.UpdateUserProfileById(obj)
  88 + .subscribe(
  89 + n => (this.AfterInsertData(n)),
  90 + error => this.error = <any>error);
  91 + }
  92 + }
  93 + AfterInsertData(data) {
  94 + //debugger;
  95 + if (data.Status == "False") {
  96 + // this._confirmService.activate(data.ResponseMessage, "alertMsg");
  97 + //setTimeout(() => this.amCode.nativeElement.focus(), 0);
  98 + // this.closeflag = false;
  99 + return false;
  100 + } else {
  101 + this.status = true;
  102 +
  103 +
  104 + this._confirmService.activate("User Profile Updated Successfully.", "alertMsg");
  105 + //this.profileModal.open();
  106 + // this.submitted = false;
  107 + // this.GetAllAcctMgr();
  108 + // this.DisableAllControls();
  109 + // this.AccountManagerID.enable();
  110 + // let accountManagerID: string = data.Id == null ? "" : data.Id.toString();
  111 + // console.log(accountManagerID);
  112 +
  113 + // this.GetAcctMgr(Number(accountManagerID));
  114 + //this.GetAccountManagerListOptions(false);
  115 + // this.defautValue = data.id;
  116 + // this.BtnReset = true;
  117 + // this.BtnSave = true;
  118 + // this.BtnEdit = false;
  119 + // this.BtnNew = false;
  120 + // this.BtnDelete = false;
  121 + // this.Abbrevtion = this.Abbrev.value;
  122 + // setTimeout(() => this.AMform.controls["AccountManagerID"].setValue(accountManagerID.toString()), 1000);
  123 + // setTimeout(() => this.AMform.markAsPristine(), 2000);
  124 + }
  125 + //if (this.closeflag) {
  126 + // this.close.emit(null);
  127 + //}
  128 + //else {
  129 + //}
  130 + }
  131 + bindUsers(data) {
  132 +
  133 + //console.log(data);
  134 + //alert(JSON.stringify(data));
  135 + this.user = data[0];
  136 +
  137 + console.log(this.user);
  138 + this.userFrm.controls['id'].setValue(this.user.Id)
  139 + this.userFrm.controls['firstName'].setValue(this.user.FirstName)
  140 + this.userFrm.controls['lastName'].setValue(this.user.LastName)
  141 + this.userFrm.controls['emailId'].setValue(this.user.EmailId)
  142 + // this.GetClientListOptions(false);
  143 + // this.GetCrossRefClientListOptions(false);
  144 + }
  145 + //extractData(res: Response) {
  146 + // //debugger;
  147 + // let body = res.json();
  148 + // return body;
  149 + //}
  150 + //handleError(error: any) {
  151 +
  152 + // // In a real world app, we might use a remote logging infrastructure
  153 + // // We'd also dig deeper into the error to get a better message
  154 + // let errMsg = (error.message) ? error.message :
  155 + // error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  156 + // console.error(errMsg); // log to console instead
  157 + // return Observable.throw(errMsg);
  158 + //}
  159 + validationMessages = {
  160 + 'firstName': {
  161 + 'required': 'First name is required.'
  162 + },
  163 + 'lastName': {
  164 + 'required': 'Last name is required.'
  165 + },
  166 + 'email': {
  167 + 'required': 'Email is required.',
  168 + 'pattern': 'Email pattern is not valid.'
  169 + }
  170 + }
  171 +
  172 +}
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/user.service.ts 0 → 100644
  1 +import { Injectable, Inject } from '@angular/core';
  2 +//import { HttpClient, HttpParams, HttpRequest} from "@angular/common/http";
  3 +import { Http, Response, Headers, RequestOptions, HttpModule } from '@angular/http';
  4 +import 'rxjs/add/operator/map';
  5 +import 'rxjs/add/operator/catch';
  6 +import 'rxjs/add/observable/throw';
  7 +import { User } from '../UserEntity/datamodel';
  8 +import 'rxjs/add/operator/do';
  9 +import { Observable } from 'rxjs/Observable';
  10 +import { GlobalService } from '../../Shared/global';
  11 +@Injectable()
  12 +export class UserService {
  13 +
  14 + constructor(private http: Http, private commonService: GlobalService ) { }
  15 + //////////Get User Detail///////////////
  16 + GetUserById() {
  17 + debugger;
  18 + return this.http.get(this.commonService.resourceBaseUrl + "/api/GetUserProfile/"+this.commonService.UserId)
  19 + .map(this.extractData)
  20 + .catch((res: Response) => this.handleError(res));;
  21 +
  22 + }
  23 + //////////Update User Detail///////////////
  24 + UpdateUserProfileById(obj: User) {
  25 + //let options = new RequestOptions({ headers: this.headers });
  26 + return this.http.post(this.commonService.resourceBaseUrl + "/api/UpdateProfile", obj)
  27 + .map(this.extractData)
  28 + .catch((res: Response) => this.handleError(res));
  29 + }
  30 + //////////Update User Password///////////////
  31 + ChangeUserPassword(obj: any) {
  32 + //let options = new RequestOptions({ headers: this.headers });
  33 + var jsonData = { 'id': obj.userId, 'newPassword': obj.newPassword };
  34 + console.log(obj);
  35 + var headers = new Headers({
  36 + 'Content-Type': 'application/json'
  37 + });
  38 + return this.http.post(this.commonService.resourceBaseUrl + "/api/ChangeUserPassword",
  39 + JSON.stringify(jsonData), { headers: headers })
  40 + .map(this.extractData)
  41 + .catch((res: Response) => this.handleError(res));
  42 + }
  43 + //////////Update User Userid///////////////
  44 + UpdateUserId(obj: User) {
  45 + //let options = new RequestOptions({ headers: this.headers });
  46 + return this.http.post(this.commonService.resourceBaseUrl + "/api/UpdateUserId", obj)
  47 + .map(this.extractData)
  48 + .catch((res: Response) => this.handleError(res));
  49 + }
  50 +
  51 + /// Users Form///////
  52 +
  53 + GetUserType() {
  54 + return this.http.get(this.commonService.resourceBaseUrl + "/api/GetUserType/"+this.commonService.UserType)
  55 + .map(this.extractData)
  56 + .catch((res: Response) => this.handleError(res));
  57 + }
  58 + GetAccountType() {
  59 + return this.http.get(this.commonService.resourceBaseUrl + "/api/GetAccountType/"+this.commonService.AccountType)
  60 + .map(this.extractData)
  61 + .catch((res: Response) => this.handleError(res));
  62 + }
  63 + GetUserList(obj: any) {
  64 + return this.http.get(this.commonService.resourceBaseUrl + "/api/Users?firstname=" + obj.FirstName +
  65 + "&lastname=" + obj.LastName +
  66 + "&emailid=" + obj.EmailId +
  67 + "&accountnumber=" + obj.AccountNumber +
  68 + "&usertypeid=" + obj.UserTypeId +
  69 + "&accounttypeid=" + obj.AccountTypeId)
  70 + .map(this.extractData)
  71 + .catch((res: Response) => this.handleError(res));
  72 + }
  73 + /// End Users /////
  74 +
  75 + extractData(res: Response) {
  76 + debugger;
  77 +
  78 + let body = res.json();
  79 + return body;
  80 + }
  81 + handleError(error: any) {
  82 + debugger;
  83 + // In a real world app, we might use a remote logging infrastructure
  84 + // We'd also dig deeper into the error to get a better message
  85 + let errMsg = (error.message) ? error.message :
  86 + error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  87 + console.error(errMsg); // log to console instead
  88 + return Observable.throw(errMsg);
  89 + }
  90 +
  91 +
  92 +}
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.html 0 → 100644
  1 +<div class="row">
  2 + <div class="col-sm-12 pageHeading">
  3 + <h4>List User</h4>
  4 + </div>
  5 + <div class="col-sm-12">
  6 +
  7 + <div class="container-fluid main-full">
  8 + <div class="row">
  9 + <div class="well no-margin-btm">
  10 + <div class="row" novalidate [formGroup]="Users">
  11 + <div class="col-lg-3 col-sm-3">
  12 + <div class="row">
  13 + <div class="col-sm-12">
  14 + <div class="form-group marginTop5">
  15 + <label for="FirstName" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">First Name :</label>
  16 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  17 + <input type="text" class="form-control input-sm" id="FirstName" placeholder="First Name" formControlName="FirstName">
  18 + </div>
  19 + </div>
  20 + </div>
  21 +
  22 + <div class="col-sm-12">
  23 + <div class="form-group marginTop5">
  24 + <label for="LastName" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Last Name :</label>
  25 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  26 + <input type="text" class="form-control input-sm" id="LastName" placeholder="Last Name" formControlName="LastName">
  27 + </div>
  28 + </div>
  29 + </div>
  30 + </div>
  31 + </div>
  32 + <div class="col-lg-3 col-sm-3">
  33 + <div class="row">
  34 + <div class="col-sm-12">
  35 + <div class="form-group marginTop5">
  36 + <label for="Email" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Email ID :</label>
  37 + </div>
  38 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  39 + <input type="email" class="form-control input-sm" id="Email" placeholder="Email ID" formControlName="EmailId">
  40 + </div>
  41 + </div>
  42 +
  43 + <div class="col-sm-12">
  44 + <div class="form-group marginTop5">
  45 + <label for="Account" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Account Number :</label>
  46 + </div>
  47 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  48 + <input type="text" class="form-control input-sm" id="account" placeholder="Account Number" formControlName="AccountNumber">
  49 + </div>
  50 + </div>
  51 +
  52 + </div>
  53 + </div>
  54 + <div class="col-lg-3 col-sm-3">
  55 + <div class="row">
  56 + <div class="col-sm-12">
  57 + <div class="form-group marginTop5">
  58 + <label for="State" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">User Type :</label>
  59 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  60 +
  61 + <select class="form-control input-sm " id="State" [formControl]="Users.controls['UserTypeId']">
  62 + <option value="0">All</option>
  63 + <option *ngFor="let UserTypeEntity of UserTypeList" value="{{UserTypeEntity.Id}}">{{ UserTypeEntity.Title }}</option>
  64 + </select>
  65 + </div>
  66 + </div>
  67 + </div>
  68 +
  69 +
  70 + <div class="col-sm-12">
  71 + <div class="form-group marginTop5">
  72 + <label for="State" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0">Account Type :</label>
  73 + <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
  74 + <select class="form-control input-sm " id="AccountType" [formControl]="Users.controls['AccountTypeId']">
  75 + <option value="0">All</option>
  76 + <option *ngFor="let AccountTypeEntity of AccountTypeList" value="{{AccountTypeEntity.Id}}">{{ AccountTypeEntity.Title }}</option>
  77 + </select>
  78 + </div>
  79 + </div>
  80 + </div>
  81 + </div>
  82 + </div>
  83 +
  84 +
  85 + <div class="col-lg-2 col-sm-3">
  86 + <div class="row">
  87 + <div class="col-sm-12"><div class="form-group marginTop5">&nbsp;</div></div>
  88 +
  89 + <div class="col-sm-12">
  90 + <div class="form-group marginTop5">
  91 + <div class="checkbox text-right-lg">
  92 + <label class="marginR5">
  93 + <input type="checkbox" checked> Pagination Results
  94 + </label>
  95 + <button class="btn btn-primary btn-sm" (click)="SearchUserList(this)">Go <i class="fa fa-arrow-right"></i></button>
  96 + </div>
  97 + </div>
  98 + </div>
  99 + </div>
  100 + </div>
  101 + </div>
  102 +
  103 + </div>
  104 +
  105 + <div class="well">
  106 + <table id="fixed_hdr2" class="table-hover ">
  107 + <thead>
  108 + <tr >
  109 + <th>First Name</th>
  110 + <th>Last Name</th>
  111 + <th>User ID</th>
  112 + <th>Password</th>
  113 + <th>Email ID</th>
  114 + <th>User Type</th>
  115 + <th>Created Date</th>
  116 + <th>Last Modified Date</th>
  117 + <th>Account Number</th>
  118 + <th>Product Edition</th>
  119 + <th>Status</th>
  120 + </tr>
  121 + </thead>
  122 + <tbody>
  123 + <tr *ngFor="let UserEntity of UserList">
  124 + <td>{{UserEntity.FirstName}}</td>
  125 + <td>{{UserEntity.LastName}}</td>
  126 + <td>{{UserEntity.LoginId}}</td>
  127 + <td>{{UserEntity.Password}}</td>
  128 + <td>{{UserEntity.EmailId}}</td>
  129 + <td>{{UserEntity.UserTypeTitle}}</td>
  130 + <td>{{UserEntity.CreationDate}}</td>
  131 + <td>{{UserEntity.ModifiedDate}}</td>
  132 + <td>{{UserEntity.AccountNumber}}</td>
  133 + <td>{{UserEntity.EditionType}}</td>
  134 +
  135 + <td>
  136 + <span [ngClass]="(UserEntity.UserStatus==Active?'label label-success':'label label-default')">{{UserEntity.UserStatus}}</span>
  137 + </td>
  138 +
  139 +
  140 + </tr>
  141 +
  142 +
  143 +
  144 + </tbody>
  145 + </table>
  146 +
  147 + <div class="row">
  148 + <div class="col-sm-12 marginTop20 text-center">
  149 + <a href="admin-add-discount-code.html"><button class="btn btn-primary btn-sm"><i class="fa fa-thumbs-up"></i> Manage Rights</button></a>
  150 + <button class="btn btn-primary btn-sm"><i class="fa fa-edit"></i> Edit</button>
  151 + </div>
  152 + </div>
  153 + </div>
  154 +
  155 + </div>
  156 + </div>
  157 + </div>
  158 +</div>
... ...
400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.ts 0 → 100644
  1 +import { Component, OnInit, AfterViewInit,ViewChild } from '@angular/core';
  2 +import { UserService } from './user.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
  5 +import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  6 +import { User } from '../UserEntity/datamodel';
  7 +import { Http, Response } from '@angular/http';
  8 +//import { Global } from '../../Shared/global';
  9 +//import { DBOperation } from 'S';
  10 +import { Observable } from 'rxjs/Observable';
  11 +import { ConfirmService } from '../../Shared/Confirm/confirm.service';
  12 +import 'rxjs/Rx';
  13 +import 'rxjs/add/operator/map';
  14 +import 'rxjs/add/operator/filter';
  15 +
  16 +
  17 +@Component({
  18 + templateUrl:'./users.component.html' // '../../../../../wwwroot/html/UpdateProfile/updateuserprofile.component.html'
  19 +})
  20 +
  21 +export class UsersList implements OnInit {
  22 +
  23 + modalTitle: string;
  24 + Users: FormGroup;
  25 + alerts: string;
  26 + public UserTypeList: any;
  27 + public AccountTypeList: any;
  28 + public UserList: any;
  29 + error;
  30 + //@ViewChild("profileModal")
  31 + //profileModal: ModalComponent;
  32 + //errorMessage: any;
  33 + constructor(private userservice: UserService, private router: Router, private fb: FormBuilder, private http: Http,
  34 + private _confirmService: ConfirmService
  35 + ) { }
  36 +
  37 + ngOnInit(): void {
  38 + this.alerts = '';
  39 + //this.userservice.GetUserById(this.UserId);
  40 + this.Users = this.fb.group({
  41 + FirstName:[''],
  42 + LastName: [''],
  43 + EmailId: [''],
  44 + AccountNumber: [''],
  45 + UserTypeId: [''],
  46 + AccountTypeId:['']
  47 + // Gender: ['', Validators.required],
  48 + // Email: ['']
  49 +
  50 + });
  51 + this.GetUserType();
  52 + this.GetAccountType();
  53 + //this.GetUserList();
  54 + }
  55 +
  56 + GetUserType() {
  57 + this.userservice.GetUserType().subscribe(x => { this.UserTypeList = x; }, error => this.error = <any>error);
  58 + }
  59 + GetAccountType() {
  60 + this.userservice.GetAccountType().subscribe(x => { this.AccountTypeList = x; }, error => this.error = <any>error);
  61 + }
  62 + GetUserList() {
  63 + //this.userservice.GetUserList().subscribe(x => { this.UserList = x; }, error => this.error = <any>error);
  64 + }
  65 + SearchUserList(this)
  66 + {
  67 + var UserFilterControl = this.Users.value;
  68 + this.userservice.GetUserList(
  69 + {
  70 + FirstName: this.Users.controls['FirstName'].value,
  71 + LastName: this.Users.controls['LastName'].value,
  72 + EmailId: this.Users.controls['EmailId'].value,
  73 + AccountNumber: this.Users.controls['AccountNumber'].value,
  74 + UserTypeId: (this.Users.controls['UserTypeId'].value != null && this.Users.controls['UserTypeId'].value !='' ? this.Users.controls['UserTypeId'].value:0),
  75 + AccountTypeId: (this.Users.controls['AccountTypeId'].value != null && this.Users.controls['AccountTypeId'].value != ''? this.Users.controls['AccountTypeId'].value : 0),
  76 +
  77 +
  78 + })
  79 +
  80 + .subscribe(x => { this.UserList = x; }, error => this.error = <any>error);
  81 + }
  82 + AfterInsertData(data) {
  83 +
  84 + if (data == "success") {
  85 + this._confirmService.activate("Userid Updated Successfully.", "alertMsg");
  86 +
  87 + } else {
  88 + this.alerts += '<span>' + data+'</span>';
  89 + return false;
  90 +
  91 +
  92 + }
  93 + //if (this.closeflag) {
  94 + // this.close.emit(null);
  95 + //}
  96 + //else {
  97 + //}
  98 + }
  99 +
  100 + ResetFormFields() {
  101 + //this.ChangeUserIdFrm.reset()
  102 + //this.ChangeUserIdFrm.controls['id'].setValue(this.user.Id)
  103 + //this.ChangeUserIdFrm.controls['loginid'].setValue(this.user.LoginId)
  104 + //this.ChangeUserIdFrm.controls['newloginid'].setValue('')
  105 + //this.ChangeUserIdFrm.controls['confirmloginid'].setValue('')
  106 + this.alerts = '';
  107 + }
  108 +
  109 +}
... ...
400-SOURCECODE/Admin/src/app/components/changeuserid.component.html 0 → 100644
  1 +<div class="row">
  2 + <div class="well">
  3 + <div class="row">
  4 + <div class="col-sm-12">
  5 + <h5 class="text-center text-success"><strong>**To change your user ID fill all the text fields carefully.</strong></h5>
  6 + <div class="panel-body">
  7 + <!-- form -->
  8 + <form class="form-horizontal">
  9 + <div class="form-group">
  10 + <label for="inputEmail3" class="col-sm-4 control-label">Old User Id <span class="red">*</span> :</label>
  11 + <div class="col-sm-7">
  12 + <input type="text" class="form-control" id="inputEmail3" placeholder="">
  13 + </div>
  14 + </div>
  15 + <div class="form-group">
  16 + <label for="inputPassword3" class="col-sm-4 control-label">New User Id <span class="red">*</span> :</label>
  17 + <div class="col-sm-7">
  18 + <input type="password" class="form-control" id="inputPassword3" placeholder="">
  19 + <span class="help-block">(Minimum 8 characters)</span>
  20 + </div>
  21 + </div>
  22 + <div class="form-group">
  23 + <label for="inputPassword3" class="col-sm-4 control-label">Confirm User Id <span class="red">*</span> :</label>
  24 + <div class="col-sm-7">
  25 + <input type="password" class="form-control" id="inputPassword3" placeholder="">
  26 + </div>
  27 + </div>
  28 +
  29 + <div class="form-group">
  30 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  31 + <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal"><i class="fa fa-check"></i> Update</button>
  32 + <!--cancel-button-->
  33 + <div class="modal fade bs-example-modal-sm ui-draggable" tabindex="-1" role="dialog" id="mymodal">
  34 + <div class="modal-dialog modal-sm" role="document">
  35 + <div class="modal-content">
  36 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  37 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  38 + <h4 class="modal-title" id="">Alert</h4>
  39 + </div>
  40 + <div class="modal-body">
  41 + <h5>Please enter your old user ID.</h5>
  42 + </div>
  43 + <div class="modal-footer">
  44 + <div class="row">
  45 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  46 + </div>
  47 + </div>
  48 +
  49 + </div><!-- /.modal-content -->
  50 + </div><!-- /.modal-dialog -->
  51 + </div><!-- /.modal -->
  52 + <!--cancel-button-->
  53 + <button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-close"></i> Cancel</button>
  54 + </div>
  55 +
  56 + </div>
  57 + </form>
  58 + <!-- form -->
  59 + </div>
  60 + </div>
  61 + </div>
  62 + </div>
  63 +</div>
... ...
400-SOURCECODE/Admin/src/app/components/changeuserid.component.ts 0 → 100644
  1 +import { Component, OnInit } from '@angular/core';
  2 +import { UserService } from './UpdateProfile/user.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormBuilder, FormGroup, Validators } from '@angular/forms';
  5 +import { IUser } from './UpdateProfile/datamodel';
  6 +import { Http, Response } from '@angular/http';
  7 +//import { Global } from '../../Shared/global';
  8 +//import { DBOperation } from 'S';
  9 +//import { Observable } from 'rxjs/Observable';
  10 +
  11 +@Component({
  12 + templateUrl: '../components/changeuserid.component.html'
  13 +})
  14 +
  15 +export class ChangeUserId implements OnInit {
  16 +
  17 + constructor(private userservice: UserService, private router: Router, private fb: FormBuilder) { }
  18 +
  19 + ngOnInit(): void { }
  20 +
  21 + formErrors = {
  22 + 'firstName': '',
  23 + 'lastName': '',
  24 + 'email': ''
  25 + };
  26 +
  27 + validationMessages = {
  28 + 'firstName': {
  29 + 'required': 'First name is required.'
  30 + },
  31 + 'lastName': {
  32 + 'required': 'Last name is required.'
  33 + },
  34 + 'email': {
  35 + 'required': 'Email is required.',
  36 + 'pattern': 'Email pattern is not valid.'
  37 + }
  38 + }
  39 +
  40 +}
... ...
400-SOURCECODE/Admin/src/app/components/changeuserpassword.component.html 0 → 100644
  1 +<div class="row">
  2 + <div class="well">
  3 + <div class="row">
  4 + <div class="col-sm-12">
  5 + <h5 class="text-center text-success"><strong>**To change your profile fill all the text fields carefully.</strong></h5>
  6 + <div class="panel-body">
  7 + <!-- form -->
  8 + <form class="form-horizontal">
  9 + <div class="form-group">
  10 + <label for="inputEmail3" class="col-sm-4 control-label">User Id <span class="red">*</span> :</label>
  11 + <div class="col-sm-7">
  12 + <input type="text" class="form-control" id="inputEmail3" placeholder="Superadmin">
  13 + </div>
  14 + </div>
  15 + <div class="form-group">
  16 + <label for="inputPassword3" class="col-sm-4 control-label">Old Password <span class="red">*</span> :</label>
  17 + <div class="col-sm-7">
  18 + <input type="password" class="form-control" id="inputPassword3" placeholder="">
  19 + </div>
  20 + </div>
  21 + <div class="form-group">
  22 + <label for="inputPassword3" class="col-sm-4 control-label">New Password <span class="red">*</span> :</label>
  23 + <div class="col-sm-7">
  24 + <input type="password" class="form-control" id="inputPassword3" placeholder="">
  25 + <span class="help-block">(Minimum 8 characters)</span>
  26 + </div>
  27 + </div>
  28 + <div class="form-group">
  29 + <label for="inputPassword3" class="col-sm-4 control-label">Confirm Password <span class="red">*</span> :</label>
  30 + <div class="col-sm-7">
  31 + <input type="password" class="form-control" id="inputPassword3" placeholder="">
  32 + </div>
  33 + </div>
  34 + <div class="form-group">
  35 + <div class="col-sm-offset-4 col-sm-7 mar-top17">
  36 + <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#mymodal"><i class="fa fa-check"></i> Update</button>
  37 + <!--cancel-button-->
  38 + <div class="modal fade bs-example-modal-sm ui-draggable" tabindex="-1" role="dialog" id="mymodal">
  39 + <div class="modal-dialog modal-sm" role="document">
  40 + <div class="modal-content">
  41 + <div class="modal-header annotation-modal-header ui-draggable-handle">
  42 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  43 + <h4 class="modal-title" id="">Alert</h4>
  44 + </div>
  45 + <div class="modal-body">
  46 + <h5>Please enter your old password</h5>
  47 + </div>
  48 + <div class="modal-footer">
  49 + <div class="row">
  50 + <div class="col-sm-12"><button class="btn btn-primary btn-sm">Ok</button></div>
  51 + </div>
  52 + </div>
  53 +
  54 + </div><!-- /.modal-content -->
  55 + </div><!-- /.modal-dialog -->
  56 + </div><!-- /.modal -->
  57 + <!--cancel-button-->
  58 + <button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-close"></i> Cancel</button>
  59 + </div>
  60 +
  61 + </div>
  62 + </form>
  63 + <!-- form -->
  64 + </div>
  65 + </div>
  66 + </div>
  67 + </div>
  68 +</div>
... ...
400-SOURCECODE/Admin/src/app/components/changeuserpassword.component.ts 0 → 100644
  1 +import { Component, OnInit } from '@angular/core';
  2 +import { UserService } from './UpdateProfile/user.service';
  3 +import { Router } from '@angular/router';
  4 +import { FormBuilder, FormGroup, Validators } from '@angular/forms';
  5 +import { IUser } from './UpdateProfile/datamodel';
  6 +import { Http, Response } from '@angular/http';
  7 +//import { Global } from '../../Shared/global';
  8 +//import { DBOperation } from 'S';
  9 +//import { Observable } from 'rxjs/Observable';
  10 +
  11 +@Component({
  12 + templateUrl: '../components/changeuserpassword.component.html'
  13 +})
  14 +
  15 +export class ChangeUserPassword implements OnInit {
  16 +
  17 + constructor(private userservice: UserService, private router: Router, private fb: FormBuilder) { }
  18 +
  19 + ngOnInit(): void { }
  20 +
  21 + formErrors = {
  22 + 'firstName': '',
  23 + 'lastName': '',
  24 + 'email': ''
  25 + };
  26 +
  27 + validationMessages = {
  28 + 'firstName': {
  29 + 'required': 'First name is required.'
  30 + },
  31 + 'lastName': {
  32 + 'required': 'Last name is required.'
  33 + },
  34 + 'email': {
  35 + 'required': 'Email is required.',
  36 + 'pattern': 'Email pattern is not valid.'
  37 + }
  38 + }
  39 +
  40 +}
... ...
400-SOURCECODE/Admin/src/app/model/add-user.interface.ts 0 → 100644
  1 +export interface AddUser {
  2 + userName: string;
  3 + password: string;
  4 + confirmPassword: string;
  5 + emailId: string;
  6 + firstName: string;
  7 + lastName: string;
  8 + accountNumber: string;
  9 + userType: string;
  10 + productEdition: string;
  11 +}
0 12 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/model/data-model.ts 0 → 100644
  1 +export class AppSettings {
  2 + menu: Menu;
  3 + footer: Footer;
  4 +}
  5 +
  6 +export class Menu {
  7 + menuType: string;
  8 + menuItems: MenuItem[];
  9 +}
  10 +
  11 +export class MenuItem {
  12 + name: string;
  13 + url: string;
  14 + icon: string;
  15 +}
  16 +
  17 +export class Footer {
  18 + footerColumns: FooterColumn[];
  19 + copyrightNotice: string;
  20 +}
  21 +
  22 +export class FooterColumn {
  23 + heading: string;
  24 + showHeading: boolean;
  25 + footerItems: FooterItem[];
  26 +}
  27 +
  28 +export class FooterItem {
  29 + name: string;
  30 + url: string;
  31 +}
  32 +
  33 +export class BannerItem {
  34 + name: string;
  35 + tagLine: string;
  36 + bannerSettings: BannerSettings;
  37 + apps: string[];
  38 +}
  39 +
  40 +export class BannerSettings {
  41 + show: boolean;
  42 + callToAction: "string"
  43 +}
  44 +
  45 +export class ContentItem {
  46 + _id: string;
  47 + contentType: string;
  48 + releaseDate: Date;
  49 + subject: string;
  50 + summary: string;
  51 + body: string;
  52 + slug: string;
  53 +}
  54 +
  55 +
  56 +export class User {
  57 + public _id: string;
  58 + public name: string;
  59 + public mobileNumber: string;
  60 + public emailAddress: string;
  61 + public password: string;
  62 + public role: string;
  63 + public apps: Array<string>;
  64 +
  65 + constructor(appName: string) {
  66 + this.apps = new Array<string>();
  67 + this.apps.push(appName);
  68 + }
  69 +}
  70 +
  71 +
  72 +export class Address {
  73 + public name: string;
  74 + public mobileNumber: string;
  75 + public addressLine1: string;
  76 + public addressLine2: string;
  77 + public area: string;
  78 + public city: string;
  79 + public pinCode: string;
  80 + public state: string;
  81 +}
  82 +
  83 +export class UserProfile {
  84 + userId: number;
  85 + firstName: string;
  86 + lastName: string;
  87 + emailId: string;
  88 +
  89 + oldLoginId: string;
  90 + newLoginId: string;
  91 + confirmLoginId: string;
  92 +}
  93 +
  94 +export class AdminUser {
  95 + userId: number;
  96 + firstName: string;
  97 + lastName: string;
  98 + emailId: string;
  99 + loginId: string;
  100 + password: string;
  101 + securityQuestiuonId: number;
  102 + securityAnswer: string;
  103 + creatorId: number;
  104 + creationDate: Date;
  105 + deactivationDate: Date;
  106 + modifierId: number;
  107 + modifiedDate: Date;
  108 + userTypeId: number;
  109 + isActive: boolean;
  110 +}
0 111 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/model/db-tables.ts 0 → 100644
  1 +export class State {
  2 + constructor(
  3 + public Id: number,
  4 + public StateName: string
  5 + ) { }
  6 +}
  7 +
  8 +export class Country {
  9 + constructor(
  10 + public Id: number,
  11 + public Name: string
  12 + ) { }
  13 +}
  14 +
  15 +export class AccountType {
  16 + constructor(
  17 + public Id: number,
  18 + public Title: string
  19 + ) { }
  20 +
  21 + public static createEmptyAccountType(): AccountType {
  22 + return new AccountType(0, "");
  23 + }
  24 +}
  25 +
  26 +export class SecurityQuestions {
  27 + constructor(
  28 + public Id: number,
  29 + public Title: string
  30 + ) { }
  31 +}
  32 +
  33 +export class LicenseType {
  34 + constructor(
  35 + public Id: number,
  36 + public Title: string
  37 + ) { }
  38 +}
  39 +
  40 +export class UserType {
  41 + constructor(
  42 + public Id: number,
  43 + public Title: string
  44 + ) { }
  45 +}
0 46 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/services/application.service.ts 0 → 100644
  1 +import {Injectable} from '@angular/core';
  2 +import { Http, Response, Headers, RequestOptions, URLSearchParams } from '@angular/http';
  3 +import { Router } from '@angular/router';
  4 +
  5 +import { Observable } from 'rxjs/Observable';
  6 +import 'rxjs/add/operator/map';
  7 +import 'rxjs/add/operator/catch';
  8 +
  9 +
  10 +import { AppSettings, User, UserProfile } from '../model/data-model';
  11 +import { State } from '../model/db-tables';
  12 +import { AccountType } from '../model/db-tables';
  13 +import { Country } from '../model/db-tables';
  14 +import { SecurityQuestions } from '../model/db-tables';
  15 +import { LicenseType } from '../model/db-tables';
  16 +
  17 +@Injectable()
  18 +export class ApplicationService {
  19 + appSettingsLoaded: boolean;
  20 + appSettings: AppSettings;
  21 + currentUser: User;
  22 + loggedIn: boolean;
  23 +
  24 + userId: number;
  25 + firstName: string;
  26 + lastName: string;
  27 + emailId: string;
  28 + userInfo: UserProfile;
  29 +
  30 + apiUrl: "http://localhost:85/AIAHTML5.Server/api/";
  31 +
  32 + constructor(private http: Http, private router: Router) {
  33 + if (this.currentUser == null) {
  34 + var user = localStorage.getItem("currentUser");
  35 +
  36 + if (user != null) {
  37 + this.currentUser = JSON.parse(user);
  38 + this.loggedIn = true;
  39 + }
  40 + }
  41 +
  42 + this.userId = 0;
  43 + this.firstName = "";
  44 + this.lastName = "";
  45 + this.emailId = "";
  46 +
  47 + }
  48 +
  49 + public getAppSettings(applicationName: string): Observable<any> {
  50 + var headers = new Headers();
  51 + headers.append('Content-Type', 'application/json');
  52 +
  53 + let params = new URLSearchParams();
  54 + params.set("applicationName", applicationName);
  55 + params.set("userId", this.currentUser._id);
  56 +
  57 + return this.http.get('DentalDecks.Server/api/AppSettings', { headers: headers, search: params })
  58 + .map(this.extractData)
  59 + .catch(this.handleError);
  60 + }
  61 +
  62 + public getMenuItemsWithNoChildren(menuItems: any): any {
  63 + if (this.appSettingsLoaded) {
  64 + let menuItemsSubset: Array<any> = new Array<any>();
  65 + for (var i = 0; i < menuItems.length; i++) {
  66 + if (menuItems[i].menuItems == null) {
  67 + for (var j = 0; j < menuItems[i].roles.length; j++) {
  68 + if (menuItems[i].roles[j] == this.currentUser.role) {
  69 + menuItemsSubset.push(menuItems[i]);
  70 + break;
  71 + }
  72 + }
  73 + }
  74 + }
  75 + return menuItemsSubset;
  76 + }
  77 + }
  78 +
  79 + public getMenuItemsWithChildren(menuItems: any): any {
  80 + if (this.appSettingsLoaded) {
  81 + let menuItemsSubset: Array<any> = new Array<any>();
  82 + for (var i = 0; i < menuItems.length; i++) {
  83 + if (menuItems[i].menuItems != null) {
  84 + for (var j = 0; j < menuItems[i].roles.length; j++) {
  85 + if (menuItems[i].roles[j] == this.currentUser.role) {
  86 + menuItemsSubset.push(menuItems[i]);
  87 + break;
  88 + }
  89 + }
  90 + }
  91 + }
  92 + return menuItemsSubset;
  93 + }
  94 + }
  95 +
  96 + public login(applicationName: string, username: string, password: string): Observable<any> {
  97 + var headers = new Headers();
  98 + headers.append('Content-Type', 'application/json');
  99 +
  100 + let params = new URLSearchParams();
  101 + params.set("applicationName", applicationName);
  102 + params.set("username", username);
  103 + params.set("password", password);
  104 +
  105 + return this.http.get('DentalDecks.Server/api/Authenticate', { headers: headers, search: params })
  106 + .map(this.extractData)
  107 + .catch(this.handleError);
  108 + }
  109 +
  110 + public logout(): void {
  111 + this.currentUser = null;
  112 + localStorage.removeItem("currentUser");
  113 + this.router.navigate(['/login']);
  114 + }
  115 +
  116 + public resetPassword(username: string): Observable<any> {
  117 + var headers = new Headers();
  118 + headers.append('Content-Type', 'application/json');
  119 +
  120 + let user: any = new Object();
  121 + user.emailAddress = username;
  122 +
  123 + return this.http.post('DentalDecks.Server/api/Password', JSON.stringify(user), { headers: headers })
  124 + .map(this.extractData)
  125 + .catch(this.handleError);
  126 + }
  127 +
  128 + public updatePassword(userId: string, password: string): Observable<any> {
  129 + var headers = new Headers();
  130 + headers.append('Content-Type', 'application/json');
  131 +
  132 + let user: any = new Object();
  133 + user.userId = userId;
  134 + user.password = password;
  135 +
  136 + return this.http.post('DentalDecks.Server/api/UpdatePassword', JSON.stringify(user), { headers: headers })
  137 + .map(this.extractData)
  138 + .catch(this.handleError);
  139 + }
  140 +
  141 + public isResetPasswordExpired(userId: string): Observable<any> {
  142 + var headers = new Headers();
  143 + headers.append('Content-Type', 'application/json');
  144 +
  145 + let params = new URLSearchParams();
  146 + params.set("userId", userId);
  147 +
  148 + return this.http.get('DentalDecks.Server/api/Password', { headers: headers, search: params })
  149 + .map(this.extractData)
  150 + .catch(this.handleError);
  151 + }
  152 +
  153 + public getLongDate(date: any): string {
  154 + let returnValue: Date = new Date(date);
  155 + return returnValue.toLocaleDateString();
  156 + }
  157 +
  158 + getDateTime(date: any): string {
  159 + let orderDate: string = "";
  160 + if (date != null && date != "")
  161 + orderDate = new Date(date).toLocaleDateString() + " " + new Date(date).toLocaleTimeString();
  162 +
  163 + return orderDate;
  164 + }
  165 +
  166 + getRelativeDate(date: any): string {
  167 + if (date != null) {
  168 + date = new Date(date);
  169 +
  170 + var delta = Math.round((+new Date - date) / 1000);
  171 +
  172 + var minute = 60,
  173 + hour = minute * 60,
  174 + day = hour * 24,
  175 + week = day * 7;
  176 +
  177 + var fuzzy: string;
  178 +
  179 + if (delta < 30) {
  180 + fuzzy = 'just now.';
  181 + } else if (delta < minute) {
  182 + fuzzy = delta + ' seconds ago.';
  183 + } else if (delta < 2 * minute) {
  184 + fuzzy = 'a minute ago.'
  185 + } else if (delta < hour) {
  186 + fuzzy = Math.floor(delta / minute) + ' minutes ago.';
  187 + } else if (Math.floor(delta / hour) == 1) {
  188 + fuzzy = '1 hour ago.'
  189 + } else if (delta < day) {
  190 + fuzzy = Math.floor(delta / hour) + ' hours ago.';
  191 + } else if (delta < day * 2 && delta > day) {
  192 + fuzzy = 'yesterday';
  193 + } else {
  194 + fuzzy = Math.floor(delta / (60 * 60 * 24)) + ' days ago';
  195 + }
  196 +
  197 + return fuzzy;
  198 + } else {
  199 + return "";
  200 + }
  201 + }
  202 +
  203 + private extractData(res: Response) {
  204 + let body = res.json();
  205 + return body || {};
  206 + }
  207 + private handleError(error: Response | any) {
  208 + // In a real world app, we might use a remote logging infrastructure
  209 + let errMsg: string;
  210 + if (error instanceof Response) {
  211 + const body = error.json() || '';
  212 + const err = body.error || JSON.stringify(body);
  213 + errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
  214 + } else {
  215 + errMsg = error.message ? error.message : error.toString();
  216 + }
  217 + console.error(errMsg);
  218 + return Observable.throw(errMsg);
  219 + }
  220 +
  221 + public getAccountTypes(): Observable<any> {
  222 + return this.http.get('http://localhost:85/AIAHTML5.Server/api/accounttype')
  223 + .map(this.extractData)
  224 + .catch(this.handleError);
  225 + }
  226 +
  227 + public getStates(): Observable<any> {
  228 + return this.http.get('http://localhost:85/AIAHTML5.Server/api/state')
  229 + .map(this.extractData)
  230 + .catch(this.handleError);
  231 + }
  232 +
  233 + public getCountries(): Observable<any> {
  234 + return this.http.get('http://localhost:85/AIAHTML5.Server/api/country')
  235 + .map(this.extractData)
  236 + .catch(this.handleError);
  237 + }
  238 +
  239 + public getSecurityQuestions(): Observable<any> {
  240 + return this.http.get('http://localhost:85/AIAHTML5.Server/api/securityquestionlist')
  241 + .map(this.extractData)
  242 + .catch(this.handleError);
  243 + }
  244 +
  245 + public getLicenseTypes(): Observable<any> {
  246 + return this.http.get('http://localhost:85/AIAHTML5.Server/api/licensetype')
  247 + .map(this.extractData)
  248 + .catch(this.handleError);
  249 + }
  250 +}
0 251 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/services/update-user.service.ts 0 → 100644
  1 +import { Injectable } from '@angular/core';
  2 +import { Http, Response, Headers, RequestOptions, URLSearchParams } from '@angular/http';
  3 +import { Router } from '@angular/router';
  4 +
  5 +import { Observable } from 'rxjs/Observable';
  6 +import 'rxjs/add/operator/map';
  7 +import 'rxjs/add/operator/catch';
  8 +import { UserProfile } from '../model/data-model';
  9 +
  10 +//import { AppSettings, User } from '../model/data-model';
  11 +
  12 +@Injectable()
  13 +export class UpdateUserService {
  14 + //appSettingsLoaded: boolean;
  15 + //appSettings: AppSettings;
  16 + //currentUser: User;
  17 + //loggedIn: boolean;
  18 + userId: number;
  19 + firstName: string;
  20 + lastName: string;
  21 + emailId: string;
  22 + userInfo: UserProfile;
  23 +
  24 + private headers: Headers;
  25 +
  26 + constructor(private http: Http, private router: Router) {
  27 + //if (this.currentUser == null) {
  28 + // var user = localStorage.getItem("currentUser");
  29 +
  30 + // if (user != null) {
  31 + // this.currentUser = JSON.parse(user);
  32 + // this.loggedIn = true;
  33 + // }
  34 + //}
  35 + this.userId = 0;
  36 + this.firstName = "";
  37 + this.lastName = "";
  38 + this.emailId = "";
  39 +
  40 + }
  41 +
  42 + private extractData(res: Response) {
  43 + let body = res.json();
  44 + return body || {};
  45 + }
  46 + private handleError(error: Response | any) {
  47 + // In a real world app, we might use a remote logging infrastructure
  48 + let errMsg: string;
  49 + if (error instanceof Response) {
  50 + const body = error.json() || '';
  51 + const err = body.error || JSON.stringify(body);
  52 + errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
  53 + } else {
  54 + errMsg = error.message ? error.message : error.toString();
  55 + }
  56 + console.error(errMsg);
  57 + return Observable.throw(errMsg);
  58 + }
  59 +
  60 + public UpdateUserProfile(applicationName: string, strFirstName: string, strLastName: string, strEmailID: string): Observable<any> {
  61 + console.log('inside update-user service -2');
  62 + let usrID: number;
  63 + usrID = 1;
  64 +
  65 + //let headers = new Headers({ 'Content-Type': 'application/json' });
  66 + let headers = new Headers();
  67 + headers.append('Content-type', 'application/x-www-form-urlencoded');
  68 + let options = new RequestOptions({ headers: headers });
  69 + let body = 'userId=' + usrID + '&emailId=' + strEmailID + '&firstName=' + strFirstName + '&lastName=' + strLastName;
  70 + console.log(body);
  71 +
  72 + let urlSearchParams = new URLSearchParams();
  73 + urlSearchParams.append('userId', usrID.toString());
  74 + urlSearchParams.append('firstName', strFirstName);
  75 + urlSearchParams.append('lastName', strLastName);
  76 + urlSearchParams.append('emailId', strEmailID);
  77 + let body2 = urlSearchParams.toString()
  78 +
  79 + return this.http.post('http://localhost:85/AIAHTML5.Server/api/updateprofile', body, options)
  80 + .map((response: Response) => {
  81 + console.log(response);
  82 + var body = response.json();
  83 + console.log(body);
  84 + })
  85 + .catch(this.handleError);
  86 + }
  87 +
  88 + public GetUserDetailsByIdandLoginId(id: number, loginId: string) : Observable<any> {
  89 + console.log('inside user-service getUserDetailsById');
  90 + debugger;
  91 + let headers = new Headers();
  92 + headers.append('Content-Type', 'application/json');
  93 + //headers.append('Content-type', 'application/x-www-form-urlencoded');
  94 + let options = new RequestOptions({ headers: headers });
  95 +
  96 + let params = new URLSearchParams();
  97 + params.append('iUserId', id.toString());
  98 + params.append('sLoginId', loginId);
  99 +
  100 + return this.http.get('http://localhost:85/AIAHTML5.Server/api/changeuserid', { headers: headers, search: params })
  101 + .map(this.extractData)
  102 + .catch(this.handleError);
  103 +
  104 + }
  105 +
  106 + public UpdateUserId(id: number, newLoginId: string): Observable<any> {
  107 + console.log('inside user-service updateUserId');
  108 + let headers = new Headers();
  109 + headers.append('Content-type', 'application/x-www-form-urlencoded');
  110 + let options = new RequestOptions({ headers: headers });
  111 +
  112 + let params = new URLSearchParams();
  113 + params.append('iUserId', id.toString());
  114 + params.append('newLoginId', newLoginId);
  115 + let body = params.toString();
  116 + return this.http.post('http://localhost:85/AIAHTML5.Server/api/changeuserid', body, options)
  117 + .map(this.extractData)
  118 + .catch(this.handleError);
  119 +
  120 + }
  121 +
  122 + public GetUserDetailsByLoginIdandPassword(loginId: string, password: string): Observable<any> {
  123 + console.log('inside user-service getUserDetailsByLoginIdandPassword');
  124 + debugger;
  125 + let headers = new Headers();
  126 + headers.append('Content-Type', 'application/json');
  127 + //headers.append('Content-type', 'application/x-www-form-urlencoded');
  128 + let options = new RequestOptions({ headers: headers });
  129 +
  130 + let params = new URLSearchParams();
  131 + params.append('sLoginId', loginId);
  132 + params.append('sPassword', password);
  133 +
  134 + return this.http.get('http://localhost:85/AIAHTML5.Server/api/changeuserpassword', { headers: headers, search: params })
  135 + .map(this.extractData)
  136 + .catch(this.handleError);
  137 +
  138 + }
  139 +
  140 + public UpdateUserPassword(id: number, newPassword: string): Observable<any> {
  141 + console.log('inside user-service UpdateUserPassword');
  142 + let headers = new Headers();
  143 + headers.append('Content-type', 'application/x-www-form-urlencoded');
  144 + let options = new RequestOptions({ headers: headers });
  145 +
  146 + let params = new URLSearchParams();
  147 + params.append('iUserId', id.toString());
  148 + params.append('newPassword', newPassword);
  149 + let body = params.toString();
  150 + return this.http.post('http://localhost:85/AIAHTML5.Server/api/changeuserpassword', body, options)
  151 + .map(this.extractData)
  152 + .catch(this.handleError);
  153 +
  154 + }
  155 +}
0 156 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/shared/Confirm/confirm.component.html 0 → 100644
  1 +
  2 +
  3 +<modal #closeModal [keyboard]="false" [backdrop]="'static'" style="z-index:1100">
  4 + <div>
  5 + <div class="modal-header alert-header-custom">
  6 + <button type="button" class="alert-closebutton" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  7 + <h5 class="modal-title"><b>AIA</b></h5>
  8 +
  9 + </div>
  10 + <modal-body class="bg-gray-lighter">
  11 + <div class="row">
  12 + <div class="col-sm-12 text-center">
  13 + <span style="float:left">
  14 + <img src="../../assets/img/alertmessage.png" />
  15 + </span>
  16 + <p>
  17 + {{message}}
  18 + </p>
  19 + <br/>
  20 + </div>
  21 + <div class="text-center" [hidden]="alertshow">
  22 + <input type="button" class="btn btn-default alert-margin" id="okButton" value="Yes">
  23 + <input type="button" class="btn btn-default alert-margin" id="noButton" value="No">
  24 + <input type="button" class="btn btn-default alert-margin" id="cancelButton" value="Cancel">
  25 + </div>
  26 + </div>
  27 + </modal-body>
  28 + </div>
  29 +</modal>
  30 +<modal #resetModal [keyboard]="false" [backdrop]="'static'" style="z-index:1100">
  31 + <div >
  32 + <div class="modal-header alert-header-custom">
  33 + <button type="button" class="alert-closebutton" data-dismiss="modal" aria-label="Close" ><span aria-hidden="true" >&times;</span></button>
  34 + <h5 class="modal-title"><b>AIA</b></h5>
  35 + </div>
  36 + <modal-body class="bg-gray-lighter">
  37 + <div class="row">
  38 + <div class="col-sm-12 text-center">
  39 + <span style="float:left">
  40 + <img src="../../assets/img/alertmessage.png" />
  41 + </span>
  42 + <p>{{message}}
  43 + </p>
  44 + </div>
  45 +
  46 + <div class="text-center">
  47 + <input type="button" class="btn btn-default alert-margin" id="yesResetButton" value="Yes">
  48 + <input type="button" class="btn btn-default alert-margin" id="noResetButton" value="No">
  49 + </div>
  50 + </div>
  51 +</modal-body>
  52 + </div>
  53 +</modal>
  54 +
  55 +<modal #alertMessageModal [keyboard]="false" [backdrop]="'static'" style="z-index:1100">
  56 + <div >
  57 + <div class="modal-header alert-header-custom">
  58 + <button type="button" class="alert-closebutton" id="closeAlert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  59 + <h5 class="modal-title"><b>AIA</b></h5>
  60 + </div>
  61 + <modal-body class="bg-gray-lighter">
  62 + <div class="row">
  63 + <div class="col-sm-12 text-center">
  64 + <span style="float:left">
  65 + <img src="../../assets/img/alertmessage.png" />
  66 + </span>
  67 + <p>
  68 + {{message}}
  69 + </p>
  70 + </div>
  71 +
  72 + <div class="text-center">
  73 + <input type="button" class="btn btn-default alert-margin" id="okAlert" value="OK">
  74 + </div>
  75 + </div>
  76 + </modal-body>
  77 +
  78 + </div>
  79 +</modal>
  80 +
  81 +
  82 +
  83 +<modal #confirmModel [keyboard]="false" [backdrop]="'static'" style="z-index:1100">
  84 + <div>
  85 + <div class="modal-header alert-header-custom">
  86 + <button type="button" class="alert-closebutton" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  87 + <h5 class="modal-title"><b>AIA</b></h5>
  88 + </div>
  89 + <modal-body class="bg-gray-lighter">
  90 + <div class="row">
  91 + <div class="col-sm-12 text-center">
  92 + <span style="float:left">
  93 + <img src="../../assets/img/alertmessage.png" />
  94 + </span>
  95 + <p>
  96 + {{message}}
  97 + </p>
  98 + </div>
  99 +
  100 + <div class="text-center">
  101 + <input type="button" class="btn btn-default alert-margin" id="yesConfirmButton" value="Yes">
  102 + <input type="button" class="btn btn-default alert-margin" id="noConfirmButton" value="No">
  103 + </div>
  104 + </div>
  105 + </modal-body>
  106 + </div>
  107 +</modal>
... ...
400-SOURCECODE/Admin/src/app/shared/Confirm/confirm.component.ts 0 → 100644
  1 + import { Component, OnInit, Input, Output, EventEmitter, ElementRef, ViewChild } from "@angular/core";
  2 +import {ConfirmService} from "./confirm.service";
  3 +import { ModalComponent } from "ng2-bs3-modal/ng2-bs3-modal";
  4 +const KEY_ESC = 27;
  5 +
  6 +@Component({
  7 + selector: 'modal-confirm',
  8 + templateUrl: './confirm.component.html',
  9 +})
  10 +export class ConfirmComponent implements OnInit {
  11 +
  12 + private _defaults = {
  13 + type: 'reset',
  14 + message: 'Do you want to cancel your changes?',
  15 + cancelText: 'Cancel',
  16 + okText: 'OK'
  17 + };
  18 + timer: any;
  19 + type: string;
  20 + alertshow:boolean=false;
  21 + message:string;
  22 + okText:string;
  23 + cancelText: string;
  24 + modalType:string;
  25 + @ViewChild("closeModal")
  26 + closeModal: ModalComponent;
  27 + @ViewChild("confirmModel")
  28 + confirmModel: ModalComponent;
  29 + @ViewChild("resetModal")
  30 + resetModal: ModalComponent;
  31 + @ViewChild("alertMessageModal")
  32 + alertMessageModal: ModalComponent;
  33 + private _confirmElement:any;
  34 + private _cancelButton:any;
  35 + private _okButton: any;
  36 + private _noButton: any;
  37 + private _yesResetButton: any;
  38 + private _noResetButton: any;
  39 + private _yesConfirmButton: any;
  40 + private _noConfirmButton: any;
  41 + private _okAlert: any;
  42 + private _closeAlert: any;
  43 +
  44 + constructor(confirmService:ConfirmService) {
  45 + confirmService.activate = this.activate.bind(this);
  46 + }
  47 +
  48 + _setLabels(message = this._defaults.message, type = this._defaults.type) {
  49 + // this.modalType = type;
  50 + this.type = type;
  51 + //this.alertshow = type == 'reset' ? true : false;
  52 + this.message = message;
  53 + this.okText = this._defaults.okText;
  54 + this.cancelText = this._defaults.cancelText;
  55 + }
  56 +
  57 + activate(message = this._defaults.message, type = this._defaults.type) {
  58 + this._setLabels(message, type);
  59 + let promise = new Promise<boolean>(resolve => {
  60 + this._show(resolve);
  61 + });
  62 + return promise;
  63 + }
  64 +
  65 + private _show(resolve:(boolean) => any) {
  66 + document.onkeyup = null;
  67 + let yesOnClick = (e: any) => resolve(1); // 1 for yes
  68 + let noOnClick = (e: any) => resolve(2); // 2 for no
  69 + let cancelOnClick = (e: any) => resolve(3); // 3 for cancel
  70 + let yesResetClick = (e: any) => resolve(1);
  71 + let noResetClick = (e: any) => resolve(2);
  72 + let yesConfirmClick = (e: any) => resolve(6); // yes
  73 + let noConfirmClick = (e: any) => resolve(7); // NO
  74 +
  75 +
  76 + let okAlertClick = (e: any) => resolve(5); // for alert message
  77 + let closeAlertClick = (e: any) => resolve(8); // for alert message
  78 + if (!this._cancelButton || !this._okButton) return;
  79 + //this._confirmElement.style.opacity = 0;
  80 + //this._confirmElement.style.zIndex = 9999;
  81 + this._cancelButton.onclick = ((e:any) => {
  82 + e.preventDefault();
  83 + if (!cancelOnClick(e)) this._hideDialog();
  84 + })
  85 +
  86 + this._okButton.onclick = ((e:any) => {
  87 + e.preventDefault();
  88 + if (!yesOnClick(e)) this._hideDialog()
  89 + });
  90 + this._noButton.onclick = ((e: any) => {
  91 + e.preventDefault();
  92 + if (!noOnClick(e)) this._hideDialog()
  93 + });
  94 +
  95 + this._noResetButton.onclick = ((e: any) => {
  96 + e.preventDefault();
  97 + if (!noResetClick(e)) this._hideDialog()
  98 + });
  99 + this._yesResetButton.onclick = ((e: any) => {
  100 + e.preventDefault();
  101 + if (!yesResetClick(e)) this._hideDialog()
  102 + });
  103 +
  104 +
  105 + this._noConfirmButton.onclick = ((e: any) => {
  106 + e.preventDefault();
  107 + if (!noConfirmClick(e)) this._hideDialog()
  108 + });
  109 + this._yesConfirmButton.onclick = ((e: any) => {
  110 + e.preventDefault();
  111 + if (!yesConfirmClick(e)) this._hideDialog()
  112 + });
  113 +
  114 +
  115 + this._okAlert.onclick = ((e: any) => {
  116 + e.preventDefault();
  117 + if (!okAlertClick(e)) this._hideDialog()
  118 + });
  119 + this._closeAlert.onclick = ((e: any) => {
  120 + e.preventDefault();
  121 + if (!closeAlertClick(e)) this._hideDialog()
  122 + });
  123 + //this._confirmelement.onclick = () => {
  124 + // this._hidedialog();
  125 + // return negativeonclick(null);
  126 + //};
  127 + if (this.type.toString() == "close") {
  128 + this.closeModal.open('sm');
  129 + return;
  130 + }
  131 + if (this.type.toString() == "reset") {
  132 + this.resetModal.open('sm');
  133 + return;
  134 + }
  135 +
  136 + if (this.type.toString() == "confirmModel") {
  137 + this.confirmModel.open('sm');
  138 + return;
  139 + }
  140 +
  141 + if (this.type.toString() == "alertMsg") {
  142 + //setTimeout(this.alertMessageModal.open('sm'), 60000);
  143 + clearTimeout(this.timer);
  144 + this.timer = setTimeout(() => {
  145 + this.alertMessageModal.open('sm');
  146 + }, 500);
  147 + return;
  148 + }
  149 + if (this.type.toString() == "alertMsg2") {
  150 +
  151 + this.alertMessageModal.open('sm');
  152 + return;
  153 + }
  154 + document.onkeyup = (e:any) => {
  155 + if (e.which == KEY_ESC) {
  156 + this._hideDialog();
  157 + return cancelOnClick(null);
  158 + }
  159 + };
  160 +
  161 + //this._confirmElement.style.opacity = 1;
  162 + }
  163 +
  164 + private _hideDialog() {
  165 + if (this.type.toString() == "close") {
  166 + this.closeModal.close();
  167 + return;
  168 + }
  169 + if (this.type.toString() == "reset") {
  170 + this.resetModal.close();
  171 + return;
  172 + }
  173 +
  174 + if (this.type.toString() == "confirmModel") {
  175 + this.confirmModel.close();
  176 + return;
  177 + }
  178 +
  179 + if (this.type.toString() == "alertMsg") {
  180 + this.alertMessageModal.close();
  181 + return;
  182 + }
  183 + if (this.type.toString() == "alertMsg2") {
  184 + this.alertMessageModal.close();
  185 + return;
  186 + }
  187 +
  188 + }
  189 +
  190 + ngOnInit():any {
  191 + //this._confirmElement = document.getElementById('confirmationModal');
  192 + this._cancelButton = document.getElementById('cancelButton');
  193 + this._okButton = document.getElementById('okButton');
  194 + this._noButton = document.getElementById('noButton');
  195 + this._yesResetButton = document.getElementById('yesResetButton');
  196 + this._noResetButton = document.getElementById('noResetButton');
  197 + this._yesConfirmButton = document.getElementById('yesConfirmButton');
  198 + this._noConfirmButton = document.getElementById('noConfirmButton');
  199 + this._okAlert = document.getElementById('okAlert');
  200 + this._closeAlert = document.getElementById('closeAlert');
  201 +
  202 + }
  203 +}
... ...
400-SOURCECODE/Admin/src/app/shared/Confirm/confirm.service.ts 0 → 100644
  1 +import {Injectable} from '@angular/core';
  2 +
  3 +@Injectable()
  4 +export class ConfirmService {
  5 + activate: (message?: string, type?:string) => Promise<boolean>;
  6 +}
0 7 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/shared/enum.js 0 → 100644
  1 +"use strict";
  2 +Object.defineProperty(exports, "__esModule", { value: true });
  3 +var DBOperation;
  4 +(function (DBOperation) {
  5 + DBOperation[DBOperation["create"] = 1] = "create";
  6 + DBOperation[DBOperation["update"] = 2] = "update";
  7 + DBOperation[DBOperation["delete"] = 3] = "delete";
  8 +})(DBOperation = exports.DBOperation || (exports.DBOperation = {}));
  9 +//# sourceMappingURL=enum.js.map
0 10 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/shared/enum.js.map 0 → 100644
  1 +{"version":3,"file":"enum.js","sourceRoot":"","sources":["enum.ts"],"names":[],"mappings":";;AAAA,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,iDAAU,CAAA;IACV,iDAAU,CAAA;IACV,iDAAS,CAAA;AACb,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB"}
0 2 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/shared/enum.ts 0 → 100644
  1 +export enum DBOperation {
  2 + create = 1,
  3 + update = 2,
  4 + delete =3
  5 +}
0 6 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/shared/global.js 0 → 100644
  1 +"use strict";
  2 +Object.defineProperty(exports, "__esModule", { value: true });
  3 +var Global = (function () {
  4 + function Global() {
  5 + }
  6 + return Global;
  7 +}());
  8 +Global.BASE_USER_ENDPOINT = 'api/userapi/';
  9 +exports.Global = Global;
  10 +//# sourceMappingURL=global.js.map
0 11 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/shared/global.js.map 0 → 100644
  1 +{"version":3,"file":"global.js","sourceRoot":"","sources":["global.ts"],"names":[],"mappings":";;AAAA;IAAA;IAEA,CAAC;IAAD,aAAC;AAAD,CAAC,AAFD;AACkB,yBAAkB,GAAG,cAAc,CAAC;AADzC,wBAAM"}
0 2 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/app/shared/global.ts 0 → 100644
  1 +export class GlobalService {
  2 + resourceBaseUrl: string = "";
  3 + hostURL: string = "";
  4 + UserId: number = 6;
  5 + UserType: number = 0;
  6 + AccountType: number = 0;
  7 + constructor() {
  8 + this.hostURL = window.location.hostname;
  9 + this.resourceBaseUrl = "http://192.168.84.242:97/User";
  10 + }
  11 +}
... ...
400-SOURCECODE/Admin/src/assets/.gitkeep 0 → 100644
400-SOURCECODE/Admin/src/assets/img/alertmessage.png 0 → 100644

1.76 KB

400-SOURCECODE/Admin/src/assets/img/bg.gif 0 → 100644

64 Bytes

400-SOURCECODE/Admin/src/assets/img/calander.png 0 → 100644

456 Bytes

400-SOURCECODE/Admin/src/assets/img/close-button.png 0 → 100644

588 Bytes

400-SOURCECODE/Admin/src/assets/img/doller.png 0 → 100644

438 Bytes

400-SOURCECODE/Admin/src/assets/img/img1 - Copy.png 0 → 100644

378 KB

400-SOURCECODE/Admin/src/assets/img/img1-white.png 0 → 100644

522 KB

400-SOURCECODE/Admin/src/assets/img/img1.png 0 → 100644

383 KB

400-SOURCECODE/Admin/src/assets/img/logo-large.png 0 → 100644

16.4 KB

400-SOURCECODE/Admin/src/assets/img/logo-main.png 0 → 100644

5.51 KB

400-SOURCECODE/Admin/src/assets/img/search.png 0 → 100644

1.47 KB

400-SOURCECODE/Admin/src/assets/scripts/bootstrap-datetimepicker.min.js 0 → 100644
  1 +/**
  2 + * @license
  3 + * =========================================================
  4 + * bootstrap-datetimepicker.js
  5 + * http://www.eyecon.ro/bootstrap-datepicker
  6 + * =========================================================
  7 + * Copyright 2012 Stefan Petre
  8 + *
  9 + * Contributions:
  10 + * - Andrew Rowls
  11 + * - Thiago de Arruda
  12 + *
  13 + * Licensed under the Apache License, Version 2.0 (the "License");
  14 + * you may not use this file except in compliance with the License.
  15 + * You may obtain a copy of the License at
  16 + *
  17 + * http://www.apache.org/licenses/LICENSE-2.0
  18 + *
  19 + * Unless required by applicable law or agreed to in writing, software
  20 + * distributed under the License is distributed on an "AS IS" BASIS,
  21 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  22 + * See the License for the specific language governing permissions and
  23 + * limitations under the License.
  24 + * =========================================================
  25 + */
  26 +(function($){var smartPhone=window.orientation!=undefined;var DateTimePicker=function(element,options){this.id=dpgId++;this.init(element,options)};var dateToDate=function(dt){if(typeof dt==="string"){return new Date(dt)}return dt};DateTimePicker.prototype={constructor:DateTimePicker,init:function(element,options){var icon;if(!(options.pickTime||options.pickDate))throw new Error("Must choose at least one picker");this.options=options;this.$element=$(element);this.language=options.language in dates?options.language:"en";this.pickDate=options.pickDate;this.pickTime=options.pickTime;this.isInput=this.$element.is("input");this.component=false;if(this.$element.find(".input-append")||this.$element.find(".input-prepend"))this.component=this.$element.find(".add-on");this.format=options.format;if(!this.format){if(this.isInput)this.format=this.$element.data("format");else this.format=this.$element.find("input").data("format");if(!this.format)this.format="MM/dd/yyyy"}this._compileFormat();if(this.component){icon=this.component.find("i")}if(this.pickTime){if(icon&&icon.length)this.timeIcon=icon.data("time-icon");if(!this.timeIcon)this.timeIcon="icon-time";icon.addClass(this.timeIcon)}if(this.pickDate){if(icon&&icon.length)this.dateIcon=icon.data("date-icon");if(!this.dateIcon)this.dateIcon="icon-calendar";icon.removeClass(this.timeIcon);icon.addClass(this.dateIcon)}this.widget=$(getTemplate(this.timeIcon,options.pickDate,options.pickTime,options.pick12HourFormat,options.pickSeconds,options.collapse)).appendTo("body");this.minViewMode=options.minViewMode||this.$element.data("date-minviewmode")||0;if(typeof this.minViewMode==="string"){switch(this.minViewMode){case"months":this.minViewMode=1;break;case"years":this.minViewMode=2;break;default:this.minViewMode=0;break}}this.viewMode=options.viewMode||this.$element.data("date-viewmode")||0;if(typeof this.viewMode==="string"){switch(this.viewMode){case"months":this.viewMode=1;break;case"years":this.viewMode=2;break;default:this.viewMode=0;break}}this.startViewMode=this.viewMode;this.weekStart=options.weekStart||this.$element.data("date-weekstart")||0;this.weekEnd=this.weekStart===0?6:this.weekStart-1;this.setStartDate(options.startDate||this.$element.data("date-startdate"));this.setEndDate(options.endDate||this.$element.data("date-enddate"));this.fillDow();this.fillMonths();this.fillHours();this.fillMinutes();this.fillSeconds();this.update();this.showMode();this._attachDatePickerEvents()},show:function(e){this.widget.show();this.height=this.component?this.component.outerHeight():this.$element.outerHeight();this.place();this.$element.trigger({type:"show",date:this._date});this._attachDatePickerGlobalEvents();if(e){e.stopPropagation();e.preventDefault()}},disable:function(){this.$element.find("input").prop("disabled",true);this._detachDatePickerEvents()},enable:function(){this.$element.find("input").prop("disabled",false);this._attachDatePickerEvents()},hide:function(){var collapse=this.widget.find(".collapse");for(var i=0;i<collapse.length;i++){var collapseData=collapse.eq(i).data("collapse");if(collapseData&&collapseData.transitioning)return}this.widget.hide();this.viewMode=this.startViewMode;this.showMode();this.set();this.$element.trigger({type:"hide",date:this._date});this._detachDatePickerGlobalEvents()},set:function(){var formatted="";if(!this._unset)formatted=this.formatDate(this._date);if(!this.isInput){if(this.component){var input=this.$element.find("input");input.val(formatted);this._resetMaskPos(input)}this.$element.data("date",formatted)}else{this.$element.val(formatted);this._resetMaskPos(this.$element)}},setValue:function(newDate){if(!newDate){this._unset=true}else{this._unset=false}if(typeof newDate==="string"){this._date=this.parseDate(newDate)}else if(newDate){this._date=new Date(newDate)}this.set();this.viewDate=UTCDate(this._date.getUTCFullYear(),this._date.getUTCMonth(),1,0,0,0,0);this.fillDate();this.fillTime()},getDate:function(){if(this._unset)return null;return new Date(this._date.valueOf())},setDate:function(date){if(!date)this.setValue(null);else this.setValue(date.valueOf())},setStartDate:function(date){if(date instanceof Date){this.startDate=date}else if(typeof date==="string"){this.startDate=new UTCDate(date);if(!this.startDate.getUTCFullYear()){this.startDate=-Infinity}}else{this.startDate=-Infinity}if(this.viewDate){this.update()}},setEndDate:function(date){if(date instanceof Date){this.endDate=date}else if(typeof date==="string"){this.endDate=new UTCDate(date);if(!this.endDate.getUTCFullYear()){this.endDate=Infinity}}else{this.endDate=Infinity}if(this.viewDate){this.update()}},getLocalDate:function(){if(this._unset)return null;var d=this._date;return new Date(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate(),d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds())},setLocalDate:function(localDate){if(!localDate)this.setValue(null);else this.setValue(Date.UTC(localDate.getFullYear(),localDate.getMonth(),localDate.getDate(),localDate.getHours(),localDate.getMinutes(),localDate.getSeconds(),localDate.getMilliseconds()))},place:function(){var position="absolute";var offset=this.component?this.component.offset():this.$element.offset();this.width=this.component?this.component.outerWidth():this.$element.outerWidth();offset.top=offset.top+this.height;var $window=$(window);if(this.options.width!=undefined){this.widget.width(this.options.width)}if(this.options.orientation=="left"){this.widget.addClass("left-oriented");offset.left=offset.left-this.widget.width()+20}if(this._isInFixed()){position="fixed";offset.top-=$window.scrollTop();offset.left-=$window.scrollLeft()}if($window.width()<offset.left+this.widget.outerWidth()){offset.right=$window.width()-offset.left-this.width;offset.left="auto";this.widget.addClass("pull-right")}else{offset.right="auto";this.widget.removeClass("pull-right")}this.widget.css({position:position,top:offset.top,left:offset.left,right:offset.right})},notifyChange:function(){this.$element.trigger({type:"changeDate",date:this.getDate(),localDate:this.getLocalDate()})},update:function(newDate){var dateStr=newDate;if(!dateStr){if(this.isInput){dateStr=this.$element.val()}else{dateStr=this.$element.find("input").val()}if(dateStr){this._date=this.parseDate(dateStr)}if(!this._date){var tmp=new Date;this._date=UTCDate(tmp.getFullYear(),tmp.getMonth(),tmp.getDate(),tmp.getHours(),tmp.getMinutes(),tmp.getSeconds(),tmp.getMilliseconds())}}this.viewDate=UTCDate(this._date.getUTCFullYear(),this._date.getUTCMonth(),1,0,0,0,0);this.fillDate();this.fillTime()},fillDow:function(){var dowCnt=this.weekStart;var html=$("<tr>");while(dowCnt<this.weekStart+7){html.append('<th class="dow">'+dates[this.language].daysMin[dowCnt++%7]+"</th>")}this.widget.find(".datepicker-days thead").append(html)},fillMonths:function(){var html="";var i=0;while(i<12){html+='<span class="month">'+dates[this.language].monthsShort[i++]+"</span>"}this.widget.find(".datepicker-months td").append(html)},fillDate:function(){var year=this.viewDate.getUTCFullYear();var month=this.viewDate.getUTCMonth();var currentDate=UTCDate(this._date.getUTCFullYear(),this._date.getUTCMonth(),this._date.getUTCDate(),0,0,0,0);var startYear=typeof this.startDate==="object"?this.startDate.getUTCFullYear():-Infinity;var startMonth=typeof this.startDate==="object"?this.startDate.getUTCMonth():-1;var endYear=typeof this.endDate==="object"?this.endDate.getUTCFullYear():Infinity;var endMonth=typeof this.endDate==="object"?this.endDate.getUTCMonth():12;this.widget.find(".datepicker-days").find(".disabled").removeClass("disabled");this.widget.find(".datepicker-months").find(".disabled").removeClass("disabled");this.widget.find(".datepicker-years").find(".disabled").removeClass("disabled");this.widget.find(".datepicker-days th:eq(1)").text(dates[this.language].months[month]+" "+year);var prevMonth=UTCDate(year,month-1,28,0,0,0,0);var day=DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(),prevMonth.getUTCMonth());prevMonth.setUTCDate(day);prevMonth.setUTCDate(day-(prevMonth.getUTCDay()-this.weekStart+7)%7);if(year==startYear&&month<=startMonth||year<startYear){this.widget.find(".datepicker-days th:eq(0)").addClass("disabled")}if(year==endYear&&month>=endMonth||year>endYear){this.widget.find(".datepicker-days th:eq(2)").addClass("disabled")}var nextMonth=new Date(prevMonth.valueOf());nextMonth.setUTCDate(nextMonth.getUTCDate()+42);nextMonth=nextMonth.valueOf();var html=[];var row;var clsName;while(prevMonth.valueOf()<nextMonth){if(prevMonth.getUTCDay()===this.weekStart){row=$("<tr>");html.push(row)}clsName="";if(prevMonth.getUTCFullYear()<year||prevMonth.getUTCFullYear()==year&&prevMonth.getUTCMonth()<month){clsName+=" old"}else if(prevMonth.getUTCFullYear()>year||prevMonth.getUTCFullYear()==year&&prevMonth.getUTCMonth()>month){clsName+=" new"}if(prevMonth.valueOf()===currentDate.valueOf()){clsName+=" active"}if(prevMonth.valueOf()+864e5<=this.startDate){clsName+=" disabled"}if(prevMonth.valueOf()>this.endDate){clsName+=" disabled"}row.append('<td class="day'+clsName+'">'+prevMonth.getUTCDate()+"</td>");prevMonth.setUTCDate(prevMonth.getUTCDate()+1)}this.widget.find(".datepicker-days tbody").empty().append(html);var currentYear=this._date.getUTCFullYear();var months=this.widget.find(".datepicker-months").find("th:eq(1)").text(year).end().find("span").removeClass("active");if(currentYear===year){months.eq(this._date.getUTCMonth()).addClass("active")}if(currentYear-1<startYear){this.widget.find(".datepicker-months th:eq(0)").addClass("disabled")}if(currentYear+1>endYear){this.widget.find(".datepicker-months th:eq(2)").addClass("disabled")}for(var i=0;i<12;i++){if(year==startYear&&startMonth>i||year<startYear){$(months[i]).addClass("disabled")}else if(year==endYear&&endMonth<i||year>endYear){$(months[i]).addClass("disabled")}}html="";year=parseInt(year/10,10)*10;var yearCont=this.widget.find(".datepicker-years").find("th:eq(1)").text(year+"-"+(year+9)).end().find("td");this.widget.find(".datepicker-years").find("th").removeClass("disabled");if(startYear>year){this.widget.find(".datepicker-years").find("th:eq(0)").addClass("disabled")}if(endYear<year+9){this.widget.find(".datepicker-years").find("th:eq(2)").addClass("disabled")}year-=1;for(var i=-1;i<11;i++){html+='<span class="year'+(i===-1||i===10?" old":"")+(currentYear===year?" active":"")+(year<startYear||year>endYear?" disabled":"")+'">'+year+"</span>";year+=1}yearCont.html(html)},fillHours:function(){var table=this.widget.find(".timepicker .timepicker-hours table");table.parent().hide();var html="";if(this.options.pick12HourFormat){var current=1;for(var i=0;i<3;i+=1){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="hour">'+padLeft(c,2,"0")+"</td>";current++}html+="</tr>"}}else{var current=0;for(var i=0;i<6;i+=1){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="hour">'+padLeft(c,2,"0")+"</td>";current++}html+="</tr>"}}table.html(html)},fillMinutes:function(){var table=this.widget.find(".timepicker .timepicker-minutes table");table.parent().hide();var html="";var current=0;for(var i=0;i<5;i++){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="minute">'+padLeft(c,2,"0")+"</td>";current+=3}html+="</tr>"}table.html(html)},fillSeconds:function(){var table=this.widget.find(".timepicker .timepicker-seconds table");table.parent().hide();var html="";var current=0;for(var i=0;i<5;i++){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="second">'+padLeft(c,2,"0")+"</td>";current+=3}html+="</tr>"}table.html(html)},fillTime:function(){if(!this._date)return;var timeComponents=this.widget.find(".timepicker span[data-time-component]");var table=timeComponents.closest("table");var is12HourFormat=this.options.pick12HourFormat;var hour=this._date.getUTCHours();var period="AM";if(is12HourFormat){if(hour>=12)period="PM";if(hour===0)hour=12;else if(hour!=12)hour=hour%12;this.widget.find(".timepicker [data-action=togglePeriod]").text(period)}hour=padLeft(hour.toString(),2,"0");var minute=padLeft(this._date.getUTCMinutes().toString(),2,"0");var second=padLeft(this._date.getUTCSeconds().toString(),2,"0");timeComponents.filter("[data-time-component=hours]").text(hour);timeComponents.filter("[data-time-component=minutes]").text(minute);timeComponents.filter("[data-time-component=seconds]").text(second)},click:function(e){e.stopPropagation();e.preventDefault();this._unset=false;var target=$(e.target).closest("span, td, th");if(target.length===1){if(!target.is(".disabled")){switch(target[0].nodeName.toLowerCase()){case"th":switch(target[0].className){case"switch":this.showMode(1);break;case"prev":case"next":var vd=this.viewDate;var navFnc=DPGlobal.modes[this.viewMode].navFnc;var step=DPGlobal.modes[this.viewMode].navStep;if(target[0].className==="prev")step=step*-1;vd["set"+navFnc](vd["get"+navFnc]()+step);this.fillDate();this.set();break}break;case"span":if(target.is(".month")){var month=target.parent().find("span").index(target);this.viewDate.setUTCMonth(month)}else{var year=parseInt(target.text(),10)||0;this.viewDate.setUTCFullYear(year)}if(this.viewMode!==0){this._date=UTCDate(this.viewDate.getUTCFullYear(),this.viewDate.getUTCMonth(),this.viewDate.getUTCDate(),this._date.getUTCHours(),this._date.getUTCMinutes(),this._date.getUTCSeconds(),this._date.getUTCMilliseconds());this.notifyChange()}this.showMode(-1);this.fillDate();this.set();break;case"td":if(target.is(".day")){var day=parseInt(target.text(),10)||1;var month=this.viewDate.getUTCMonth();var year=this.viewDate.getUTCFullYear();if(target.is(".old")){if(month===0){month=11;year-=1}else{month-=1}}else if(target.is(".new")){if(month==11){month=0;year+=1}else{month+=1}}this._date=UTCDate(year,month,day,this._date.getUTCHours(),this._date.getUTCMinutes(),this._date.getUTCSeconds(),this._date.getUTCMilliseconds());this.viewDate=UTCDate(year,month,Math.min(28,day),0,0,0,0);this.fillDate();this.set();this.notifyChange()}break}}}},actions:{incrementHours:function(e){this._date.setUTCHours(this._date.getUTCHours()+1)},incrementMinutes:function(e){this._date.setUTCMinutes(this._date.getUTCMinutes()+1)},incrementSeconds:function(e){this._date.setUTCSeconds(this._date.getUTCSeconds()+1)},decrementHours:function(e){this._date.setUTCHours(this._date.getUTCHours()-1)},decrementMinutes:function(e){this._date.setUTCMinutes(this._date.getUTCMinutes()-1)},decrementSeconds:function(e){this._date.setUTCSeconds(this._date.getUTCSeconds()-1)},togglePeriod:function(e){var hour=this._date.getUTCHours();if(hour>=12)hour-=12;else hour+=12;this._date.setUTCHours(hour)},showPicker:function(){this.widget.find(".timepicker > div:not(.timepicker-picker)").hide();this.widget.find(".timepicker .timepicker-picker").show()},showHours:function(){this.widget.find(".timepicker .timepicker-picker").hide();this.widget.find(".timepicker .timepicker-hours").show()},showMinutes:function(){this.widget.find(".timepicker .timepicker-picker").hide();this.widget.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){this.widget.find(".timepicker .timepicker-picker").hide();this.widget.find(".timepicker .timepicker-seconds").show()},selectHour:function(e){var tgt=$(e.target);var value=parseInt(tgt.text(),10);if(this.options.pick12HourFormat){var current=this._date.getUTCHours();if(current>=12){if(value!=12)value=(value+12)%24}else{if(value===12)value=0;else value=value%12}}this._date.setUTCHours(value);this.actions.showPicker.call(this)},selectMinute:function(e){var tgt=$(e.target);var value=parseInt(tgt.text(),10);this._date.setUTCMinutes(value);this.actions.showPicker.call(this)},selectSecond:function(e){var tgt=$(e.target);var value=parseInt(tgt.text(),10);this._date.setUTCSeconds(value);this.actions.showPicker.call(this)}},doAction:function(e){e.stopPropagation();e.preventDefault();if(!this._date)this._date=UTCDate(1970,0,0,0,0,0,0);var action=$(e.currentTarget).data("action");var rv=this.actions[action].apply(this,arguments);this.set();this.fillTime();this.notifyChange();return rv},stopEvent:function(e){e.stopPropagation();e.preventDefault()},keydown:function(e){var self=this,k=e.which,input=$(e.target);if(k==8||k==46){setTimeout(function(){self._resetMaskPos(input)})}},keypress:function(e){var k=e.which;if(k==8||k==46){return}var input=$(e.target);var c=String.fromCharCode(k);var val=input.val()||"";val+=c;var mask=this._mask[this._maskPos];if(!mask){return false}if(mask.end!=val.length){return}if(!mask.pattern.test(val.slice(mask.start))){val=val.slice(0,val.length-1);while((mask=this._mask[this._maskPos])&&mask.character){val+=mask.character;this._maskPos++}val+=c;if(mask.end!=val.length){input.val(val);return false}else{if(!mask.pattern.test(val.slice(mask.start))){input.val(val.slice(0,mask.start));return false}else{input.val(val);this._maskPos++;return false}}}else{this._maskPos++}},change:function(e){var input=$(e.target);var val=input.val();if(this._formatPattern.test(val)){this.update();this.setValue(this._date.getTime());this.notifyChange();this.set()}else if(val&&val.trim()){this.setValue(this._date.getTime());if(this._date)this.set();else input.val("")}else{if(this._date){this.setValue(null);this.notifyChange();this._unset=true}}this._resetMaskPos(input)},showMode:function(dir){if(dir){this.viewMode=Math.max(this.minViewMode,Math.min(2,this.viewMode+dir))}this.widget.find(".datepicker > div").hide().filter(".datepicker-"+DPGlobal.modes[this.viewMode].clsName).show()},destroy:function(){this._detachDatePickerEvents();this._detachDatePickerGlobalEvents();this.widget.remove();this.$element.removeData("datetimepicker");this.component.removeData("datetimepicker")},formatDate:function(d){return this.format.replace(formatReplacer,function(match){var methodName,property,rv,len=match.length;if(match==="ms")len=1;property=dateFormatComponents[match].property;if(property==="Hours12"){rv=d.getUTCHours();if(rv===0)rv=12;else if(rv!==12)rv=rv%12}else if(property==="Period12"){if(d.getUTCHours()>=12)return"PM";else return"AM"}else{methodName="get"+property;rv=d[methodName]()}if(methodName==="getUTCMonth")rv=rv+1;if(methodName==="getUTCYear")rv=rv+1900-2e3;return padLeft(rv.toString(),len,"0")})},parseDate:function(str){var match,i,property,methodName,value,parsed={};if(!(match=this._formatPattern.exec(str)))return null;for(i=1;i<match.length;i++){property=this._propertiesByIndex[i];if(!property)continue;value=match[i];if(/^\d+$/.test(value))value=parseInt(value,10);parsed[property]=value}return this._finishParsingDate(parsed)},_resetMaskPos:function(input){var val=input.val();for(var i=0;i<this._mask.length;i++){if(this._mask[i].end>val.length){this._maskPos=i;break}else if(this._mask[i].end===val.length){this._maskPos=i+1;break}}},_finishParsingDate:function(parsed){var year,month,date,hours,minutes,seconds,milliseconds;year=parsed.UTCFullYear;if(parsed.UTCYear)year=2e3+parsed.UTCYear;if(!year)year=1970;if(parsed.UTCMonth)month=parsed.UTCMonth-1;else month=0;date=parsed.UTCDate||1;hours=parsed.UTCHours||0;minutes=parsed.UTCMinutes||0;seconds=parsed.UTCSeconds||0;milliseconds=parsed.UTCMilliseconds||0;if(parsed.Hours12){hours=parsed.Hours12}if(parsed.Period12){if(/pm/i.test(parsed.Period12)){if(hours!=12)hours=(hours+12)%24}else{hours=hours%12}}return UTCDate(year,month,date,hours,minutes,seconds,milliseconds)},_compileFormat:function(){var match,component,components=[],mask=[],str=this.format,propertiesByIndex={},i=0,pos=0;while(match=formatComponent.exec(str)){component=match[0];if(component in dateFormatComponents){i++;propertiesByIndex[i]=dateFormatComponents[component].property;components.push("\\s*"+dateFormatComponents[component].getPattern(this)+"\\s*");mask.push({pattern:new RegExp(dateFormatComponents[component].getPattern(this)),property:dateFormatComponents[component].property,start:pos,end:pos+=component.length})}else{components.push(escapeRegExp(component));mask.push({pattern:new RegExp(escapeRegExp(component)),character:component,start:pos,end:++pos})}str=str.slice(component.length)}this._mask=mask;this._maskPos=0;this._formatPattern=new RegExp("^\\s*"+components.join("")+"\\s*$");this._propertiesByIndex=propertiesByIndex},_attachDatePickerEvents:function(){var self=this;this.widget.on("click",".datepicker *",$.proxy(this.click,this));this.widget.on("click","[data-action]",$.proxy(this.doAction,this));this.widget.on("mousedown",$.proxy(this.stopEvent,this));if(this.pickDate&&this.pickTime){this.widget.on("click.togglePicker",".accordion-toggle",function(e){e.stopPropagation();var $this=$(this);var $parent=$this.closest("ul");var expanded=$parent.find(".collapse.in");var closed=$parent.find(".collapse:not(.in)");if(expanded&&expanded.length){var collapseData=expanded.data("collapse");if(collapseData&&collapseData.transitioning)return;expanded.collapse("hide");closed.collapse("show");$this.find("i").toggleClass(self.timeIcon+" "+self.dateIcon);self.$element.find(".add-on i").toggleClass(self.timeIcon+" "+self.dateIcon)}})}if(this.isInput){this.$element.on({focus:$.proxy(this.show,this),change:$.proxy(this.change,this)});if(this.options.maskInput){this.$element.on({keydown:$.proxy(this.keydown,this),keypress:$.proxy(this.keypress,this)})}}else{this.$element.on({change:$.proxy(this.change,this)},"input");if(this.options.maskInput){this.$element.on({keydown:$.proxy(this.keydown,this),keypress:$.proxy(this.keypress,this)},"input")}if(this.component){this.component.on("click",$.proxy(this.show,this))}else{this.$element.on("click",$.proxy(this.show,this))}}},_attachDatePickerGlobalEvents:function(){$(window).on("resize.datetimepicker"+this.id,$.proxy(this.place,this));if(!this.isInput){$(document).on("mousedown.datetimepicker"+this.id,$.proxy(this.hide,this))}},_detachDatePickerEvents:function(){this.widget.off("click",".datepicker *",this.click);this.widget.off("click","[data-action]");this.widget.off("mousedown",this.stopEvent);if(this.pickDate&&this.pickTime){this.widget.off("click.togglePicker")}if(this.isInput){this.$element.off({focus:this.show,change:this.change});if(this.options.maskInput){this.$element.off({keydown:this.keydown,keypress:this.keypress})}}else{this.$element.off({change:this.change},"input");if(this.options.maskInput){this.$element.off({keydown:this.keydown,keypress:this.keypress},"input")}if(this.component){this.component.off("click",this.show)}else{this.$element.off("click",this.show)}}},_detachDatePickerGlobalEvents:function(){$(window).off("resize.datetimepicker"+this.id);if(!this.isInput){$(document).off("mousedown.datetimepicker"+this.id)}},_isInFixed:function(){if(this.$element){var parents=this.$element.parents();var inFixed=false;for(var i=0;i<parents.length;i++){if($(parents[i]).css("position")=="fixed"){inFixed=true;break}}return inFixed}else{return false}}};$.fn.datetimepicker=function(option,val){return this.each(function(){var $this=$(this),data=$this.data("datetimepicker"),options=typeof option==="object"&&option;if(!data){$this.data("datetimepicker",data=new DateTimePicker(this,$.extend({},$.fn.datetimepicker.defaults,options)))}if(typeof option==="string")data[option](val)})};$.fn.datetimepicker.defaults={maskInput:false,pickDate:true,pickTime:true,pick12HourFormat:false,pickSeconds:true,startDate:-Infinity,endDate:Infinity,collapse:true};$.fn.datetimepicker.Constructor=DateTimePicker;var dpgId=0;var dates=$.fn.datetimepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}};var dateFormatComponents={dd:{property:"UTCDate",getPattern:function(){return"(0?[1-9]|[1-2][0-9]|3[0-1])\\b"}},MM:{property:"UTCMonth",getPattern:function(){return"(0?[1-9]|1[0-2])\\b"}},yy:{property:"UTCYear",getPattern:function(){return"(\\d{2})\\b"}},yyyy:{property:"UTCFullYear",getPattern:function(){return"(\\d{4})\\b"}},hh:{property:"UTCHours",getPattern:function(){return"(0?[0-9]|1[0-9]|2[0-3])\\b"}},mm:{property:"UTCMinutes",getPattern:function(){return"(0?[0-9]|[1-5][0-9])\\b"}},ss:{property:"UTCSeconds",getPattern:function(){return"(0?[0-9]|[1-5][0-9])\\b"}},ms:{property:"UTCMilliseconds",getPattern:function(){return"([0-9]{1,3})\\b"}},HH:{property:"Hours12",getPattern:function(){return"(0?[1-9]|1[0-2])\\b"}},PP:{property:"Period12",getPattern:function(){return"(AM|PM|am|pm|Am|aM|Pm|pM)\\b"}}};var keys=[];for(var k in dateFormatComponents)keys.push(k);keys[keys.length-1]+="\\b";keys.push(".");var formatComponent=new RegExp(keys.join("\\b|"));keys.pop();var formatReplacer=new RegExp(keys.join("\\b|"),"g");function escapeRegExp(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function padLeft(s,l,c){if(l<s.length)return s;else return Array(l-s.length+1).join(c||" ")+s}function getTemplate(timeIcon,pickDate,pickTime,is12Hours,showSeconds,collapse){if(pickDate&&pickTime){return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+"<ul>"+"<li"+(collapse?' class="collapse in"':"")+">"+'<div class="datepicker">'+DPGlobal.template+"</div>"+"</li>"+'<li class="picker-switch accordion-toggle"><a><i class="'+timeIcon+'"></i></a></li>'+"<li"+(collapse?' class="collapse"':"")+">"+'<div class="timepicker">'+TPGlobal.getTemplate(is12Hours,showSeconds)+"</div>"+"</li>"+"</ul>"+"</div>"}else if(pickTime){return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="timepicker">'+TPGlobal.getTemplate(is12Hours,showSeconds)+"</div>"+"</div>"}else{return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="datepicker">'+DPGlobal.template+"</div>"+"</div>"}}function UTCDate(){return new Date(Date.UTC.apply(Date,arguments))}var DPGlobal={modes:[{clsName:"days",navFnc:"UTCMonth",navStep:1},{clsName:"months",navFnc:"UTCFullYear",navStep:1},{clsName:"years",navFnc:"UTCFullYear",navStep:10}],isLeapYear:function(year){return year%4===0&&year%100!==0||year%400===0},getDaysInMonth:function(year,month){return[31,DPGlobal.isLeapYear(year)?29:28,31,30,31,30,31,31,30,31,30,31][month]},headTemplate:"<thead>"+"<tr>"+'<th class="prev">&lsaquo;</th>'+'<th colspan="5" class="switch"></th>'+'<th class="next">&rsaquo;</th>'+"</tr>"+"</thead>",contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>'};DPGlobal.template='<div class="datepicker-days">'+'<table class="table-condensed">'+DPGlobal.headTemplate+"<tbody></tbody>"+"</table>"+"</div>"+'<div class="datepicker-months">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+"</table>"+"</div>"+'<div class="datepicker-years">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+"</table>"+"</div>";var TPGlobal={hourTemplate:'<span data-action="showHours" data-time-component="hours" class="timepicker-hour"></span>',minuteTemplate:'<span data-action="showMinutes" data-time-component="minutes" class="timepicker-minute"></span>',secondTemplate:'<span data-action="showSeconds" data-time-component="seconds" class="timepicker-second"></span>'};TPGlobal.getTemplate=function(is12Hours,showSeconds){return'<div class="timepicker-picker">'+'<table class="table-condensed"'+(is12Hours?' data-hour-format="12"':"")+">"+"<tr>"+'<td><a href="#" class="btn" data-action="incrementHours"><i class="icon-chevron-up"></i></a></td>'+'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="incrementMinutes"><i class="icon-chevron-up"></i></a></td>'+(showSeconds?'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="incrementSeconds"><i class="icon-chevron-up"></i></a></td>':"")+(is12Hours?'<td class="separator"></td>':"")+"</tr>"+"<tr>"+"<td>"+TPGlobal.hourTemplate+"</td> "+'<td class="separator">:</td>'+"<td>"+TPGlobal.minuteTemplate+"</td> "+(showSeconds?'<td class="separator">:</td>'+"<td>"+TPGlobal.secondTemplate+"</td>":"")+(is12Hours?'<td class="separator"></td>'+"<td>"+'<button type="button" class="btn btn-primary" data-action="togglePeriod"></button>'+"</td>":"")+"</tr>"+"<tr>"+'<td><a href="#" class="btn" data-action="decrementHours"><i class="icon-chevron-down"></i></a></td>'+'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="decrementMinutes"><i class="icon-chevron-down"></i></a></td>'+(showSeconds?'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="decrementSeconds"><i class="icon-chevron-down"></i></a></td>':"")+(is12Hours?'<td class="separator"></td>':"")+"</tr>"+"</table>"+"</div>"+'<div class="timepicker-hours" data-action="selectHour">'+'<table class="table-condensed">'+"</table>"+"</div>"+'<div class="timepicker-minutes" data-action="selectMinute">'+'<table class="table-condensed">'+"</table>"+"</div>"+(showSeconds?'<div class="timepicker-seconds" data-action="selectSecond">'+'<table class="table-condensed">'+"</table>"+"</div>":"")}})(window.jQuery);
0 27 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/assets/scripts/bootstrap.js 0 → 100644
  1 +/*!
  2 + * Bootstrap v3.3.5 (http://getbootstrap.com)
  3 + * Copyright 2011-2015 Twitter, Inc.
  4 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  5 + */
  6 +
  7 +/*!
  8 + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=7b2c778c370c61853a11)
  9 + * Config saved to config.json and https://gist.github.com/7b2c778c370c61853a11
  10 + */
  11 +if (typeof jQuery === 'undefined') {
  12 + throw new Error('Bootstrap\'s JavaScript requires jQuery')
  13 +}
  14 ++function ($) {
  15 + 'use strict';
  16 + var version = $.fn.jquery.split(' ')[0].split('.')
  17 + if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {
  18 + throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')
  19 + }
  20 +}(jQuery);
  21 +
  22 +/* ========================================================================
  23 + * Bootstrap: alert.js v3.3.6
  24 + * http://getbootstrap.com/javascript/#alerts
  25 + * ========================================================================
  26 + * Copyright 2011-2015 Twitter, Inc.
  27 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  28 + * ======================================================================== */
  29 +
  30 +
  31 ++function ($) {
  32 + 'use strict';
  33 +
  34 + // ALERT CLASS DEFINITION
  35 + // ======================
  36 +
  37 + var dismiss = '[data-dismiss="alert"]'
  38 + var Alert = function (el) {
  39 + $(el).on('click', dismiss, this.close)
  40 + }
  41 +
  42 + Alert.VERSION = '3.3.6'
  43 +
  44 + Alert.TRANSITION_DURATION = 150
  45 +
  46 + Alert.prototype.close = function (e) {
  47 + var $this = $(this)
  48 + var selector = $this.attr('data-target')
  49 +
  50 + if (!selector) {
  51 + selector = $this.attr('href')
  52 + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
  53 + }
  54 +
  55 + var $parent = $(selector)
  56 +
  57 + if (e) e.preventDefault()
  58 +
  59 + if (!$parent.length) {
  60 + $parent = $this.closest('.alert')
  61 + }
  62 +
  63 + $parent.trigger(e = $.Event('close.bs.alert'))
  64 +
  65 + if (e.isDefaultPrevented()) return
  66 +
  67 + $parent.removeClass('in')
  68 +
  69 + function removeElement() {
  70 + // detach from parent, fire event then clean up data
  71 + $parent.detach().trigger('closed.bs.alert').remove()
  72 + }
  73 +
  74 + $.support.transition && $parent.hasClass('fade') ?
  75 + $parent
  76 + .one('bsTransitionEnd', removeElement)
  77 + .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
  78 + removeElement()
  79 + }
  80 +
  81 +
  82 + // ALERT PLUGIN DEFINITION
  83 + // =======================
  84 +
  85 + function Plugin(option) {
  86 + return this.each(function () {
  87 + var $this = $(this)
  88 + var data = $this.data('bs.alert')
  89 +
  90 + if (!data) $this.data('bs.alert', (data = new Alert(this)))
  91 + if (typeof option == 'string') data[option].call($this)
  92 + })
  93 + }
  94 +
  95 + var old = $.fn.alert
  96 +
  97 + $.fn.alert = Plugin
  98 + $.fn.alert.Constructor = Alert
  99 +
  100 +
  101 + // ALERT NO CONFLICT
  102 + // =================
  103 +
  104 + $.fn.alert.noConflict = function () {
  105 + $.fn.alert = old
  106 + return this
  107 + }
  108 +
  109 +
  110 + // ALERT DATA-API
  111 + // ==============
  112 +
  113 + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
  114 +
  115 +}(jQuery);
  116 +
  117 +/* ========================================================================
  118 + * Bootstrap: button.js v3.3.6
  119 + * http://getbootstrap.com/javascript/#buttons
  120 + * ========================================================================
  121 + * Copyright 2011-2015 Twitter, Inc.
  122 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  123 + * ======================================================================== */
  124 +
  125 +
  126 ++function ($) {
  127 + 'use strict';
  128 +
  129 + // BUTTON PUBLIC CLASS DEFINITION
  130 + // ==============================
  131 +
  132 + var Button = function (element, options) {
  133 + this.$element = $(element)
  134 + this.options = $.extend({}, Button.DEFAULTS, options)
  135 + this.isLoading = false
  136 + }
  137 +
  138 + Button.VERSION = '3.3.6'
  139 +
  140 + Button.DEFAULTS = {
  141 + loadingText: 'loading...'
  142 + }
  143 +
  144 + Button.prototype.setState = function (state) {
  145 + var d = 'disabled'
  146 + var $el = this.$element
  147 + var val = $el.is('input') ? 'val' : 'html'
  148 + var data = $el.data()
  149 +
  150 + state += 'Text'
  151 +
  152 + if (data.resetText == null) $el.data('resetText', $el[val]())
  153 +
  154 + // push to event loop to allow forms to submit
  155 + setTimeout($.proxy(function () {
  156 + $el[val](data[state] == null ? this.options[state] : data[state])
  157 +
  158 + if (state == 'loadingText') {
  159 + this.isLoading = true
  160 + $el.addClass(d).attr(d, d)
  161 + } else if (this.isLoading) {
  162 + this.isLoading = false
  163 + $el.removeClass(d).removeAttr(d)
  164 + }
  165 + }, this), 0)
  166 + }
  167 +
  168 + Button.prototype.toggle = function () {
  169 + var changed = true
  170 + var $parent = this.$element.closest('[data-toggle="buttons"]')
  171 +
  172 + if ($parent.length) {
  173 + var $input = this.$element.find('input')
  174 + if ($input.prop('type') == 'radio') {
  175 + if ($input.prop('checked')) changed = false
  176 + $parent.find('.active').removeClass('active')
  177 + this.$element.addClass('active')
  178 + } else if ($input.prop('type') == 'checkbox') {
  179 + if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
  180 + this.$element.toggleClass('active')
  181 + }
  182 + $input.prop('checked', this.$element.hasClass('active'))
  183 + if (changed) $input.trigger('change')
  184 + } else {
  185 + this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
  186 + this.$element.toggleClass('active')
  187 + }
  188 + }
  189 +
  190 +
  191 + // BUTTON PLUGIN DEFINITION
  192 + // ========================
  193 +
  194 + function Plugin(option) {
  195 + return this.each(function () {
  196 + var $this = $(this)
  197 + var data = $this.data('bs.button')
  198 + var options = typeof option == 'object' && option
  199 +
  200 + if (!data) $this.data('bs.button', (data = new Button(this, options)))
  201 +
  202 + if (option == 'toggle') data.toggle()
  203 + else if (option) data.setState(option)
  204 + })
  205 + }
  206 +
  207 + var old = $.fn.button
  208 +
  209 + $.fn.button = Plugin
  210 + $.fn.button.Constructor = Button
  211 +
  212 +
  213 + // BUTTON NO CONFLICT
  214 + // ==================
  215 +
  216 + $.fn.button.noConflict = function () {
  217 + $.fn.button = old
  218 + return this
  219 + }
  220 +
  221 +
  222 + // BUTTON DATA-API
  223 + // ===============
  224 +
  225 + $(document)
  226 + .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
  227 + var $btn = $(e.target)
  228 + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
  229 + Plugin.call($btn, 'toggle')
  230 + if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
  231 + })
  232 + .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
  233 + $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
  234 + })
  235 +
  236 +}(jQuery);
  237 +
  238 +/* ========================================================================
  239 + * Bootstrap: carousel.js v3.3.6
  240 + * http://getbootstrap.com/javascript/#carousel
  241 + * ========================================================================
  242 + * Copyright 2011-2015 Twitter, Inc.
  243 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  244 + * ======================================================================== */
  245 +
  246 +
  247 ++function ($) {
  248 + 'use strict';
  249 +
  250 + // CAROUSEL CLASS DEFINITION
  251 + // =========================
  252 +
  253 + var Carousel = function (element, options) {
  254 + this.$element = $(element)
  255 + this.$indicators = this.$element.find('.carousel-indicators')
  256 + this.options = options
  257 + this.paused = null
  258 + this.sliding = null
  259 + this.interval = null
  260 + this.$active = null
  261 + this.$items = null
  262 +
  263 + this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
  264 +
  265 + this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
  266 + .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
  267 + .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
  268 + }
  269 +
  270 + Carousel.VERSION = '3.3.6'
  271 +
  272 + Carousel.TRANSITION_DURATION = 600
  273 +
  274 + Carousel.DEFAULTS = {
  275 + interval: 5000,
  276 + pause: 'hover',
  277 + wrap: true,
  278 + keyboard: true
  279 + }
  280 +
  281 + Carousel.prototype.keydown = function (e) {
  282 + if (/input|textarea/i.test(e.target.tagName)) return
  283 + switch (e.which) {
  284 + case 37: this.prev(); break
  285 + case 39: this.next(); break
  286 + default: return
  287 + }
  288 +
  289 + e.preventDefault()
  290 + }
  291 +
  292 + Carousel.prototype.cycle = function (e) {
  293 + e || (this.paused = false)
  294 +
  295 + this.interval && clearInterval(this.interval)
  296 +
  297 + this.options.interval
  298 + && !this.paused
  299 + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
  300 +
  301 + return this
  302 + }
  303 +
  304 + Carousel.prototype.getItemIndex = function (item) {
  305 + this.$items = item.parent().children('.item')
  306 + return this.$items.index(item || this.$active)
  307 + }
  308 +
  309 + Carousel.prototype.getItemForDirection = function (direction, active) {
  310 + var activeIndex = this.getItemIndex(active)
  311 + var willWrap = (direction == 'prev' && activeIndex === 0)
  312 + || (direction == 'next' && activeIndex == (this.$items.length - 1))
  313 + if (willWrap && !this.options.wrap) return active
  314 + var delta = direction == 'prev' ? -1 : 1
  315 + var itemIndex = (activeIndex + delta) % this.$items.length
  316 + return this.$items.eq(itemIndex)
  317 + }
  318 +
  319 + Carousel.prototype.to = function (pos) {
  320 + var that = this
  321 + var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
  322 +
  323 + if (pos > (this.$items.length - 1) || pos < 0) return
  324 +
  325 + if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
  326 + if (activeIndex == pos) return this.pause().cycle()
  327 +
  328 + return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
  329 + }
  330 +
  331 + Carousel.prototype.pause = function (e) {
  332 + e || (this.paused = true)
  333 +
  334 + if (this.$element.find('.next, .prev').length && $.support.transition) {
  335 + this.$element.trigger($.support.transition.end)
  336 + this.cycle(true)
  337 + }
  338 +
  339 + this.interval = clearInterval(this.interval)
  340 +
  341 + return this
  342 + }
  343 +
  344 + Carousel.prototype.next = function () {
  345 + if (this.sliding) return
  346 + return this.slide('next')
  347 + }
  348 +
  349 + Carousel.prototype.prev = function () {
  350 + if (this.sliding) return
  351 + return this.slide('prev')
  352 + }
  353 +
  354 + Carousel.prototype.slide = function (type, next) {
  355 + var $active = this.$element.find('.item.active')
  356 + var $next = next || this.getItemForDirection(type, $active)
  357 + var isCycling = this.interval
  358 + var direction = type == 'next' ? 'left' : 'right'
  359 + var that = this
  360 +
  361 + if ($next.hasClass('active')) return (this.sliding = false)
  362 +
  363 + var relatedTarget = $next[0]
  364 + var slideEvent = $.Event('slide.bs.carousel', {
  365 + relatedTarget: relatedTarget,
  366 + direction: direction
  367 + })
  368 + this.$element.trigger(slideEvent)
  369 + if (slideEvent.isDefaultPrevented()) return
  370 +
  371 + this.sliding = true
  372 +
  373 + isCycling && this.pause()
  374 +
  375 + if (this.$indicators.length) {
  376 + this.$indicators.find('.active').removeClass('active')
  377 + var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
  378 + $nextIndicator && $nextIndicator.addClass('active')
  379 + }
  380 +
  381 + var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
  382 + if ($.support.transition && this.$element.hasClass('slide')) {
  383 + $next.addClass(type)
  384 + $next[0].offsetWidth // force reflow
  385 + $active.addClass(direction)
  386 + $next.addClass(direction)
  387 + $active
  388 + .one('bsTransitionEnd', function () {
  389 + $next.removeClass([type, direction].join(' ')).addClass('active')
  390 + $active.removeClass(['active', direction].join(' '))
  391 + that.sliding = false
  392 + setTimeout(function () {
  393 + that.$element.trigger(slidEvent)
  394 + }, 0)
  395 + })
  396 + .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
  397 + } else {
  398 + $active.removeClass('active')
  399 + $next.addClass('active')
  400 + this.sliding = false
  401 + this.$element.trigger(slidEvent)
  402 + }
  403 +
  404 + isCycling && this.cycle()
  405 +
  406 + return this
  407 + }
  408 +
  409 +
  410 + // CAROUSEL PLUGIN DEFINITION
  411 + // ==========================
  412 +
  413 + function Plugin(option) {
  414 + return this.each(function () {
  415 + var $this = $(this)
  416 + var data = $this.data('bs.carousel')
  417 + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
  418 + var action = typeof option == 'string' ? option : options.slide
  419 +
  420 + if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
  421 + if (typeof option == 'number') data.to(option)
  422 + else if (action) data[action]()
  423 + else if (options.interval) data.pause().cycle()
  424 + })
  425 + }
  426 +
  427 + var old = $.fn.carousel
  428 +
  429 + $.fn.carousel = Plugin
  430 + $.fn.carousel.Constructor = Carousel
  431 +
  432 +
  433 + // CAROUSEL NO CONFLICT
  434 + // ====================
  435 +
  436 + $.fn.carousel.noConflict = function () {
  437 + $.fn.carousel = old
  438 + return this
  439 + }
  440 +
  441 +
  442 + // CAROUSEL DATA-API
  443 + // =================
  444 +
  445 + var clickHandler = function (e) {
  446 + var href
  447 + var $this = $(this)
  448 + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
  449 + if (!$target.hasClass('carousel')) return
  450 + var options = $.extend({}, $target.data(), $this.data())
  451 + var slideIndex = $this.attr('data-slide-to')
  452 + if (slideIndex) options.interval = false
  453 +
  454 + Plugin.call($target, options)
  455 +
  456 + if (slideIndex) {
  457 + $target.data('bs.carousel').to(slideIndex)
  458 + }
  459 +
  460 + e.preventDefault()
  461 + }
  462 +
  463 + $(document)
  464 + .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
  465 + .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
  466 +
  467 + $(window).on('load', function () {
  468 + $('[data-ride="carousel"]').each(function () {
  469 + var $carousel = $(this)
  470 + Plugin.call($carousel, $carousel.data())
  471 + })
  472 + })
  473 +
  474 +}(jQuery);
  475 +
  476 +/* ========================================================================
  477 + * Bootstrap: dropdown.js v3.3.6
  478 + * http://getbootstrap.com/javascript/#dropdowns
  479 + * ========================================================================
  480 + * Copyright 2011-2015 Twitter, Inc.
  481 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  482 + * ======================================================================== */
  483 +
  484 +
  485 ++function ($) {
  486 + 'use strict';
  487 +
  488 + // DROPDOWN CLASS DEFINITION
  489 + // =========================
  490 +
  491 + var backdrop = '.dropdown-backdrop'
  492 + var toggle = '[data-toggle="dropdown"]'
  493 + var Dropdown = function (element) {
  494 + $(element).on('click.bs.dropdown', this.toggle)
  495 + }
  496 +
  497 + Dropdown.VERSION = '3.3.6'
  498 +
  499 + function getParent($this) {
  500 + var selector = $this.attr('data-target')
  501 +
  502 + if (!selector) {
  503 + selector = $this.attr('href')
  504 + selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
  505 + }
  506 +
  507 + var $parent = selector && $(selector)
  508 +
  509 + return $parent && $parent.length ? $parent : $this.parent()
  510 + }
  511 +
  512 + function clearMenus(e) {
  513 + if (e && e.which === 3) return
  514 + $(backdrop).remove()
  515 + $(toggle).each(function () {
  516 + var $this = $(this)
  517 + var $parent = getParent($this)
  518 + var relatedTarget = { relatedTarget: this }
  519 +
  520 + if (!$parent.hasClass('open')) return
  521 +
  522 + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
  523 +
  524 + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
  525 +
  526 + if (e.isDefaultPrevented()) return
  527 +
  528 + $this.attr('aria-expanded', 'false')
  529 + $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
  530 + })
  531 + }
  532 +
  533 + Dropdown.prototype.toggle = function (e) {
  534 + var $this = $(this)
  535 +
  536 + if ($this.is('.disabled, :disabled')) return
  537 +
  538 + var $parent = getParent($this)
  539 + var isActive = $parent.hasClass('open')
  540 +
  541 + clearMenus()
  542 +
  543 + if (!isActive) {
  544 + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
  545 + // if mobile we use a backdrop because click events don't delegate
  546 + $(document.createElement('div'))
  547 + .addClass('dropdown-backdrop')
  548 + .insertAfter($(this))
  549 + .on('click', clearMenus)
  550 + }
  551 +
  552 + var relatedTarget = { relatedTarget: this }
  553 + $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
  554 +
  555 + if (e.isDefaultPrevented()) return
  556 +
  557 + $this
  558 + .trigger('focus')
  559 + .attr('aria-expanded', 'true')
  560 +
  561 + $parent
  562 + .toggleClass('open')
  563 + .trigger($.Event('shown.bs.dropdown', relatedTarget))
  564 + }
  565 +
  566 + return false
  567 + }
  568 +
  569 + Dropdown.prototype.keydown = function (e) {
  570 + if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
  571 +
  572 + var $this = $(this)
  573 +
  574 + e.preventDefault()
  575 + e.stopPropagation()
  576 +
  577 + if ($this.is('.disabled, :disabled')) return
  578 +
  579 + var $parent = getParent($this)
  580 + var isActive = $parent.hasClass('open')
  581 +
  582 + if (!isActive && e.which != 27 || isActive && e.which == 27) {
  583 + if (e.which == 27) $parent.find(toggle).trigger('focus')
  584 + return $this.trigger('click')
  585 + }
  586 +
  587 + var desc = ' li:not(.disabled):visible a'
  588 + var $items = $parent.find('.dropdown-menu' + desc)
  589 +
  590 + if (!$items.length) return
  591 +
  592 + var index = $items.index(e.target)
  593 +
  594 + if (e.which == 38 && index > 0) index-- // up
  595 + if (e.which == 40 && index < $items.length - 1) index++ // down
  596 + if (!~index) index = 0
  597 +
  598 + $items.eq(index).trigger('focus')
  599 + }
  600 +
  601 +
  602 + // DROPDOWN PLUGIN DEFINITION
  603 + // ==========================
  604 +
  605 + function Plugin(option) {
  606 + return this.each(function () {
  607 + var $this = $(this)
  608 + var data = $this.data('bs.dropdown')
  609 +
  610 + if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
  611 + if (typeof option == 'string') data[option].call($this)
  612 + })
  613 + }
  614 +
  615 + var old = $.fn.dropdown
  616 +
  617 + $.fn.dropdown = Plugin
  618 + $.fn.dropdown.Constructor = Dropdown
  619 +
  620 +
  621 + // DROPDOWN NO CONFLICT
  622 + // ====================
  623 +
  624 + $.fn.dropdown.noConflict = function () {
  625 + $.fn.dropdown = old
  626 + return this
  627 + }
  628 +
  629 +
  630 + // APPLY TO STANDARD DROPDOWN ELEMENTS
  631 + // ===================================
  632 +
  633 + $(document)
  634 + .on('click.bs.dropdown.data-api', clearMenus)
  635 + .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
  636 + .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
  637 + .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
  638 + .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
  639 +
  640 +}(jQuery);
  641 +
  642 +/* ========================================================================
  643 + * Bootstrap: modal.js v3.3.6
  644 + * http://getbootstrap.com/javascript/#modals
  645 + * ========================================================================
  646 + * Copyright 2011-2015 Twitter, Inc.
  647 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  648 + * ======================================================================== */
  649 +
  650 +
  651 ++function ($) {
  652 + 'use strict';
  653 +
  654 + // MODAL CLASS DEFINITION
  655 + // ======================
  656 +
  657 + var Modal = function (element, options) {
  658 + this.options = options
  659 + this.$body = $(document.body)
  660 + this.$element = $(element)
  661 + this.$dialog = this.$element.find('.modal-dialog')
  662 + this.$backdrop = null
  663 + this.isShown = null
  664 + this.originalBodyPad = null
  665 + this.scrollbarWidth = 0
  666 + this.ignoreBackdropClick = false
  667 +
  668 + if (this.options.remote) {
  669 + this.$element
  670 + .find('.modal-content')
  671 + .load(this.options.remote, $.proxy(function () {
  672 + this.$element.trigger('loaded.bs.modal')
  673 + }, this))
  674 + }
  675 + }
  676 +
  677 + Modal.VERSION = '3.3.6'
  678 +
  679 + Modal.TRANSITION_DURATION = 300
  680 + Modal.BACKDROP_TRANSITION_DURATION = 150
  681 +
  682 + Modal.DEFAULTS = {
  683 + backdrop: true,
  684 + keyboard: true,
  685 + show: true
  686 + }
  687 +
  688 + Modal.prototype.toggle = function (_relatedTarget) {
  689 + return this.isShown ? this.hide() : this.show(_relatedTarget)
  690 + }
  691 +
  692 + Modal.prototype.show = function (_relatedTarget) {
  693 + var that = this
  694 + var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
  695 +
  696 + this.$element.trigger(e)
  697 +
  698 + if (this.isShown || e.isDefaultPrevented()) return
  699 +
  700 + this.isShown = true
  701 +
  702 + this.checkScrollbar()
  703 + this.setScrollbar()
  704 + this.$body.addClass('modal-open')
  705 +
  706 + this.escape()
  707 + this.resize()
  708 +
  709 + this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
  710 +
  711 + this.$dialog.on('mousedown.dismiss.bs.modal', function () {
  712 + that.$element.one('mouseup.dismiss.bs.modal', function (e) {
  713 + if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
  714 + })
  715 + })
  716 +
  717 + this.backdrop(function () {
  718 + var transition = $.support.transition && that.$element.hasClass('fade')
  719 +
  720 + if (!that.$element.parent().length) {
  721 + that.$element.appendTo(that.$body) // don't move modals dom position
  722 + }
  723 +
  724 + that.$element
  725 + .show()
  726 + .scrollTop(0)
  727 +
  728 + that.adjustDialog()
  729 +
  730 + if (transition) {
  731 + that.$element[0].offsetWidth // force reflow
  732 + }
  733 +
  734 + that.$element.addClass('in')
  735 +
  736 + that.enforceFocus()
  737 +
  738 + var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
  739 +
  740 + transition ?
  741 + that.$dialog // wait for modal to slide in
  742 + .one('bsTransitionEnd', function () {
  743 + that.$element.trigger('focus').trigger(e)
  744 + })
  745 + .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
  746 + that.$element.trigger('focus').trigger(e)
  747 + })
  748 + }
  749 +
  750 + Modal.prototype.hide = function (e) {
  751 + if (e) e.preventDefault()
  752 +
  753 + e = $.Event('hide.bs.modal')
  754 +
  755 + this.$element.trigger(e)
  756 +
  757 + if (!this.isShown || e.isDefaultPrevented()) return
  758 +
  759 + this.isShown = false
  760 +
  761 + this.escape()
  762 + this.resize()
  763 +
  764 + $(document).off('focusin.bs.modal')
  765 +
  766 + this.$element
  767 + .removeClass('in')
  768 + .off('click.dismiss.bs.modal')
  769 + .off('mouseup.dismiss.bs.modal')
  770 +
  771 + this.$dialog.off('mousedown.dismiss.bs.modal')
  772 +
  773 + $.support.transition && this.$element.hasClass('fade') ?
  774 + this.$element
  775 + .one('bsTransitionEnd', $.proxy(this.hideModal, this))
  776 + .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
  777 + this.hideModal()
  778 + }
  779 +
  780 + Modal.prototype.enforceFocus = function () {
  781 + $(document)
  782 + .off('focusin.bs.modal') // guard against infinite focus loop
  783 + .on('focusin.bs.modal', $.proxy(function (e) {
  784 + if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
  785 + this.$element.trigger('focus')
  786 + }
  787 + }, this))
  788 + }
  789 +
  790 + Modal.prototype.escape = function () {
  791 + if (this.isShown && this.options.keyboard) {
  792 + this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
  793 + e.which == 27 && this.hide()
  794 + }, this))
  795 + } else if (!this.isShown) {
  796 + this.$element.off('keydown.dismiss.bs.modal')
  797 + }
  798 + }
  799 +
  800 + Modal.prototype.resize = function () {
  801 + if (this.isShown) {
  802 + $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
  803 + } else {
  804 + $(window).off('resize.bs.modal')
  805 + }
  806 + }
  807 +
  808 + Modal.prototype.hideModal = function () {
  809 + var that = this
  810 + this.$element.hide()
  811 + this.backdrop(function () {
  812 + that.$body.removeClass('modal-open')
  813 + that.resetAdjustments()
  814 + that.resetScrollbar()
  815 + that.$element.trigger('hidden.bs.modal')
  816 + })
  817 + }
  818 +
  819 + Modal.prototype.removeBackdrop = function () {
  820 + this.$backdrop && this.$backdrop.remove()
  821 + this.$backdrop = null
  822 + }
  823 +
  824 + Modal.prototype.backdrop = function (callback) {
  825 + var that = this
  826 + var animate = this.$element.hasClass('fade') ? 'fade' : ''
  827 +
  828 + if (this.isShown && this.options.backdrop) {
  829 + var doAnimate = $.support.transition && animate
  830 +
  831 + this.$backdrop = $(document.createElement('div'))
  832 + .addClass('modal-backdrop ' + animate)
  833 + .appendTo(this.$body)
  834 +
  835 + this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
  836 + if (this.ignoreBackdropClick) {
  837 + this.ignoreBackdropClick = false
  838 + return
  839 + }
  840 + if (e.target !== e.currentTarget) return
  841 + this.options.backdrop == 'static'
  842 + ? this.$element[0].focus()
  843 + : this.hide()
  844 + }, this))
  845 +
  846 + if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
  847 +
  848 + this.$backdrop.addClass('in')
  849 +
  850 + if (!callback) return
  851 +
  852 + doAnimate ?
  853 + this.$backdrop
  854 + .one('bsTransitionEnd', callback)
  855 + .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
  856 + callback()
  857 +
  858 + } else if (!this.isShown && this.$backdrop) {
  859 + this.$backdrop.removeClass('in')
  860 +
  861 + var callbackRemove = function () {
  862 + that.removeBackdrop()
  863 + callback && callback()
  864 + }
  865 + $.support.transition && this.$element.hasClass('fade') ?
  866 + this.$backdrop
  867 + .one('bsTransitionEnd', callbackRemove)
  868 + .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
  869 + callbackRemove()
  870 +
  871 + } else if (callback) {
  872 + callback()
  873 + }
  874 + }
  875 +
  876 + // these following methods are used to handle overflowing modals
  877 +
  878 + Modal.prototype.handleUpdate = function () {
  879 + this.adjustDialog()
  880 + }
  881 +
  882 + Modal.prototype.adjustDialog = function () {
  883 + var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
  884 +
  885 + this.$element.css({
  886 + paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
  887 + paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
  888 + })
  889 + }
  890 +
  891 + Modal.prototype.resetAdjustments = function () {
  892 + this.$element.css({
  893 + paddingLeft: '',
  894 + paddingRight: ''
  895 + })
  896 + }
  897 +
  898 + Modal.prototype.checkScrollbar = function () {
  899 + var fullWindowWidth = window.innerWidth
  900 + if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
  901 + var documentElementRect = document.documentElement.getBoundingClientRect()
  902 + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
  903 + }
  904 + this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
  905 + this.scrollbarWidth = this.measureScrollbar()
  906 + }
  907 +
  908 + Modal.prototype.setScrollbar = function () {
  909 + var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
  910 + this.originalBodyPad = document.body.style.paddingRight || ''
  911 + if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
  912 + }
  913 +
  914 + Modal.prototype.resetScrollbar = function () {
  915 + this.$body.css('padding-right', this.originalBodyPad)
  916 + }
  917 +
  918 + Modal.prototype.measureScrollbar = function () { // thx walsh
  919 + var scrollDiv = document.createElement('div')
  920 + scrollDiv.className = 'modal-scrollbar-measure'
  921 + this.$body.append(scrollDiv)
  922 + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
  923 + this.$body[0].removeChild(scrollDiv)
  924 + return scrollbarWidth
  925 + }
  926 +
  927 +
  928 + // MODAL PLUGIN DEFINITION
  929 + // =======================
  930 +
  931 + function Plugin(option, _relatedTarget) {
  932 + return this.each(function () {
  933 + var $this = $(this)
  934 + var data = $this.data('bs.modal')
  935 + var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
  936 +
  937 + if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
  938 + if (typeof option == 'string') data[option](_relatedTarget)
  939 + else if (options.show) data.show(_relatedTarget)
  940 + })
  941 + }
  942 +
  943 + var old = $.fn.modal
  944 +
  945 + $.fn.modal = Plugin
  946 + $.fn.modal.Constructor = Modal
  947 +
  948 +
  949 + // MODAL NO CONFLICT
  950 + // =================
  951 +
  952 + $.fn.modal.noConflict = function () {
  953 + $.fn.modal = old
  954 + return this
  955 + }
  956 +
  957 +
  958 + // MODAL DATA-API
  959 + // ==============
  960 +
  961 + $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
  962 + var $this = $(this)
  963 + var href = $this.attr('href')
  964 + var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
  965 + var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
  966 +
  967 + if ($this.is('a')) e.preventDefault()
  968 +
  969 + $target.one('show.bs.modal', function (showEvent) {
  970 + if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
  971 + $target.one('hidden.bs.modal', function () {
  972 + $this.is(':visible') && $this.trigger('focus')
  973 + })
  974 + })
  975 + Plugin.call($target, option, this)
  976 + })
  977 +
  978 +}(jQuery);
  979 +
  980 +/* ========================================================================
  981 + * Bootstrap: tooltip.js v3.3.6
  982 + * http://getbootstrap.com/javascript/#tooltip
  983 + * Inspired by the original jQuery.tipsy by Jason Frame
  984 + * ========================================================================
  985 + * Copyright 2011-2015 Twitter, Inc.
  986 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  987 + * ======================================================================== */
  988 +
  989 +
  990 ++function ($) {
  991 + 'use strict';
  992 +
  993 + // TOOLTIP PUBLIC CLASS DEFINITION
  994 + // ===============================
  995 +
  996 + var Tooltip = function (element, options) {
  997 + this.type = null
  998 + this.options = null
  999 + this.enabled = null
  1000 + this.timeout = null
  1001 + this.hoverState = null
  1002 + this.$element = null
  1003 + this.inState = null
  1004 +
  1005 + this.init('tooltip', element, options)
  1006 + }
  1007 +
  1008 + Tooltip.VERSION = '3.3.6'
  1009 +
  1010 + Tooltip.TRANSITION_DURATION = 150
  1011 +
  1012 + Tooltip.DEFAULTS = {
  1013 + animation: true,
  1014 + placement: 'top',
  1015 + selector: false,
  1016 + template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
  1017 + trigger: 'hover focus',
  1018 + title: '',
  1019 + delay: 0,
  1020 + html: false,
  1021 + container: false,
  1022 + viewport: {
  1023 + selector: 'body',
  1024 + padding: 0
  1025 + }
  1026 + }
  1027 +
  1028 + Tooltip.prototype.init = function (type, element, options) {
  1029 + this.enabled = true
  1030 + this.type = type
  1031 + this.$element = $(element)
  1032 + this.options = this.getOptions(options)
  1033 + this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
  1034 + this.inState = { click: false, hover: false, focus: false }
  1035 +
  1036 + if (this.$element[0] instanceof document.constructor && !this.options.selector) {
  1037 + throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
  1038 + }
  1039 +
  1040 + var triggers = this.options.trigger.split(' ')
  1041 +
  1042 + for (var i = triggers.length; i--;) {
  1043 + var trigger = triggers[i]
  1044 +
  1045 + if (trigger == 'click') {
  1046 + this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
  1047 + } else if (trigger != 'manual') {
  1048 + var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
  1049 + var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
  1050 +
  1051 + this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
  1052 + this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
  1053 + }
  1054 + }
  1055 +
  1056 + this.options.selector ?
  1057 + (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
  1058 + this.fixTitle()
  1059 + }
  1060 +
  1061 + Tooltip.prototype.getDefaults = function () {
  1062 + return Tooltip.DEFAULTS
  1063 + }
  1064 +
  1065 + Tooltip.prototype.getOptions = function (options) {
  1066 + options = $.extend({}, this.getDefaults(), this.$element.data(), options)
  1067 +
  1068 + if (options.delay && typeof options.delay == 'number') {
  1069 + options.delay = {
  1070 + show: options.delay,
  1071 + hide: options.delay
  1072 + }
  1073 + }
  1074 +
  1075 + return options
  1076 + }
  1077 +
  1078 + Tooltip.prototype.getDelegateOptions = function () {
  1079 + var options = {}
  1080 + var defaults = this.getDefaults()
  1081 +
  1082 + this._options && $.each(this._options, function (key, value) {
  1083 + if (defaults[key] != value) options[key] = value
  1084 + })
  1085 +
  1086 + return options
  1087 + }
  1088 +
  1089 + Tooltip.prototype.enter = function (obj) {
  1090 + var self = obj instanceof this.constructor ?
  1091 + obj : $(obj.currentTarget).data('bs.' + this.type)
  1092 +
  1093 + if (!self) {
  1094 + self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
  1095 + $(obj.currentTarget).data('bs.' + this.type, self)
  1096 + }
  1097 +
  1098 + if (obj instanceof $.Event) {
  1099 + self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
  1100 + }
  1101 +
  1102 + if (self.tip().hasClass('in') || self.hoverState == 'in') {
  1103 + self.hoverState = 'in'
  1104 + return
  1105 + }
  1106 +
  1107 + clearTimeout(self.timeout)
  1108 +
  1109 + self.hoverState = 'in'
  1110 +
  1111 + if (!self.options.delay || !self.options.delay.show) return self.show()
  1112 +
  1113 + self.timeout = setTimeout(function () {
  1114 + if (self.hoverState == 'in') self.show()
  1115 + }, self.options.delay.show)
  1116 + }
  1117 +
  1118 + Tooltip.prototype.isInStateTrue = function () {
  1119 + for (var key in this.inState) {
  1120 + if (this.inState[key]) return true
  1121 + }
  1122 +
  1123 + return false
  1124 + }
  1125 +
  1126 + Tooltip.prototype.leave = function (obj) {
  1127 + var self = obj instanceof this.constructor ?
  1128 + obj : $(obj.currentTarget).data('bs.' + this.type)
  1129 +
  1130 + if (!self) {
  1131 + self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
  1132 + $(obj.currentTarget).data('bs.' + this.type, self)
  1133 + }
  1134 +
  1135 + if (obj instanceof $.Event) {
  1136 + self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
  1137 + }
  1138 +
  1139 + if (self.isInStateTrue()) return
  1140 +
  1141 + clearTimeout(self.timeout)
  1142 +
  1143 + self.hoverState = 'out'
  1144 +
  1145 + if (!self.options.delay || !self.options.delay.hide) return self.hide()
  1146 +
  1147 + self.timeout = setTimeout(function () {
  1148 + if (self.hoverState == 'out') self.hide()
  1149 + }, self.options.delay.hide)
  1150 + }
  1151 +
  1152 + Tooltip.prototype.show = function () {
  1153 + var e = $.Event('show.bs.' + this.type)
  1154 +
  1155 + if (this.hasContent() && this.enabled) {
  1156 + this.$element.trigger(e)
  1157 +
  1158 + var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
  1159 + if (e.isDefaultPrevented() || !inDom) return
  1160 + var that = this
  1161 +
  1162 + var $tip = this.tip()
  1163 +
  1164 + var tipId = this.getUID(this.type)
  1165 +
  1166 + this.setContent()
  1167 + $tip.attr('id', tipId)
  1168 + this.$element.attr('aria-describedby', tipId)
  1169 +
  1170 + if (this.options.animation) $tip.addClass('fade')
  1171 +
  1172 + var placement = typeof this.options.placement == 'function' ?
  1173 + this.options.placement.call(this, $tip[0], this.$element[0]) :
  1174 + this.options.placement
  1175 +
  1176 + var autoToken = /\s?auto?\s?/i
  1177 + var autoPlace = autoToken.test(placement)
  1178 + if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
  1179 +
  1180 + $tip
  1181 + .detach()
  1182 + .css({ top: 0, left: 0, display: 'block' })
  1183 + .addClass(placement)
  1184 + .data('bs.' + this.type, this)
  1185 +
  1186 + this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
  1187 + this.$element.trigger('inserted.bs.' + this.type)
  1188 +
  1189 + var pos = this.getPosition()
  1190 + var actualWidth = $tip[0].offsetWidth
  1191 + var actualHeight = $tip[0].offsetHeight
  1192 +
  1193 + if (autoPlace) {
  1194 + var orgPlacement = placement
  1195 + var viewportDim = this.getPosition(this.$viewport)
  1196 +
  1197 + placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
  1198 + placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
  1199 + placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
  1200 + placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
  1201 + placement
  1202 +
  1203 + $tip
  1204 + .removeClass(orgPlacement)
  1205 + .addClass(placement)
  1206 + }
  1207 +
  1208 + var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
  1209 +
  1210 + this.applyPlacement(calculatedOffset, placement)
  1211 +
  1212 + var complete = function () {
  1213 + var prevHoverState = that.hoverState
  1214 + that.$element.trigger('shown.bs.' + that.type)
  1215 + that.hoverState = null
  1216 +
  1217 + if (prevHoverState == 'out') that.leave(that)
  1218 + }
  1219 +
  1220 + $.support.transition && this.$tip.hasClass('fade') ?
  1221 + $tip
  1222 + .one('bsTransitionEnd', complete)
  1223 + .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
  1224 + complete()
  1225 + }
  1226 + }
  1227 +
  1228 + Tooltip.prototype.applyPlacement = function (offset, placement) {
  1229 + var $tip = this.tip()
  1230 + var width = $tip[0].offsetWidth
  1231 + var height = $tip[0].offsetHeight
  1232 +
  1233 + // manually read margins because getBoundingClientRect includes difference
  1234 + var marginTop = parseInt($tip.css('margin-top'), 10)
  1235 + var marginLeft = parseInt($tip.css('margin-left'), 10)
  1236 +
  1237 + // we must check for NaN for ie 8/9
  1238 + if (isNaN(marginTop)) marginTop = 0
  1239 + if (isNaN(marginLeft)) marginLeft = 0
  1240 +
  1241 + offset.top += marginTop
  1242 + offset.left += marginLeft
  1243 +
  1244 + // $.fn.offset doesn't round pixel values
  1245 + // so we use setOffset directly with our own function B-0
  1246 + $.offset.setOffset($tip[0], $.extend({
  1247 + using: function (props) {
  1248 + $tip.css({
  1249 + top: Math.round(props.top),
  1250 + left: Math.round(props.left)
  1251 + })
  1252 + }
  1253 + }, offset), 0)
  1254 +
  1255 + $tip.addClass('in')
  1256 +
  1257 + // check to see if placing tip in new offset caused the tip to resize itself
  1258 + var actualWidth = $tip[0].offsetWidth
  1259 + var actualHeight = $tip[0].offsetHeight
  1260 +
  1261 + if (placement == 'top' && actualHeight != height) {
  1262 + offset.top = offset.top + height - actualHeight
  1263 + }
  1264 +
  1265 + var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
  1266 +
  1267 + if (delta.left) offset.left += delta.left
  1268 + else offset.top += delta.top
  1269 +
  1270 + var isVertical = /top|bottom/.test(placement)
  1271 + var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
  1272 + var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
  1273 +
  1274 + $tip.offset(offset)
  1275 + this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
  1276 + }
  1277 +
  1278 + Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
  1279 + this.arrow()
  1280 + .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
  1281 + .css(isVertical ? 'top' : 'left', '')
  1282 + }
  1283 +
  1284 + Tooltip.prototype.setContent = function () {
  1285 + var $tip = this.tip()
  1286 + var title = this.getTitle()
  1287 +
  1288 + $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
  1289 + $tip.removeClass('fade in top bottom left right')
  1290 + }
  1291 +
  1292 + Tooltip.prototype.hide = function (callback) {
  1293 + var that = this
  1294 + var $tip = $(this.$tip)
  1295 + var e = $.Event('hide.bs.' + this.type)
  1296 +
  1297 + function complete() {
  1298 + if (that.hoverState != 'in') $tip.detach()
  1299 + that.$element
  1300 + .removeAttr('aria-describedby')
  1301 + .trigger('hidden.bs.' + that.type)
  1302 + callback && callback()
  1303 + }
  1304 +
  1305 + this.$element.trigger(e)
  1306 +
  1307 + if (e.isDefaultPrevented()) return
  1308 +
  1309 + $tip.removeClass('in')
  1310 +
  1311 + $.support.transition && $tip.hasClass('fade') ?
  1312 + $tip
  1313 + .one('bsTransitionEnd', complete)
  1314 + .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
  1315 + complete()
  1316 +
  1317 + this.hoverState = null
  1318 +
  1319 + return this
  1320 + }
  1321 +
  1322 + Tooltip.prototype.fixTitle = function () {
  1323 + var $e = this.$element
  1324 + if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
  1325 + $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
  1326 + }
  1327 + }
  1328 +
  1329 + Tooltip.prototype.hasContent = function () {
  1330 + return this.getTitle()
  1331 + }
  1332 +
  1333 + Tooltip.prototype.getPosition = function ($element) {
  1334 + $element = $element || this.$element
  1335 +
  1336 + var el = $element[0]
  1337 + var isBody = el.tagName == 'BODY'
  1338 +
  1339 + var elRect = el.getBoundingClientRect()
  1340 + if (elRect.width == null) {
  1341 + // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
  1342 + elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
  1343 + }
  1344 + var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
  1345 + var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
  1346 + var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
  1347 +
  1348 + return $.extend({}, elRect, scroll, outerDims, elOffset)
  1349 + }
  1350 +
  1351 + Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
  1352 + return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
  1353 + placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
  1354 + placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
  1355 + /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
  1356 +
  1357 + }
  1358 +
  1359 + Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
  1360 + var delta = { top: 0, left: 0 }
  1361 + if (!this.$viewport) return delta
  1362 +
  1363 + var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
  1364 + var viewportDimensions = this.getPosition(this.$viewport)
  1365 +
  1366 + if (/right|left/.test(placement)) {
  1367 + var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
  1368 + var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
  1369 + if (topEdgeOffset < viewportDimensions.top) { // top overflow
  1370 + delta.top = viewportDimensions.top - topEdgeOffset
  1371 + } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
  1372 + delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
  1373 + }
  1374 + } else {
  1375 + var leftEdgeOffset = pos.left - viewportPadding
  1376 + var rightEdgeOffset = pos.left + viewportPadding + actualWidth
  1377 + if (leftEdgeOffset < viewportDimensions.left) { // left overflow
  1378 + delta.left = viewportDimensions.left - leftEdgeOffset
  1379 + } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
  1380 + delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
  1381 + }
  1382 + }
  1383 +
  1384 + return delta
  1385 + }
  1386 +
  1387 + Tooltip.prototype.getTitle = function () {
  1388 + var title
  1389 + var $e = this.$element
  1390 + var o = this.options
  1391 +
  1392 + title = $e.attr('data-original-title')
  1393 + || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
  1394 +
  1395 + return title
  1396 + }
  1397 +
  1398 + Tooltip.prototype.getUID = function (prefix) {
  1399 + do prefix += ~~(Math.random() * 1000000)
  1400 + while (document.getElementById(prefix))
  1401 + return prefix
  1402 + }
  1403 +
  1404 + Tooltip.prototype.tip = function () {
  1405 + if (!this.$tip) {
  1406 + this.$tip = $(this.options.template)
  1407 + if (this.$tip.length != 1) {
  1408 + throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
  1409 + }
  1410 + }
  1411 + return this.$tip
  1412 + }
  1413 +
  1414 + Tooltip.prototype.arrow = function () {
  1415 + return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
  1416 + }
  1417 +
  1418 + Tooltip.prototype.enable = function () {
  1419 + this.enabled = true
  1420 + }
  1421 +
  1422 + Tooltip.prototype.disable = function () {
  1423 + this.enabled = false
  1424 + }
  1425 +
  1426 + Tooltip.prototype.toggleEnabled = function () {
  1427 + this.enabled = !this.enabled
  1428 + }
  1429 +
  1430 + Tooltip.prototype.toggle = function (e) {
  1431 + var self = this
  1432 + if (e) {
  1433 + self = $(e.currentTarget).data('bs.' + this.type)
  1434 + if (!self) {
  1435 + self = new this.constructor(e.currentTarget, this.getDelegateOptions())
  1436 + $(e.currentTarget).data('bs.' + this.type, self)
  1437 + }
  1438 + }
  1439 +
  1440 + if (e) {
  1441 + self.inState.click = !self.inState.click
  1442 + if (self.isInStateTrue()) self.enter(self)
  1443 + else self.leave(self)
  1444 + } else {
  1445 + self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
  1446 + }
  1447 + }
  1448 +
  1449 + Tooltip.prototype.destroy = function () {
  1450 + var that = this
  1451 + clearTimeout(this.timeout)
  1452 + this.hide(function () {
  1453 + that.$element.off('.' + that.type).removeData('bs.' + that.type)
  1454 + if (that.$tip) {
  1455 + that.$tip.detach()
  1456 + }
  1457 + that.$tip = null
  1458 + that.$arrow = null
  1459 + that.$viewport = null
  1460 + })
  1461 + }
  1462 +
  1463 +
  1464 + // TOOLTIP PLUGIN DEFINITION
  1465 + // =========================
  1466 +
  1467 + function Plugin(option) {
  1468 + return this.each(function () {
  1469 + var $this = $(this)
  1470 + var data = $this.data('bs.tooltip')
  1471 + var options = typeof option == 'object' && option
  1472 +
  1473 + if (!data && /destroy|hide/.test(option)) return
  1474 + if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
  1475 + if (typeof option == 'string') data[option]()
  1476 + })
  1477 + }
  1478 +
  1479 + var old = $.fn.tooltip
  1480 +
  1481 + $.fn.tooltip = Plugin
  1482 + $.fn.tooltip.Constructor = Tooltip
  1483 +
  1484 +
  1485 + // TOOLTIP NO CONFLICT
  1486 + // ===================
  1487 +
  1488 + $.fn.tooltip.noConflict = function () {
  1489 + $.fn.tooltip = old
  1490 + return this
  1491 + }
  1492 +
  1493 +}(jQuery);
  1494 +
  1495 +/* ========================================================================
  1496 + * Bootstrap: popover.js v3.3.6
  1497 + * http://getbootstrap.com/javascript/#popovers
  1498 + * ========================================================================
  1499 + * Copyright 2011-2015 Twitter, Inc.
  1500 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1501 + * ======================================================================== */
  1502 +
  1503 +
  1504 ++function ($) {
  1505 + 'use strict';
  1506 +
  1507 + // POPOVER PUBLIC CLASS DEFINITION
  1508 + // ===============================
  1509 +
  1510 + var Popover = function (element, options) {
  1511 + this.init('popover', element, options)
  1512 + }
  1513 +
  1514 + if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
  1515 +
  1516 + Popover.VERSION = '3.3.6'
  1517 +
  1518 + Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
  1519 + placement: 'right',
  1520 + trigger: 'click',
  1521 + content: '',
  1522 + template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
  1523 + })
  1524 +
  1525 +
  1526 + // NOTE: POPOVER EXTENDS tooltip.js
  1527 + // ================================
  1528 +
  1529 + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
  1530 +
  1531 + Popover.prototype.constructor = Popover
  1532 +
  1533 + Popover.prototype.getDefaults = function () {
  1534 + return Popover.DEFAULTS
  1535 + }
  1536 +
  1537 + Popover.prototype.setContent = function () {
  1538 + var $tip = this.tip()
  1539 + var title = this.getTitle()
  1540 + var content = this.getContent()
  1541 +
  1542 + $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
  1543 + $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
  1544 + this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
  1545 + ](content)
  1546 +
  1547 + $tip.removeClass('fade top bottom left right in')
  1548 +
  1549 + // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
  1550 + // this manually by checking the contents.
  1551 + if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
  1552 + }
  1553 +
  1554 + Popover.prototype.hasContent = function () {
  1555 + return this.getTitle() || this.getContent()
  1556 + }
  1557 +
  1558 + Popover.prototype.getContent = function () {
  1559 + var $e = this.$element
  1560 + var o = this.options
  1561 +
  1562 + return $e.attr('data-content')
  1563 + || (typeof o.content == 'function' ?
  1564 + o.content.call($e[0]) :
  1565 + o.content)
  1566 + }
  1567 +
  1568 + Popover.prototype.arrow = function () {
  1569 + return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
  1570 + }
  1571 +
  1572 +
  1573 + // POPOVER PLUGIN DEFINITION
  1574 + // =========================
  1575 +
  1576 + function Plugin(option) {
  1577 + return this.each(function () {
  1578 + var $this = $(this)
  1579 + var data = $this.data('bs.popover')
  1580 + var options = typeof option == 'object' && option
  1581 +
  1582 + if (!data && /destroy|hide/.test(option)) return
  1583 + if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
  1584 + if (typeof option == 'string') data[option]()
  1585 + })
  1586 + }
  1587 +
  1588 + var old = $.fn.popover
  1589 +
  1590 + $.fn.popover = Plugin
  1591 + $.fn.popover.Constructor = Popover
  1592 +
  1593 +
  1594 + // POPOVER NO CONFLICT
  1595 + // ===================
  1596 +
  1597 + $.fn.popover.noConflict = function () {
  1598 + $.fn.popover = old
  1599 + return this
  1600 + }
  1601 +
  1602 +}(jQuery);
  1603 +
  1604 +/* ========================================================================
  1605 + * Bootstrap: tab.js v3.3.6
  1606 + * http://getbootstrap.com/javascript/#tabs
  1607 + * ========================================================================
  1608 + * Copyright 2011-2015 Twitter, Inc.
  1609 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1610 + * ======================================================================== */
  1611 +
  1612 +
  1613 ++function ($) {
  1614 + 'use strict';
  1615 +
  1616 + // TAB CLASS DEFINITION
  1617 + // ====================
  1618 +
  1619 + var Tab = function (element) {
  1620 + // jscs:disable requireDollarBeforejQueryAssignment
  1621 + this.element = $(element)
  1622 + // jscs:enable requireDollarBeforejQueryAssignment
  1623 + }
  1624 +
  1625 + Tab.VERSION = '3.3.6'
  1626 +
  1627 + Tab.TRANSITION_DURATION = 150
  1628 +
  1629 + Tab.prototype.show = function () {
  1630 + var $this = this.element
  1631 + var $ul = $this.closest('ul:not(.dropdown-menu)')
  1632 + var selector = $this.data('target')
  1633 +
  1634 + if (!selector) {
  1635 + selector = $this.attr('href')
  1636 + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
  1637 + }
  1638 +
  1639 + if ($this.parent('li').hasClass('active')) return
  1640 +
  1641 + var $previous = $ul.find('.active:last a')
  1642 + var hideEvent = $.Event('hide.bs.tab', {
  1643 + relatedTarget: $this[0]
  1644 + })
  1645 + var showEvent = $.Event('show.bs.tab', {
  1646 + relatedTarget: $previous[0]
  1647 + })
  1648 +
  1649 + $previous.trigger(hideEvent)
  1650 + $this.trigger(showEvent)
  1651 +
  1652 + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
  1653 +
  1654 + var $target = $(selector)
  1655 +
  1656 + this.activate($this.closest('li'), $ul)
  1657 + this.activate($target, $target.parent(), function () {
  1658 + $previous.trigger({
  1659 + type: 'hidden.bs.tab',
  1660 + relatedTarget: $this[0]
  1661 + })
  1662 + $this.trigger({
  1663 + type: 'shown.bs.tab',
  1664 + relatedTarget: $previous[0]
  1665 + })
  1666 + })
  1667 + }
  1668 +
  1669 + Tab.prototype.activate = function (element, container, callback) {
  1670 + var $active = container.find('> .active')
  1671 + var transition = callback
  1672 + && $.support.transition
  1673 + && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
  1674 +
  1675 + function next() {
  1676 + $active
  1677 + .removeClass('active')
  1678 + .find('> .dropdown-menu > .active')
  1679 + .removeClass('active')
  1680 + .end()
  1681 + .find('[data-toggle="tab"]')
  1682 + .attr('aria-expanded', false)
  1683 +
  1684 + element
  1685 + .addClass('active')
  1686 + .find('[data-toggle="tab"]')
  1687 + .attr('aria-expanded', true)
  1688 +
  1689 + if (transition) {
  1690 + element[0].offsetWidth // reflow for transition
  1691 + element.addClass('in')
  1692 + } else {
  1693 + element.removeClass('fade')
  1694 + }
  1695 +
  1696 + if (element.parent('.dropdown-menu').length) {
  1697 + element
  1698 + .closest('li.dropdown')
  1699 + .addClass('active')
  1700 + .end()
  1701 + .find('[data-toggle="tab"]')
  1702 + .attr('aria-expanded', true)
  1703 + }
  1704 +
  1705 + callback && callback()
  1706 + }
  1707 +
  1708 + $active.length && transition ?
  1709 + $active
  1710 + .one('bsTransitionEnd', next)
  1711 + .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
  1712 + next()
  1713 +
  1714 + $active.removeClass('in')
  1715 + }
  1716 +
  1717 +
  1718 + // TAB PLUGIN DEFINITION
  1719 + // =====================
  1720 +
  1721 + function Plugin(option) {
  1722 + return this.each(function () {
  1723 + var $this = $(this)
  1724 + var data = $this.data('bs.tab')
  1725 +
  1726 + if (!data) $this.data('bs.tab', (data = new Tab(this)))
  1727 + if (typeof option == 'string') data[option]()
  1728 + })
  1729 + }
  1730 +
  1731 + var old = $.fn.tab
  1732 +
  1733 + $.fn.tab = Plugin
  1734 + $.fn.tab.Constructor = Tab
  1735 +
  1736 +
  1737 + // TAB NO CONFLICT
  1738 + // ===============
  1739 +
  1740 + $.fn.tab.noConflict = function () {
  1741 + $.fn.tab = old
  1742 + return this
  1743 + }
  1744 +
  1745 +
  1746 + // TAB DATA-API
  1747 + // ============
  1748 +
  1749 + var clickHandler = function (e) {
  1750 + e.preventDefault()
  1751 + Plugin.call($(this), 'show')
  1752 + }
  1753 +
  1754 + $(document)
  1755 + .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
  1756 + .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
  1757 +
  1758 +}(jQuery);
  1759 +
  1760 +/* ========================================================================
  1761 + * Bootstrap: affix.js v3.3.6
  1762 + * http://getbootstrap.com/javascript/#affix
  1763 + * ========================================================================
  1764 + * Copyright 2011-2015 Twitter, Inc.
  1765 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1766 + * ======================================================================== */
  1767 +
  1768 +
  1769 ++function ($) {
  1770 + 'use strict';
  1771 +
  1772 + // AFFIX CLASS DEFINITION
  1773 + // ======================
  1774 +
  1775 + var Affix = function (element, options) {
  1776 + this.options = $.extend({}, Affix.DEFAULTS, options)
  1777 +
  1778 + this.$target = $(this.options.target)
  1779 + .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
  1780 + .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
  1781 +
  1782 + this.$element = $(element)
  1783 + this.affixed = null
  1784 + this.unpin = null
  1785 + this.pinnedOffset = null
  1786 +
  1787 + this.checkPosition()
  1788 + }
  1789 +
  1790 + Affix.VERSION = '3.3.6'
  1791 +
  1792 + Affix.RESET = 'affix affix-top affix-bottom'
  1793 +
  1794 + Affix.DEFAULTS = {
  1795 + offset: 0,
  1796 + target: window
  1797 + }
  1798 +
  1799 + Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
  1800 + var scrollTop = this.$target.scrollTop()
  1801 + var position = this.$element.offset()
  1802 + var targetHeight = this.$target.height()
  1803 +
  1804 + if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
  1805 +
  1806 + if (this.affixed == 'bottom') {
  1807 + if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
  1808 + return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
  1809 + }
  1810 +
  1811 + var initializing = this.affixed == null
  1812 + var colliderTop = initializing ? scrollTop : position.top
  1813 + var colliderHeight = initializing ? targetHeight : height
  1814 +
  1815 + if (offsetTop != null && scrollTop <= offsetTop) return 'top'
  1816 + if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
  1817 +
  1818 + return false
  1819 + }
  1820 +
  1821 + Affix.prototype.getPinnedOffset = function () {
  1822 + if (this.pinnedOffset) return this.pinnedOffset
  1823 + this.$element.removeClass(Affix.RESET).addClass('affix')
  1824 + var scrollTop = this.$target.scrollTop()
  1825 + var position = this.$element.offset()
  1826 + return (this.pinnedOffset = position.top - scrollTop)
  1827 + }
  1828 +
  1829 + Affix.prototype.checkPositionWithEventLoop = function () {
  1830 + setTimeout($.proxy(this.checkPosition, this), 1)
  1831 + }
  1832 +
  1833 + Affix.prototype.checkPosition = function () {
  1834 + if (!this.$element.is(':visible')) return
  1835 +
  1836 + var height = this.$element.height()
  1837 + var offset = this.options.offset
  1838 + var offsetTop = offset.top
  1839 + var offsetBottom = offset.bottom
  1840 + var scrollHeight = Math.max($(document).height(), $(document.body).height())
  1841 +
  1842 + if (typeof offset != 'object') offsetBottom = offsetTop = offset
  1843 + if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
  1844 + if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
  1845 +
  1846 + var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
  1847 +
  1848 + if (this.affixed != affix) {
  1849 + if (this.unpin != null) this.$element.css('top', '')
  1850 +
  1851 + var affixType = 'affix' + (affix ? '-' + affix : '')
  1852 + var e = $.Event(affixType + '.bs.affix')
  1853 +
  1854 + this.$element.trigger(e)
  1855 +
  1856 + if (e.isDefaultPrevented()) return
  1857 +
  1858 + this.affixed = affix
  1859 + this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
  1860 +
  1861 + this.$element
  1862 + .removeClass(Affix.RESET)
  1863 + .addClass(affixType)
  1864 + .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
  1865 + }
  1866 +
  1867 + if (affix == 'bottom') {
  1868 + this.$element.offset({
  1869 + top: scrollHeight - height - offsetBottom
  1870 + })
  1871 + }
  1872 + }
  1873 +
  1874 +
  1875 + // AFFIX PLUGIN DEFINITION
  1876 + // =======================
  1877 +
  1878 + function Plugin(option) {
  1879 + return this.each(function () {
  1880 + var $this = $(this)
  1881 + var data = $this.data('bs.affix')
  1882 + var options = typeof option == 'object' && option
  1883 +
  1884 + if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
  1885 + if (typeof option == 'string') data[option]()
  1886 + })
  1887 + }
  1888 +
  1889 + var old = $.fn.affix
  1890 +
  1891 + $.fn.affix = Plugin
  1892 + $.fn.affix.Constructor = Affix
  1893 +
  1894 +
  1895 + // AFFIX NO CONFLICT
  1896 + // =================
  1897 +
  1898 + $.fn.affix.noConflict = function () {
  1899 + $.fn.affix = old
  1900 + return this
  1901 + }
  1902 +
  1903 +
  1904 + // AFFIX DATA-API
  1905 + // ==============
  1906 +
  1907 + $(window).on('load', function () {
  1908 + $('[data-spy="affix"]').each(function () {
  1909 + var $spy = $(this)
  1910 + var data = $spy.data()
  1911 +
  1912 + data.offset = data.offset || {}
  1913 +
  1914 + if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
  1915 + if (data.offsetTop != null) data.offset.top = data.offsetTop
  1916 +
  1917 + Plugin.call($spy, data)
  1918 + })
  1919 + })
  1920 +
  1921 +}(jQuery);
  1922 +
  1923 +/* ========================================================================
  1924 + * Bootstrap: collapse.js v3.3.6
  1925 + * http://getbootstrap.com/javascript/#collapse
  1926 + * ========================================================================
  1927 + * Copyright 2011-2015 Twitter, Inc.
  1928 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1929 + * ======================================================================== */
  1930 +
  1931 +
  1932 ++function ($) {
  1933 + 'use strict';
  1934 +
  1935 + // COLLAPSE PUBLIC CLASS DEFINITION
  1936 + // ================================
  1937 +
  1938 + var Collapse = function (element, options) {
  1939 + this.$element = $(element)
  1940 + this.options = $.extend({}, Collapse.DEFAULTS, options)
  1941 + this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
  1942 + '[data-toggle="collapse"][data-target="#' + element.id + '"]')
  1943 + this.transitioning = null
  1944 +
  1945 + if (this.options.parent) {
  1946 + this.$parent = this.getParent()
  1947 + } else {
  1948 + this.addAriaAndCollapsedClass(this.$element, this.$trigger)
  1949 + }
  1950 +
  1951 + if (this.options.toggle) this.toggle()
  1952 + }
  1953 +
  1954 + Collapse.VERSION = '3.3.6'
  1955 +
  1956 + Collapse.TRANSITION_DURATION = 350
  1957 +
  1958 + Collapse.DEFAULTS = {
  1959 + toggle: true
  1960 + }
  1961 +
  1962 + Collapse.prototype.dimension = function () {
  1963 + var hasWidth = this.$element.hasClass('width')
  1964 + return hasWidth ? 'width' : 'height'
  1965 + }
  1966 +
  1967 + Collapse.prototype.show = function () {
  1968 + if (this.transitioning || this.$element.hasClass('in')) return
  1969 +
  1970 + var activesData
  1971 + var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
  1972 +
  1973 + if (actives && actives.length) {
  1974 + activesData = actives.data('bs.collapse')
  1975 + if (activesData && activesData.transitioning) return
  1976 + }
  1977 +
  1978 + var startEvent = $.Event('show.bs.collapse')
  1979 + this.$element.trigger(startEvent)
  1980 + if (startEvent.isDefaultPrevented()) return
  1981 +
  1982 + if (actives && actives.length) {
  1983 + Plugin.call(actives, 'hide')
  1984 + activesData || actives.data('bs.collapse', null)
  1985 + }
  1986 +
  1987 + var dimension = this.dimension()
  1988 +
  1989 + this.$element
  1990 + .removeClass('collapse')
  1991 + .addClass('collapsing')[dimension](0)
  1992 + .attr('aria-expanded', true)
  1993 +
  1994 + this.$trigger
  1995 + .removeClass('collapsed')
  1996 + .attr('aria-expanded', true)
  1997 +
  1998 + this.transitioning = 1
  1999 +
  2000 + var complete = function () {
  2001 + this.$element
  2002 + .removeClass('collapsing')
  2003 + .addClass('collapse in')[dimension]('')
  2004 + this.transitioning = 0
  2005 + this.$element
  2006 + .trigger('shown.bs.collapse')
  2007 + }
  2008 +
  2009 + if (!$.support.transition) return complete.call(this)
  2010 +
  2011 + var scrollSize = $.camelCase(['scroll', dimension].join('-'))
  2012 +
  2013 + this.$element
  2014 + .one('bsTransitionEnd', $.proxy(complete, this))
  2015 + .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
  2016 + }
  2017 +
  2018 + Collapse.prototype.hide = function () {
  2019 + if (this.transitioning || !this.$element.hasClass('in')) return
  2020 +
  2021 + var startEvent = $.Event('hide.bs.collapse')
  2022 + this.$element.trigger(startEvent)
  2023 + if (startEvent.isDefaultPrevented()) return
  2024 +
  2025 + var dimension = this.dimension()
  2026 +
  2027 + this.$element[dimension](this.$element[dimension]())[0].offsetHeight
  2028 +
  2029 + this.$element
  2030 + .addClass('collapsing')
  2031 + .removeClass('collapse in')
  2032 + .attr('aria-expanded', false)
  2033 +
  2034 + this.$trigger
  2035 + .addClass('collapsed')
  2036 + .attr('aria-expanded', false)
  2037 +
  2038 + this.transitioning = 1
  2039 +
  2040 + var complete = function () {
  2041 + this.transitioning = 0
  2042 + this.$element
  2043 + .removeClass('collapsing')
  2044 + .addClass('collapse')
  2045 + .trigger('hidden.bs.collapse')
  2046 + }
  2047 +
  2048 + if (!$.support.transition) return complete.call(this)
  2049 +
  2050 + this.$element
  2051 + [dimension](0)
  2052 + .one('bsTransitionEnd', $.proxy(complete, this))
  2053 + .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
  2054 + }
  2055 +
  2056 + Collapse.prototype.toggle = function () {
  2057 + this[this.$element.hasClass('in') ? 'hide' : 'show']()
  2058 + }
  2059 +
  2060 + Collapse.prototype.getParent = function () {
  2061 + return $(this.options.parent)
  2062 + .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
  2063 + .each($.proxy(function (i, element) {
  2064 + var $element = $(element)
  2065 + this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
  2066 + }, this))
  2067 + .end()
  2068 + }
  2069 +
  2070 + Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
  2071 + var isOpen = $element.hasClass('in')
  2072 +
  2073 + $element.attr('aria-expanded', isOpen)
  2074 + $trigger
  2075 + .toggleClass('collapsed', !isOpen)
  2076 + .attr('aria-expanded', isOpen)
  2077 + }
  2078 +
  2079 + function getTargetFromTrigger($trigger) {
  2080 + var href
  2081 + var target = $trigger.attr('data-target')
  2082 + || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
  2083 +
  2084 + return $(target)
  2085 + }
  2086 +
  2087 +
  2088 + // COLLAPSE PLUGIN DEFINITION
  2089 + // ==========================
  2090 +
  2091 + function Plugin(option) {
  2092 + return this.each(function () {
  2093 + var $this = $(this)
  2094 + var data = $this.data('bs.collapse')
  2095 + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
  2096 +
  2097 + if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
  2098 + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
  2099 + if (typeof option == 'string') data[option]()
  2100 + })
  2101 + }
  2102 +
  2103 + var old = $.fn.collapse
  2104 +
  2105 + $.fn.collapse = Plugin
  2106 + $.fn.collapse.Constructor = Collapse
  2107 +
  2108 +
  2109 + // COLLAPSE NO CONFLICT
  2110 + // ====================
  2111 +
  2112 + $.fn.collapse.noConflict = function () {
  2113 + $.fn.collapse = old
  2114 + return this
  2115 + }
  2116 +
  2117 +
  2118 + // COLLAPSE DATA-API
  2119 + // =================
  2120 +
  2121 + $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
  2122 + var $this = $(this)
  2123 +
  2124 + if (!$this.attr('data-target')) e.preventDefault()
  2125 +
  2126 + var $target = getTargetFromTrigger($this)
  2127 + var data = $target.data('bs.collapse')
  2128 + var option = data ? 'toggle' : $this.data()
  2129 +
  2130 + Plugin.call($target, option)
  2131 + })
  2132 +
  2133 +}(jQuery);
  2134 +
  2135 +/* ========================================================================
  2136 + * Bootstrap: scrollspy.js v3.3.6
  2137 + * http://getbootstrap.com/javascript/#scrollspy
  2138 + * ========================================================================
  2139 + * Copyright 2011-2015 Twitter, Inc.
  2140 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  2141 + * ======================================================================== */
  2142 +
  2143 +
  2144 ++function ($) {
  2145 + 'use strict';
  2146 +
  2147 + // SCROLLSPY CLASS DEFINITION
  2148 + // ==========================
  2149 +
  2150 + function ScrollSpy(element, options) {
  2151 + this.$body = $(document.body)
  2152 + this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
  2153 + this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
  2154 + this.selector = (this.options.target || '') + ' .nav li > a'
  2155 + this.offsets = []
  2156 + this.targets = []
  2157 + this.activeTarget = null
  2158 + this.scrollHeight = 0
  2159 +
  2160 + this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
  2161 + this.refresh()
  2162 + this.process()
  2163 + }
  2164 +
  2165 + ScrollSpy.VERSION = '3.3.6'
  2166 +
  2167 + ScrollSpy.DEFAULTS = {
  2168 + offset: 10
  2169 + }
  2170 +
  2171 + ScrollSpy.prototype.getScrollHeight = function () {
  2172 + return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
  2173 + }
  2174 +
  2175 + ScrollSpy.prototype.refresh = function () {
  2176 + var that = this
  2177 + var offsetMethod = 'offset'
  2178 + var offsetBase = 0
  2179 +
  2180 + this.offsets = []
  2181 + this.targets = []
  2182 + this.scrollHeight = this.getScrollHeight()
  2183 +
  2184 + if (!$.isWindow(this.$scrollElement[0])) {
  2185 + offsetMethod = 'position'
  2186 + offsetBase = this.$scrollElement.scrollTop()
  2187 + }
  2188 +
  2189 + this.$body
  2190 + .find(this.selector)
  2191 + .map(function () {
  2192 + var $el = $(this)
  2193 + var href = $el.data('target') || $el.attr('href')
  2194 + var $href = /^#./.test(href) && $(href)
  2195 +
  2196 + return ($href
  2197 + && $href.length
  2198 + && $href.is(':visible')
  2199 + && [[$href[offsetMethod]().top + offsetBase, href]]) || null
  2200 + })
  2201 + .sort(function (a, b) { return a[0] - b[0] })
  2202 + .each(function () {
  2203 + that.offsets.push(this[0])
  2204 + that.targets.push(this[1])
  2205 + })
  2206 + }
  2207 +
  2208 + ScrollSpy.prototype.process = function () {
  2209 + var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
  2210 + var scrollHeight = this.getScrollHeight()
  2211 + var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
  2212 + var offsets = this.offsets
  2213 + var targets = this.targets
  2214 + var activeTarget = this.activeTarget
  2215 + var i
  2216 +
  2217 + if (this.scrollHeight != scrollHeight) {
  2218 + this.refresh()
  2219 + }
  2220 +
  2221 + if (scrollTop >= maxScroll) {
  2222 + return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
  2223 + }
  2224 +
  2225 + if (activeTarget && scrollTop < offsets[0]) {
  2226 + this.activeTarget = null
  2227 + return this.clear()
  2228 + }
  2229 +
  2230 + for (i = offsets.length; i--;) {
  2231 + activeTarget != targets[i]
  2232 + && scrollTop >= offsets[i]
  2233 + && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
  2234 + && this.activate(targets[i])
  2235 + }
  2236 + }
  2237 +
  2238 + ScrollSpy.prototype.activate = function (target) {
  2239 + this.activeTarget = target
  2240 +
  2241 + this.clear()
  2242 +
  2243 + var selector = this.selector +
  2244 + '[data-target="' + target + '"],' +
  2245 + this.selector + '[href="' + target + '"]'
  2246 +
  2247 + var active = $(selector)
  2248 + .parents('li')
  2249 + .addClass('active')
  2250 +
  2251 + if (active.parent('.dropdown-menu').length) {
  2252 + active = active
  2253 + .closest('li.dropdown')
  2254 + .addClass('active')
  2255 + }
  2256 +
  2257 + active.trigger('activate.bs.scrollspy')
  2258 + }
  2259 +
  2260 + ScrollSpy.prototype.clear = function () {
  2261 + $(this.selector)
  2262 + .parentsUntil(this.options.target, '.active')
  2263 + .removeClass('active')
  2264 + }
  2265 +
  2266 +
  2267 + // SCROLLSPY PLUGIN DEFINITION
  2268 + // ===========================
  2269 +
  2270 + function Plugin(option) {
  2271 + return this.each(function () {
  2272 + var $this = $(this)
  2273 + var data = $this.data('bs.scrollspy')
  2274 + var options = typeof option == 'object' && option
  2275 +
  2276 + if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
  2277 + if (typeof option == 'string') data[option]()
  2278 + })
  2279 + }
  2280 +
  2281 + var old = $.fn.scrollspy
  2282 +
  2283 + $.fn.scrollspy = Plugin
  2284 + $.fn.scrollspy.Constructor = ScrollSpy
  2285 +
  2286 +
  2287 + // SCROLLSPY NO CONFLICT
  2288 + // =====================
  2289 +
  2290 + $.fn.scrollspy.noConflict = function () {
  2291 + $.fn.scrollspy = old
  2292 + return this
  2293 + }
  2294 +
  2295 +
  2296 + // SCROLLSPY DATA-API
  2297 + // ==================
  2298 +
  2299 + $(window).on('load.bs.scrollspy.data-api', function () {
  2300 + $('[data-spy="scroll"]').each(function () {
  2301 + var $spy = $(this)
  2302 + Plugin.call($spy, $spy.data())
  2303 + })
  2304 + })
  2305 +
  2306 +}(jQuery);
  2307 +
  2308 +/* ========================================================================
  2309 + * Bootstrap: transition.js v3.3.6
  2310 + * http://getbootstrap.com/javascript/#transitions
  2311 + * ========================================================================
  2312 + * Copyright 2011-2015 Twitter, Inc.
  2313 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  2314 + * ======================================================================== */
  2315 +
  2316 +
  2317 ++function ($) {
  2318 + 'use strict';
  2319 +
  2320 + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
  2321 + // ============================================================
  2322 +
  2323 + function transitionEnd() {
  2324 + var el = document.createElement('bootstrap')
  2325 +
  2326 + var transEndEventNames = {
  2327 + WebkitTransition : 'webkitTransitionEnd',
  2328 + MozTransition : 'transitionend',
  2329 + OTransition : 'oTransitionEnd otransitionend',
  2330 + transition : 'transitionend'
  2331 + }
  2332 +
  2333 + for (var name in transEndEventNames) {
  2334 + if (el.style[name] !== undefined) {
  2335 + return { end: transEndEventNames[name] }
  2336 + }
  2337 + }
  2338 +
  2339 + return false // explicit for ie8 ( ._.)
  2340 + }
  2341 +
  2342 + // http://blog.alexmaccaw.com/css-transitions
  2343 + $.fn.emulateTransitionEnd = function (duration) {
  2344 + var called = false
  2345 + var $el = this
  2346 + $(this).one('bsTransitionEnd', function () { called = true })
  2347 + var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
  2348 + setTimeout(callback, duration)
  2349 + return this
  2350 + }
  2351 +
  2352 + $(function () {
  2353 + $.support.transition = transitionEnd()
  2354 +
  2355 + if (!$.support.transition) return
  2356 +
  2357 + $.event.special.bsTransitionEnd = {
  2358 + bindType: $.support.transition.end,
  2359 + delegateType: $.support.transition.end,
  2360 + handle: function (e) {
  2361 + if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
  2362 + }
  2363 + }
  2364 + })
  2365 +
  2366 +}(jQuery);
... ...
400-SOURCECODE/Admin/src/assets/scripts/fixed_table_rc.js 0 → 100644
  1 +/*
  2 +A jQuery plugin to convert a well formatted table into a table with fixed
  3 +rows and columns.
  4 +
  5 +Copyright 2011-2015 Selvakumar Arumugam
  6 +http://meetselva.github.io/
  7 +
  8 +Permission is hereby granted, free of charge, to any person obtaining
  9 +a copy of this software and associated documentation files (the
  10 +"Software"), to deal in the Software without restriction, including
  11 +without limitation the rights to use, copy, modify, merge, publish,
  12 +distribute, sublicense, and/or sell copies of the Software, and to
  13 +permit persons to whom the Software is furnished to do so, subject to
  14 +the following conditions:
  15 +
  16 +The above copyright notice and this permission notice shall be
  17 +included in all copies or substantial portions of the Software.
  18 +
  19 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  20 +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  21 +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  22 +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  23 +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  24 +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  25 +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  26 +*/
  27 +(function ($) {
  28 +
  29 + $.fn.fxdHdrCol = function (o) {
  30 + var cfg = {
  31 + height: 0,
  32 + width: 0,
  33 + fixedCols: 0,
  34 + colModal: [],
  35 + tableTmpl: function () {
  36 + return '<table />';
  37 + },
  38 + sort: false
  39 + };
  40 + $.extend(cfg, o);
  41 +
  42 + return this.each (function () {
  43 + var lc = {
  44 + ft_container: null,
  45 + ft_rel_container: null,
  46 + ft_wrapper: null,
  47 + ft_rc: null,
  48 + ft_r: null,
  49 + ft_c: null,
  50 + tableWidth: 0
  51 + };
  52 +
  53 + var $this = $(this);
  54 + $this.addClass('ui-widget-header');
  55 + $this.find('tbody tr').addClass('ui-widget-content');
  56 +
  57 + $this.wrap('<div class="ft_container" />');
  58 + lc.ft_container = $this.parent().css({width: cfg.width, height: cfg.height});
  59 +
  60 + var $ths = $('thead tr', $this).first().find('th');
  61 +
  62 + if (cfg.sort && sorttable && cfg.fixedCols == 0) {
  63 + $ths.addClass('fx_sort_bg');
  64 + }
  65 +
  66 + var $thFirst = $ths.first();
  67 + var thSpace = parseInt($thFirst.css('paddingLeft'), 10) + parseInt($thFirst.css('paddingRight'), 10);
  68 +
  69 + /* set width and textAlign from colModal */
  70 + var ct = 0;
  71 + $ths.each(function (i, el) {
  72 + var calcWidth = 0;
  73 + for (var j = 0; j < el.colSpan; j++) {
  74 + calcWidth += cfg.colModal[ct].width;
  75 + ct++;
  76 + }
  77 + $(el).css({width: calcWidth, textAlign: cfg.colModal[ct-1].align});
  78 +
  79 + lc.tableWidth += calcWidth + thSpace + ((i == 0)?2:1);
  80 + });
  81 +
  82 + $('tbody', $this).find('tr').each(function (i, el) {
  83 + $('td', el).each(function (i, tdel) {
  84 + tdel.style.textAlign = cfg.colModal[i].align;
  85 + });
  86 + });
  87 +
  88 + $this.width(lc.tableWidth);
  89 +
  90 + //add relative container
  91 + $this.wrap('<div class="ft_rel_container" />');
  92 + lc.ft_rel_container = $this.parent();
  93 +
  94 + //add wrapper to base table which will have the scrollbars
  95 + $this.wrap('<div class="ft_scroller" />');
  96 + lc.ft_wrapper = $this.parent().css('width', cfg.width - 5);
  97 +
  98 + var theadTr = $('thead', $this);
  99 + //clone the thead->tr
  100 + var theadTrClone = theadTr.clone();
  101 +
  102 + //construct fixed row (full row)
  103 + lc.ft_rel_container
  104 + .prepend($(cfg.tableTmpl(), {'class': 'ft_r ui-widget-header'})
  105 + .append(theadTrClone));
  106 +
  107 + //an instance of fixed row
  108 + lc.ft_r = $('.ft_r', lc.ft_rel_container);
  109 + lc.ft_r.wrap($('<div />', {'class': 'ft_rwrapper'}));
  110 +
  111 + lc.ft_r.width(lc.tableWidth);
  112 +
  113 + if (cfg.fixedCols > 0) {
  114 + //clone the thead again to construct the
  115 + theadTrClone = theadTr.clone();
  116 +
  117 + //calculate the actual column's count (support for colspan)
  118 + var r1c1ColSpan = 0;
  119 + for (var i = 0; i < cfg.fixedCols; i++ ) {
  120 + r1c1ColSpan += this.rows[0].cells[i].colSpan;
  121 + }
  122 +
  123 + //prepare rows/cols for fixed row col section
  124 + $('tr', theadTrClone).each(function () {
  125 + var tdct = 0;
  126 + $(this).find('th').filter(function() {
  127 + tdct += this.colSpan;
  128 + return tdct > r1c1ColSpan;
  129 + }).remove();
  130 + });
  131 +
  132 + //add fixed row col section
  133 + lc.ft_rel_container
  134 + .prepend($(cfg.tableTmpl(), {'class': 'ft_rc ui-widget-header'})
  135 + .append(theadTrClone));
  136 +
  137 + //an instance of fixed row column
  138 + lc.ft_rc = $('.ft_rc', lc.ft_rel_container);
  139 +
  140 + //now clone the fixed row column and append tbody for the remaining rows
  141 + lc.ft_c = lc.ft_rc.clone();
  142 + lc.ft_c[0].className = 'ft_c';
  143 +
  144 + //append tbody
  145 + lc.ft_c.append('<tbody />');
  146 +
  147 + //append row by row while just keeping the frozen cols
  148 + var ftc_tbody = lc.ft_c.find('tbody');
  149 + $.each ($this.find('tbody > tr'), function (idx, el) {
  150 + var tr = $(el).clone();
  151 +
  152 + tdct = 0;
  153 + tr.find('td').filter(function (){
  154 + tdct += this.colSpan;
  155 + return tdct > r1c1ColSpan;
  156 + }).remove();
  157 +
  158 + ftc_tbody.append(tr);
  159 + });
  160 +
  161 + lc.ft_rc.after(lc.ft_c);
  162 + lc.ft_c.wrap($('<div />', {'class': 'ft_cwrapper'}));
  163 +
  164 + var tw = 0;
  165 + for (var i = 0; i < cfg.fixedCols; i++) {
  166 + tw += $(this.rows[0].cells[i]).outerWidth(true);
  167 + }
  168 + lc.ft_c.add(lc.ft_rc).width(tw);
  169 + lc.ft_c.height($this.outerHeight(true));
  170 +
  171 + //set height of fixed_rc and fixed_c
  172 + for (var i = 0; i < this.rows.length; i++) {
  173 + var ch = $(this.rows[i]).outerHeight();
  174 + var fch = $(lc.ft_c[0].rows[i]).outerHeight(true);
  175 +
  176 + ch = (ch>fch)?ch:fch;
  177 +
  178 + if (i < lc.ft_rc[0].rows.length) {
  179 + $(lc.ft_r[0].rows[i])
  180 + .add(lc.ft_rc[0].rows[i])
  181 + .height(ch);
  182 + }
  183 +
  184 + $(lc.ft_c[0].rows[i])
  185 + .add(this.rows[i])
  186 + .height(ch);
  187 + }
  188 +
  189 + lc.ft_c
  190 + .parent()
  191 + .css({height: lc.ft_container.height() - 17})
  192 + .width(lc.ft_rc.outerWidth(true) + 1);
  193 + }
  194 +
  195 + lc.ft_r
  196 + .parent()
  197 + .css({width: lc.ft_wrapper.width()- 17});
  198 +
  199 + //events (scroll and resize)
  200 + lc.ft_wrapper.scroll(function () {
  201 + if (cfg.fixedCols > 0) {
  202 + lc.ft_c.css('top', ($(this).scrollTop()*-1));
  203 + }
  204 + lc.ft_r.css('left', ($(this).scrollLeft()*-1));
  205 + });
  206 +
  207 + /*$(window).on('resize', function () {
  208 + lc.ft_r
  209 + .parent()
  210 + .css({width: lc.ft_rel_container.width()- 17});
  211 + });*/
  212 +
  213 + if (cfg.sort && sorttable && cfg.fixedCols == 0) {
  214 +
  215 + $('table', lc.ft_container).addClass('sorttable');
  216 +
  217 + sorttable.makeSortable(this);
  218 +
  219 + var $sortableTh = $('.fx_sort_bg', lc.ft_rel_container);
  220 +
  221 + $sortableTh.click (function () {
  222 + var $this = $(this);
  223 + var isAscSort = $this.hasClass('fx_sort_asc');
  224 +
  225 + $sortableTh.removeClass('fx_sort_asc fx_sort_desc');
  226 +
  227 + if (isAscSort) {
  228 + $this.addClass('fx_sort_desc').removeClass('fx_sort_asc');
  229 + } else {
  230 + $this.addClass('fx_sort_asc').removeClass('fx_sort_desc');
  231 + }
  232 +
  233 + var idx = $(this).index();
  234 +
  235 + sorttable.innerSortFunction.apply(lc.ft_wrapper.find('th').get(idx), []);
  236 + });
  237 + }
  238 +
  239 + });
  240 +
  241 + };
  242 +
  243 +})(jQuery);
... ...
400-SOURCECODE/Admin/src/assets/scripts/jquery-1.11.3.min.js 0 → 100644
  1 +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
  2 +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
  3 +
  4 +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ca()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?aa:ba):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fa=/ jQuery\d+="(?:null|\d+)"/g,ga=new RegExp("<(?:"+ea+")[\\s/>]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/<tbody/i,la=/<|&#?\w+;/,ma=/<(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ra={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?"<table>"!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&&Ga.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ha.test(g)&&!Ka.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp("^("+S+")(.*)$","i"),Qa=new RegExp("^([+-])=("+S+")","i"),Ra={position:"absolute",visibility:"hidden",display:"block"},Sa={letterSpacing:"0",fontWeight:"400"},Ta=["Webkit","O","Moz","ms"];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fa(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Ya(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Ja(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ha.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qa.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Ja(a,b,d)),"normal"===f&&b in Sa&&(f=Sa[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&&Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Ma,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+" "+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Ja,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){
  5 +return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Za.propHooks[this.prop];return a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cb=/queueHooks$/,db=[ib],eb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fa(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fa(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fa(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g>f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lb,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&&qb||!pb.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&&qb||!pb.test(c)?a.setAttribute(!qb&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&&qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rb&&qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mb&&mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ub," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&])_=[^&]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb="*/".concat("*");try{zb=location.href}catch(Kb){zb=y.createElement("a"),zb.href="",zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:"GET",isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+"").replace(Ab,"").replace(Fb,yb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&&c[2]===yb[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yb[3]||("http:"===yb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wb.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bb.test(e)?e.replace(Bb,"$1_="+vb++):e+(wb.test(e)?"&":"?")+"_="+vb++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jb+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vb(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join("&").replace(Qb,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Ub.test(this.nodeName)&&!Tb.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,"\r\n")}}):{name:b.name,value:c.replace(Sb,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&&"withCredentials"in Yb,Yb=k.ajax=!!Yb,Yb&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_b.pop()||m.expando+"_"+vb++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ac.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ac.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,"$1"+e):b.jsonp!==!1&&(b.url+=(wb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m});
... ...
400-SOURCECODE/Admin/src/assets/styles/admin-custom.css 0 → 100644
  1 +
  2 +.margin-btm0{ margin-bottom: 0;}
  3 +.marginTop20{ margin-top: 20px;}
  4 +.marginR10{ margin-right: 10px;}
  5 +.font-bold{ font-weight: bold;}
  6 +.red{ color: #ff0000;}
  7 +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{ background: #eeeeee;}
  8 +
  9 +@media (max-width: 1024px) {
  10 +.dropdown .dropdown-menu{
  11 + background:#222;
  12 + box-shadow:none;
  13 + border:0;
  14 + }
  15 +.dropdown .dropdown-menu li a{
  16 + color:#adadad;
  17 + }
  18 +.dropdown .dropdown-menu li a:hover{
  19 + background:none;
  20 + color:#fff;
  21 + }
  22 +#navbar{margin-left:-15px; margin-right:-15px;}
  23 +#navbar .navbar-nav > li > a {
  24 + padding-bottom: 4px;
  25 + padding-top: 4px;
  26 +}
  27 +.navbar-nav .open .dropdown-menu {
  28 + position: static;
  29 + float: none;
  30 + width: auto;
  31 + margin-top: 0;
  32 + background-color: transparent;
  33 + border: 0;
  34 + -webkit-box-shadow: none;
  35 + box-shadow: none;
  36 +}
  37 + }
  38 +
  39 +@media (max-width: 1024px) {
  40 + .navbar-header {
  41 + float: none;
  42 + }
  43 + .navbar-left,.navbar-right {
  44 + float: none !important;
  45 + }
  46 + .navbar-toggle {
  47 + display: block;
  48 + }
  49 + .navbar-collapse {
  50 + border-top: 1px solid transparent;
  51 + box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
  52 + }
  53 + .navbar-fixed-top {
  54 + top: 0;
  55 + border-width: 0 0 1px;
  56 + }
  57 + .navbar-collapse.collapse {
  58 + display: none!important;
  59 + }
  60 + .navbar-nav {
  61 + float: none!important;
  62 + margin-top: 7.5px;
  63 + }
  64 + .navbar-nav>li {
  65 + float: none;
  66 + }
  67 + .navbar-nav>li>a {
  68 + padding-top: 10px;
  69 + padding-bottom: 10px;
  70 + }
  71 + .collapse.in{
  72 + display:block !important;
  73 + }
  74 + .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse {
  75 + max-height: 419px;
  76 +}
  77 +
  78 +.nav.toperMenu-spaceleft {
  79 + margin-left: 0px !important;
  80 +}
  81 +#navbar{padding-left:0;
  82 +}
  83 +}
  84 +
  85 +
  86 +
  87 +
  88 +
  89 +
  90 +@media (min-width:768px) and (max-width: 1024px) {
  91 + #navbar .toperMenu-spaceleft {
  92 + margin-left: 17px;
  93 +}
  94 + .margin48Top-sm{ margin-top: 48px;}
  95 +
  96 + }
  97 +
  98 +
  99 +
  100 +
  101 +.mar-top17{margin-top:17px;}
  102 +.bg-color{background:#ddd;}
  103 +
  104 +@media (min-width: 1200px) {
  105 + .text-right-lg{ text-align: right;}
  106 +
  107 +}
  108 +
  109 +/*30-1-2017*/
  110 +
  111 +@media (min-width:320px) and (max-width: 767px) {
  112 +.wel-brog .mob2{float:left !important;}
  113 +.wel-brog .mob1{float:right !important;}
  114 +.form-group .mar-left0{ margin-left:0px;}
  115 +}
  116 +@media (min-width:768px) and (max-width: 1023px) {
  117 +.form-group .mar-left0{ margin-left:0px;}
  118 +.mar-left6{margin-left:6px;}
  119 +}
  120 +.help-block1 {
  121 + display: block;
  122 + margin-top: 10px;
  123 + margin-bottom: 0px;
  124 + color: #707070;
  125 +}
  126 +.mar-left6{margin-left:6px;}
  127 +.marginTop26{margin-top:26px;}
  128 +.blue table tr th {
  129 + font-weight: bold;
  130 + background: #0095da;
  131 + color: #fff;
  132 +}
  133 +/*30-1-2017*/
... ...
400-SOURCECODE/Admin/src/assets/styles/angular-custom.css 0 → 100644
  1 +.form-control[required][disabled] { background: #eeeeee; border-color:#ccc ;}
  2 +.edisabled span{
  3 + background: #eeeeee;
  4 + border-color: #ccc;
  5 +}
  6 +
  7 +.Calander[required][disabled] {
  8 + background: #eeeeee;
  9 + border-color: #ccc;
  10 +}
  11 +
  12 +.Calander[disabled] {
  13 + background: #eeeeee;
  14 + border-color: #ccc;
  15 +}
  16 +
  17 +.edisabled span {
  18 + background: #eeeeee;
  19 +}
  20 +
  21 +/*li:empty {
  22 + display:none;
  23 + margin:0;
  24 + padding:0;
  25 + border:0;
  26 +}*/
  27 +
  28 +.selectedrow td {
  29 + background-color: #c0dcfa !important;
  30 +}
  31 +
  32 +select[required] {
  33 + background: #fafbee;
  34 +}
  35 +
  36 +
  37 +.close-button {
  38 + cursor: pointer;
  39 + padding-right: 12px;
  40 + background-color: red;
  41 + background: url('../img/close-button.png');
  42 +}
  43 +
  44 +.errorMsg {
  45 + color: #f00;
  46 + font-size: 12px;
  47 +}
  48 +
  49 +input.capitalize {
  50 + text-transform: capitalize;
  51 +}
  52 +
  53 +td.capitalize {
  54 + text-transform: capitalize;
  55 +}
  56 +
  57 +input.uppercase {
  58 + text-transform: uppercase;
  59 +}
  60 +
  61 +textarea {
  62 + resize: none;
  63 +}
  64 +
  65 +cursor-pointer {
  66 + cursor: pointer !important;
  67 +}
  68 +
  69 +.tabwrapper ul li a span i:hover {
  70 + cursor: pointer;
  71 +}
  72 +
  73 +.alert-margin {
  74 + margin-right: 10px;
  75 +}
  76 +
  77 +.alert-header-custom {
  78 + background-color: #5d8fc2 !important;
  79 + padding: 8px !important;
  80 + color: white;
  81 +}
  82 +
  83 +.alert-closebutton {
  84 + float: right;
  85 + font-size: 21px;
  86 + font-weight: bold;
  87 + line-height: 1;
  88 + color: white;
  89 + text-shadow: 0 1px 0 #fff;
  90 + opacity: 1;
  91 + filter: alpha(opacity=20);
  92 +}
  93 +
  94 +.alert-closebutto:hover, .alert-closebutto:focus {
  95 + color: #000;
  96 + text-decoration: none;
  97 + cursor: pointer;
  98 + opacity: 0.5;
  99 + filter: alpha(opacity=50);
  100 +}
  101 +
  102 +button.alert-closebutton {
  103 + padding: 0;
  104 + cursor: pointer;
  105 + background: transparent;
  106 + border: 0;
  107 + -webkit-appearance: none;
  108 +}
  109 +/*.table-fixed {
  110 + width: 100%;
  111 + background-color: #f3f3f3;
  112 +}
  113 +.table-fixed tbody {
  114 + height: 200px;
  115 + overflow-y: auto;
  116 + width: 100%;
  117 +}
  118 +.table-fixed thead, .table-fixed tbody, .table-fixed tr, .table-fixed td, .table-fixed th {
  119 + display: block;
  120 +}
  121 +.table-fixed tbody td {
  122 + float: left;
  123 +}
  124 +.table-fixed thead tr th {
  125 + float: left;
  126 + background-color: #f39c12;
  127 + border-color: #e67e22;
  128 +}*/
  129 +.custom-fixed tbody {
  130 + display: block;
  131 + height: 250px;
  132 + overflow: auto;
  133 +}
  134 +
  135 + .custom-fixed thead, .custom-fixed tbody tr {
  136 + display: table;
  137 + width: 100%;
  138 + table-layout: fixed;
  139 + }
  140 +
  141 +.custom-fixed thead {
  142 + width: calc(100%);
  143 +}/**/
  144 +
  145 +.select2-search input {
  146 + width: 100%;
  147 + height: auto !important;
  148 + min-height: 26px;
  149 + padding: 4px 20px 4px 5px;
  150 + margin: 0;
  151 + outline: 0;
  152 + font-family: sans-serif;
  153 + font-size: 1em;
  154 + border: 1px solid #aaa;
  155 + border-radius: 0;
  156 + -webkit-box-shadow: none;
  157 + box-shadow: none;
  158 + background: #fff url(select2.png) no-repeat 100% -22px;
  159 + background: url(select2.png) no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
  160 + background: url(select2.png) no-repeat 100% -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
  161 + background: url(select2.png) no-repeat 100% -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
  162 + background: url(select2.png) no-repeat 100% -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;
  163 +}
  164 +
  165 +.Calander {
  166 + box-shadow: none;
  167 + font-weight: 400;
  168 + background-color: #fff;
  169 + background-image: url('../img/calander.png');
  170 + background-repeat: no-repeat;
  171 + background-position: right;
  172 + border: 1px solid #ccc;
  173 + border-radius: 2px;
  174 + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
  175 + color: #555555;
  176 + display: block;
  177 + font-size: 14px;
  178 + height: 34px;
  179 + line-height: 1.42857;
  180 + padding: 6px 12px;
  181 + transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
  182 + width: 100%;
  183 +}
  184 +
  185 + .Calander[required] {
  186 + background-color: #f5f9c4;
  187 + background-image: url("../img/calander.png");
  188 + border-color: #ccd83a;
  189 + }
  190 +
  191 +ng2-datetime-picker {
  192 + width: 232px !important;
  193 +}
  194 +/*select2 option[value=""] { display: none!important; }*/
  195 +select2[required] span span span {
  196 + background-color: #f5f9c4 !important;
  197 + border-color: #ccd83a !important;
  198 +}
  199 +
  200 +select2.edisabled[required] span span span {
  201 + background: #eeeeee !important;
  202 + border-color: #cccccc !important;
  203 +}
  204 +
  205 +select2 span > span > span > span.select2-selection__rendered {
  206 + line-height: 25px !important;
  207 +}
  208 +
  209 +ul.select2-results__options > li:empty {
  210 + display: none;
  211 + background-color: #eeeeee;
  212 + margin: 0;
  213 + padding: 0;
  214 + border: 0;
  215 +}
  216 +.errorMsg {
  217 + color: #f00;
  218 + font-size: 12px;
  219 +}
  220 + /* {margin: 0;
  221 +}*/
  222 +.redcolorclass {
  223 + color:red !important;
  224 +}
  225 + .textboxAslabel {
  226 +border:none;
  227 +background-color:#FFF;
  228 +border-color:#FFF;
  229 +}
  230 +
  231 +
  232 + [hidden] {
  233 + display: none!important;
  234 +}
  235 +input[transaction-currency] {
  236 + text-align: right !important;
  237 + background-image: url('../img/doller.png');
  238 + background-position-y:center;
  239 + background-position-x:left;
  240 + background-repeat:no-repeat;
  241 + padding-left: 17px;
  242 +}
  243 +input[readonly]{
  244 + background-color:#eeeeee!important;
  245 +}
  246 +.z-index-2{
  247 + z-index:2;
  248 +}
  249 +.z-index-4{
  250 + z-index:4;
  251 +}
  252 +
  253 +ng-select[required]{
  254 + background-color: #f5f9c4 !important;
  255 + border-color: #ccd83a !important;
  256 +}
  257 +
  258 +ng-select.edisabled[required]{
  259 + background: #eeeeee !important;
  260 + border-color: #cccccc !important;
  261 +}
  262 +ng-select.edisabled{
  263 + background: #eeeeee !important;
  264 + border-color: #cccccc !important;
  265 +}
  266 +ng-select{
  267 + background-color:#ffffff;
  268 + max-width:100%;
  269 +}
  270 +.white-bg{
  271 + background-color:#ffffff;
  272 +}
  273 +select-dropdown ul li{
  274 + min-height:28px;
  275 +}
  276 +select-dropdown > div{z-index:999!important;}
  277 +
  278 +select-dropdown > div .options {
  279 + float: left;
  280 + width: 100%;
  281 +}
  282 +select-dropdown > div .filter{
  283 + float: left;
  284 + width: 100%;
  285 +}
  286 +
  287 +ng-select > div > div.single > div.clear:hover, ng-select > div > div.single > div.toggle{
  288 + float:right;
  289 +}
  290 +.hide{
  291 + display: none!important;
  292 +}
  293 +ng-select ul li.disabled span{
  294 + background-color:#ffffff;
  295 +}
  296 +ng-select ul li.highlighted span{
  297 + background-color:#2196F3;
  298 +}
  299 +
... ...
400-SOURCECODE/Admin/src/assets/styles/bootstrap-datetimepicker.min.css 0 → 100644
  1 +/*!
  2 + * Datepicker for Bootstrap
  3 + *
  4 + * Copyright 2012 Stefan Petre
  5 + * Licensed under the Apache License v2.0
  6 + * http://www.apache.org/licenses/LICENSE-2.0
  7 + *
  8 + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-datetimepicker-widget{top:0;left:0;width:250px;padding:4px;margin-top:1px;z-index:3000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.bootstrap-datetimepicker-widget:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:6px}.bootstrap-datetimepicker-widget:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:7px}.bootstrap-datetimepicker-widget.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget>ul{list-style-type:none;margin:0; padding-left:0;}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:100%;font-weight:bold;font-size:1.2em}.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator{width:4px;padding:0;margin:0}.bootstrap-datetimepicker-widget .datepicker>div{display:none}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget td,.bootstrap-datetimepicker-widget th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.bootstrap-datetimepicker-widget td.day:hover,.bootstrap-datetimepicker-widget td.hour:hover,.bootstrap-datetimepicker-widget td.minute:hover,.bootstrap-datetimepicker-widget td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget td.old,.bootstrap-datetimepicker-widget td.new{color:#999}.bootstrap-datetimepicker-widget td.active,.bootstrap-datetimepicker-widget td.active:hover{color:#fff;background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget td.active:hover,.bootstrap-datetimepicker-widget td.active:hover:hover,.bootstrap-datetimepicker-widget td.active:active,.bootstrap-datetimepicker-widget td.active:hover:active,.bootstrap-datetimepicker-widget td.active.active,.bootstrap-datetimepicker-widget td.active:hover.active,.bootstrap-datetimepicker-widget td.active.disabled,.bootstrap-datetimepicker-widget td.active:hover.disabled,.bootstrap-datetimepicker-widget td.active[disabled],.bootstrap-datetimepicker-widget td.active:hover[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.bootstrap-datetimepicker-widget td.active:active,.bootstrap-datetimepicker-widget td.active:hover:active,.bootstrap-datetimepicker-widget td.active.active,.bootstrap-datetimepicker-widget td.active:hover.active{background-color:#039 \9}.bootstrap-datetimepicker-widget td.disabled,.bootstrap-datetimepicker-widget td.disabled:hover{background:0;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget td span{display:block;width:47px;height:54px;line-height:54px;float:left;margin:2px;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.bootstrap-datetimepicker-widget td span:hover{background:#eee}.bootstrap-datetimepicker-widget td span.active{color:#fff;background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget td span.active:hover,.bootstrap-datetimepicker-widget td span.active:active,.bootstrap-datetimepicker-widget td span.active.active,.bootstrap-datetimepicker-widget td span.active.disabled,.bootstrap-datetimepicker-widget td span.active[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.bootstrap-datetimepicker-widget td span.active:active,.bootstrap-datetimepicker-widget td span.active.active{background-color:#039 \9}.bootstrap-datetimepicker-widget td span.old{color:#999}.bootstrap-datetimepicker-widget td span.disabled,.bootstrap-datetimepicker-widget td span.disabled:hover{background:0;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget th.switch{width:145px}.bootstrap-datetimepicker-widget th.next,.bootstrap-datetimepicker-widget th.prev{font-size:21px}.bootstrap-datetimepicker-widget th.disabled,.bootstrap-datetimepicker-widget th.disabled:hover{background:0;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget thead tr:first-child th:hover{background:#eee}.input-append.date .add-on i,.input-prepend.date .add-on i{display:inline-block;cursor:pointer;width:16px;height:16px}.bootstrap-datetimepicker-widget.left-oriented:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.left-oriented:after{left:auto;right:7px}
0 9 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/assets/styles/bootstrap.css 0 → 100644
Changes suppressed. Click to show
  1 +/*!
  2 + * Bootstrap v3.3.5 (http://getbootstrap.com)
  3 + * Copyright 2011-2015 Twitter, Inc.
  4 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  5 + */
  6 +
  7 +/*!
  8 + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=7b2c778c370c61853a11)
  9 + * Config saved to config.json and https://gist.github.com/7b2c778c370c61853a11
  10 + */
  11 +/*!
  12 + * Bootstrap v3.3.6 (http://getbootstrap.com)
  13 + * Copyright 2011-2015 Twitter, Inc.
  14 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  15 + */
  16 +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
  17 +html {
  18 + font-family: sans-serif;
  19 + -ms-text-size-adjust: 100%;
  20 + -webkit-text-size-adjust: 100%;
  21 +}
  22 +body {
  23 + margin: 0;
  24 +}
  25 +article,
  26 +aside,
  27 +details,
  28 +figcaption,
  29 +figure,
  30 +footer,
  31 +header,
  32 +hgroup,
  33 +main,
  34 +menu,
  35 +nav,
  36 +section,
  37 +summary {
  38 + display: block;
  39 +}
  40 +audio,
  41 +canvas,
  42 +progress,
  43 +video {
  44 + display: inline-block;
  45 + vertical-align: baseline;
  46 +}
  47 +audio:not([controls]) {
  48 + display: none;
  49 + height: 0;
  50 +}
  51 +[hidden],
  52 +template {
  53 + display: none;
  54 +}
  55 +a {
  56 + background-color: transparent;
  57 +}
  58 +a:active,
  59 +a:hover {
  60 + outline: 0;
  61 +}
  62 +abbr[title] {
  63 + border-bottom: 1px dotted;
  64 +}
  65 +b,
  66 +strong {
  67 + font-weight: bold;
  68 +}
  69 +dfn {
  70 + font-style: italic;
  71 +}
  72 +h1 {
  73 + font-size: 2em;
  74 + margin: 0.67em 0;
  75 +}
  76 +mark {
  77 + background: #ff0;
  78 + color: #000;
  79 +}
  80 +small {
  81 + font-size: 80%;
  82 +}
  83 +sub,
  84 +sup {
  85 + font-size: 75%;
  86 + line-height: 0;
  87 + position: relative;
  88 + vertical-align: baseline;
  89 +}
  90 +sup {
  91 + top: -0.5em;
  92 +}
  93 +sub {
  94 + bottom: -0.25em;
  95 +}
  96 +img {
  97 + border: 0;
  98 +}
  99 +svg:not(:root) {
  100 + overflow: hidden;
  101 +}
  102 +figure {
  103 + margin: 1em 40px;
  104 +}
  105 +hr {
  106 + -webkit-box-sizing: content-box;
  107 + -moz-box-sizing: content-box;
  108 + box-sizing: content-box;
  109 + height: 0;
  110 +}
  111 +pre {
  112 + overflow: auto;
  113 +}
  114 +code,
  115 +kbd,
  116 +pre,
  117 +samp {
  118 + font-family: monospace, monospace;
  119 + font-size: 1em;
  120 +}
  121 +button,
  122 +input,
  123 +optgroup,
  124 +select,
  125 +textarea {
  126 + color: inherit;
  127 + font: inherit;
  128 + margin: 0;
  129 +}
  130 +button {
  131 + overflow: visible;
  132 +}
  133 +button,
  134 +select {
  135 + text-transform: none;
  136 +}
  137 +button,
  138 +html input[type="button"],
  139 +input[type="reset"],
  140 +input[type="submit"] {
  141 + -webkit-appearance: button;
  142 + cursor: pointer;
  143 +}
  144 +button[disabled],
  145 +html input[disabled] {
  146 + cursor: default;
  147 +}
  148 +button::-moz-focus-inner,
  149 +input::-moz-focus-inner {
  150 + border: 0;
  151 + padding: 0;
  152 +}
  153 +input {
  154 + line-height: normal;
  155 +}
  156 +input[type="checkbox"],
  157 +input[type="radio"] {
  158 + -webkit-box-sizing: border-box;
  159 + -moz-box-sizing: border-box;
  160 + box-sizing: border-box;
  161 + padding: 0;
  162 +}
  163 +input[type="number"]::-webkit-inner-spin-button,
  164 +input[type="number"]::-webkit-outer-spin-button {
  165 + height: auto;
  166 +}
  167 +input[type="search"] {
  168 + -webkit-appearance: textfield;
  169 + -webkit-box-sizing: content-box;
  170 + -moz-box-sizing: content-box;
  171 + box-sizing: content-box;
  172 +}
  173 +input[type="search"]::-webkit-search-cancel-button,
  174 +input[type="search"]::-webkit-search-decoration {
  175 + -webkit-appearance: none;
  176 +}
  177 +fieldset {
  178 + border: 1px solid #c0c0c0;
  179 + margin: 0 2px;
  180 + padding: 0.35em 0.625em 0.75em;
  181 +}
  182 +legend {
  183 + border: 0;
  184 + padding: 0;
  185 +}
  186 +textarea {
  187 + overflow: auto;
  188 +}
  189 +optgroup {
  190 + font-weight: bold;
  191 +}
  192 +table {
  193 + border-collapse: collapse;
  194 + border-spacing: 0;
  195 +}
  196 +td,
  197 +th {
  198 + padding: 0;
  199 +}
  200 +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
  201 +@media print {
  202 + *,
  203 + *:before,
  204 + *:after {
  205 + background: transparent !important;
  206 + color: #000 !important;
  207 + -webkit-box-shadow: none !important;
  208 + box-shadow: none !important;
  209 + text-shadow: none !important;
  210 + }
  211 + a,
  212 + a:visited {
  213 + text-decoration: underline;
  214 + }
  215 + a[href]:after {
  216 + content: " (" attr(href) ")";
  217 + }
  218 + abbr[title]:after {
  219 + content: " (" attr(title) ")";
  220 + }
  221 + a[href^="#"]:after,
  222 + a[href^="javascript:"]:after {
  223 + content: "";
  224 + }
  225 + pre,
  226 + blockquote {
  227 + border: 1px solid #999;
  228 + page-break-inside: avoid;
  229 + }
  230 + thead {
  231 + display: table-header-group;
  232 + }
  233 + tr,
  234 + img {
  235 + page-break-inside: avoid;
  236 + }
  237 + img {
  238 + max-width: 100% !important;
  239 + }
  240 + p,
  241 + h2,
  242 + h3 {
  243 + orphans: 3;
  244 + widows: 3;
  245 + }
  246 + h2,
  247 + h3 {
  248 + page-break-after: avoid;
  249 + }
  250 + .navbar {
  251 + display: none;
  252 + }
  253 + .btn > .caret,
  254 + .dropup > .btn > .caret {
  255 + border-top-color: #000 !important;
  256 + }
  257 + .label {
  258 + border: 1px solid #000;
  259 + }
  260 + .table {
  261 + border-collapse: collapse !important;
  262 + }
  263 + .table td,
  264 + .table th {
  265 + background-color: #fff !important;
  266 + }
  267 + .table-bordered th,
  268 + .table-bordered td {
  269 + border: 1px solid #ddd !important;
  270 + }
  271 +}
  272 +* {
  273 + -webkit-box-sizing: border-box;
  274 + -moz-box-sizing: border-box;
  275 + box-sizing: border-box;
  276 +}
  277 +*:before,
  278 +*:after {
  279 + -webkit-box-sizing: border-box;
  280 + -moz-box-sizing: border-box;
  281 + box-sizing: border-box;
  282 +}
  283 +html {
  284 + font-size: 10px;
  285 + -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  286 +}
  287 +body {
  288 + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  289 + font-size: 14px;
  290 + line-height: 1.42857143;
  291 + color: #303030;
  292 + background-color: #ffffff;
  293 +}
  294 +input,
  295 +button,
  296 +select,
  297 +textarea {
  298 + font-family: inherit;
  299 + font-size: inherit;
  300 + line-height: inherit;
  301 +}
  302 +a {
  303 + color: #0095da;
  304 + text-decoration: none;
  305 +}
  306 +a:hover,
  307 +a:focus {
  308 + color: #007ab3;
  309 + text-decoration: underline;
  310 +}
  311 +a:focus {
  312 + outline: thin dotted;
  313 + outline: 5px auto -webkit-focus-ring-color;
  314 + outline-offset: -2px;
  315 +}
  316 +figure {
  317 + margin: 0;
  318 +}
  319 +img {
  320 + vertical-align: middle;
  321 +}
  322 +.img-responsive,
  323 +.thumbnail > img,
  324 +.thumbnail a > img,
  325 +.carousel-inner > .item > img,
  326 +.carousel-inner > .item > a > img {
  327 + display: block;
  328 + max-width: 100%;
  329 + height: auto;
  330 +}
  331 +.img-rounded {
  332 + border-radius: 2px;
  333 +}
  334 +.img-thumbnail {
  335 + padding: 4px;
  336 + line-height: 1.42857143;
  337 + background-color: #ffffff;
  338 + border: 1px solid #dddddd;
  339 + border-radius: 2px;
  340 + -webkit-transition: all 0.2s ease-in-out;
  341 + -o-transition: all 0.2s ease-in-out;
  342 + transition: all 0.2s ease-in-out;
  343 + display: inline-block;
  344 + max-width: 100%;
  345 + height: auto;
  346 +}
  347 +.img-circle {
  348 + border-radius: 50%;
  349 +}
  350 +hr {
  351 + margin-top: 20px;
  352 + margin-bottom: 20px;
  353 + border: 0;
  354 + border-top: 1px solid #fefefe;
  355 +}
  356 +.sr-only {
  357 + position: absolute;
  358 + width: 1px;
  359 + height: 1px;
  360 + margin: -1px;
  361 + padding: 0;
  362 + overflow: hidden;
  363 + clip: rect(0, 0, 0, 0);
  364 + border: 0;
  365 +}
  366 +.sr-only-focusable:active,
  367 +.sr-only-focusable:focus {
  368 + position: static;
  369 + width: auto;
  370 + height: auto;
  371 + margin: 0;
  372 + overflow: visible;
  373 + clip: auto;
  374 +}
  375 +[role="button"] {
  376 + cursor: pointer;
  377 +}
  378 +h1,
  379 +h2,
  380 +h3,
  381 +h4,
  382 +h5,
  383 +h6,
  384 +.h1,
  385 +.h2,
  386 +.h3,
  387 +.h4,
  388 +.h5,
  389 +.h6 {
  390 + font-family: inherit;
  391 + font-weight: 500;
  392 + line-height: 1.1;
  393 + color: inherit;
  394 +}
  395 +h1 small,
  396 +h2 small,
  397 +h3 small,
  398 +h4 small,
  399 +h5 small,
  400 +h6 small,
  401 +.h1 small,
  402 +.h2 small,
  403 +.h3 small,
  404 +.h4 small,
  405 +.h5 small,
  406 +.h6 small,
  407 +h1 .small,
  408 +h2 .small,
  409 +h3 .small,
  410 +h4 .small,
  411 +h5 .small,
  412 +h6 .small,
  413 +.h1 .small,
  414 +.h2 .small,
  415 +.h3 .small,
  416 +.h4 .small,
  417 +.h5 .small,
  418 +.h6 .small {
  419 + font-weight: normal;
  420 + line-height: 1;
  421 + color: #878787;
  422 +}
  423 +h1,
  424 +.h1,
  425 +h2,
  426 +.h2,
  427 +h3,
  428 +.h3 {
  429 + margin-top: 20px;
  430 + margin-bottom: 10px;
  431 +}
  432 +h1 small,
  433 +.h1 small,
  434 +h2 small,
  435 +.h2 small,
  436 +h3 small,
  437 +.h3 small,
  438 +h1 .small,
  439 +.h1 .small,
  440 +h2 .small,
  441 +.h2 .small,
  442 +h3 .small,
  443 +.h3 .small {
  444 + font-size: 65%;
  445 +}
  446 +h4,
  447 +.h4,
  448 +h5,
  449 +.h5,
  450 +h6,
  451 +.h6 {
  452 + margin-top: 10px;
  453 + margin-bottom: 10px;
  454 +}
  455 +h4 small,
  456 +.h4 small,
  457 +h5 small,
  458 +.h5 small,
  459 +h6 small,
  460 +.h6 small,
  461 +h4 .small,
  462 +.h4 .small,
  463 +h5 .small,
  464 +.h5 .small,
  465 +h6 .small,
  466 +.h6 .small {
  467 + font-size: 75%;
  468 +}
  469 +h1,
  470 +.h1 {
  471 + font-size: 36px;
  472 +}
  473 +h2,
  474 +.h2 {
  475 + font-size: 30px;
  476 +}
  477 +h3,
  478 +.h3 {
  479 + font-size: 24px;
  480 +}
  481 +h4,
  482 +.h4 {
  483 + font-size: 18px;
  484 +}
  485 +h5,
  486 +.h5 {
  487 + font-size: 14px;
  488 +}
  489 +h6,
  490 +.h6 {
  491 + font-size: 12px;
  492 +}
  493 +p {
  494 + margin: 0 0 10px;
  495 +}
  496 +.lead {
  497 + margin-bottom: 20px;
  498 + font-size: 16px;
  499 + font-weight: 300;
  500 + line-height: 1.4;
  501 +}
  502 +
  503 +
  504 +
  505 +
  506 +
  507 +@media (min-width: 768px) {
  508 + .lead {
  509 + font-size: 21px;
  510 + }
  511 +}
  512 +small,
  513 +.small {
  514 + font-size: 85%;
  515 +}
  516 +mark,
  517 +.mark {
  518 + background-color: #fcf8e3;
  519 + padding: .2em;
  520 +}
  521 +.text-left {
  522 + text-align: left;
  523 +}
  524 +.text-right {
  525 + text-align: right;
  526 +}
  527 +.text-center {
  528 + text-align: center;
  529 +}
  530 +.text-justify {
  531 + text-align: justify;
  532 +}
  533 +.text-nowrap {
  534 + white-space: nowrap;
  535 +}
  536 +.text-lowercase {
  537 + text-transform: lowercase;
  538 +}
  539 +.text-uppercase {
  540 + text-transform: uppercase;
  541 +}
  542 +.text-capitalize {
  543 + text-transform: capitalize;
  544 +}
  545 +.text-muted {
  546 + color: #878787;
  547 +}
  548 +.text-primary {
  549 + color: #0095da;
  550 +}
  551 +a.text-primary:hover,
  552 +a.text-primary:focus {
  553 + color: #0072a7;
  554 +}
  555 +.text-success {
  556 + color: #3c763d;
  557 +}
  558 +a.text-success:hover,
  559 +a.text-success:focus {
  560 + color: #2b542c;
  561 +}
  562 +.text-info {
  563 + color: #31708f;
  564 +}
  565 +a.text-info:hover,
  566 +a.text-info:focus {
  567 + color: #245269;
  568 +}
  569 +.text-warning {
  570 + color: #8a6d3b;
  571 +}
  572 +a.text-warning:hover,
  573 +a.text-warning:focus {
  574 + color: #66512c;
  575 +}
  576 +.text-danger {
  577 + color: #a94442;
  578 +}
  579 +a.text-danger:hover,
  580 +a.text-danger:focus {
  581 + color: #843534;
  582 +}
  583 +.bg-primary {
  584 + color: #fff;
  585 + background-color: #0095da;
  586 +}
  587 +a.bg-primary:hover,
  588 +a.bg-primary:focus {
  589 + background-color: #0072a7;
  590 +}
  591 +.bg-success {
  592 + background-color: #dff0d8;
  593 +}
  594 +a.bg-success:hover,
  595 +a.bg-success:focus {
  596 + background-color: #c1e2b3;
  597 +}
  598 +.bg-info {
  599 + background-color: #d9edf7;
  600 +}
  601 +a.bg-info:hover,
  602 +a.bg-info:focus {
  603 + background-color: #afd9ee;
  604 +}
  605 +.bg-warning {
  606 + background-color: #fcf8e3;
  607 +}
  608 +a.bg-warning:hover,
  609 +a.bg-warning:focus {
  610 + background-color: #f7ecb5;
  611 +}
  612 +.bg-danger {
  613 + background-color: #f2dede;
  614 +}
  615 +a.bg-danger:hover,
  616 +a.bg-danger:focus {
  617 + background-color: #e4b9b9;
  618 +}
  619 +.page-header {
  620 + padding-bottom: 9px;
  621 + margin: 40px 0 20px;
  622 + border-bottom: 1px solid #fefefe;
  623 +}
  624 +ul,
  625 +ol {
  626 + margin-top: 0;
  627 + margin-bottom: 10px;
  628 +}
  629 +ul ul,
  630 +ol ul,
  631 +ul ol,
  632 +ol ol {
  633 + margin-bottom: 0;
  634 +}
  635 +.list-unstyled {
  636 + padding-left: 0;
  637 + list-style: none;
  638 +}
  639 +.list-inline {
  640 + padding-left: 0;
  641 + list-style: none;
  642 + margin-left: -5px;
  643 +}
  644 +.list-inline > li {
  645 + display: inline-block;
  646 + padding-left: 5px;
  647 + padding-right: 5px;
  648 +}
  649 +dl {
  650 + margin-top: 0;
  651 + margin-bottom: 20px;
  652 +}
  653 +dt,
  654 +dd {
  655 + line-height: 1.42857143;
  656 +}
  657 +dt {
  658 + font-weight: bold;
  659 +}
  660 +dd {
  661 + margin-left: 0;
  662 +}
  663 +@media (min-width: 768px) {
  664 + .dl-horizontal dt {
  665 + float: left;
  666 + width: 160px;
  667 + clear: left;
  668 + text-align: right;
  669 + overflow: hidden;
  670 + text-overflow: ellipsis;
  671 + white-space: nowrap;
  672 + }
  673 + .dl-horizontal dd {
  674 + margin-left: 180px;
  675 + }
  676 +}
  677 +abbr[title],
  678 +abbr[data-original-title] {
  679 + cursor: help;
  680 + border-bottom: 1px dotted #878787;
  681 +}
  682 +.initialism {
  683 + font-size: 90%;
  684 + text-transform: uppercase;
  685 +}
  686 +blockquote {
  687 + padding: 10px 20px;
  688 + margin: 0 0 20px;
  689 + font-size: 17.5px;
  690 + border-left: 5px solid #fefefe;
  691 +}
  692 +blockquote p:last-child,
  693 +blockquote ul:last-child,
  694 +blockquote ol:last-child {
  695 + margin-bottom: 0;
  696 +}
  697 +blockquote footer,
  698 +blockquote small,
  699 +blockquote .small {
  700 + display: block;
  701 + font-size: 80%;
  702 + line-height: 1.42857143;
  703 + color: #878787;
  704 +}
  705 +blockquote footer:before,
  706 +blockquote small:before,
  707 +blockquote .small:before {
  708 + content: '\2014 \00A0';
  709 +}
  710 +.blockquote-reverse,
  711 +blockquote.pull-right {
  712 + padding-right: 15px;
  713 + padding-left: 0;
  714 + border-right: 5px solid #fefefe;
  715 + border-left: 0;
  716 + text-align: right;
  717 +}
  718 +.blockquote-reverse footer:before,
  719 +blockquote.pull-right footer:before,
  720 +.blockquote-reverse small:before,
  721 +blockquote.pull-right small:before,
  722 +.blockquote-reverse .small:before,
  723 +blockquote.pull-right .small:before {
  724 + content: '';
  725 +}
  726 +.blockquote-reverse footer:after,
  727 +blockquote.pull-right footer:after,
  728 +.blockquote-reverse small:after,
  729 +blockquote.pull-right small:after,
  730 +.blockquote-reverse .small:after,
  731 +blockquote.pull-right .small:after {
  732 + content: '\00A0 \2014';
  733 +}
  734 +address {
  735 + margin-bottom: 20px;
  736 + font-style: normal;
  737 + line-height: 1.42857143;
  738 +}
  739 +code,
  740 +kbd,
  741 +pre,
  742 +samp {
  743 + font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
  744 +}
  745 +code {
  746 + padding: 2px 4px;
  747 + font-size: 90%;
  748 + color: #c7254e;
  749 + background-color: #f9f2f4;
  750 + border-radius: 2px;
  751 +}
  752 +kbd {
  753 + padding: 2px 4px;
  754 + font-size: 90%;
  755 + color: #ffffff;
  756 + background-color: #333333;
  757 + border-radius: 2px;
  758 + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
  759 + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
  760 +}
  761 +kbd kbd {
  762 + padding: 0;
  763 + font-size: 100%;
  764 + font-weight: bold;
  765 + -webkit-box-shadow: none;
  766 + box-shadow: none;
  767 +}
  768 +pre {
  769 + display: block;
  770 + padding: 9.5px;
  771 + margin: 0 0 10px;
  772 + font-size: 13px;
  773 + line-height: 1.42857143;
  774 + word-break: break-all;
  775 + word-wrap: break-word;
  776 + color: #303030;
  777 + background-color: #f5f5f5;
  778 + border: 1px solid #cccccc;
  779 + border-radius: 2px;
  780 +}
  781 +pre code {
  782 + padding: 0;
  783 + font-size: inherit;
  784 + color: inherit;
  785 + white-space: pre-wrap;
  786 + background-color: transparent;
  787 + border-radius: 0;
  788 +}
  789 +.pre-scrollable {
  790 + max-height: 340px;
  791 + overflow-y: scroll;
  792 +}
  793 +.container {
  794 + margin-right: auto;
  795 + margin-left: auto;
  796 + padding-left: 15px;
  797 + padding-right: 15px;
  798 +}
  799 +@media (min-width: 768px) {
  800 + .container {
  801 + width: 750px;
  802 + }
  803 +}
  804 +@media (min-width: 992px) {
  805 + .container {
  806 + width: 970px;
  807 + }
  808 +}
  809 +@media (min-width: 1200px) {
  810 + .container {
  811 + width: 1170px;
  812 + }
  813 +}
  814 +.container-fluid {
  815 + margin-right: auto;
  816 + margin-left: auto;
  817 + padding-left: 15px;
  818 + padding-right: 15px;
  819 +}
  820 +.row {
  821 + margin-left: -15px;
  822 + margin-right: -15px;
  823 +}
  824 +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  825 + position: relative;
  826 + min-height: 1px;
  827 + padding-left: 15px;
  828 + padding-right: 15px;
  829 +}
  830 +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  831 + float: left;
  832 +}
  833 +.col-xs-12 {
  834 + width: 100%;
  835 +}
  836 +.col-xs-11 {
  837 + width: 91.66666667%;
  838 +}
  839 +.col-xs-10 {
  840 + width: 83.33333333%;
  841 +}
  842 +.col-xs-9 {
  843 + width: 75%;
  844 +}
  845 +.col-xs-8 {
  846 + width: 66.66666667%;
  847 +}
  848 +.col-xs-7 {
  849 + width: 58.33333333%;
  850 +}
  851 +.col-xs-6 {
  852 + width: 50%;
  853 +}
  854 +.col-xs-5 {
  855 + width: 41.66666667%;
  856 +}
  857 +.col-xs-4 {
  858 + width: 33.33333333%;
  859 +}
  860 +.col-xs-3 {
  861 + width: 25%;
  862 +}
  863 +.col-xs-2 {
  864 + width: 16.66666667%;
  865 +}
  866 +.col-xs-1 {
  867 + width: 8.33333333%;
  868 +}
  869 +.col-xs-pull-12 {
  870 + right: 100%;
  871 +}
  872 +.col-xs-pull-11 {
  873 + right: 91.66666667%;
  874 +}
  875 +.col-xs-pull-10 {
  876 + right: 83.33333333%;
  877 +}
  878 +.col-xs-pull-9 {
  879 + right: 75%;
  880 +}
  881 +.col-xs-pull-8 {
  882 + right: 66.66666667%;
  883 +}
  884 +.col-xs-pull-7 {
  885 + right: 58.33333333%;
  886 +}
  887 +.col-xs-pull-6 {
  888 + right: 50%;
  889 +}
  890 +.col-xs-pull-5 {
  891 + right: 41.66666667%;
  892 +}
  893 +.col-xs-pull-4 {
  894 + right: 33.33333333%;
  895 +}
  896 +.col-xs-pull-3 {
  897 + right: 25%;
  898 +}
  899 +.col-xs-pull-2 {
  900 + right: 16.66666667%;
  901 +}
  902 +.col-xs-pull-1 {
  903 + right: 8.33333333%;
  904 +}
  905 +.col-xs-pull-0 {
  906 + right: auto;
  907 +}
  908 +.col-xs-push-12 {
  909 + left: 100%;
  910 +}
  911 +.col-xs-push-11 {
  912 + left: 91.66666667%;
  913 +}
  914 +.col-xs-push-10 {
  915 + left: 83.33333333%;
  916 +}
  917 +.col-xs-push-9 {
  918 + left: 75%;
  919 +}
  920 +.col-xs-push-8 {
  921 + left: 66.66666667%;
  922 +}
  923 +.col-xs-push-7 {
  924 + left: 58.33333333%;
  925 +}
  926 +.col-xs-push-6 {
  927 + left: 50%;
  928 +}
  929 +.col-xs-push-5 {
  930 + left: 41.66666667%;
  931 +}
  932 +.col-xs-push-4 {
  933 + left: 33.33333333%;
  934 +}
  935 +.col-xs-push-3 {
  936 + left: 25%;
  937 +}
  938 +.col-xs-push-2 {
  939 + left: 16.66666667%;
  940 +}
  941 +.col-xs-push-1 {
  942 + left: 8.33333333%;
  943 +}
  944 +.col-xs-push-0 {
  945 + left: auto;
  946 +}
  947 +.col-xs-offset-12 {
  948 + margin-left: 100%;
  949 +}
  950 +.col-xs-offset-11 {
  951 + margin-left: 91.66666667%;
  952 +}
  953 +.col-xs-offset-10 {
  954 + margin-left: 83.33333333%;
  955 +}
  956 +.col-xs-offset-9 {
  957 + margin-left: 75%;
  958 +}
  959 +.col-xs-offset-8 {
  960 + margin-left: 66.66666667%;
  961 +}
  962 +.col-xs-offset-7 {
  963 + margin-left: 58.33333333%;
  964 +}
  965 +.col-xs-offset-6 {
  966 + margin-left: 50%;
  967 +}
  968 +.col-xs-offset-5 {
  969 + margin-left: 41.66666667%;
  970 +}
  971 +.col-xs-offset-4 {
  972 + margin-left: 33.33333333%;
  973 +}
  974 +.col-xs-offset-3 {
  975 + margin-left: 25%;
  976 +}
  977 +.col-xs-offset-2 {
  978 + margin-left: 16.66666667%;
  979 +}
  980 +.col-xs-offset-1 {
  981 + margin-left: 8.33333333%;
  982 +}
  983 +.col-xs-offset-0 {
  984 + margin-left: 0%;
  985 +}
  986 +@media (min-width: 768px) {
  987 + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
  988 + float: left;
  989 + }
  990 + .col-sm-12 {
  991 + width: 100%;
  992 + }
  993 + .col-sm-11 {
  994 + width: 91.66666667%;
  995 + }
  996 + .col-sm-10 {
  997 + width: 83.33333333%;
  998 + }
  999 + .col-sm-9 {
  1000 + width: 75%;
  1001 + }
  1002 + .col-sm-8 {
  1003 + width: 66.66666667%;
  1004 + }
  1005 + .col-sm-7 {
  1006 + width: 58.33333333%;
  1007 + }
  1008 + .col-sm-6 {
  1009 + width: 50%;
  1010 + }
  1011 + .col-sm-5 {
  1012 + width: 41.66666667%;
  1013 + }
  1014 + .col-sm-4 {
  1015 + width: 33.33333333%;
  1016 + }
  1017 + .col-sm-3 {
  1018 + width: 25%;
  1019 + }
  1020 + .col-sm-2 {
  1021 + width: 16.66666667%;
  1022 + }
  1023 + .col-sm-1 {
  1024 + width: 8.33333333%;
  1025 + }
  1026 + .col-sm-pull-12 {
  1027 + right: 100%;
  1028 + }
  1029 + .col-sm-pull-11 {
  1030 + right: 91.66666667%;
  1031 + }
  1032 + .col-sm-pull-10 {
  1033 + right: 83.33333333%;
  1034 + }
  1035 + .col-sm-pull-9 {
  1036 + right: 75%;
  1037 + }
  1038 + .col-sm-pull-8 {
  1039 + right: 66.66666667%;
  1040 + }
  1041 + .col-sm-pull-7 {
  1042 + right: 58.33333333%;
  1043 + }
  1044 + .col-sm-pull-6 {
  1045 + right: 50%;
  1046 + }
  1047 + .col-sm-pull-5 {
  1048 + right: 41.66666667%;
  1049 + }
  1050 + .col-sm-pull-4 {
  1051 + right: 33.33333333%;
  1052 + }
  1053 + .col-sm-pull-3 {
  1054 + right: 25%;
  1055 + }
  1056 + .col-sm-pull-2 {
  1057 + right: 16.66666667%;
  1058 + }
  1059 + .col-sm-pull-1 {
  1060 + right: 8.33333333%;
  1061 + }
  1062 + .col-sm-pull-0 {
  1063 + right: auto;
  1064 + }
  1065 + .col-sm-push-12 {
  1066 + left: 100%;
  1067 + }
  1068 + .col-sm-push-11 {
  1069 + left: 91.66666667%;
  1070 + }
  1071 + .col-sm-push-10 {
  1072 + left: 83.33333333%;
  1073 + }
  1074 + .col-sm-push-9 {
  1075 + left: 75%;
  1076 + }
  1077 + .col-sm-push-8 {
  1078 + left: 66.66666667%;
  1079 + }
  1080 + .col-sm-push-7 {
  1081 + left: 58.33333333%;
  1082 + }
  1083 + .col-sm-push-6 {
  1084 + left: 50%;
  1085 + }
  1086 + .col-sm-push-5 {
  1087 + left: 41.66666667%;
  1088 + }
  1089 + .col-sm-push-4 {
  1090 + left: 33.33333333%;
  1091 + }
  1092 + .col-sm-push-3 {
  1093 + left: 25%;
  1094 + }
  1095 + .col-sm-push-2 {
  1096 + left: 16.66666667%;
  1097 + }
  1098 + .col-sm-push-1 {
  1099 + left: 8.33333333%;
  1100 + }
  1101 + .col-sm-push-0 {
  1102 + left: auto;
  1103 + }
  1104 + .col-sm-offset-12 {
  1105 + margin-left: 100%;
  1106 + }
  1107 + .col-sm-offset-11 {
  1108 + margin-left: 91.66666667%;
  1109 + }
  1110 + .col-sm-offset-10 {
  1111 + margin-left: 83.33333333%;
  1112 + }
  1113 + .col-sm-offset-9 {
  1114 + margin-left: 75%;
  1115 + }
  1116 + .col-sm-offset-8 {
  1117 + margin-left: 66.66666667%;
  1118 + }
  1119 + .col-sm-offset-7 {
  1120 + margin-left: 58.33333333%;
  1121 + }
  1122 + .col-sm-offset-6 {
  1123 + margin-left: 50%;
  1124 + }
  1125 + .col-sm-offset-5 {
  1126 + margin-left: 41.66666667%;
  1127 + }
  1128 + .col-sm-offset-4 {
  1129 + margin-left: 33.33333333%;
  1130 + }
  1131 + .col-sm-offset-3 {
  1132 + margin-left: 25%;
  1133 + }
  1134 + .col-sm-offset-2 {
  1135 + margin-left: 16.66666667%;
  1136 + }
  1137 + .col-sm-offset-1 {
  1138 + margin-left: 8.33333333%;
  1139 + }
  1140 + .col-sm-offset-0 {
  1141 + margin-left: 0%;
  1142 + }
  1143 +}
  1144 +@media (min-width: 992px) {
  1145 + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
  1146 + float: left;
  1147 + }
  1148 + .col-md-12 {
  1149 + width: 100%;
  1150 + }
  1151 + .col-md-11 {
  1152 + width: 91.66666667%;
  1153 + }
  1154 + .col-md-10 {
  1155 + width: 83.33333333%;
  1156 + }
  1157 + .col-md-9 {
  1158 + width: 75%;
  1159 + }
  1160 + .col-md-8 {
  1161 + width: 66.66666667%;
  1162 + }
  1163 + .col-md-7 {
  1164 + width: 58.33333333%;
  1165 + }
  1166 + .col-md-6 {
  1167 + width: 50%;
  1168 + }
  1169 + .col-md-5 {
  1170 + width: 41.66666667%;
  1171 + }
  1172 + .col-md-4 {
  1173 + width: 33.33333333%;
  1174 + }
  1175 + .col-md-3 {
  1176 + width: 25%;
  1177 + }
  1178 + .col-md-2 {
  1179 + width: 16.66666667%;
  1180 + }
  1181 + .col-md-1 {
  1182 + width: 8.33333333%;
  1183 + }
  1184 + .col-md-pull-12 {
  1185 + right: 100%;
  1186 + }
  1187 + .col-md-pull-11 {
  1188 + right: 91.66666667%;
  1189 + }
  1190 + .col-md-pull-10 {
  1191 + right: 83.33333333%;
  1192 + }
  1193 + .col-md-pull-9 {
  1194 + right: 75%;
  1195 + }
  1196 + .col-md-pull-8 {
  1197 + right: 66.66666667%;
  1198 + }
  1199 + .col-md-pull-7 {
  1200 + right: 58.33333333%;
  1201 + }
  1202 + .col-md-pull-6 {
  1203 + right: 50%;
  1204 + }
  1205 + .col-md-pull-5 {
  1206 + right: 41.66666667%;
  1207 + }
  1208 + .col-md-pull-4 {
  1209 + right: 33.33333333%;
  1210 + }
  1211 + .col-md-pull-3 {
  1212 + right: 25%;
  1213 + }
  1214 + .col-md-pull-2 {
  1215 + right: 16.66666667%;
  1216 + }
  1217 + .col-md-pull-1 {
  1218 + right: 8.33333333%;
  1219 + }
  1220 + .col-md-pull-0 {
  1221 + right: auto;
  1222 + }
  1223 + .col-md-push-12 {
  1224 + left: 100%;
  1225 + }
  1226 + .col-md-push-11 {
  1227 + left: 91.66666667%;
  1228 + }
  1229 + .col-md-push-10 {
  1230 + left: 83.33333333%;
  1231 + }
  1232 + .col-md-push-9 {
  1233 + left: 75%;
  1234 + }
  1235 + .col-md-push-8 {
  1236 + left: 66.66666667%;
  1237 + }
  1238 + .col-md-push-7 {
  1239 + left: 58.33333333%;
  1240 + }
  1241 + .col-md-push-6 {
  1242 + left: 50%;
  1243 + }
  1244 + .col-md-push-5 {
  1245 + left: 41.66666667%;
  1246 + }
  1247 + .col-md-push-4 {
  1248 + left: 33.33333333%;
  1249 + }
  1250 + .col-md-push-3 {
  1251 + left: 25%;
  1252 + }
  1253 + .col-md-push-2 {
  1254 + left: 16.66666667%;
  1255 + }
  1256 + .col-md-push-1 {
  1257 + left: 8.33333333%;
  1258 + }
  1259 + .col-md-push-0 {
  1260 + left: auto;
  1261 + }
  1262 + .col-md-offset-12 {
  1263 + margin-left: 100%;
  1264 + }
  1265 + .col-md-offset-11 {
  1266 + margin-left: 91.66666667%;
  1267 + }
  1268 + .col-md-offset-10 {
  1269 + margin-left: 83.33333333%;
  1270 + }
  1271 + .col-md-offset-9 {
  1272 + margin-left: 75%;
  1273 + }
  1274 + .col-md-offset-8 {
  1275 + margin-left: 66.66666667%;
  1276 + }
  1277 + .col-md-offset-7 {
  1278 + margin-left: 58.33333333%;
  1279 + }
  1280 + .col-md-offset-6 {
  1281 + margin-left: 50%;
  1282 + }
  1283 + .col-md-offset-5 {
  1284 + margin-left: 41.66666667%;
  1285 + }
  1286 + .col-md-offset-4 {
  1287 + margin-left: 33.33333333%;
  1288 + }
  1289 + .col-md-offset-3 {
  1290 + margin-left: 25%;
  1291 + }
  1292 + .col-md-offset-2 {
  1293 + margin-left: 16.66666667%;
  1294 + }
  1295 + .col-md-offset-1 {
  1296 + margin-left: 8.33333333%;
  1297 + }
  1298 + .col-md-offset-0 {
  1299 + margin-left: 0%;
  1300 + }
  1301 +}
  1302 +@media (min-width: 1200px) {
  1303 + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
  1304 + float: left;
  1305 + }
  1306 + .col-lg-12 {
  1307 + width: 100%;
  1308 + }
  1309 + .col-lg-11 {
  1310 + width: 91.66666667%;
  1311 + }
  1312 + .col-lg-10 {
  1313 + width: 83.33333333%;
  1314 + }
  1315 + .col-lg-9 {
  1316 + width: 75%;
  1317 + }
  1318 + .col-lg-8 {
  1319 + width: 66.66666667%;
  1320 + }
  1321 + .col-lg-7 {
  1322 + width: 58.33333333%;
  1323 + }
  1324 + .col-lg-6 {
  1325 + width: 50%;
  1326 + }
  1327 + .col-lg-5 {
  1328 + width: 41.66666667%;
  1329 + }
  1330 + .col-lg-4 {
  1331 + width: 33.33333333%;
  1332 + }
  1333 + .col-lg-3 {
  1334 + width: 25%;
  1335 + }
  1336 + .col-lg-2 {
  1337 + width: 16.66666667%;
  1338 + }
  1339 + .col-lg-1 {
  1340 + width: 8.33333333%;
  1341 + }
  1342 + .col-lg-pull-12 {
  1343 + right: 100%;
  1344 + }
  1345 + .col-lg-pull-11 {
  1346 + right: 91.66666667%;
  1347 + }
  1348 + .col-lg-pull-10 {
  1349 + right: 83.33333333%;
  1350 + }
  1351 + .col-lg-pull-9 {
  1352 + right: 75%;
  1353 + }
  1354 + .col-lg-pull-8 {
  1355 + right: 66.66666667%;
  1356 + }
  1357 + .col-lg-pull-7 {
  1358 + right: 58.33333333%;
  1359 + }
  1360 + .col-lg-pull-6 {
  1361 + right: 50%;
  1362 + }
  1363 + .col-lg-pull-5 {
  1364 + right: 41.66666667%;
  1365 + }
  1366 + .col-lg-pull-4 {
  1367 + right: 33.33333333%;
  1368 + }
  1369 + .col-lg-pull-3 {
  1370 + right: 25%;
  1371 + }
  1372 + .col-lg-pull-2 {
  1373 + right: 16.66666667%;
  1374 + }
  1375 + .col-lg-pull-1 {
  1376 + right: 8.33333333%;
  1377 + }
  1378 + .col-lg-pull-0 {
  1379 + right: auto;
  1380 + }
  1381 + .col-lg-push-12 {
  1382 + left: 100%;
  1383 + }
  1384 + .col-lg-push-11 {
  1385 + left: 91.66666667%;
  1386 + }
  1387 + .col-lg-push-10 {
  1388 + left: 83.33333333%;
  1389 + }
  1390 + .col-lg-push-9 {
  1391 + left: 75%;
  1392 + }
  1393 + .col-lg-push-8 {
  1394 + left: 66.66666667%;
  1395 + }
  1396 + .col-lg-push-7 {
  1397 + left: 58.33333333%;
  1398 + }
  1399 + .col-lg-push-6 {
  1400 + left: 50%;
  1401 + }
  1402 + .col-lg-push-5 {
  1403 + left: 41.66666667%;
  1404 + }
  1405 + .col-lg-push-4 {
  1406 + left: 33.33333333%;
  1407 + }
  1408 + .col-lg-push-3 {
  1409 + left: 25%;
  1410 + }
  1411 + .col-lg-push-2 {
  1412 + left: 16.66666667%;
  1413 + }
  1414 + .col-lg-push-1 {
  1415 + left: 8.33333333%;
  1416 + }
  1417 + .col-lg-push-0 {
  1418 + left: auto;
  1419 + }
  1420 + .col-lg-offset-12 {
  1421 + margin-left: 100%;
  1422 + }
  1423 + .col-lg-offset-11 {
  1424 + margin-left: 91.66666667%;
  1425 + }
  1426 + .col-lg-offset-10 {
  1427 + margin-left: 83.33333333%;
  1428 + }
  1429 + .col-lg-offset-9 {
  1430 + margin-left: 75%;
  1431 + }
  1432 + .col-lg-offset-8 {
  1433 + margin-left: 66.66666667%;
  1434 + }
  1435 + .col-lg-offset-7 {
  1436 + margin-left: 58.33333333%;
  1437 + }
  1438 + .col-lg-offset-6 {
  1439 + margin-left: 50%;
  1440 + }
  1441 + .col-lg-offset-5 {
  1442 + margin-left: 41.66666667%;
  1443 + }
  1444 + .col-lg-offset-4 {
  1445 + margin-left: 33.33333333%;
  1446 + }
  1447 + .col-lg-offset-3 {
  1448 + margin-left: 25%;
  1449 + }
  1450 + .col-lg-offset-2 {
  1451 + margin-left: 16.66666667%;
  1452 + }
  1453 + .col-lg-offset-1 {
  1454 + margin-left: 8.33333333%;
  1455 + }
  1456 + .col-lg-offset-0 {
  1457 + margin-left: 0%;
  1458 + }
  1459 +}
  1460 +table {
  1461 + background-color: transparent;
  1462 +}
  1463 +caption {
  1464 + padding-top: 8px;
  1465 + padding-bottom: 8px;
  1466 + color: #878787;
  1467 + text-align: left;
  1468 +}
  1469 +th {
  1470 + text-align: left;
  1471 +}
  1472 +.table {
  1473 + width: 100%;
  1474 + max-width: 100%;
  1475 + margin-bottom: 20px;
  1476 +}
  1477 +.table > thead > tr > th,
  1478 +.table > tbody > tr > th,
  1479 +.table > tfoot > tr > th,
  1480 +.table > thead > tr > td,
  1481 +.table > tbody > tr > td,
  1482 +.table > tfoot > tr > td {
  1483 + padding: 8px;
  1484 + line-height: 1.42857143;
  1485 + vertical-align: top;
  1486 + border-top: 1px solid #dddddd;
  1487 +}
  1488 +.table > thead > tr > th {
  1489 + vertical-align: bottom;
  1490 + border-bottom: 2px solid #dddddd;
  1491 +}
  1492 +.table > caption + thead > tr:first-child > th,
  1493 +.table > colgroup + thead > tr:first-child > th,
  1494 +.table > thead:first-child > tr:first-child > th,
  1495 +.table > caption + thead > tr:first-child > td,
  1496 +.table > colgroup + thead > tr:first-child > td,
  1497 +.table > thead:first-child > tr:first-child > td {
  1498 + border-top: 0;
  1499 +}
  1500 +.table > tbody + tbody {
  1501 + border-top: 2px solid #dddddd;
  1502 +}
  1503 +.table .table {
  1504 + background-color: #ffffff;
  1505 +}
  1506 +.table-condensed > thead > tr > th,
  1507 +.table-condensed > tbody > tr > th,
  1508 +.table-condensed > tfoot > tr > th,
  1509 +.table-condensed > thead > tr > td,
  1510 +.table-condensed > tbody > tr > td,
  1511 +.table-condensed > tfoot > tr > td {
  1512 + padding: 5px;
  1513 +}
  1514 +.table-bordered {
  1515 + border: 1px solid #dddddd;
  1516 +}
  1517 +.table-bordered > thead > tr > th,
  1518 +.table-bordered > tbody > tr > th,
  1519 +.table-bordered > tfoot > tr > th,
  1520 +.table-bordered > thead > tr > td,
  1521 +.table-bordered > tbody > tr > td,
  1522 +.table-bordered > tfoot > tr > td {
  1523 + border: 1px solid #dddddd;
  1524 +}
  1525 +.table-bordered > thead > tr > th,
  1526 +.table-bordered > thead > tr > td {
  1527 + border-bottom-width: 2px;
  1528 +}
  1529 +.table-striped > tbody > tr:nth-of-type(odd) {
  1530 + background-color: #f9f9f9;
  1531 +}
  1532 +.table-hover > tbody > tr:hover {
  1533 + background-color: #eee;
  1534 +}
  1535 +table col[class*="col-"] {
  1536 + position: static;
  1537 + float: none;
  1538 + display: table-column;
  1539 +}
  1540 +table td[class*="col-"],
  1541 +table th[class*="col-"] {
  1542 + position: static;
  1543 + float: none;
  1544 + display: table-cell;
  1545 +}
  1546 +.table > thead > tr > td.active,
  1547 +.table > tbody > tr > td.active,
  1548 +.table > tfoot > tr > td.active,
  1549 +.table > thead > tr > th.active,
  1550 +.table > tbody > tr > th.active,
  1551 +.table > tfoot > tr > th.active,
  1552 +.table > thead > tr.active > td,
  1553 +.table > tbody > tr.active > td,
  1554 +.table > tfoot > tr.active > td,
  1555 +.table > thead > tr.active > th,
  1556 +.table > tbody > tr.active > th,
  1557 +.table > tfoot > tr.active > th {
  1558 + background-color: #f5f5f5;
  1559 +}
  1560 +.table-hover > tbody > tr > td.active:hover,
  1561 +.table-hover > tbody > tr > th.active:hover,
  1562 +.table-hover > tbody > tr.active:hover > td,
  1563 +.table-hover > tbody > tr:hover > .active,
  1564 +.table-hover > tbody > tr.active:hover > th {
  1565 + background-color: #e8e8e8;
  1566 +}
  1567 +.table > thead > tr > td.success,
  1568 +.table > tbody > tr > td.success,
  1569 +.table > tfoot > tr > td.success,
  1570 +.table > thead > tr > th.success,
  1571 +.table > tbody > tr > th.success,
  1572 +.table > tfoot > tr > th.success,
  1573 +.table > thead > tr.success > td,
  1574 +.table > tbody > tr.success > td,
  1575 +.table > tfoot > tr.success > td,
  1576 +.table > thead > tr.success > th,
  1577 +.table > tbody > tr.success > th,
  1578 +.table > tfoot > tr.success > th {
  1579 + background-color: #dff0d8;
  1580 +}
  1581 +.table-hover > tbody > tr > td.success:hover,
  1582 +.table-hover > tbody > tr > th.success:hover,
  1583 +.table-hover > tbody > tr.success:hover > td,
  1584 +.table-hover > tbody > tr:hover > .success,
  1585 +.table-hover > tbody > tr.success:hover > th {
  1586 + background-color: #d0e9c6;
  1587 +}
  1588 +.table > thead > tr > td.info,
  1589 +.table > tbody > tr > td.info,
  1590 +.table > tfoot > tr > td.info,
  1591 +.table > thead > tr > th.info,
  1592 +.table > tbody > tr > th.info,
  1593 +.table > tfoot > tr > th.info,
  1594 +.table > thead > tr.info > td,
  1595 +.table > tbody > tr.info > td,
  1596 +.table > tfoot > tr.info > td,
  1597 +.table > thead > tr.info > th,
  1598 +.table > tbody > tr.info > th,
  1599 +.table > tfoot > tr.info > th {
  1600 + background-color: #d9edf7;
  1601 +}
  1602 +.table-hover > tbody > tr > td.info:hover,
  1603 +.table-hover > tbody > tr > th.info:hover,
  1604 +.table-hover > tbody > tr.info:hover > td,
  1605 +.table-hover > tbody > tr:hover > .info,
  1606 +.table-hover > tbody > tr.info:hover > th {
  1607 + background-color: #c4e3f3;
  1608 +}
  1609 +.table > thead > tr > td.warning,
  1610 +.table > tbody > tr > td.warning,
  1611 +.table > tfoot > tr > td.warning,
  1612 +.table > thead > tr > th.warning,
  1613 +.table > tbody > tr > th.warning,
  1614 +.table > tfoot > tr > th.warning,
  1615 +.table > thead > tr.warning > td,
  1616 +.table > tbody > tr.warning > td,
  1617 +.table > tfoot > tr.warning > td,
  1618 +.table > thead > tr.warning > th,
  1619 +.table > tbody > tr.warning > th,
  1620 +.table > tfoot > tr.warning > th {
  1621 + background-color: #fcf8e3;
  1622 +}
  1623 +.table-hover > tbody > tr > td.warning:hover,
  1624 +.table-hover > tbody > tr > th.warning:hover,
  1625 +.table-hover > tbody > tr.warning:hover > td,
  1626 +.table-hover > tbody > tr:hover > .warning,
  1627 +.table-hover > tbody > tr.warning:hover > th {
  1628 + background-color: #faf2cc;
  1629 +}
  1630 +.table > thead > tr > td.danger,
  1631 +.table > tbody > tr > td.danger,
  1632 +.table > tfoot > tr > td.danger,
  1633 +.table > thead > tr > th.danger,
  1634 +.table > tbody > tr > th.danger,
  1635 +.table > tfoot > tr > th.danger,
  1636 +.table > thead > tr.danger > td,
  1637 +.table > tbody > tr.danger > td,
  1638 +.table > tfoot > tr.danger > td,
  1639 +.table > thead > tr.danger > th,
  1640 +.table > tbody > tr.danger > th,
  1641 +.table > tfoot > tr.danger > th {
  1642 + background-color: #f2dede;
  1643 +}
  1644 +.table-hover > tbody > tr > td.danger:hover,
  1645 +.table-hover > tbody > tr > th.danger:hover,
  1646 +.table-hover > tbody > tr.danger:hover > td,
  1647 +.table-hover > tbody > tr:hover > .danger,
  1648 +.table-hover > tbody > tr.danger:hover > th {
  1649 + background-color: #ebcccc;
  1650 +}
  1651 +.table-responsive {
  1652 + overflow-x: auto;
  1653 + min-height: 0.01%;
  1654 +}
  1655 +@media screen and (max-width: 767px) {
  1656 + .table-responsive {
  1657 + width: 100%;
  1658 + margin-bottom: 15px;
  1659 + overflow-y: hidden;
  1660 + -ms-overflow-style: -ms-autohiding-scrollbar;
  1661 + border: 1px solid #dddddd;
  1662 + }
  1663 + .table-responsive > .table {
  1664 + margin-bottom: 0;
  1665 + }
  1666 + .table-responsive > .table > thead > tr > th,
  1667 + .table-responsive > .table > tbody > tr > th,
  1668 + .table-responsive > .table > tfoot > tr > th,
  1669 + .table-responsive > .table > thead > tr > td,
  1670 + .table-responsive > .table > tbody > tr > td,
  1671 + .table-responsive > .table > tfoot > tr > td {
  1672 + white-space: nowrap;
  1673 + }
  1674 + .table-responsive > .table-bordered {
  1675 + border: 0;
  1676 + }
  1677 + .table-responsive > .table-bordered > thead > tr > th:first-child,
  1678 + .table-responsive > .table-bordered > tbody > tr > th:first-child,
  1679 + .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  1680 + .table-responsive > .table-bordered > thead > tr > td:first-child,
  1681 + .table-responsive > .table-bordered > tbody > tr > td:first-child,
  1682 + .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  1683 + border-left: 0;
  1684 + }
  1685 + .table-responsive > .table-bordered > thead > tr > th:last-child,
  1686 + .table-responsive > .table-bordered > tbody > tr > th:last-child,
  1687 + .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  1688 + .table-responsive > .table-bordered > thead > tr > td:last-child,
  1689 + .table-responsive > .table-bordered > tbody > tr > td:last-child,
  1690 + .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  1691 + border-right: 0;
  1692 + }
  1693 + .table-responsive > .table-bordered > tbody > tr:last-child > th,
  1694 + .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  1695 + .table-responsive > .table-bordered > tbody > tr:last-child > td,
  1696 + .table-responsive > .table-bordered > tfoot > tr:last-child > td {
  1697 + border-bottom: 0;
  1698 + }
  1699 +}
  1700 +fieldset {
  1701 + padding: 0;
  1702 + margin: 0;
  1703 + border: 0;
  1704 + min-width: 0;
  1705 +}
  1706 +legend {
  1707 + display: block;
  1708 + width: 100%;
  1709 + padding: 0;
  1710 + margin-bottom: 20px;
  1711 + font-size: 21px;
  1712 + line-height: inherit;
  1713 + color: #303030;
  1714 + border: 0;
  1715 + border-bottom: 1px solid #e5e5e5;
  1716 +}
  1717 +label {
  1718 + display: inline-block;
  1719 + max-width: 100%;
  1720 + margin-bottom: 5px;
  1721 + font-weight: bold;
  1722 +}
  1723 +input[type="search"] {
  1724 + -webkit-box-sizing: border-box;
  1725 + -moz-box-sizing: border-box;
  1726 + box-sizing: border-box;
  1727 +}
  1728 +input[type="radio"],
  1729 +input[type="checkbox"] {
  1730 + margin: 4px 0 0;
  1731 + margin-top: 1px \9;
  1732 + line-height: normal;
  1733 +}
  1734 +input[type="file"] {
  1735 + display: block;
  1736 +}
  1737 +input[type="range"] {
  1738 + display: block;
  1739 + width: 100%;
  1740 +}
  1741 +select[multiple],
  1742 +select[size] {
  1743 + height: auto;
  1744 +}
  1745 +input[type="file"]:focus,
  1746 +input[type="radio"]:focus,
  1747 +input[type="checkbox"]:focus {
  1748 + outline: thin dotted;
  1749 + outline: 5px auto -webkit-focus-ring-color;
  1750 + outline-offset: -2px;
  1751 +}
  1752 +output {
  1753 + display: block;
  1754 + padding-top: 7px;
  1755 + font-size: 14px;
  1756 + line-height: 1.42857143;
  1757 + color: #656565;
  1758 +}
  1759 +.form-control {
  1760 + display: block;
  1761 + width: 100%;
  1762 + height: 34px;
  1763 + padding: 6px 12px;
  1764 + font-size: 14px;
  1765 + line-height: 1.42857143;
  1766 + color: #656565;
  1767 + background-color: #ffffff;
  1768 + background-image: none;
  1769 + border: 1px solid #cccccc;
  1770 + border-radius: 2px;
  1771 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1772 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1773 + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
  1774 + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  1775 + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  1776 +}
  1777 +.form-control:focus {
  1778 + border-color: #66afe9;
  1779 + outline: 0;
  1780 + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  1781 + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  1782 +}
  1783 +.form-control::-moz-placeholder {
  1784 + color: #999999;
  1785 + opacity: 1;
  1786 +}
  1787 +.form-control:-ms-input-placeholder {
  1788 + color: #999999;
  1789 +}
  1790 +.form-control::-webkit-input-placeholder {
  1791 + color: #999999;
  1792 +}
  1793 +.form-control::-ms-expand {
  1794 + border: 0;
  1795 + background-color: transparent;
  1796 +}
  1797 +.form-control[disabled],
  1798 +.form-control[readonly],
  1799 +fieldset[disabled] .form-control {
  1800 + background-color: #fefefe;
  1801 + opacity: 1;
  1802 +}
  1803 +.form-control[disabled],
  1804 +fieldset[disabled] .form-control {
  1805 + cursor: not-allowed;
  1806 +}
  1807 +textarea.form-control {
  1808 + height: auto;
  1809 +}
  1810 +input[type="search"] {
  1811 + -webkit-appearance: none;
  1812 +}
  1813 +@media screen and (-webkit-min-device-pixel-ratio: 0) {
  1814 + input[type="date"].form-control,
  1815 + input[type="time"].form-control,
  1816 + input[type="datetime-local"].form-control,
  1817 + input[type="month"].form-control {
  1818 + line-height: 34px;
  1819 + }
  1820 + input[type="date"].input-sm,
  1821 + input[type="time"].input-sm,
  1822 + input[type="datetime-local"].input-sm,
  1823 + input[type="month"].input-sm,
  1824 + .input-group-sm input[type="date"],
  1825 + .input-group-sm input[type="time"],
  1826 + .input-group-sm input[type="datetime-local"],
  1827 + .input-group-sm input[type="month"] {
  1828 + line-height: 30px;
  1829 + }
  1830 + input[type="date"].input-lg,
  1831 + input[type="time"].input-lg,
  1832 + input[type="datetime-local"].input-lg,
  1833 + input[type="month"].input-lg,
  1834 + .input-group-lg input[type="date"],
  1835 + .input-group-lg input[type="time"],
  1836 + .input-group-lg input[type="datetime-local"],
  1837 + .input-group-lg input[type="month"] {
  1838 + line-height: 46px;
  1839 + }
  1840 +}
  1841 +.form-group {
  1842 + margin-bottom: 15px;
  1843 +}
  1844 +.radio,
  1845 +.checkbox {
  1846 + position: relative;
  1847 + display: block;
  1848 + margin-top: 10px;
  1849 + margin-bottom: 10px;
  1850 +}
  1851 +.radio label,
  1852 +.checkbox label {
  1853 + min-height: 20px;
  1854 + padding-left: 20px;
  1855 + margin-bottom: 0;
  1856 + font-weight: normal;
  1857 + cursor: pointer;
  1858 +}
  1859 +.radio input[type="radio"],
  1860 +.radio-inline input[type="radio"],
  1861 +.checkbox input[type="checkbox"],
  1862 +.checkbox-inline input[type="checkbox"] {
  1863 + position: absolute;
  1864 + margin-left: -20px;
  1865 + margin-top: 4px \9;
  1866 +}
  1867 +.radio + .radio,
  1868 +.checkbox + .checkbox {
  1869 + margin-top: -5px;
  1870 +}
  1871 +.radio-inline,
  1872 +.checkbox-inline {
  1873 + position: relative;
  1874 + display: inline-block;
  1875 + padding-left: 20px;
  1876 + margin-bottom: 0;
  1877 + vertical-align: middle;
  1878 + font-weight: normal;
  1879 + cursor: pointer;
  1880 +}
  1881 +.radio-inline + .radio-inline,
  1882 +.checkbox-inline + .checkbox-inline {
  1883 + margin-top: 0;
  1884 + margin-left: 10px;
  1885 +}
  1886 +input[type="radio"][disabled],
  1887 +input[type="checkbox"][disabled],
  1888 +input[type="radio"].disabled,
  1889 +input[type="checkbox"].disabled,
  1890 +fieldset[disabled] input[type="radio"],
  1891 +fieldset[disabled] input[type="checkbox"] {
  1892 + cursor: not-allowed;
  1893 +}
  1894 +.radio-inline.disabled,
  1895 +.checkbox-inline.disabled,
  1896 +fieldset[disabled] .radio-inline,
  1897 +fieldset[disabled] .checkbox-inline {
  1898 + cursor: not-allowed;
  1899 +}
  1900 +.radio.disabled label,
  1901 +.checkbox.disabled label,
  1902 +fieldset[disabled] .radio label,
  1903 +fieldset[disabled] .checkbox label {
  1904 + cursor: not-allowed;
  1905 +}
  1906 +.form-control-static {
  1907 + padding-top: 7px;
  1908 + padding-bottom: 7px;
  1909 + margin-bottom: 0;
  1910 + min-height: 34px;
  1911 +}
  1912 +.form-control-static.input-lg,
  1913 +.form-control-static.input-sm {
  1914 + padding-left: 0;
  1915 + padding-right: 0;
  1916 +}
  1917 +.input-sm {
  1918 + height: 30px;
  1919 + padding: 5px 10px;
  1920 + font-size: 12px;
  1921 + line-height: 1.5;
  1922 + border-radius: 2px;
  1923 +}
  1924 +select.input-sm {
  1925 + height: 30px;
  1926 + line-height: 30px;
  1927 +}
  1928 +textarea.input-sm,
  1929 +select[multiple].input-sm {
  1930 + height: auto;
  1931 +}
  1932 +.form-group-sm .form-control {
  1933 + height: 30px;
  1934 + padding: 5px 10px;
  1935 + font-size: 12px;
  1936 + line-height: 1.5;
  1937 + border-radius: 2px;
  1938 +}
  1939 +.form-group-sm select.form-control {
  1940 + height: 30px;
  1941 + line-height: 30px;
  1942 +}
  1943 +.form-group-sm textarea.form-control,
  1944 +.form-group-sm select[multiple].form-control {
  1945 + height: auto;
  1946 +}
  1947 +.form-group-sm .form-control-static {
  1948 + height: 30px;
  1949 + min-height: 32px;
  1950 + padding: 6px 10px;
  1951 + font-size: 12px;
  1952 + line-height: 1.5;
  1953 +}
  1954 +.input-lg {
  1955 + height: 46px;
  1956 + padding: 10px 16px;
  1957 + font-size: 18px;
  1958 + line-height: 1.3333333;
  1959 + border-radius: 2px;
  1960 +}
  1961 +select.input-lg {
  1962 + height: 46px;
  1963 + line-height: 46px;
  1964 +}
  1965 +textarea.input-lg,
  1966 +select[multiple].input-lg {
  1967 + height: auto;
  1968 +}
  1969 +.form-group-lg .form-control {
  1970 + height: 46px;
  1971 + padding: 10px 16px;
  1972 + font-size: 18px;
  1973 + line-height: 1.3333333;
  1974 + border-radius: 2px;
  1975 +}
  1976 +.form-group-lg select.form-control {
  1977 + height: 46px;
  1978 + line-height: 46px;
  1979 +}
  1980 +.form-group-lg textarea.form-control,
  1981 +.form-group-lg select[multiple].form-control {
  1982 + height: auto;
  1983 +}
  1984 +.form-group-lg .form-control-static {
  1985 + height: 46px;
  1986 + min-height: 38px;
  1987 + padding: 11px 16px;
  1988 + font-size: 18px;
  1989 + line-height: 1.3333333;
  1990 +}
  1991 +.has-feedback {
  1992 + position: relative;
  1993 +}
  1994 +.has-feedback .form-control {
  1995 + padding-right: 42.5px;
  1996 +}
  1997 +.form-control-feedback {
  1998 + position: absolute;
  1999 + top: 0;
  2000 + right: 0;
  2001 + z-index: 2;
  2002 + display: block;
  2003 + width: 34px;
  2004 + height: 34px;
  2005 + line-height: 34px;
  2006 + text-align: center;
  2007 + pointer-events: none;
  2008 +}
  2009 +.input-lg + .form-control-feedback,
  2010 +.input-group-lg + .form-control-feedback,
  2011 +.form-group-lg .form-control + .form-control-feedback {
  2012 + width: 46px;
  2013 + height: 46px;
  2014 + line-height: 46px;
  2015 +}
  2016 +.input-sm + .form-control-feedback,
  2017 +.input-group-sm + .form-control-feedback,
  2018 +.form-group-sm .form-control + .form-control-feedback {
  2019 + width: 30px;
  2020 + height: 30px;
  2021 + line-height: 30px;
  2022 +}
  2023 +.has-success .help-block,
  2024 +.has-success .control-label,
  2025 +.has-success .radio,
  2026 +.has-success .checkbox,
  2027 +.has-success .radio-inline,
  2028 +.has-success .checkbox-inline,
  2029 +.has-success.radio label,
  2030 +.has-success.checkbox label,
  2031 +.has-success.radio-inline label,
  2032 +.has-success.checkbox-inline label {
  2033 + color: #3c763d;
  2034 +}
  2035 +.has-success .form-control {
  2036 + border-color: #3c763d;
  2037 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2038 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2039 +}
  2040 +.has-success .form-control:focus {
  2041 + border-color: #2b542c;
  2042 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  2043 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  2044 +}
  2045 +.has-success .input-group-addon {
  2046 + color: #3c763d;
  2047 + border-color: #3c763d;
  2048 + background-color: #dff0d8;
  2049 +}
  2050 +.has-success .form-control-feedback {
  2051 + color: #3c763d;
  2052 +}
  2053 +.has-warning .help-block,
  2054 +.has-warning .control-label,
  2055 +.has-warning .radio,
  2056 +.has-warning .checkbox,
  2057 +.has-warning .radio-inline,
  2058 +.has-warning .checkbox-inline,
  2059 +.has-warning.radio label,
  2060 +.has-warning.checkbox label,
  2061 +.has-warning.radio-inline label,
  2062 +.has-warning.checkbox-inline label {
  2063 + color: #8a6d3b;
  2064 +}
  2065 +.has-warning .form-control {
  2066 + border-color: #8a6d3b;
  2067 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2068 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2069 +}
  2070 +.has-warning .form-control:focus {
  2071 + border-color: #66512c;
  2072 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  2073 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  2074 +}
  2075 +.has-warning .input-group-addon {
  2076 + color: #8a6d3b;
  2077 + border-color: #8a6d3b;
  2078 + background-color: #fcf8e3;
  2079 +}
  2080 +.has-warning .form-control-feedback {
  2081 + color: #8a6d3b;
  2082 +}
  2083 +.has-error .help-block,
  2084 +.has-error .control-label,
  2085 +.has-error .radio,
  2086 +.has-error .checkbox,
  2087 +.has-error .radio-inline,
  2088 +.has-error .checkbox-inline,
  2089 +.has-error.radio label,
  2090 +.has-error.checkbox label,
  2091 +.has-error.radio-inline label,
  2092 +.has-error.checkbox-inline label {
  2093 + color: #a94442;
  2094 +}
  2095 +.has-error .form-control {
  2096 + border-color: #a94442;
  2097 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2098 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2099 +}
  2100 +.has-error .form-control:focus {
  2101 + border-color: #843534;
  2102 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  2103 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  2104 +}
  2105 +.has-error .input-group-addon {
  2106 + color: #a94442;
  2107 + border-color: #a94442;
  2108 + background-color: #f2dede;
  2109 +}
  2110 +.has-error .form-control-feedback {
  2111 + color: #a94442;
  2112 +}
  2113 +.has-feedback label ~ .form-control-feedback {
  2114 + top: 25px;
  2115 +}
  2116 +.has-feedback label.sr-only ~ .form-control-feedback {
  2117 + top: 0;
  2118 +}
  2119 +.help-block {
  2120 + display: block;
  2121 + margin-top: 5px;
  2122 + margin-bottom: 10px;
  2123 + color: #707070;
  2124 +}
  2125 +@media (min-width: 768px) {
  2126 + .form-inline .form-group {
  2127 + display: inline-block;
  2128 + margin-bottom: 0;
  2129 + vertical-align: middle;
  2130 + }
  2131 + .form-inline .form-control {
  2132 + display: inline-block;
  2133 + width: auto;
  2134 + vertical-align: middle;
  2135 + }
  2136 + .form-inline .form-control-static {
  2137 + display: inline-block;
  2138 + }
  2139 + .form-inline .input-group {
  2140 + display: inline-table;
  2141 + vertical-align: middle;
  2142 + }
  2143 + .form-inline .input-group .input-group-addon,
  2144 + .form-inline .input-group .input-group-btn,
  2145 + .form-inline .input-group .form-control {
  2146 + width: auto;
  2147 + }
  2148 + .form-inline .input-group > .form-control {
  2149 + width: 100%;
  2150 + }
  2151 + .form-inline .control-label {
  2152 + margin-bottom: 0;
  2153 + vertical-align: middle;
  2154 + }
  2155 + .form-inline .radio,
  2156 + .form-inline .checkbox {
  2157 + display: inline-block;
  2158 + margin-top: 0;
  2159 + margin-bottom: 0;
  2160 + vertical-align: middle;
  2161 + }
  2162 + .form-inline .radio label,
  2163 + .form-inline .checkbox label {
  2164 + padding-left: 0;
  2165 + }
  2166 + .form-inline .radio input[type="radio"],
  2167 + .form-inline .checkbox input[type="checkbox"] {
  2168 + position: relative;
  2169 + margin-left: 0;
  2170 + }
  2171 + .form-inline .has-feedback .form-control-feedback {
  2172 + top: 0;
  2173 + }
  2174 +}
  2175 +.form-horizontal .radio,
  2176 +.form-horizontal .checkbox,
  2177 +.form-horizontal .radio-inline,
  2178 +.form-horizontal .checkbox-inline {
  2179 + margin-top: 0;
  2180 + margin-bottom: 0;
  2181 + padding-top: 7px;
  2182 +}
  2183 +.form-horizontal .radio,
  2184 +.form-horizontal .checkbox {
  2185 + min-height: 27px;
  2186 +}
  2187 +.form-horizontal .form-group {
  2188 + margin-left: -15px;
  2189 + margin-right: -15px;
  2190 +}
  2191 +@media (min-width: 768px) {
  2192 + .form-horizontal .control-label {
  2193 + text-align: right;
  2194 + margin-bottom: 0;
  2195 + padding-top: 7px;
  2196 + }
  2197 +}
  2198 +.form-horizontal .has-feedback .form-control-feedback {
  2199 + right: 15px;
  2200 +}
  2201 +@media (min-width: 768px) {
  2202 + .form-horizontal .form-group-lg .control-label {
  2203 + padding-top: 11px;
  2204 + font-size: 18px;
  2205 + }
  2206 +}
  2207 +@media (min-width: 768px) {
  2208 + .form-horizontal .form-group-sm .control-label {
  2209 + padding-top: 6px;
  2210 + font-size: 12px;
  2211 + }
  2212 +}
  2213 +.btn {
  2214 + display: inline-block;
  2215 + margin-bottom: 0;
  2216 + font-weight: normal;
  2217 + text-align: center;
  2218 + vertical-align: middle;
  2219 + -ms-touch-action: manipulation;
  2220 + touch-action: manipulation;
  2221 + cursor: pointer;
  2222 + background-image: none;
  2223 + border: 1px solid transparent;
  2224 + white-space: nowrap;
  2225 + padding: 6px 12px;
  2226 + font-size: 14px;
  2227 + line-height: 1.42857143;
  2228 + border-radius: 2px;
  2229 + -webkit-user-select: none;
  2230 + -moz-user-select: none;
  2231 + -ms-user-select: none;
  2232 + user-select: none;
  2233 +}
  2234 +.btn:focus,
  2235 +.btn:active:focus,
  2236 +.btn.active:focus,
  2237 +.btn.focus,
  2238 +.btn:active.focus,
  2239 +.btn.active.focus {
  2240 + outline: thin dotted;
  2241 + outline: 5px auto -webkit-focus-ring-color;
  2242 + outline-offset: -2px;
  2243 +}
  2244 +.btn:hover,
  2245 +.btn:focus,
  2246 +.btn.focus {
  2247 + color: #303030;
  2248 + text-decoration: none;
  2249 +}
  2250 +.btn:active,
  2251 +.btn.active {
  2252 + outline: 0;
  2253 + background-image: none;
  2254 + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  2255 + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  2256 +}
  2257 +.btn.disabled,
  2258 +.btn[disabled],
  2259 +fieldset[disabled] .btn {
  2260 + cursor: not-allowed;
  2261 + opacity: 0.65;
  2262 + filter: alpha(opacity=65);
  2263 + -webkit-box-shadow: none;
  2264 + box-shadow: none;
  2265 +}
  2266 +a.btn.disabled,
  2267 +fieldset[disabled] a.btn {
  2268 + pointer-events: none;
  2269 +}
  2270 +.btn-default {
  2271 + color: #303030;
  2272 + background-color: #ffffff;
  2273 + border-color: #cccccc;
  2274 +}
  2275 +.btn-default:focus,
  2276 +.btn-default.focus {
  2277 + color: #303030;
  2278 + background-color: #e6e6e6;
  2279 + border-color: #8c8c8c;
  2280 +}
  2281 +.btn-default:hover {
  2282 + color: #303030;
  2283 + background-color: #e6e6e6;
  2284 + border-color: #adadad;
  2285 +}
  2286 +.btn-default:active,
  2287 +.btn-default.active,
  2288 +.open > .dropdown-toggle.btn-default {
  2289 + color: #303030;
  2290 + background-color: #e6e6e6;
  2291 + border-color: #adadad;
  2292 +}
  2293 +.btn-default:active:hover,
  2294 +.btn-default.active:hover,
  2295 +.open > .dropdown-toggle.btn-default:hover,
  2296 +.btn-default:active:focus,
  2297 +.btn-default.active:focus,
  2298 +.open > .dropdown-toggle.btn-default:focus,
  2299 +.btn-default:active.focus,
  2300 +.btn-default.active.focus,
  2301 +.open > .dropdown-toggle.btn-default.focus {
  2302 + color: #303030;
  2303 + background-color: #d4d4d4;
  2304 + border-color: #8c8c8c;
  2305 +}
  2306 +.btn-default:active,
  2307 +.btn-default.active,
  2308 +.open > .dropdown-toggle.btn-default {
  2309 + background-image: none;
  2310 +}
  2311 +.btn-default.disabled:hover,
  2312 +.btn-default[disabled]:hover,
  2313 +fieldset[disabled] .btn-default:hover,
  2314 +.btn-default.disabled:focus,
  2315 +.btn-default[disabled]:focus,
  2316 +fieldset[disabled] .btn-default:focus,
  2317 +.btn-default.disabled.focus,
  2318 +.btn-default[disabled].focus,
  2319 +fieldset[disabled] .btn-default.focus {
  2320 + background-color: #ffffff;
  2321 + border-color: #cccccc;
  2322 +}
  2323 +.btn-default .badge {
  2324 + color: #ffffff;
  2325 + background-color: #303030;
  2326 +}
  2327 +.btn-primary {
  2328 + color: #ffffff;
  2329 + background-color: #0095da;
  2330 + border-color: #007ab3;
  2331 +}
  2332 +.btn-primary:focus,
  2333 +.btn-primary.focus {
  2334 + color: #ffffff;
  2335 + background-color: #0072a7;
  2336 + border-color: #002333;
  2337 +}
  2338 +.btn-primary:hover {
  2339 + color: #ffffff;
  2340 + background-color: #0072a7;
  2341 + border-color: #005076;
  2342 +}
  2343 +.btn-primary:active,
  2344 +.btn-primary.active,
  2345 +.open > .dropdown-toggle.btn-primary {
  2346 + color: #ffffff;
  2347 + background-color: #0072a7;
  2348 + border-color: #005076;
  2349 +}
  2350 +.btn-primary:active:hover,
  2351 +.btn-primary.active:hover,
  2352 +.open > .dropdown-toggle.btn-primary:hover,
  2353 +.btn-primary:active:focus,
  2354 +.btn-primary.active:focus,
  2355 +.open > .dropdown-toggle.btn-primary:focus,
  2356 +.btn-primary:active.focus,
  2357 +.btn-primary.active.focus,
  2358 +.open > .dropdown-toggle.btn-primary.focus {
  2359 + color: #ffffff;
  2360 + background-color: #005a83;
  2361 + border-color: #002333;
  2362 +}
  2363 +.btn-primary:active,
  2364 +.btn-primary.active,
  2365 +.open > .dropdown-toggle.btn-primary {
  2366 + background-image: none;
  2367 +}
  2368 +.btn-primary.disabled:hover,
  2369 +.btn-primary[disabled]:hover,
  2370 +fieldset[disabled] .btn-primary:hover,
  2371 +.btn-primary.disabled:focus,
  2372 +.btn-primary[disabled]:focus,
  2373 +fieldset[disabled] .btn-primary:focus,
  2374 +.btn-primary.disabled.focus,
  2375 +.btn-primary[disabled].focus,
  2376 +fieldset[disabled] .btn-primary.focus {
  2377 + background-color: #0095da;
  2378 + border-color: #007ab3;
  2379 +}
  2380 +.btn-primary .badge {
  2381 + color: #0095da;
  2382 + background-color: #ffffff;
  2383 +}
  2384 +.btn-success {
  2385 + color: #ffffff;
  2386 + background-color: #818f44;
  2387 + border-color: #5c6631;
  2388 +}
  2389 +.btn-success:focus,
  2390 +.btn-success.focus {
  2391 + color: #ffffff;
  2392 + background-color: #626c34;
  2393 + border-color: #0e1008;
  2394 +}
  2395 +.btn-success:hover {
  2396 + color: #ffffff;
  2397 + background-color: #626c34;
  2398 + border-color: #373d1d;
  2399 +}
  2400 +.btn-success:active,
  2401 +.btn-success.active,
  2402 +.open > .dropdown-toggle.btn-success {
  2403 + color: #ffffff;
  2404 + background-color: #626c34;
  2405 + border-color: #373d1d;
  2406 +}
  2407 +.btn-success:active:hover,
  2408 +.btn-success.active:hover,
  2409 +.open > .dropdown-toggle.btn-success:hover,
  2410 +.btn-success:active:focus,
  2411 +.btn-success.active:focus,
  2412 +.open > .dropdown-toggle.btn-success:focus,
  2413 +.btn-success:active.focus,
  2414 +.btn-success.active.focus,
  2415 +.open > .dropdown-toggle.btn-success.focus {
  2416 + color: #ffffff;
  2417 + background-color: #4c5428;
  2418 + border-color: #0e1008;
  2419 +}
  2420 +.btn-success:active,
  2421 +.btn-success.active,
  2422 +.open > .dropdown-toggle.btn-success {
  2423 + background-image: none;
  2424 +}
  2425 +.btn-success.disabled:hover,
  2426 +.btn-success[disabled]:hover,
  2427 +fieldset[disabled] .btn-success:hover,
  2428 +.btn-success.disabled:focus,
  2429 +.btn-success[disabled]:focus,
  2430 +fieldset[disabled] .btn-success:focus,
  2431 +.btn-success.disabled.focus,
  2432 +.btn-success[disabled].focus,
  2433 +fieldset[disabled] .btn-success.focus {
  2434 + background-color: #818f44;
  2435 + border-color: #5c6631;
  2436 +}
  2437 +.btn-success .badge {
  2438 + color: #818f44;
  2439 + background-color: #ffffff;
  2440 +}
  2441 +.btn-info {
  2442 + color: #ffffff;
  2443 + background-color: #5bc0de;
  2444 + border-color: #46b8da;
  2445 +}
  2446 +.btn-info:focus,
  2447 +.btn-info.focus {
  2448 + color: #ffffff;
  2449 + background-color: #31b0d5;
  2450 + border-color: #1b6d85;
  2451 +}
  2452 +.btn-info:hover {
  2453 + color: #ffffff;
  2454 + background-color: #31b0d5;
  2455 + border-color: #269abc;
  2456 +}
  2457 +.btn-info:active,
  2458 +.btn-info.active,
  2459 +.open > .dropdown-toggle.btn-info {
  2460 + color: #ffffff;
  2461 + background-color: #31b0d5;
  2462 + border-color: #269abc;
  2463 +}
  2464 +.btn-info:active:hover,
  2465 +.btn-info.active:hover,
  2466 +.open > .dropdown-toggle.btn-info:hover,
  2467 +.btn-info:active:focus,
  2468 +.btn-info.active:focus,
  2469 +.open > .dropdown-toggle.btn-info:focus,
  2470 +.btn-info:active.focus,
  2471 +.btn-info.active.focus,
  2472 +.open > .dropdown-toggle.btn-info.focus {
  2473 + color: #ffffff;
  2474 + background-color: #269abc;
  2475 + border-color: #1b6d85;
  2476 +}
  2477 +.btn-info:active,
  2478 +.btn-info.active,
  2479 +.open > .dropdown-toggle.btn-info {
  2480 + background-image: none;
  2481 +}
  2482 +.btn-info.disabled:hover,
  2483 +.btn-info[disabled]:hover,
  2484 +fieldset[disabled] .btn-info:hover,
  2485 +.btn-info.disabled:focus,
  2486 +.btn-info[disabled]:focus,
  2487 +fieldset[disabled] .btn-info:focus,
  2488 +.btn-info.disabled.focus,
  2489 +.btn-info[disabled].focus,
  2490 +fieldset[disabled] .btn-info.focus {
  2491 + background-color: #5bc0de;
  2492 + border-color: #46b8da;
  2493 +}
  2494 +.btn-info .badge {
  2495 + color: #5bc0de;
  2496 + background-color: #ffffff;
  2497 +}
  2498 +.btn-warning {
  2499 + color: #ffffff;
  2500 + background-color: #f0ad4e;
  2501 + border-color: #eea236;
  2502 +}
  2503 +.btn-warning:focus,
  2504 +.btn-warning.focus {
  2505 + color: #ffffff;
  2506 + background-color: #ec971f;
  2507 + border-color: #985f0d;
  2508 +}
  2509 +.btn-warning:hover {
  2510 + color: #ffffff;
  2511 + background-color: #ec971f;
  2512 + border-color: #d58512;
  2513 +}
  2514 +.btn-warning:active,
  2515 +.btn-warning.active,
  2516 +.open > .dropdown-toggle.btn-warning {
  2517 + color: #ffffff;
  2518 + background-color: #ec971f;
  2519 + border-color: #d58512;
  2520 +}
  2521 +.btn-warning:active:hover,
  2522 +.btn-warning.active:hover,
  2523 +.open > .dropdown-toggle.btn-warning:hover,
  2524 +.btn-warning:active:focus,
  2525 +.btn-warning.active:focus,
  2526 +.open > .dropdown-toggle.btn-warning:focus,
  2527 +.btn-warning:active.focus,
  2528 +.btn-warning.active.focus,
  2529 +.open > .dropdown-toggle.btn-warning.focus {
  2530 + color: #ffffff;
  2531 + background-color: #d58512;
  2532 + border-color: #985f0d;
  2533 +}
  2534 +.btn-warning:active,
  2535 +.btn-warning.active,
  2536 +.open > .dropdown-toggle.btn-warning {
  2537 + background-image: none;
  2538 +}
  2539 +.btn-warning.disabled:hover,
  2540 +.btn-warning[disabled]:hover,
  2541 +fieldset[disabled] .btn-warning:hover,
  2542 +.btn-warning.disabled:focus,
  2543 +.btn-warning[disabled]:focus,
  2544 +fieldset[disabled] .btn-warning:focus,
  2545 +.btn-warning.disabled.focus,
  2546 +.btn-warning[disabled].focus,
  2547 +fieldset[disabled] .btn-warning.focus {
  2548 + background-color: #f0ad4e;
  2549 + border-color: #eea236;
  2550 +}
  2551 +.btn-warning .badge {
  2552 + color: #f0ad4e;
  2553 + background-color: #ffffff;
  2554 +}
  2555 +.btn-danger {
  2556 + color: #ffffff;
  2557 + background-color: #d9534f;
  2558 + border-color: #d43f3a;
  2559 +}
  2560 +.btn-danger:focus,
  2561 +.btn-danger.focus {
  2562 + color: #ffffff;
  2563 + background-color: #c9302c;
  2564 + border-color: #761c19;
  2565 +}
  2566 +.btn-danger:hover {
  2567 + color: #ffffff;
  2568 + background-color: #c9302c;
  2569 + border-color: #ac2925;
  2570 +}
  2571 +.btn-danger:active,
  2572 +.btn-danger.active,
  2573 +.open > .dropdown-toggle.btn-danger {
  2574 + color: #ffffff;
  2575 + background-color: #c9302c;
  2576 + border-color: #ac2925;
  2577 +}
  2578 +.btn-danger:active:hover,
  2579 +.btn-danger.active:hover,
  2580 +.open > .dropdown-toggle.btn-danger:hover,
  2581 +.btn-danger:active:focus,
  2582 +.btn-danger.active:focus,
  2583 +.open > .dropdown-toggle.btn-danger:focus,
  2584 +.btn-danger:active.focus,
  2585 +.btn-danger.active.focus,
  2586 +.open > .dropdown-toggle.btn-danger.focus {
  2587 + color: #ffffff;
  2588 + background-color: #ac2925;
  2589 + border-color: #761c19;
  2590 +}
  2591 +.btn-danger:active,
  2592 +.btn-danger.active,
  2593 +.open > .dropdown-toggle.btn-danger {
  2594 + background-image: none;
  2595 +}
  2596 +.btn-danger.disabled:hover,
  2597 +.btn-danger[disabled]:hover,
  2598 +fieldset[disabled] .btn-danger:hover,
  2599 +.btn-danger.disabled:focus,
  2600 +.btn-danger[disabled]:focus,
  2601 +fieldset[disabled] .btn-danger:focus,
  2602 +.btn-danger.disabled.focus,
  2603 +.btn-danger[disabled].focus,
  2604 +fieldset[disabled] .btn-danger.focus {
  2605 + background-color: #d9534f;
  2606 + border-color: #d43f3a;
  2607 +}
  2608 +.btn-danger .badge {
  2609 + color: #d9534f;
  2610 + background-color: #ffffff;
  2611 +}
  2612 +.btn-link {
  2613 + color: #0095da;
  2614 + font-weight: normal;
  2615 + border-radius: 0;
  2616 +}
  2617 +.btn-link,
  2618 +.btn-link:active,
  2619 +.btn-link.active,
  2620 +.btn-link[disabled],
  2621 +fieldset[disabled] .btn-link {
  2622 + background-color: transparent;
  2623 + -webkit-box-shadow: none;
  2624 + box-shadow: none;
  2625 +}
  2626 +.btn-link,
  2627 +.btn-link:hover,
  2628 +.btn-link:focus,
  2629 +.btn-link:active {
  2630 + border-color: transparent;
  2631 +}
  2632 +.btn-link:hover,
  2633 +.btn-link:focus {
  2634 + color: #007ab3;
  2635 + text-decoration: underline;
  2636 + background-color: transparent;
  2637 +}
  2638 +.btn-link[disabled]:hover,
  2639 +fieldset[disabled] .btn-link:hover,
  2640 +.btn-link[disabled]:focus,
  2641 +fieldset[disabled] .btn-link:focus {
  2642 + color: #878787;
  2643 + text-decoration: none;
  2644 +}
  2645 +.btn-lg,
  2646 +.btn-group-lg > .btn {
  2647 + padding: 10px 16px;
  2648 + font-size: 18px;
  2649 + line-height: 1.3333333;
  2650 + border-radius: 2px;
  2651 +}
  2652 +.btn-sm,
  2653 +.btn-group-sm > .btn {
  2654 + padding: 5px 10px;
  2655 + font-size: 12px;
  2656 + line-height: 1.5;
  2657 + border-radius: 2px;
  2658 +}
  2659 +.btn-xs,
  2660 +.btn-group-xs > .btn {
  2661 + padding: 1px 5px;
  2662 + font-size: 12px;
  2663 + line-height: 1.5;
  2664 + border-radius: 2px;
  2665 +}
  2666 +.btn-block {
  2667 + display: block;
  2668 + width: 100%;
  2669 +}
  2670 +.btn-block + .btn-block {
  2671 + margin-top: 5px;
  2672 +}
  2673 +input[type="submit"].btn-block,
  2674 +input[type="reset"].btn-block,
  2675 +input[type="button"].btn-block {
  2676 + width: 100%;
  2677 +}
  2678 +.fade {
  2679 + opacity: 0;
  2680 + -webkit-transition: opacity 0.15s linear;
  2681 + -o-transition: opacity 0.15s linear;
  2682 + transition: opacity 0.15s linear;
  2683 +}
  2684 +.fade.in {
  2685 + opacity: 1;
  2686 +}
  2687 +.collapse {
  2688 + display: none;
  2689 +}
  2690 +.collapse.in {
  2691 + display: block;
  2692 +}
  2693 +tr.collapse.in {
  2694 + display: table-row;
  2695 +}
  2696 +tbody.collapse.in {
  2697 + display: table-row-group;
  2698 +}
  2699 +.collapsing {
  2700 + position: relative;
  2701 + height: 0;
  2702 + overflow: hidden;
  2703 + -webkit-transition-property: height, visibility;
  2704 + -o-transition-property: height, visibility;
  2705 + transition-property: height, visibility;
  2706 + -webkit-transition-duration: 0.35s;
  2707 + -o-transition-duration: 0.35s;
  2708 + transition-duration: 0.35s;
  2709 + -webkit-transition-timing-function: ease;
  2710 + -o-transition-timing-function: ease;
  2711 + transition-timing-function: ease;
  2712 +}
  2713 +.caret {
  2714 + display: inline-block;
  2715 + width: 0;
  2716 + height: 0;
  2717 + margin-left: 2px;
  2718 + vertical-align: middle;
  2719 + border-top: 4px dashed;
  2720 + border-top: 4px solid \9;
  2721 + border-right: 4px solid transparent;
  2722 + border-left: 4px solid transparent;
  2723 +}
  2724 +.dropup,
  2725 +.dropdown {
  2726 + position: relative;
  2727 +}
  2728 +.dropdown-toggle:focus {
  2729 + outline: 0;
  2730 +}
  2731 +.dropdown-menu {
  2732 + position: absolute;
  2733 + top: 100%;
  2734 + left: 0;
  2735 + z-index: 1000;
  2736 + display: none;
  2737 + float: left;
  2738 + min-width: 160px;
  2739 + padding: 5px 0;
  2740 + margin: 2px 0 0;
  2741 + list-style: none;
  2742 + font-size: 14px;
  2743 + text-align: left;
  2744 + background-color: #ffffff;
  2745 + border: 1px solid #cccccc;
  2746 + border: 1px solid rgba(0, 0, 0, 0.15);
  2747 + border-radius: 2px;
  2748 + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  2749 + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  2750 + -webkit-background-clip: padding-box;
  2751 + background-clip: padding-box;
  2752 +}
  2753 +.dropdown-menu.pull-right {
  2754 + right: 0;
  2755 + left: auto;
  2756 +}
  2757 +.dropdown-menu .divider {
  2758 + height: 1px;
  2759 + margin: 9px 0;
  2760 + overflow: hidden;
  2761 + background-color: #e5e5e5;
  2762 +}
  2763 +.dropdown-menu > li > a {
  2764 + display: block;
  2765 + padding: 3px 20px;
  2766 + clear: both;
  2767 + font-weight: normal;
  2768 + line-height: 1.42857143;
  2769 + color: #303030;
  2770 + white-space: nowrap;
  2771 +}
  2772 +.dropdown-menu > li > a:hover,
  2773 +.dropdown-menu > li > a:focus {
  2774 + text-decoration: none;
  2775 + color: #fff;
  2776 + background-color: #0095da;
  2777 +}
  2778 +.dropdown-menu > .active > a,
  2779 +.dropdown-menu > .active > a:hover,
  2780 +.dropdown-menu > .active > a:focus {
  2781 + color: #ffffff;
  2782 + text-decoration: none;
  2783 + outline: 0;
  2784 + background-color: #0095da;
  2785 +}
  2786 +.dropdown-menu > .disabled > a,
  2787 +.dropdown-menu > .disabled > a:hover,
  2788 +.dropdown-menu > .disabled > a:focus {
  2789 + color: #878787;
  2790 +}
  2791 +.dropdown-menu > .disabled > a:hover,
  2792 +.dropdown-menu > .disabled > a:focus {
  2793 + text-decoration: none;
  2794 + background-color: transparent;
  2795 + background-image: none;
  2796 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2797 + cursor: not-allowed;
  2798 +}
  2799 +.open > .dropdown-menu {
  2800 + display: block;
  2801 +}
  2802 +.open > a {
  2803 + outline: 0;
  2804 +}
  2805 +.dropdown-menu-right {
  2806 + left: auto;
  2807 + right: 0;
  2808 +}
  2809 +.dropdown-menu-left {
  2810 + left: 0;
  2811 + right: auto;
  2812 +}
  2813 +.dropdown-header {
  2814 + display: block;
  2815 + padding: 3px 20px;
  2816 + font-size: 12px;
  2817 + line-height: 1.42857143;
  2818 + color: #878787;
  2819 + white-space: nowrap;
  2820 +}
  2821 +.dropdown-backdrop {
  2822 + position: fixed;
  2823 + left: 0;
  2824 + right: 0;
  2825 + bottom: 0;
  2826 + top: 0;
  2827 + z-index: 990;
  2828 +}
  2829 +.pull-right > .dropdown-menu {
  2830 + right: 0;
  2831 + left: auto;
  2832 +}
  2833 +.dropup .caret,
  2834 +.navbar-fixed-bottom .dropdown .caret {
  2835 + border-top: 0;
  2836 + border-bottom: 4px dashed;
  2837 + border-bottom: 4px solid \9;
  2838 + content: "";
  2839 +}
  2840 +.dropup .dropdown-menu,
  2841 +.navbar-fixed-bottom .dropdown .dropdown-menu {
  2842 + top: auto;
  2843 + bottom: 100%;
  2844 + margin-bottom: 2px;
  2845 +}
  2846 +@media (min-width: 768px) {
  2847 + .navbar-right .dropdown-menu {
  2848 + left: auto;
  2849 + right: 0;
  2850 + }
  2851 + .navbar-right .dropdown-menu-left {
  2852 + left: 0;
  2853 + right: auto;
  2854 + }
  2855 +}
  2856 +.btn-group,
  2857 +.btn-group-vertical {
  2858 + position: relative;
  2859 + display: inline-block;
  2860 + vertical-align: middle;
  2861 +}
  2862 +.btn-group > .btn,
  2863 +.btn-group-vertical > .btn {
  2864 + position: relative;
  2865 + float: left;
  2866 +}
  2867 +.btn-group > .btn:hover,
  2868 +.btn-group-vertical > .btn:hover,
  2869 +.btn-group > .btn:focus,
  2870 +.btn-group-vertical > .btn:focus,
  2871 +.btn-group > .btn:active,
  2872 +.btn-group-vertical > .btn:active,
  2873 +.btn-group > .btn.active,
  2874 +.btn-group-vertical > .btn.active {
  2875 + z-index: 2;
  2876 +}
  2877 +.btn-group .btn + .btn,
  2878 +.btn-group .btn + .btn-group,
  2879 +.btn-group .btn-group + .btn,
  2880 +.btn-group .btn-group + .btn-group {
  2881 + margin-left: -1px;
  2882 +}
  2883 +.btn-toolbar {
  2884 + margin-left: -5px;
  2885 +}
  2886 +.btn-toolbar .btn,
  2887 +.btn-toolbar .btn-group,
  2888 +.btn-toolbar .input-group {
  2889 + float: left;
  2890 +}
  2891 +.btn-toolbar > .btn,
  2892 +.btn-toolbar > .btn-group,
  2893 +.btn-toolbar > .input-group {
  2894 + margin-left: 5px;
  2895 +}
  2896 +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  2897 + border-radius: 0;
  2898 +}
  2899 +.btn-group > .btn:first-child {
  2900 + margin-left: 0;
  2901 +}
  2902 +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  2903 + border-bottom-right-radius: 0;
  2904 + border-top-right-radius: 0;
  2905 +}
  2906 +.btn-group > .btn:last-child:not(:first-child),
  2907 +.btn-group > .dropdown-toggle:not(:first-child) {
  2908 + border-bottom-left-radius: 0;
  2909 + border-top-left-radius: 0;
  2910 +}
  2911 +.btn-group > .btn-group {
  2912 + float: left;
  2913 +}
  2914 +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  2915 + border-radius: 0;
  2916 +}
  2917 +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
  2918 +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  2919 + border-bottom-right-radius: 0;
  2920 + border-top-right-radius: 0;
  2921 +}
  2922 +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  2923 + border-bottom-left-radius: 0;
  2924 + border-top-left-radius: 0;
  2925 +}
  2926 +.btn-group .dropdown-toggle:active,
  2927 +.btn-group.open .dropdown-toggle {
  2928 + outline: 0;
  2929 +}
  2930 +.btn-group > .btn + .dropdown-toggle {
  2931 + padding-left: 8px;
  2932 + padding-right: 8px;
  2933 +}
  2934 +.btn-group > .btn-lg + .dropdown-toggle {
  2935 + padding-left: 12px;
  2936 + padding-right: 12px;
  2937 +}
  2938 +.btn-group.open .dropdown-toggle {
  2939 + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  2940 + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  2941 +}
  2942 +.btn-group.open .dropdown-toggle.btn-link {
  2943 + -webkit-box-shadow: none;
  2944 + box-shadow: none;
  2945 +}
  2946 +.btn .caret {
  2947 + margin-left: 0;
  2948 +}
  2949 +.btn-lg .caret {
  2950 + border-width: 5px 5px 0;
  2951 + border-bottom-width: 0;
  2952 +}
  2953 +.dropup .btn-lg .caret {
  2954 + border-width: 0 5px 5px;
  2955 +}
  2956 +.btn-group-vertical > .btn,
  2957 +.btn-group-vertical > .btn-group,
  2958 +.btn-group-vertical > .btn-group > .btn {
  2959 + display: block;
  2960 + float: none;
  2961 + width: 100%;
  2962 + max-width: 100%;
  2963 +}
  2964 +.btn-group-vertical > .btn-group > .btn {
  2965 + float: none;
  2966 +}
  2967 +.btn-group-vertical > .btn + .btn,
  2968 +.btn-group-vertical > .btn + .btn-group,
  2969 +.btn-group-vertical > .btn-group + .btn,
  2970 +.btn-group-vertical > .btn-group + .btn-group {
  2971 + margin-top: -1px;
  2972 + margin-left: 0;
  2973 +}
  2974 +.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  2975 + border-radius: 0;
  2976 +}
  2977 +.btn-group-vertical > .btn:first-child:not(:last-child) {
  2978 + border-top-right-radius: 2px;
  2979 + border-top-left-radius: 2px;
  2980 + border-bottom-right-radius: 0;
  2981 + border-bottom-left-radius: 0;
  2982 +}
  2983 +.btn-group-vertical > .btn:last-child:not(:first-child) {
  2984 + border-top-right-radius: 0;
  2985 + border-top-left-radius: 0;
  2986 + border-bottom-right-radius: 2px;
  2987 + border-bottom-left-radius: 2px;
  2988 +}
  2989 +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  2990 + border-radius: 0;
  2991 +}
  2992 +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
  2993 +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  2994 + border-bottom-right-radius: 0;
  2995 + border-bottom-left-radius: 0;
  2996 +}
  2997 +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  2998 + border-top-right-radius: 0;
  2999 + border-top-left-radius: 0;
  3000 +}
  3001 +.btn-group-justified {
  3002 + display: table;
  3003 + width: 100%;
  3004 + table-layout: fixed;
  3005 + border-collapse: separate;
  3006 +}
  3007 +.btn-group-justified > .btn,
  3008 +.btn-group-justified > .btn-group {
  3009 + float: none;
  3010 + display: table-cell;
  3011 + width: 1%;
  3012 +}
  3013 +.btn-group-justified > .btn-group .btn {
  3014 + width: 100%;
  3015 +}
  3016 +.btn-group-justified > .btn-group .dropdown-menu {
  3017 + left: auto;
  3018 +}
  3019 +[data-toggle="buttons"] > .btn input[type="radio"],
  3020 +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
  3021 +[data-toggle="buttons"] > .btn input[type="checkbox"],
  3022 +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  3023 + position: absolute;
  3024 + clip: rect(0, 0, 0, 0);
  3025 + pointer-events: none;
  3026 +}
  3027 +.input-group {
  3028 + position: relative;
  3029 + display: table;
  3030 + border-collapse: separate;
  3031 +}
  3032 +.input-group[class*="col-"] {
  3033 + float: none;
  3034 + padding-left: 0;
  3035 + padding-right: 0;
  3036 +}
  3037 +.input-group .form-control {
  3038 + position: relative;
  3039 + z-index: 2;
  3040 + float: left;
  3041 + width: 100%;
  3042 + margin-bottom: 0;
  3043 +}
  3044 +.input-group .form-control:focus {
  3045 + z-index: 3;
  3046 +}
  3047 +.input-group-lg > .form-control,
  3048 +.input-group-lg > .input-group-addon,
  3049 +.input-group-lg > .input-group-btn > .btn {
  3050 + height: 46px;
  3051 + padding: 10px 16px;
  3052 + font-size: 18px;
  3053 + line-height: 1.3333333;
  3054 + border-radius: 2px;
  3055 +}
  3056 +select.input-group-lg > .form-control,
  3057 +select.input-group-lg > .input-group-addon,
  3058 +select.input-group-lg > .input-group-btn > .btn {
  3059 + height: 46px;
  3060 + line-height: 46px;
  3061 +}
  3062 +textarea.input-group-lg > .form-control,
  3063 +textarea.input-group-lg > .input-group-addon,
  3064 +textarea.input-group-lg > .input-group-btn > .btn,
  3065 +select[multiple].input-group-lg > .form-control,
  3066 +select[multiple].input-group-lg > .input-group-addon,
  3067 +select[multiple].input-group-lg > .input-group-btn > .btn {
  3068 + height: auto;
  3069 +}
  3070 +.input-group-sm > .form-control,
  3071 +.input-group-sm > .input-group-addon,
  3072 +.input-group-sm > .input-group-btn > .btn {
  3073 + height: 30px;
  3074 + padding: 5px 10px;
  3075 + font-size: 12px;
  3076 + line-height: 1.5;
  3077 + border-radius: 2px;
  3078 +}
  3079 +select.input-group-sm > .form-control,
  3080 +select.input-group-sm > .input-group-addon,
  3081 +select.input-group-sm > .input-group-btn > .btn {
  3082 + height: 30px;
  3083 + line-height: 30px;
  3084 +}
  3085 +textarea.input-group-sm > .form-control,
  3086 +textarea.input-group-sm > .input-group-addon,
  3087 +textarea.input-group-sm > .input-group-btn > .btn,
  3088 +select[multiple].input-group-sm > .form-control,
  3089 +select[multiple].input-group-sm > .input-group-addon,
  3090 +select[multiple].input-group-sm > .input-group-btn > .btn {
  3091 + height: auto;
  3092 +}
  3093 +.input-group-addon,
  3094 +.input-group-btn,
  3095 +.input-group .form-control {
  3096 + display: table-cell;
  3097 +}
  3098 +.input-group-addon:not(:first-child):not(:last-child),
  3099 +.input-group-btn:not(:first-child):not(:last-child),
  3100 +.input-group .form-control:not(:first-child):not(:last-child) {
  3101 + border-radius: 0;
  3102 +}
  3103 +.input-group-addon,
  3104 +.input-group-btn {
  3105 + width: 1%;
  3106 + white-space: nowrap;
  3107 + vertical-align: middle;
  3108 +}
  3109 +.input-group-addon {
  3110 + padding: 6px 12px;
  3111 + font-size: 14px;
  3112 + font-weight: normal;
  3113 + line-height: 1;
  3114 + color: #656565;
  3115 + text-align: center;
  3116 + background-color: #fefefe;
  3117 + border: 1px solid #cccccc;
  3118 + border-radius: 2px;
  3119 +}
  3120 +.input-group-addon.input-sm {
  3121 + padding: 5px 10px;
  3122 + font-size: 12px;
  3123 + border-radius: 2px;
  3124 +}
  3125 +.input-group-addon.input-lg {
  3126 + padding: 10px 16px;
  3127 + font-size: 18px;
  3128 + border-radius: 2px;
  3129 +}
  3130 +.input-group-addon input[type="radio"],
  3131 +.input-group-addon input[type="checkbox"] {
  3132 + margin-top: 0;
  3133 +}
  3134 +.input-group .form-control:first-child,
  3135 +.input-group-addon:first-child,
  3136 +.input-group-btn:first-child > .btn,
  3137 +.input-group-btn:first-child > .btn-group > .btn,
  3138 +.input-group-btn:first-child > .dropdown-toggle,
  3139 +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
  3140 +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  3141 + border-bottom-right-radius: 0;
  3142 + border-top-right-radius: 0;
  3143 +}
  3144 +.input-group-addon:first-child {
  3145 + border-right: 0;
  3146 +}
  3147 +.input-group .form-control:last-child,
  3148 +.input-group-addon:last-child,
  3149 +.input-group-btn:last-child > .btn,
  3150 +.input-group-btn:last-child > .btn-group > .btn,
  3151 +.input-group-btn:last-child > .dropdown-toggle,
  3152 +.input-group-btn:first-child > .btn:not(:first-child),
  3153 +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  3154 + border-bottom-left-radius: 0;
  3155 + border-top-left-radius: 0;
  3156 +}
  3157 +.input-group-addon:last-child {
  3158 + border-left: 0;
  3159 +}
  3160 +.input-group-btn {
  3161 + position: relative;
  3162 + font-size: 0;
  3163 + white-space: nowrap;
  3164 +}
  3165 +.input-group-btn > .btn {
  3166 + position: relative;
  3167 +}
  3168 +.input-group-btn > .btn + .btn {
  3169 + margin-left: -1px;
  3170 +}
  3171 +.input-group-btn > .btn:hover,
  3172 +.input-group-btn > .btn:focus,
  3173 +.input-group-btn > .btn:active {
  3174 + z-index: 2;
  3175 +}
  3176 +.input-group-btn:first-child > .btn,
  3177 +.input-group-btn:first-child > .btn-group {
  3178 + margin-right: -1px;
  3179 +}
  3180 +.input-group-btn:last-child > .btn,
  3181 +.input-group-btn:last-child > .btn-group {
  3182 + z-index: 2;
  3183 + margin-left: -1px;
  3184 +}
  3185 +.nav {
  3186 + margin-bottom: 0;
  3187 + padding-left: 0;
  3188 + list-style: none;
  3189 +}
  3190 +.nav > li {
  3191 + position: relative;
  3192 + display: block;
  3193 +}
  3194 +.nav > li > a {
  3195 + position: relative;
  3196 + display: block;
  3197 + padding: 10px 15px;
  3198 +}
  3199 +.nav > li > a:hover,
  3200 +.nav > li > a:focus {
  3201 + text-decoration: none;
  3202 + background-color: #fefefe;
  3203 +}
  3204 +.nav > li.disabled > a {
  3205 + color: #878787;
  3206 +}
  3207 +.nav > li.disabled > a:hover,
  3208 +.nav > li.disabled > a:focus {
  3209 + color: #878787;
  3210 + text-decoration: none;
  3211 + background-color: transparent;
  3212 + cursor: not-allowed;
  3213 +}
  3214 +.nav .open > a,
  3215 +.nav .open > a:hover,
  3216 +.nav .open > a:focus {
  3217 + background-color: #fefefe;
  3218 + border-color: #0095da;
  3219 +}
  3220 +.nav .nav-divider {
  3221 + height: 1px;
  3222 + margin: 9px 0;
  3223 + overflow: hidden;
  3224 + background-color: #e5e5e5;
  3225 +}
  3226 +.nav > li > a > img {
  3227 + max-width: none;
  3228 +}
  3229 +.nav-tabs {
  3230 + border-bottom: 1px solid #dddddd;
  3231 +}
  3232 +.nav-tabs > li {
  3233 + float: left;
  3234 + margin-bottom: -1px;
  3235 +}
  3236 +.nav-tabs > li > a {
  3237 + margin-right: 2px;
  3238 + line-height: 1.42857143;
  3239 + border: 1px solid transparent;
  3240 + border-radius: 2px 2px 0 0;
  3241 +}
  3242 +.nav-tabs > li > a:hover {
  3243 + border-color: #fefefe #fefefe #dddddd;
  3244 +}
  3245 +.nav-tabs > li.active > a,
  3246 +.nav-tabs > li.active > a:hover,
  3247 +.nav-tabs > li.active > a:focus {
  3248 + color: #656565;
  3249 + background-color: #ffffff;
  3250 + border: 1px solid #dddddd;
  3251 + border-bottom-color: transparent;
  3252 + cursor: default;
  3253 +}
  3254 +.nav-tabs.nav-justified {
  3255 + width: 100%;
  3256 + border-bottom: 0;
  3257 +}
  3258 +.nav-tabs.nav-justified > li {
  3259 + float: none;
  3260 +}
  3261 +.nav-tabs.nav-justified > li > a {
  3262 + text-align: center;
  3263 + margin-bottom: 5px;
  3264 +}
  3265 +.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  3266 + top: auto;
  3267 + left: auto;
  3268 +}
  3269 +@media (min-width: 768px) {
  3270 + .nav-tabs.nav-justified > li {
  3271 + display: table-cell;
  3272 + width: 1%;
  3273 + }
  3274 + .nav-tabs.nav-justified > li > a {
  3275 + margin-bottom: 0;
  3276 + }
  3277 +}
  3278 +.nav-tabs.nav-justified > li > a {
  3279 + margin-right: 0;
  3280 + border-radius: 2px;
  3281 +}
  3282 +.nav-tabs.nav-justified > .active > a,
  3283 +.nav-tabs.nav-justified > .active > a:hover,
  3284 +.nav-tabs.nav-justified > .active > a:focus {
  3285 + border: 1px solid #dddddd;
  3286 +}
  3287 +@media (min-width: 768px) {
  3288 + .nav-tabs.nav-justified > li > a {
  3289 + border-bottom: 1px solid #dddddd;
  3290 + border-radius: 2px 2px 0 0;
  3291 + }
  3292 + .nav-tabs.nav-justified > .active > a,
  3293 + .nav-tabs.nav-justified > .active > a:hover,
  3294 + .nav-tabs.nav-justified > .active > a:focus {
  3295 + border-bottom-color: #ffffff;
  3296 + }
  3297 +}
  3298 +.nav-pills > li {
  3299 + float: left;
  3300 +}
  3301 +.nav-pills > li > a {
  3302 + border-radius: 2px;
  3303 +}
  3304 +.nav-pills > li + li {
  3305 + margin-left: 2px;
  3306 +}
  3307 +.nav-pills > li.active > a,
  3308 +.nav-pills > li.active > a:hover,
  3309 +.nav-pills > li.active > a:focus {
  3310 + color: #ffffff;
  3311 + background-color: #0095da;
  3312 +}
  3313 +.nav-stacked > li {
  3314 + float: none;
  3315 +}
  3316 +.nav-stacked > li + li {
  3317 + margin-top: 2px;
  3318 + margin-left: 0;
  3319 +}
  3320 +.nav-justified {
  3321 + width: 100%;
  3322 +}
  3323 +.nav-justified > li {
  3324 + float: none;
  3325 +}
  3326 +.nav-justified > li > a {
  3327 + text-align: center;
  3328 + margin-bottom: 5px;
  3329 +}
  3330 +.nav-justified > .dropdown .dropdown-menu {
  3331 + top: auto;
  3332 + left: auto;
  3333 +}
  3334 +@media (min-width: 768px) {
  3335 + .nav-justified > li {
  3336 + display: table-cell;
  3337 + width: 1%;
  3338 + }
  3339 + .nav-justified > li > a {
  3340 + margin-bottom: 0;
  3341 + }
  3342 +}
  3343 +.nav-tabs-justified {
  3344 + border-bottom: 0;
  3345 +}
  3346 +.nav-tabs-justified > li > a {
  3347 + margin-right: 0;
  3348 + border-radius: 2px;
  3349 +}
  3350 +.nav-tabs-justified > .active > a,
  3351 +.nav-tabs-justified > .active > a:hover,
  3352 +.nav-tabs-justified > .active > a:focus {
  3353 + border: 1px solid #dddddd;
  3354 +}
  3355 +@media (min-width: 768px) {
  3356 + .nav-tabs-justified > li > a {
  3357 + border-bottom: 1px solid #dddddd;
  3358 + border-radius: 2px 2px 0 0;
  3359 + }
  3360 + .nav-tabs-justified > .active > a,
  3361 + .nav-tabs-justified > .active > a:hover,
  3362 + .nav-tabs-justified > .active > a:focus {
  3363 + border-bottom-color: #ffffff;
  3364 + }
  3365 +}
  3366 +.tab-content > .tab-pane {
  3367 + display: none;
  3368 +}
  3369 +.tab-content > .active {
  3370 + display: block;
  3371 +}
  3372 +.nav-tabs .dropdown-menu {
  3373 + margin-top: -1px;
  3374 + border-top-right-radius: 0;
  3375 + border-top-left-radius: 0;
  3376 +}
  3377 +.navbar {
  3378 + position: relative;
  3379 + min-height: 50px;
  3380 + margin-bottom: 20px;
  3381 + border: 1px solid transparent;
  3382 +}
  3383 +@media (min-width: 768px) {
  3384 + .navbar {
  3385 + border-radius: 2px;
  3386 + }
  3387 +}
  3388 +@media (min-width: 768px) {
  3389 + .navbar-header {
  3390 + float: left;
  3391 + }
  3392 +}
  3393 +.navbar-collapse {
  3394 + overflow-x: visible;
  3395 + padding-right: 15px;
  3396 + padding-left: 15px;
  3397 + border-top: 1px solid transparent;
  3398 + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  3399 + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  3400 + -webkit-overflow-scrolling: touch;
  3401 +}
  3402 +.navbar-collapse.in {
  3403 + overflow-y: auto;
  3404 +}
  3405 +@media (min-width: 768px) {
  3406 + .navbar-collapse {
  3407 + width: auto;
  3408 + border-top: 0;
  3409 + -webkit-box-shadow: none;
  3410 + box-shadow: none;
  3411 + }
  3412 + .navbar-collapse.collapse {
  3413 + display: block !important;
  3414 + height: auto !important;
  3415 + padding-bottom: 0;
  3416 + overflow: visible !important;
  3417 + }
  3418 + .navbar-collapse.in {
  3419 + overflow-y: visible;
  3420 + }
  3421 + .navbar-fixed-top .navbar-collapse,
  3422 + .navbar-static-top .navbar-collapse,
  3423 + .navbar-fixed-bottom .navbar-collapse {
  3424 + padding-left: 0;
  3425 + padding-right: 0;
  3426 + }
  3427 +}
  3428 +.navbar-fixed-top .navbar-collapse,
  3429 +.navbar-fixed-bottom .navbar-collapse {
  3430 + max-height: 340px;
  3431 +}
  3432 +@media (max-device-width: 480px) and (orientation: landscape) {
  3433 + .navbar-fixed-top .navbar-collapse,
  3434 + .navbar-fixed-bottom .navbar-collapse {
  3435 + max-height: 200px;
  3436 + }
  3437 +}
  3438 +.container > .navbar-header,
  3439 +.container-fluid > .navbar-header,
  3440 +.container > .navbar-collapse,
  3441 +.container-fluid > .navbar-collapse {
  3442 + margin-right: -15px;
  3443 + margin-left: -15px;
  3444 +}
  3445 +@media (min-width: 768px) {
  3446 + .container > .navbar-header,
  3447 + .container-fluid > .navbar-header,
  3448 + .container > .navbar-collapse,
  3449 + .container-fluid > .navbar-collapse {
  3450 + margin-right: 0;
  3451 + margin-left: 0;
  3452 + }
  3453 +}
  3454 +.navbar-static-top {
  3455 + z-index: 1000;
  3456 + border-width: 0 0 1px;
  3457 +}
  3458 +@media (min-width: 768px) {
  3459 + .navbar-static-top {
  3460 + border-radius: 0;
  3461 + }
  3462 +}
  3463 +.navbar-fixed-top,
  3464 +.navbar-fixed-bottom {
  3465 + position: fixed;
  3466 + right: 0;
  3467 + left: 0;
  3468 + z-index: 1030;
  3469 +}
  3470 +@media (min-width: 768px) {
  3471 + .navbar-fixed-top,
  3472 + .navbar-fixed-bottom {
  3473 + border-radius: 0;
  3474 + }
  3475 +}
  3476 +.navbar-fixed-top {
  3477 + top: 0;
  3478 + border-width: 0 0 1px;
  3479 +}
  3480 +.navbar-fixed-bottom {
  3481 + bottom: 0;
  3482 + margin-bottom: 0;
  3483 + border-width: 1px 0 0;
  3484 +}
  3485 +.navbar-brand {
  3486 + float: left;
  3487 + padding: 15px 15px;
  3488 + font-size: 18px;
  3489 + line-height: 20px;
  3490 + height: 50px;
  3491 +}
  3492 +.navbar-brand:hover,
  3493 +.navbar-brand:focus {
  3494 + text-decoration: none;
  3495 +}
  3496 +.navbar-brand > img {
  3497 + display: block;
  3498 +}
  3499 +@media (min-width: 768px) {
  3500 + .navbar > .container .navbar-brand,
  3501 + .navbar > .container-fluid .navbar-brand {
  3502 + margin-left: -15px;
  3503 + }
  3504 +}
  3505 +.navbar-toggle {
  3506 + position: relative;
  3507 + float: right;
  3508 + margin-right: 15px;
  3509 + padding: 9px 10px;
  3510 + margin-top: 8px;
  3511 + margin-bottom: 8px;
  3512 + background-color: transparent;
  3513 + background-image: none;
  3514 + border: 1px solid transparent;
  3515 + border-radius: 2px;
  3516 +}
  3517 +.navbar-toggle:focus {
  3518 + outline: 0;
  3519 +}
  3520 +.navbar-toggle .icon-bar {
  3521 + display: block;
  3522 + width: 22px;
  3523 + height: 2px;
  3524 + border-radius: 1px;
  3525 +}
  3526 +.navbar-toggle .icon-bar + .icon-bar {
  3527 + margin-top: 4px;
  3528 +}
  3529 +@media (min-width: 768px) {
  3530 + .navbar-toggle {
  3531 + display: none;
  3532 + }
  3533 +}
  3534 +.navbar-nav {
  3535 + margin: 7.5px -15px;
  3536 +}
  3537 +.navbar-nav > li > a {
  3538 + padding-top: 10px;
  3539 + padding-bottom: 10px;
  3540 + line-height: 20px;
  3541 +}
  3542 +@media (max-width: 767px) {
  3543 + .navbar-nav .open .dropdown-menu {
  3544 + position: static;
  3545 + float: none;
  3546 + width: auto;
  3547 + margin-top: 0;
  3548 + background-color: transparent;
  3549 + border: 0;
  3550 + -webkit-box-shadow: none;
  3551 + box-shadow: none;
  3552 + }
  3553 + .navbar-nav .open .dropdown-menu > li > a,
  3554 + .navbar-nav .open .dropdown-menu .dropdown-header {
  3555 + padding: 5px 15px 5px 25px;
  3556 + }
  3557 + .navbar-nav .open .dropdown-menu > li > a {
  3558 + line-height: 20px;
  3559 + }
  3560 + .navbar-nav .open .dropdown-menu > li > a:hover,
  3561 + .navbar-nav .open .dropdown-menu > li > a:focus {
  3562 + background-image: none;
  3563 + }
  3564 +}
  3565 +@media (min-width: 768px) {
  3566 + .navbar-nav {
  3567 + float: left;
  3568 + margin: 0;
  3569 + }
  3570 + .navbar-nav > li {
  3571 + float: left;
  3572 + }
  3573 + .navbar-nav > li > a {
  3574 + padding-top: 15px;
  3575 + padding-bottom: 15px;
  3576 + }
  3577 +}
  3578 +.navbar-form {
  3579 + margin-left: -15px;
  3580 + margin-right: -15px;
  3581 + padding: 10px 15px;
  3582 + border-top: 1px solid transparent;
  3583 + border-bottom: 1px solid transparent;
  3584 + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  3585 + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  3586 + margin-top: 8px;
  3587 + margin-bottom: 8px;
  3588 +}
  3589 +@media (min-width: 768px) {
  3590 + .navbar-form .form-group {
  3591 + display: inline-block;
  3592 + margin-bottom: 0;
  3593 + vertical-align: middle;
  3594 + }
  3595 + .navbar-form .form-control {
  3596 + display: inline-block;
  3597 + width: auto;
  3598 + vertical-align: middle;
  3599 + }
  3600 + .navbar-form .form-control-static {
  3601 + display: inline-block;
  3602 + }
  3603 + .navbar-form .input-group {
  3604 + display: inline-table;
  3605 + vertical-align: middle;
  3606 + }
  3607 + .navbar-form .input-group .input-group-addon,
  3608 + .navbar-form .input-group .input-group-btn,
  3609 + .navbar-form .input-group .form-control {
  3610 + width: auto;
  3611 + }
  3612 + .navbar-form .input-group > .form-control {
  3613 + width: 100%;
  3614 + }
  3615 + .navbar-form .control-label {
  3616 + margin-bottom: 0;
  3617 + vertical-align: middle;
  3618 + }
  3619 + .navbar-form .radio,
  3620 + .navbar-form .checkbox {
  3621 + display: inline-block;
  3622 + margin-top: 0;
  3623 + margin-bottom: 0;
  3624 + vertical-align: middle;
  3625 + }
  3626 + .navbar-form .radio label,
  3627 + .navbar-form .checkbox label {
  3628 + padding-left: 0;
  3629 + }
  3630 + .navbar-form .radio input[type="radio"],
  3631 + .navbar-form .checkbox input[type="checkbox"] {
  3632 + position: relative;
  3633 + margin-left: 0;
  3634 + }
  3635 + .navbar-form .has-feedback .form-control-feedback {
  3636 + top: 0;
  3637 + }
  3638 +}
  3639 +@media (max-width: 767px) {
  3640 + .navbar-form .form-group {
  3641 + margin-bottom: 5px;
  3642 + }
  3643 + .navbar-form .form-group:last-child {
  3644 + margin-bottom: 0;
  3645 + }
  3646 +}
  3647 +@media (min-width: 768px) {
  3648 + .navbar-form {
  3649 + width: auto;
  3650 + border: 0;
  3651 + margin-left: 0;
  3652 + margin-right: 0;
  3653 + padding-top: 0;
  3654 + padding-bottom: 0;
  3655 + -webkit-box-shadow: none;
  3656 + box-shadow: none;
  3657 + }
  3658 +}
  3659 +.navbar-nav > li > .dropdown-menu {
  3660 + margin-top: 0;
  3661 + border-top-right-radius: 0;
  3662 + border-top-left-radius: 0;
  3663 +}
  3664 +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  3665 + margin-bottom: 0;
  3666 + border-top-right-radius: 2px;
  3667 + border-top-left-radius: 2px;
  3668 + border-bottom-right-radius: 0;
  3669 + border-bottom-left-radius: 0;
  3670 +}
  3671 +.navbar-btn {
  3672 + margin-top: 8px;
  3673 + margin-bottom: 8px;
  3674 +}
  3675 +.navbar-btn.btn-sm {
  3676 + margin-top: 10px;
  3677 + margin-bottom: 10px;
  3678 +}
  3679 +.navbar-btn.btn-xs {
  3680 + margin-top: 14px;
  3681 + margin-bottom: 14px;
  3682 +}
  3683 +.navbar-text {
  3684 + margin-top: 15px;
  3685 + margin-bottom: 15px;
  3686 +}
  3687 +@media (min-width: 768px) {
  3688 + .navbar-text {
  3689 + float: left;
  3690 + margin-left: 15px;
  3691 + margin-right: 15px;
  3692 + }
  3693 +}
  3694 +@media (min-width: 768px) {
  3695 + .navbar-left {
  3696 + float: left !important;
  3697 + }
  3698 + .navbar-right {
  3699 + float: right !important;
  3700 + margin-right: -15px;
  3701 + }
  3702 + .navbar-right ~ .navbar-right {
  3703 + margin-right: 0;
  3704 + }
  3705 +}
  3706 +.navbar-default {
  3707 + background-color: #f8f8f8;
  3708 + border-color: #e7e7e7;
  3709 +}
  3710 +.navbar-default .navbar-brand {
  3711 + color: #777777;
  3712 +}
  3713 +.navbar-default .navbar-brand:hover,
  3714 +.navbar-default .navbar-brand:focus {
  3715 + color: #5e5e5e;
  3716 + background-color: transparent;
  3717 +}
  3718 +.navbar-default .navbar-text {
  3719 + color: #777777;
  3720 +}
  3721 +.navbar-default .navbar-nav > li > a {
  3722 + color: #777777;
  3723 +}
  3724 +.navbar-default .navbar-nav > li > a:hover,
  3725 +.navbar-default .navbar-nav > li > a:focus {
  3726 + color: #333333;
  3727 + background-color: transparent;
  3728 +}
  3729 +.navbar-default .navbar-nav > .active > a,
  3730 +.navbar-default .navbar-nav > .active > a:hover,
  3731 +.navbar-default .navbar-nav > .active > a:focus {
  3732 + color: #555555;
  3733 + background-color: #e7e7e7;
  3734 +}
  3735 +.navbar-default .navbar-nav > .disabled > a,
  3736 +.navbar-default .navbar-nav > .disabled > a:hover,
  3737 +.navbar-default .navbar-nav > .disabled > a:focus {
  3738 + color: #cccccc;
  3739 + background-color: transparent;
  3740 +}
  3741 +.navbar-default .navbar-toggle {
  3742 + border-color: #dddddd;
  3743 +}
  3744 +.navbar-default .navbar-toggle:hover,
  3745 +.navbar-default .navbar-toggle:focus {
  3746 + background-color: #dddddd;
  3747 +}
  3748 +.navbar-default .navbar-toggle .icon-bar {
  3749 + background-color: #888888;
  3750 +}
  3751 +.navbar-default .navbar-collapse,
  3752 +.navbar-default .navbar-form {
  3753 + border-color: #e7e7e7;
  3754 +}
  3755 +.navbar-default .navbar-nav > .open > a,
  3756 +.navbar-default .navbar-nav > .open > a:hover,
  3757 +.navbar-default .navbar-nav > .open > a:focus {
  3758 + background-color: #e7e7e7;
  3759 + color: #555555;
  3760 +}
  3761 +@media (max-width: 767px) {
  3762 + .navbar-default .navbar-nav .open .dropdown-menu > li > a {
  3763 + color: #777777;
  3764 + }
  3765 + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  3766 + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
  3767 + color: #333333;
  3768 + background-color: transparent;
  3769 + }
  3770 + .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  3771 + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  3772 + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
  3773 + color: #555555;
  3774 + background-color: #e7e7e7;
  3775 + }
  3776 + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  3777 + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  3778 + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  3779 + color: #cccccc;
  3780 + background-color: transparent;
  3781 + }
  3782 +}
  3783 +.navbar-default .navbar-link {
  3784 + color: #777777;
  3785 +}
  3786 +.navbar-default .navbar-link:hover {
  3787 + color: #333333;
  3788 +}
  3789 +.navbar-default .btn-link {
  3790 + color: #777777;
  3791 +}
  3792 +.navbar-default .btn-link:hover,
  3793 +.navbar-default .btn-link:focus {
  3794 + color: #333333;
  3795 +}
  3796 +.navbar-default .btn-link[disabled]:hover,
  3797 +fieldset[disabled] .navbar-default .btn-link:hover,
  3798 +.navbar-default .btn-link[disabled]:focus,
  3799 +fieldset[disabled] .navbar-default .btn-link:focus {
  3800 + color: #cccccc;
  3801 +}
  3802 +.navbar-inverse {
  3803 + background-color: #222222;
  3804 + border-color: #080808;
  3805 +}
  3806 +.navbar-inverse .navbar-brand {
  3807 + color: #adadad;
  3808 +}
  3809 +.navbar-inverse .navbar-brand:hover,
  3810 +.navbar-inverse .navbar-brand:focus {
  3811 + color: #ffffff;
  3812 + background-color: transparent;
  3813 +}
  3814 +.navbar-inverse .navbar-text {
  3815 + color: #adadad;
  3816 +}
  3817 +.navbar-inverse .navbar-nav > li > a {
  3818 + color: #adadad;
  3819 +}
  3820 +.navbar-inverse .navbar-nav > li > a:hover,
  3821 +.navbar-inverse .navbar-nav > li > a:focus {
  3822 + color: #ffffff;
  3823 + background-color: transparent;
  3824 +}
  3825 +.navbar-inverse .navbar-nav > .active > a,
  3826 +.navbar-inverse .navbar-nav > .active > a:hover,
  3827 +.navbar-inverse .navbar-nav > .active > a:focus {
  3828 + color: #ffffff;
  3829 + background-color: #080808;
  3830 +}
  3831 +.navbar-inverse .navbar-nav > .disabled > a,
  3832 +.navbar-inverse .navbar-nav > .disabled > a:hover,
  3833 +.navbar-inverse .navbar-nav > .disabled > a:focus {
  3834 + color: #444444;
  3835 + background-color: transparent;
  3836 +}
  3837 +.navbar-inverse .navbar-toggle {
  3838 + border-color: #333333;
  3839 +}
  3840 +.navbar-inverse .navbar-toggle:hover,
  3841 +.navbar-inverse .navbar-toggle:focus {
  3842 + background-color: #333333;
  3843 +}
  3844 +.navbar-inverse .navbar-toggle .icon-bar {
  3845 + background-color: #ffffff;
  3846 +}
  3847 +.navbar-inverse .navbar-collapse,
  3848 +.navbar-inverse .navbar-form {
  3849 + border-color: #101010;
  3850 +}
  3851 +.navbar-inverse .navbar-nav > .open > a,
  3852 +.navbar-inverse .navbar-nav > .open > a:hover,
  3853 +.navbar-inverse .navbar-nav > .open > a:focus {
  3854 + background-color: #080808;
  3855 + color: #ffffff;
  3856 +}
  3857 +@media (max-width: 767px) {
  3858 + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
  3859 + border-color: #080808;
  3860 + }
  3861 + .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
  3862 + background-color: #080808;
  3863 + }
  3864 + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
  3865 + color: #adadad;
  3866 + }
  3867 + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  3868 + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
  3869 + color: #ffffff;
  3870 + background-color: transparent;
  3871 + }
  3872 + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  3873 + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  3874 + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
  3875 + color: #ffffff;
  3876 + background-color: #080808;
  3877 + }
  3878 + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  3879 + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  3880 + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  3881 + color: #444444;
  3882 + background-color: transparent;
  3883 + }
  3884 +}
  3885 +.navbar-inverse .navbar-link {
  3886 + color: #adadad;
  3887 +}
  3888 +.navbar-inverse .navbar-link:hover {
  3889 + color: #ffffff;
  3890 +}
  3891 +.navbar-inverse .btn-link {
  3892 + color: #adadad;
  3893 +}
  3894 +.navbar-inverse .btn-link:hover,
  3895 +.navbar-inverse .btn-link:focus {
  3896 + color: #ffffff;
  3897 +}
  3898 +.navbar-inverse .btn-link[disabled]:hover,
  3899 +fieldset[disabled] .navbar-inverse .btn-link:hover,
  3900 +.navbar-inverse .btn-link[disabled]:focus,
  3901 +fieldset[disabled] .navbar-inverse .btn-link:focus {
  3902 + color: #444444;
  3903 +}
  3904 +.breadcrumb {
  3905 + padding: 8px 15px;
  3906 + margin-bottom: 20px;
  3907 + list-style: none;
  3908 + background-color: #f5f5f5;
  3909 + border-radius: 2px;
  3910 +}
  3911 +.breadcrumb > li {
  3912 + display: inline-block;
  3913 +}
  3914 +.breadcrumb > li + li:before {
  3915 + content: "/\00a0";
  3916 + padding: 0 5px;
  3917 + color: #cccccc;
  3918 +}
  3919 +.breadcrumb > .active {
  3920 + color: #878787;
  3921 +}
  3922 +.pagination {
  3923 + display: inline-block;
  3924 + padding-left: 0;
  3925 + margin: 20px 0;
  3926 + border-radius: 2px;
  3927 +}
  3928 +.pagination > li {
  3929 + display: inline;
  3930 +}
  3931 +.pagination > li > a,
  3932 +.pagination > li > span {
  3933 + position: relative;
  3934 + float: left;
  3935 + padding: 6px 12px;
  3936 + line-height: 1.42857143;
  3937 + text-decoration: none;
  3938 + color: #0095da;
  3939 + background-color: #ffffff;
  3940 + border: 1px solid #dddddd;
  3941 + margin-left: -1px;
  3942 +}
  3943 +.pagination > li:first-child > a,
  3944 +.pagination > li:first-child > span {
  3945 + margin-left: 0;
  3946 + border-bottom-left-radius: 2px;
  3947 + border-top-left-radius: 2px;
  3948 +}
  3949 +.pagination > li:last-child > a,
  3950 +.pagination > li:last-child > span {
  3951 + border-bottom-right-radius: 2px;
  3952 + border-top-right-radius: 2px;
  3953 +}
  3954 +.pagination > li > a:hover,
  3955 +.pagination > li > span:hover,
  3956 +.pagination > li > a:focus,
  3957 +.pagination > li > span:focus {
  3958 + z-index: 2;
  3959 + color: #007ab3;
  3960 + background-color: #fefefe;
  3961 + border-color: #dddddd;
  3962 +}
  3963 +.pagination > .active > a,
  3964 +.pagination > .active > span,
  3965 +.pagination > .active > a:hover,
  3966 +.pagination > .active > span:hover,
  3967 +.pagination > .active > a:focus,
  3968 +.pagination > .active > span:focus {
  3969 + z-index: 3;
  3970 + color: #ffffff;
  3971 + background-color: #0095da;
  3972 + border-color: #0095da;
  3973 + cursor: default;
  3974 +}
  3975 +.pagination > .disabled > span,
  3976 +.pagination > .disabled > span:hover,
  3977 +.pagination > .disabled > span:focus,
  3978 +.pagination > .disabled > a,
  3979 +.pagination > .disabled > a:hover,
  3980 +.pagination > .disabled > a:focus {
  3981 + color: #878787;
  3982 + background-color: #ffffff;
  3983 + border-color: #dddddd;
  3984 + cursor: not-allowed;
  3985 +}
  3986 +.pagination-lg > li > a,
  3987 +.pagination-lg > li > span {
  3988 + padding: 10px 16px;
  3989 + font-size: 18px;
  3990 + line-height: 1.3333333;
  3991 +}
  3992 +.pagination-lg > li:first-child > a,
  3993 +.pagination-lg > li:first-child > span {
  3994 + border-bottom-left-radius: 2px;
  3995 + border-top-left-radius: 2px;
  3996 +}
  3997 +.pagination-lg > li:last-child > a,
  3998 +.pagination-lg > li:last-child > span {
  3999 + border-bottom-right-radius: 2px;
  4000 + border-top-right-radius: 2px;
  4001 +}
  4002 +.pagination-sm > li > a,
  4003 +.pagination-sm > li > span {
  4004 + padding: 5px 10px;
  4005 + font-size: 12px;
  4006 + line-height: 1.5;
  4007 +}
  4008 +.pagination-sm > li:first-child > a,
  4009 +.pagination-sm > li:first-child > span {
  4010 + border-bottom-left-radius: 2px;
  4011 + border-top-left-radius: 2px;
  4012 +}
  4013 +.pagination-sm > li:last-child > a,
  4014 +.pagination-sm > li:last-child > span {
  4015 + border-bottom-right-radius: 2px;
  4016 + border-top-right-radius: 2px;
  4017 +}
  4018 +.pager {
  4019 + padding-left: 0;
  4020 + margin: 20px 0;
  4021 + list-style: none;
  4022 + text-align: center;
  4023 +}
  4024 +.pager li {
  4025 + display: inline;
  4026 +}
  4027 +.pager li > a,
  4028 +.pager li > span {
  4029 + display: inline-block;
  4030 + padding: 5px 14px;
  4031 + background-color: #ffffff;
  4032 + border: 1px solid #dddddd;
  4033 + border-radius: 15px;
  4034 +}
  4035 +.pager li > a:hover,
  4036 +.pager li > a:focus {
  4037 + text-decoration: none;
  4038 + background-color: #fefefe;
  4039 +}
  4040 +.pager .next > a,
  4041 +.pager .next > span {
  4042 + float: right;
  4043 +}
  4044 +.pager .previous > a,
  4045 +.pager .previous > span {
  4046 + float: left;
  4047 +}
  4048 +.pager .disabled > a,
  4049 +.pager .disabled > a:hover,
  4050 +.pager .disabled > a:focus,
  4051 +.pager .disabled > span {
  4052 + color: #878787;
  4053 + background-color: #ffffff;
  4054 + cursor: not-allowed;
  4055 +}
  4056 +.label {
  4057 + display: inline;
  4058 + padding: .2em .6em .3em;
  4059 + font-size: 75%;
  4060 + font-weight: bold;
  4061 + line-height: 1;
  4062 + color: #ffffff;
  4063 + text-align: center;
  4064 + white-space: nowrap;
  4065 + vertical-align: baseline;
  4066 + border-radius: .25em;
  4067 +}
  4068 +a.label:hover,
  4069 +a.label:focus {
  4070 + color: #ffffff;
  4071 + text-decoration: none;
  4072 + cursor: pointer;
  4073 +}
  4074 +.label:empty {
  4075 + display: none;
  4076 +}
  4077 +.btn .label {
  4078 + position: relative;
  4079 + top: -1px;
  4080 +}
  4081 +.label-default {
  4082 + background-color: #878787;
  4083 +}
  4084 +.label-default[href]:hover,
  4085 +.label-default[href]:focus {
  4086 + background-color: #6e6e6e;
  4087 +}
  4088 +.label-primary {
  4089 + background-color: #0095da;
  4090 +}
  4091 +.label-primary[href]:hover,
  4092 +.label-primary[href]:focus {
  4093 + background-color: #0072a7;
  4094 +}
  4095 +.label-success {
  4096 + background-color: #818f44;
  4097 +}
  4098 +.label-success[href]:hover,
  4099 +.label-success[href]:focus {
  4100 + background-color: #626c34;
  4101 +}
  4102 +.label-info {
  4103 + background-color: #5bc0de;
  4104 +}
  4105 +.label-info[href]:hover,
  4106 +.label-info[href]:focus {
  4107 + background-color: #31b0d5;
  4108 +}
  4109 +.label-warning {
  4110 + background-color: #f0ad4e;
  4111 +}
  4112 +.label-warning[href]:hover,
  4113 +.label-warning[href]:focus {
  4114 + background-color: #ec971f;
  4115 +}
  4116 +.label-danger {
  4117 + background-color: #d9534f;
  4118 +}
  4119 +.label-danger[href]:hover,
  4120 +.label-danger[href]:focus {
  4121 + background-color: #c9302c;
  4122 +}
  4123 +.badge {
  4124 + display: inline-block;
  4125 + min-width: 10px;
  4126 + padding: 3px 7px;
  4127 + font-size: 12px;
  4128 + font-weight: bold;
  4129 + color: #ffffff;
  4130 + line-height: 1;
  4131 + vertical-align: middle;
  4132 + white-space: nowrap;
  4133 + text-align: center;
  4134 + background-color: #878787;
  4135 + border-radius: 10px;
  4136 +}
  4137 +.badge:empty {
  4138 + display: none;
  4139 +}
  4140 +.btn .badge {
  4141 + position: relative;
  4142 + top: -1px;
  4143 +}
  4144 +.btn-xs .badge,
  4145 +.btn-group-xs > .btn .badge {
  4146 + top: 0;
  4147 + padding: 1px 5px;
  4148 +}
  4149 +a.badge:hover,
  4150 +a.badge:focus {
  4151 + color: #ffffff;
  4152 + text-decoration: none;
  4153 + cursor: pointer;
  4154 +}
  4155 +.list-group-item.active > .badge,
  4156 +.nav-pills > .active > a > .badge {
  4157 + color: #0095da;
  4158 + background-color: #ffffff;
  4159 +}
  4160 +.list-group-item > .badge {
  4161 + float: right;
  4162 +}
  4163 +.list-group-item > .badge + .badge {
  4164 + margin-right: 5px;
  4165 +}
  4166 +.nav-pills > li > a > .badge {
  4167 + margin-left: 3px;
  4168 +}
  4169 +.jumbotron {
  4170 + padding-top: 30px;
  4171 + padding-bottom: 30px;
  4172 + margin-bottom: 30px;
  4173 + color: inherit;
  4174 + background-color: #fefefe;
  4175 +}
  4176 +.jumbotron h1,
  4177 +.jumbotron .h1 {
  4178 + color: inherit;
  4179 +}
  4180 +.jumbotron p {
  4181 + margin-bottom: 15px;
  4182 + font-size: 21px;
  4183 + font-weight: 200;
  4184 +}
  4185 +.jumbotron > hr {
  4186 + border-top-color: #e5e5e5;
  4187 +}
  4188 +.container .jumbotron,
  4189 +.container-fluid .jumbotron {
  4190 + border-radius: 2px;
  4191 + padding-left: 15px;
  4192 + padding-right: 15px;
  4193 +}
  4194 +.jumbotron .container {
  4195 + max-width: 100%;
  4196 +}
  4197 +@media screen and (min-width: 768px) {
  4198 + .jumbotron {
  4199 + padding-top: 48px;
  4200 + padding-bottom: 48px;
  4201 + }
  4202 + .container .jumbotron,
  4203 + .container-fluid .jumbotron {
  4204 + padding-left: 60px;
  4205 + padding-right: 60px;
  4206 + }
  4207 + .jumbotron h1,
  4208 + .jumbotron .h1 {
  4209 + font-size: 63px;
  4210 + }
  4211 +}
  4212 +.thumbnail {
  4213 + display: block;
  4214 + padding: 4px;
  4215 + margin-bottom: 20px;
  4216 + line-height: 1.42857143;
  4217 + background-color: #ffffff;
  4218 + border: 1px solid #dddddd;
  4219 + border-radius: 2px;
  4220 + -webkit-transition: border 0.2s ease-in-out;
  4221 + -o-transition: border 0.2s ease-in-out;
  4222 + transition: border 0.2s ease-in-out;
  4223 +}
  4224 +.thumbnail > img,
  4225 +.thumbnail a > img {
  4226 + margin-left: auto;
  4227 + margin-right: auto;
  4228 +}
  4229 +a.thumbnail:hover,
  4230 +a.thumbnail:focus,
  4231 +a.thumbnail.active {
  4232 + border-color: #0095da;
  4233 +}
  4234 +.thumbnail .caption {
  4235 + padding: 9px;
  4236 + /* color: #303030;*/
  4237 +}
  4238 +.alert {
  4239 + padding: 15px;
  4240 + margin-bottom: 20px;
  4241 + border: 1px solid transparent;
  4242 + border-radius: 2px;
  4243 +}
  4244 +.alert h4 {
  4245 + margin-top: 0;
  4246 + color: inherit;
  4247 +}
  4248 +.alert .alert-link {
  4249 + font-weight: bold;
  4250 +}
  4251 +.alert > p,
  4252 +.alert > ul {
  4253 + margin-bottom: 0;
  4254 +}
  4255 +.alert > p + p {
  4256 + margin-top: 5px;
  4257 +}
  4258 +.alert-dismissable,
  4259 +.alert-dismissible {
  4260 + padding-right: 35px;
  4261 +}
  4262 +.alert-dismissable .close,
  4263 +.alert-dismissible .close {
  4264 + position: relative;
  4265 + top: -2px;
  4266 + right: -21px;
  4267 + color: inherit;
  4268 +}
  4269 +.alert-success {
  4270 + background-color: #dff0d8;
  4271 + border-color: #d6e9c6;
  4272 + color: #3c763d;
  4273 +}
  4274 +.alert-success hr {
  4275 + border-top-color: #c9e2b3;
  4276 +}
  4277 +.alert-success .alert-link {
  4278 + color: #2b542c;
  4279 +}
  4280 +.alert-info {
  4281 + background-color: #d9edf7;
  4282 + border-color: #bce8f1;
  4283 + color: #31708f;
  4284 +}
  4285 +.alert-info hr {
  4286 + border-top-color: #a6e1ec;
  4287 +}
  4288 +.alert-info .alert-link {
  4289 + color: #245269;
  4290 +}
  4291 +.alert-warning {
  4292 + background-color: #fcf8e3;
  4293 + border-color: #faebcc;
  4294 + color: #8a6d3b;
  4295 +}
  4296 +.alert-warning hr {
  4297 + border-top-color: #f7e1b5;
  4298 +}
  4299 +.alert-warning .alert-link {
  4300 + color: #66512c;
  4301 +}
  4302 +.alert-danger {
  4303 + background-color: #f2dede;
  4304 + border-color: #ebccd1;
  4305 + color: #a94442;
  4306 +}
  4307 +.alert-danger hr {
  4308 + border-top-color: #e4b9c0;
  4309 +}
  4310 +.alert-danger .alert-link {
  4311 + color: #843534;
  4312 +}
  4313 +@-webkit-keyframes progress-bar-stripes {
  4314 + from {
  4315 + background-position: 40px 0;
  4316 + }
  4317 + to {
  4318 + background-position: 0 0;
  4319 + }
  4320 +}
  4321 +@-o-keyframes progress-bar-stripes {
  4322 + from {
  4323 + background-position: 40px 0;
  4324 + }
  4325 + to {
  4326 + background-position: 0 0;
  4327 + }
  4328 +}
  4329 +@keyframes progress-bar-stripes {
  4330 + from {
  4331 + background-position: 40px 0;
  4332 + }
  4333 + to {
  4334 + background-position: 0 0;
  4335 + }
  4336 +}
  4337 +.progress {
  4338 + overflow: hidden;
  4339 + height: 20px;
  4340 + margin-bottom: 20px;
  4341 + background-color: #f5f5f5;
  4342 + border-radius: 2px;
  4343 + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  4344 + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  4345 +}
  4346 +.progress-bar {
  4347 + float: left;
  4348 + width: 0%;
  4349 + height: 100%;
  4350 + font-size: 12px;
  4351 + line-height: 20px;
  4352 + color: #ffffff;
  4353 + text-align: center;
  4354 + background-color: #0095da;
  4355 + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  4356 + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  4357 + -webkit-transition: width 0.6s ease;
  4358 + -o-transition: width 0.6s ease;
  4359 + transition: width 0.6s ease;
  4360 +}
  4361 +.progress-striped .progress-bar,
  4362 +.progress-bar-striped {
  4363 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4364 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4365 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4366 + -webkit-background-size: 40px 40px;
  4367 + background-size: 40px 40px;
  4368 +}
  4369 +.progress.active .progress-bar,
  4370 +.progress-bar.active {
  4371 + -webkit-animation: progress-bar-stripes 2s linear infinite;
  4372 + -o-animation: progress-bar-stripes 2s linear infinite;
  4373 + animation: progress-bar-stripes 2s linear infinite;
  4374 +}
  4375 +.progress-bar-success {
  4376 + background-color: #818f44;
  4377 +}
  4378 +.progress-striped .progress-bar-success {
  4379 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4380 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4381 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4382 +}
  4383 +.progress-bar-info {
  4384 + background-color: #5bc0de;
  4385 +}
  4386 +.progress-striped .progress-bar-info {
  4387 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4388 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4389 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4390 +}
  4391 +.progress-bar-warning {
  4392 + background-color: #f0ad4e;
  4393 +}
  4394 +.progress-striped .progress-bar-warning {
  4395 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4396 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4397 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4398 +}
  4399 +.progress-bar-danger {
  4400 + background-color: #d9534f;
  4401 +}
  4402 +.progress-striped .progress-bar-danger {
  4403 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4404 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4405 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4406 +}
  4407 +.media {
  4408 + margin-top: 15px;
  4409 +}
  4410 +.media:first-child {
  4411 + margin-top: 0;
  4412 +}
  4413 +.media,
  4414 +.media-body {
  4415 + zoom: 1;
  4416 + overflow: hidden;
  4417 +}
  4418 +.media-body {
  4419 + width: 10000px;
  4420 +}
  4421 +.media-object {
  4422 + display: block;
  4423 +}
  4424 +.media-object.img-thumbnail {
  4425 + max-width: none;
  4426 +}
  4427 +.media-right,
  4428 +.media > .pull-right {
  4429 + padding-left: 10px;
  4430 +}
  4431 +.media-left,
  4432 +.media > .pull-left {
  4433 + padding-right: 10px;
  4434 +}
  4435 +.media-left,
  4436 +.media-right,
  4437 +.media-body {
  4438 + display: table-cell;
  4439 + vertical-align: top;
  4440 +}
  4441 +.media-middle {
  4442 + vertical-align: middle;
  4443 +}
  4444 +.media-bottom {
  4445 + vertical-align: bottom;
  4446 +}
  4447 +.media-heading {
  4448 + margin-top: 0;
  4449 + margin-bottom: 5px;
  4450 +}
  4451 +.media-list {
  4452 + padding-left: 0;
  4453 + list-style: none;
  4454 +}
  4455 +.list-group {
  4456 + margin-bottom: 20px;
  4457 + padding-left: 0;
  4458 +}
  4459 +.list-group-item {
  4460 + position: relative;
  4461 + display: block;
  4462 + padding: 10px 15px;
  4463 + margin-bottom: -1px;
  4464 + background-color: #ffffff;
  4465 + border: 1px solid #dddddd;
  4466 +}
  4467 +.list-group-item:first-child {
  4468 + border-top-right-radius: 2px;
  4469 + border-top-left-radius: 2px;
  4470 +}
  4471 +.list-group-item:last-child {
  4472 + margin-bottom: 0;
  4473 + border-bottom-right-radius: 2px;
  4474 + border-bottom-left-radius: 2px;
  4475 +}
  4476 +a.list-group-item,
  4477 +button.list-group-item {
  4478 + color: #555555;
  4479 +}
  4480 +a.list-group-item .list-group-item-heading,
  4481 +button.list-group-item .list-group-item-heading {
  4482 + color: #333333;
  4483 +}
  4484 +a.list-group-item:hover,
  4485 +button.list-group-item:hover,
  4486 +a.list-group-item:focus,
  4487 +button.list-group-item:focus {
  4488 + text-decoration: none;
  4489 + color: #555555;
  4490 + background-color: #f5f5f5;
  4491 +}
  4492 +button.list-group-item {
  4493 + width: 100%;
  4494 + text-align: left;
  4495 +}
  4496 +.list-group-item.disabled,
  4497 +.list-group-item.disabled:hover,
  4498 +.list-group-item.disabled:focus {
  4499 + background-color: #fefefe;
  4500 + color: #878787;
  4501 + cursor: not-allowed;
  4502 +}
  4503 +.list-group-item.disabled .list-group-item-heading,
  4504 +.list-group-item.disabled:hover .list-group-item-heading,
  4505 +.list-group-item.disabled:focus .list-group-item-heading {
  4506 + color: inherit;
  4507 +}
  4508 +.list-group-item.disabled .list-group-item-text,
  4509 +.list-group-item.disabled:hover .list-group-item-text,
  4510 +.list-group-item.disabled:focus .list-group-item-text {
  4511 + color: #878787;
  4512 +}
  4513 +.list-group-item.active,
  4514 +.list-group-item.active:hover,
  4515 +.list-group-item.active:focus {
  4516 + z-index: 2;
  4517 + color: #ffffff;
  4518 + background-color: #0095da;
  4519 + border-color: #0095da;
  4520 +}
  4521 +.list-group-item.active .list-group-item-heading,
  4522 +.list-group-item.active:hover .list-group-item-heading,
  4523 +.list-group-item.active:focus .list-group-item-heading,
  4524 +.list-group-item.active .list-group-item-heading > small,
  4525 +.list-group-item.active:hover .list-group-item-heading > small,
  4526 +.list-group-item.active:focus .list-group-item-heading > small,
  4527 +.list-group-item.active .list-group-item-heading > .small,
  4528 +.list-group-item.active:hover .list-group-item-heading > .small,
  4529 +.list-group-item.active:focus .list-group-item-heading > .small {
  4530 + color: inherit;
  4531 +}
  4532 +.list-group-item.active .list-group-item-text,
  4533 +.list-group-item.active:hover .list-group-item-text,
  4534 +.list-group-item.active:focus .list-group-item-text {
  4535 + color: #a7e3ff;
  4536 +}
  4537 +.list-group-item-success {
  4538 + color: #3c763d;
  4539 + background-color: #dff0d8;
  4540 +}
  4541 +a.list-group-item-success,
  4542 +button.list-group-item-success {
  4543 + color: #3c763d;
  4544 +}
  4545 +a.list-group-item-success .list-group-item-heading,
  4546 +button.list-group-item-success .list-group-item-heading {
  4547 + color: inherit;
  4548 +}
  4549 +a.list-group-item-success:hover,
  4550 +button.list-group-item-success:hover,
  4551 +a.list-group-item-success:focus,
  4552 +button.list-group-item-success:focus {
  4553 + color: #3c763d;
  4554 + background-color: #d0e9c6;
  4555 +}
  4556 +a.list-group-item-success.active,
  4557 +button.list-group-item-success.active,
  4558 +a.list-group-item-success.active:hover,
  4559 +button.list-group-item-success.active:hover,
  4560 +a.list-group-item-success.active:focus,
  4561 +button.list-group-item-success.active:focus {
  4562 + color: #fff;
  4563 + background-color: #3c763d;
  4564 + border-color: #3c763d;
  4565 +}
  4566 +.list-group-item-info {
  4567 + color: #31708f;
  4568 + background-color: #d9edf7;
  4569 +}
  4570 +a.list-group-item-info,
  4571 +button.list-group-item-info {
  4572 + color: #31708f;
  4573 +}
  4574 +a.list-group-item-info .list-group-item-heading,
  4575 +button.list-group-item-info .list-group-item-heading {
  4576 + color: inherit;
  4577 +}
  4578 +a.list-group-item-info:hover,
  4579 +button.list-group-item-info:hover,
  4580 +a.list-group-item-info:focus,
  4581 +button.list-group-item-info:focus {
  4582 + color: #31708f;
  4583 + background-color: #c4e3f3;
  4584 +}
  4585 +a.list-group-item-info.active,
  4586 +button.list-group-item-info.active,
  4587 +a.list-group-item-info.active:hover,
  4588 +button.list-group-item-info.active:hover,
  4589 +a.list-group-item-info.active:focus,
  4590 +button.list-group-item-info.active:focus {
  4591 + color: #fff;
  4592 + background-color: #31708f;
  4593 + border-color: #31708f;
  4594 +}
  4595 +.list-group-item-warning {
  4596 + color: #8a6d3b;
  4597 + background-color: #fcf8e3;
  4598 +}
  4599 +a.list-group-item-warning,
  4600 +button.list-group-item-warning {
  4601 + color: #8a6d3b;
  4602 +}
  4603 +a.list-group-item-warning .list-group-item-heading,
  4604 +button.list-group-item-warning .list-group-item-heading {
  4605 + color: inherit;
  4606 +}
  4607 +a.list-group-item-warning:hover,
  4608 +button.list-group-item-warning:hover,
  4609 +a.list-group-item-warning:focus,
  4610 +button.list-group-item-warning:focus {
  4611 + color: #8a6d3b;
  4612 + background-color: #faf2cc;
  4613 +}
  4614 +a.list-group-item-warning.active,
  4615 +button.list-group-item-warning.active,
  4616 +a.list-group-item-warning.active:hover,
  4617 +button.list-group-item-warning.active:hover,
  4618 +a.list-group-item-warning.active:focus,
  4619 +button.list-group-item-warning.active:focus {
  4620 + color: #fff;
  4621 + background-color: #8a6d3b;
  4622 + border-color: #8a6d3b;
  4623 +}
  4624 +.list-group-item-danger {
  4625 + color: #a94442;
  4626 + background-color: #f2dede;
  4627 +}
  4628 +a.list-group-item-danger,
  4629 +button.list-group-item-danger {
  4630 + color: #a94442;
  4631 +}
  4632 +a.list-group-item-danger .list-group-item-heading,
  4633 +button.list-group-item-danger .list-group-item-heading {
  4634 + color: inherit;
  4635 +}
  4636 +a.list-group-item-danger:hover,
  4637 +button.list-group-item-danger:hover,
  4638 +a.list-group-item-danger:focus,
  4639 +button.list-group-item-danger:focus {
  4640 + color: #a94442;
  4641 + background-color: #ebcccc;
  4642 +}
  4643 +a.list-group-item-danger.active,
  4644 +button.list-group-item-danger.active,
  4645 +a.list-group-item-danger.active:hover,
  4646 +button.list-group-item-danger.active:hover,
  4647 +a.list-group-item-danger.active:focus,
  4648 +button.list-group-item-danger.active:focus {
  4649 + color: #fff;
  4650 + background-color: #a94442;
  4651 + border-color: #a94442;
  4652 +}
  4653 +.list-group-item-heading {
  4654 + margin-top: 0;
  4655 + margin-bottom: 5px;
  4656 +}
  4657 +.list-group-item-text {
  4658 + margin-bottom: 0;
  4659 + line-height: 1.3;
  4660 +}
  4661 +.panel {
  4662 + margin-bottom: 20px;
  4663 + background-color: #ffffff;
  4664 + border: 1px solid transparent;
  4665 + border-radius: 2px;
  4666 + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  4667 + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  4668 +}
  4669 +.panel-body {
  4670 + padding: 15px;
  4671 +}
  4672 +.panel-heading {
  4673 + padding: 10px 15px;
  4674 + border-bottom: 1px solid transparent;
  4675 + border-top-right-radius: 1px;
  4676 + border-top-left-radius: 1px;
  4677 +}
  4678 +.panel-heading > .dropdown .dropdown-toggle {
  4679 + color: inherit;
  4680 +}
  4681 +.panel-title {
  4682 + margin-top: 0;
  4683 + margin-bottom: 0;
  4684 + font-size: 16px;
  4685 + color: inherit;
  4686 +}
  4687 +.panel-title > a,
  4688 +.panel-title > small,
  4689 +.panel-title > .small,
  4690 +.panel-title > small > a,
  4691 +.panel-title > .small > a {
  4692 + color: inherit;
  4693 +}
  4694 +.panel-footer {
  4695 + padding: 10px 15px;
  4696 + background-color: #f5f5f5;
  4697 + border-top: 1px solid #dddddd;
  4698 + border-bottom-right-radius: 1px;
  4699 + border-bottom-left-radius: 1px;
  4700 +}
  4701 +.panel > .list-group,
  4702 +.panel > .panel-collapse > .list-group {
  4703 + margin-bottom: 0;
  4704 +}
  4705 +.panel > .list-group .list-group-item,
  4706 +.panel > .panel-collapse > .list-group .list-group-item {
  4707 + border-width: 1px 0;
  4708 + border-radius: 0;
  4709 +}
  4710 +.panel > .list-group:first-child .list-group-item:first-child,
  4711 +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  4712 + border-top: 0;
  4713 + border-top-right-radius: 1px;
  4714 + border-top-left-radius: 1px;
  4715 +}
  4716 +.panel > .list-group:last-child .list-group-item:last-child,
  4717 +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  4718 + border-bottom: 0;
  4719 + border-bottom-right-radius: 1px;
  4720 + border-bottom-left-radius: 1px;
  4721 +}
  4722 +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  4723 + border-top-right-radius: 0;
  4724 + border-top-left-radius: 0;
  4725 +}
  4726 +.panel-heading + .list-group .list-group-item:first-child {
  4727 + border-top-width: 0;
  4728 +}
  4729 +.list-group + .panel-footer {
  4730 + border-top-width: 0;
  4731 +}
  4732 +.panel > .table,
  4733 +.panel > .table-responsive > .table,
  4734 +.panel > .panel-collapse > .table {
  4735 + margin-bottom: 0;
  4736 +}
  4737 +.panel > .table caption,
  4738 +.panel > .table-responsive > .table caption,
  4739 +.panel > .panel-collapse > .table caption {
  4740 + padding-left: 15px;
  4741 + padding-right: 15px;
  4742 +}
  4743 +.panel > .table:first-child,
  4744 +.panel > .table-responsive:first-child > .table:first-child {
  4745 + border-top-right-radius: 1px;
  4746 + border-top-left-radius: 1px;
  4747 +}
  4748 +.panel > .table:first-child > thead:first-child > tr:first-child,
  4749 +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
  4750 +.panel > .table:first-child > tbody:first-child > tr:first-child,
  4751 +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  4752 + border-top-left-radius: 1px;
  4753 + border-top-right-radius: 1px;
  4754 +}
  4755 +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
  4756 +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
  4757 +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
  4758 +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
  4759 +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
  4760 +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
  4761 +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
  4762 +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  4763 + border-top-left-radius: 1px;
  4764 +}
  4765 +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
  4766 +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
  4767 +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
  4768 +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
  4769 +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
  4770 +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
  4771 +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
  4772 +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  4773 + border-top-right-radius: 1px;
  4774 +}
  4775 +.panel > .table:last-child,
  4776 +.panel > .table-responsive:last-child > .table:last-child {
  4777 + border-bottom-right-radius: 1px;
  4778 + border-bottom-left-radius: 1px;
  4779 +}
  4780 +.panel > .table:last-child > tbody:last-child > tr:last-child,
  4781 +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
  4782 +.panel > .table:last-child > tfoot:last-child > tr:last-child,
  4783 +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  4784 + border-bottom-left-radius: 1px;
  4785 + border-bottom-right-radius: 1px;
  4786 +}
  4787 +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
  4788 +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
  4789 +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
  4790 +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
  4791 +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
  4792 +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
  4793 +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
  4794 +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  4795 + border-bottom-left-radius: 1px;
  4796 +}
  4797 +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
  4798 +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
  4799 +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
  4800 +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
  4801 +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
  4802 +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
  4803 +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
  4804 +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  4805 + border-bottom-right-radius: 1px;
  4806 +}
  4807 +.panel > .panel-body + .table,
  4808 +.panel > .panel-body + .table-responsive,
  4809 +.panel > .table + .panel-body,
  4810 +.panel > .table-responsive + .panel-body {
  4811 + border-top: 1px solid #dddddd;
  4812 +}
  4813 +.panel > .table > tbody:first-child > tr:first-child th,
  4814 +.panel > .table > tbody:first-child > tr:first-child td {
  4815 + border-top: 0;
  4816 +}
  4817 +.panel > .table-bordered,
  4818 +.panel > .table-responsive > .table-bordered {
  4819 + border: 0;
  4820 +}
  4821 +.panel > .table-bordered > thead > tr > th:first-child,
  4822 +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
  4823 +.panel > .table-bordered > tbody > tr > th:first-child,
  4824 +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
  4825 +.panel > .table-bordered > tfoot > tr > th:first-child,
  4826 +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  4827 +.panel > .table-bordered > thead > tr > td:first-child,
  4828 +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
  4829 +.panel > .table-bordered > tbody > tr > td:first-child,
  4830 +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
  4831 +.panel > .table-bordered > tfoot > tr > td:first-child,
  4832 +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  4833 + border-left: 0;
  4834 +}
  4835 +.panel > .table-bordered > thead > tr > th:last-child,
  4836 +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
  4837 +.panel > .table-bordered > tbody > tr > th:last-child,
  4838 +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
  4839 +.panel > .table-bordered > tfoot > tr > th:last-child,
  4840 +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  4841 +.panel > .table-bordered > thead > tr > td:last-child,
  4842 +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
  4843 +.panel > .table-bordered > tbody > tr > td:last-child,
  4844 +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
  4845 +.panel > .table-bordered > tfoot > tr > td:last-child,
  4846 +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  4847 + border-right: 0;
  4848 +}
  4849 +.panel > .table-bordered > thead > tr:first-child > td,
  4850 +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
  4851 +.panel > .table-bordered > tbody > tr:first-child > td,
  4852 +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
  4853 +.panel > .table-bordered > thead > tr:first-child > th,
  4854 +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
  4855 +.panel > .table-bordered > tbody > tr:first-child > th,
  4856 +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  4857 + border-bottom: 0;
  4858 +}
  4859 +.panel > .table-bordered > tbody > tr:last-child > td,
  4860 +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
  4861 +.panel > .table-bordered > tfoot > tr:last-child > td,
  4862 +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
  4863 +.panel > .table-bordered > tbody > tr:last-child > th,
  4864 +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
  4865 +.panel > .table-bordered > tfoot > tr:last-child > th,
  4866 +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  4867 + border-bottom: 0;
  4868 +}
  4869 +.panel > .table-responsive {
  4870 + border: 0;
  4871 + margin-bottom: 0;
  4872 +}
  4873 +.panel-group {
  4874 + margin-bottom: 20px;
  4875 +}
  4876 +.panel-group .panel {
  4877 + margin-bottom: 0;
  4878 + border-radius: 2px;
  4879 +}
  4880 +.panel-group .panel + .panel {
  4881 + margin-top: 5px;
  4882 +}
  4883 +.panel-group .panel-heading {
  4884 + border-bottom: 0;
  4885 +}
  4886 +.panel-group .panel-heading + .panel-collapse > .panel-body,
  4887 +.panel-group .panel-heading + .panel-collapse > .list-group {
  4888 + border-top: 1px solid #dddddd;
  4889 +}
  4890 +.panel-group .panel-footer {
  4891 + border-top: 0;
  4892 +}
  4893 +.panel-group .panel-footer + .panel-collapse .panel-body {
  4894 + border-bottom: 1px solid #dddddd;
  4895 +}
  4896 +.panel-default {
  4897 + border-color: #dddddd;
  4898 +}
  4899 +.panel-default > .panel-heading {
  4900 + color: #303030;
  4901 + background-color: #f5f5f5;
  4902 + border-color: #dddddd;
  4903 +}
  4904 +.panel-default > .panel-heading + .panel-collapse > .panel-body {
  4905 + border-top-color: #dddddd;
  4906 +}
  4907 +.panel-default > .panel-heading .badge {
  4908 + color: #f5f5f5;
  4909 + background-color: #303030;
  4910 +}
  4911 +.panel-default > .panel-footer + .panel-collapse > .panel-body {
  4912 + border-bottom-color: #dddddd;
  4913 +}
  4914 +.panel-primary {
  4915 + border-color: #0095da;
  4916 +}
  4917 +.panel-primary > .panel-heading {
  4918 + color: #ffffff;
  4919 + background-color: #0095da;
  4920 + border-color: #0095da;
  4921 +}
  4922 +.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  4923 + border-top-color: #0095da;
  4924 +}
  4925 +.panel-primary > .panel-heading .badge {
  4926 + color: #0095da;
  4927 + background-color: #ffffff;
  4928 +}
  4929 +.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  4930 + border-bottom-color: #0095da;
  4931 +}
  4932 +.panel-success {
  4933 + border-color: #d6e9c6;
  4934 +}
  4935 +.panel-success > .panel-heading {
  4936 + color: #3c763d;
  4937 + background-color: #dff0d8;
  4938 + border-color: #d6e9c6;
  4939 +}
  4940 +.panel-success > .panel-heading + .panel-collapse > .panel-body {
  4941 + border-top-color: #d6e9c6;
  4942 +}
  4943 +.panel-success > .panel-heading .badge {
  4944 + color: #dff0d8;
  4945 + background-color: #3c763d;
  4946 +}
  4947 +.panel-success > .panel-footer + .panel-collapse > .panel-body {
  4948 + border-bottom-color: #d6e9c6;
  4949 +}
  4950 +.panel-info {
  4951 + border-color: #bce8f1;
  4952 +}
  4953 +.panel-info > .panel-heading {
  4954 + color: #31708f;
  4955 + background-color: #d9edf7;
  4956 + border-color: #bce8f1;
  4957 +}
  4958 +.panel-info > .panel-heading + .panel-collapse > .panel-body {
  4959 + border-top-color: #bce8f1;
  4960 +}
  4961 +.panel-info > .panel-heading .badge {
  4962 + color: #d9edf7;
  4963 + background-color: #31708f;
  4964 +}
  4965 +.panel-info > .panel-footer + .panel-collapse > .panel-body {
  4966 + border-bottom-color: #bce8f1;
  4967 +}
  4968 +.panel-warning {
  4969 + border-color: #faebcc;
  4970 +}
  4971 +.panel-warning > .panel-heading {
  4972 + color: #8a6d3b;
  4973 + background-color: #fcf8e3;
  4974 + border-color: #faebcc;
  4975 +}
  4976 +.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  4977 + border-top-color: #faebcc;
  4978 +}
  4979 +.panel-warning > .panel-heading .badge {
  4980 + color: #fcf8e3;
  4981 + background-color: #8a6d3b;
  4982 +}
  4983 +.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  4984 + border-bottom-color: #faebcc;
  4985 +}
  4986 +.panel-danger {
  4987 + border-color: #ebccd1;
  4988 +}
  4989 +.panel-danger > .panel-heading {
  4990 + color: #a94442;
  4991 + background-color: #f2dede;
  4992 + border-color: #ebccd1;
  4993 +}
  4994 +.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  4995 + border-top-color: #ebccd1;
  4996 +}
  4997 +.panel-danger > .panel-heading .badge {
  4998 + color: #f2dede;
  4999 + background-color: #a94442;
  5000 +}
  5001 +.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  5002 + border-bottom-color: #ebccd1;
  5003 +}
  5004 +.embed-responsive {
  5005 + position: relative;
  5006 + display: block;
  5007 + height: 0;
  5008 + padding: 0;
  5009 + overflow: hidden;
  5010 +}
  5011 +.embed-responsive .embed-responsive-item,
  5012 +.embed-responsive iframe,
  5013 +.embed-responsive embed,
  5014 +.embed-responsive object,
  5015 +.embed-responsive video {
  5016 + position: absolute;
  5017 + top: 0;
  5018 + left: 0;
  5019 + bottom: 0;
  5020 + height: 100%;
  5021 + width: 100%;
  5022 + border: 0;
  5023 +}
  5024 +.embed-responsive-16by9 {
  5025 + padding-bottom: 56.25%;
  5026 +}
  5027 +.embed-responsive-4by3 {
  5028 + padding-bottom: 75%;
  5029 +}
  5030 +.well {
  5031 + min-height: 20px;
  5032 + padding: 19px;
  5033 + margin-bottom: 20px;
  5034 + background-color: #f5f5f5;
  5035 + border: 1px solid #e3e3e3;
  5036 + border-radius: 2px;
  5037 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5038 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5039 +}
  5040 +.well blockquote {
  5041 + border-color: #ddd;
  5042 + border-color: rgba(0, 0, 0, 0.15);
  5043 +}
  5044 +.well-lg {
  5045 + padding: 24px;
  5046 + border-radius: 2px;
  5047 +}
  5048 +.well-sm {
  5049 + padding: 9px;
  5050 + border-radius: 2px;
  5051 +}
  5052 +.close {
  5053 + float: right;
  5054 + font-size: 21px;
  5055 + font-weight: bold;
  5056 + line-height: 1;
  5057 + color: #000000;
  5058 + text-shadow: 0 1px 0 #ffffff;
  5059 + opacity: 0.2;
  5060 + filter: alpha(opacity=20);
  5061 +}
  5062 +.close:hover,
  5063 +.close:focus {
  5064 + color: #000000;
  5065 + text-decoration: none;
  5066 + cursor: pointer;
  5067 + opacity: 0.5;
  5068 + filter: alpha(opacity=50);
  5069 +}
  5070 +button.close {
  5071 + padding: 0;
  5072 + cursor: pointer;
  5073 + background: transparent;
  5074 + border: 0;
  5075 + -webkit-appearance: none;
  5076 +}
  5077 +.modal-open {
  5078 + overflow: hidden;
  5079 +}
  5080 +.modal {
  5081 + display: none;
  5082 + overflow: hidden;
  5083 + position: fixed;
  5084 + top: 0;
  5085 + right: 0;
  5086 + bottom: 0;
  5087 + left: 0;
  5088 + z-index: 1050;
  5089 + -webkit-overflow-scrolling: touch;
  5090 + outline: 0;
  5091 +}
  5092 +.modal.fade .modal-dialog {
  5093 + -webkit-transform: translate(0, -25%);
  5094 + -ms-transform: translate(0, -25%);
  5095 + -o-transform: translate(0, -25%);
  5096 + transform: translate(0, -25%);
  5097 + -webkit-transition: -webkit-transform 0.3s ease-out;
  5098 + -o-transition: -o-transform 0.3s ease-out;
  5099 + transition: transform 0.3s ease-out;
  5100 +}
  5101 +.modal.in .modal-dialog {
  5102 + -webkit-transform: translate(0, 0);
  5103 + -ms-transform: translate(0, 0);
  5104 + -o-transform: translate(0, 0);
  5105 + transform: translate(0, 0);
  5106 +}
  5107 +.modal-open .modal {
  5108 + overflow-x: hidden;
  5109 + overflow-y: auto;
  5110 +}
  5111 +.modal-dialog {
  5112 + position: relative;
  5113 + width: auto;
  5114 + margin: 10px;
  5115 +}
  5116 +.modal-content {
  5117 + position: relative;
  5118 + background-color: #ffffff;
  5119 + border: 1px solid #999999;
  5120 + border: 1px solid rgba(0, 0, 0, 0.2);
  5121 + border-radius: 2px;
  5122 + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  5123 + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  5124 + -webkit-background-clip: padding-box;
  5125 + background-clip: padding-box;
  5126 + outline: 0;
  5127 +}
  5128 +.modal-backdrop {
  5129 + position: fixed;
  5130 + top: 0;
  5131 + right: 0;
  5132 + bottom: 0;
  5133 + left: 0;
  5134 + z-index: 1040;
  5135 + background-color: #000000;
  5136 +}
  5137 +.modal-backdrop.fade {
  5138 + opacity: 0;
  5139 + filter: alpha(opacity=0);
  5140 +}
  5141 +.modal-backdrop.in {
  5142 + opacity: 0.5;
  5143 + filter: alpha(opacity=50);
  5144 +}
  5145 +.modal-header {
  5146 + padding: 15px;
  5147 + border-bottom: 1px solid #e5e5e5;
  5148 +}
  5149 +.modal-header .close {
  5150 + margin-top: -2px;
  5151 +}
  5152 +.modal-title {
  5153 + margin: 0;
  5154 + line-height: 1.42857143;
  5155 +}
  5156 +.modal-body {
  5157 + position: relative;
  5158 + padding: 15px;
  5159 +}
  5160 +.modal-footer {
  5161 + padding: 15px;
  5162 + text-align: right;
  5163 + border-top: 1px solid #e5e5e5;
  5164 +}
  5165 +.modal-footer .btn + .btn {
  5166 + margin-left: 5px;
  5167 + margin-bottom: 0;
  5168 +}
  5169 +.modal-footer .btn-group .btn + .btn {
  5170 + margin-left: -1px;
  5171 +}
  5172 +.modal-footer .btn-block + .btn-block {
  5173 + margin-left: 0;
  5174 +}
  5175 +.modal-scrollbar-measure {
  5176 + position: absolute;
  5177 + top: -9999px;
  5178 + width: 50px;
  5179 + height: 50px;
  5180 + overflow: scroll;
  5181 +}
  5182 +@media (min-width: 768px) {
  5183 + .modal-dialog {
  5184 + width: 600px;
  5185 + margin: 30px auto;
  5186 + }
  5187 + .modal-content {
  5188 + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  5189 + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  5190 + }
  5191 + .modal-sm {
  5192 + width: 300px;
  5193 + }
  5194 +}
  5195 +@media (min-width: 992px) {
  5196 + .modal-lg {
  5197 + width: 900px;
  5198 + }
  5199 +}
  5200 +.tooltip {
  5201 + position: absolute;
  5202 + z-index: 1070;
  5203 + display: block;
  5204 + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  5205 + font-style: normal;
  5206 + font-weight: normal;
  5207 + letter-spacing: normal;
  5208 + line-break: auto;
  5209 + line-height: 1.42857143;
  5210 + text-align: left;
  5211 + text-align: start;
  5212 + text-decoration: none;
  5213 + text-shadow: none;
  5214 + text-transform: none;
  5215 + white-space: normal;
  5216 + word-break: normal;
  5217 + word-spacing: normal;
  5218 + word-wrap: normal;
  5219 + font-size: 12px;
  5220 + opacity: 0;
  5221 + filter: alpha(opacity=0);
  5222 +}
  5223 +.tooltip.in {
  5224 + opacity: 0.9;
  5225 + filter: alpha(opacity=90);
  5226 +}
  5227 +.tooltip.top {
  5228 + margin-top: -3px;
  5229 + padding: 5px 0;
  5230 +}
  5231 +.tooltip.right {
  5232 + margin-left: 3px;
  5233 + padding: 0 5px;
  5234 +}
  5235 +.tooltip.bottom {
  5236 + margin-top: 3px;
  5237 + padding: 5px 0;
  5238 +}
  5239 +.tooltip.left {
  5240 + margin-left: -3px;
  5241 + padding: 0 5px;
  5242 +}
  5243 +.tooltip-inner {
  5244 + max-width: 200px;
  5245 + padding: 3px 8px;
  5246 + color: #ffffff;
  5247 + text-align: center;
  5248 + background-color: #000000;
  5249 + border-radius: 2px;
  5250 +}
  5251 +.tooltip-arrow {
  5252 + position: absolute;
  5253 + width: 0;
  5254 + height: 0;
  5255 + border-color: transparent;
  5256 + border-style: solid;
  5257 +}
  5258 +.tooltip.top .tooltip-arrow {
  5259 + bottom: 0;
  5260 + left: 50%;
  5261 + margin-left: -5px;
  5262 + border-width: 5px 5px 0;
  5263 + border-top-color: #000000;
  5264 +}
  5265 +.tooltip.top-left .tooltip-arrow {
  5266 + bottom: 0;
  5267 + right: 5px;
  5268 + margin-bottom: -5px;
  5269 + border-width: 5px 5px 0;
  5270 + border-top-color: #000000;
  5271 +}
  5272 +.tooltip.top-right .tooltip-arrow {
  5273 + bottom: 0;
  5274 + left: 5px;
  5275 + margin-bottom: -5px;
  5276 + border-width: 5px 5px 0;
  5277 + border-top-color: #000000;
  5278 +}
  5279 +.tooltip.right .tooltip-arrow {
  5280 + top: 50%;
  5281 + left: 0;
  5282 + margin-top: -5px;
  5283 + border-width: 5px 5px 5px 0;
  5284 + border-right-color: #000000;
  5285 +}
  5286 +.tooltip.left .tooltip-arrow {
  5287 + top: 50%;
  5288 + right: 0;
  5289 + margin-top: -5px;
  5290 + border-width: 5px 0 5px 5px;
  5291 + border-left-color: #000000;
  5292 +}
  5293 +.tooltip.bottom .tooltip-arrow {
  5294 + top: 0;
  5295 + left: 50%;
  5296 + margin-left: -5px;
  5297 + border-width: 0 5px 5px;
  5298 + border-bottom-color: #000000;
  5299 +}
  5300 +.tooltip.bottom-left .tooltip-arrow {
  5301 + top: 0;
  5302 + right: 5px;
  5303 + margin-top: -5px;
  5304 + border-width: 0 5px 5px;
  5305 + border-bottom-color: #000000;
  5306 +}
  5307 +.tooltip.bottom-right .tooltip-arrow {
  5308 + top: 0;
  5309 + left: 5px;
  5310 + margin-top: -5px;
  5311 + border-width: 0 5px 5px;
  5312 + border-bottom-color: #000000;
  5313 +}
  5314 +.popover {
  5315 + position: absolute;
  5316 + top: 0;
  5317 + left: 0;
  5318 + z-index: 1060;
  5319 + display: none;
  5320 + max-width: 276px;
  5321 + padding: 1px;
  5322 + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  5323 + font-style: normal;
  5324 + font-weight: normal;
  5325 + letter-spacing: normal;
  5326 + line-break: auto;
  5327 + line-height: 1.42857143;
  5328 + text-align: left;
  5329 + text-align: start;
  5330 + text-decoration: none;
  5331 + text-shadow: none;
  5332 + text-transform: none;
  5333 + white-space: normal;
  5334 + word-break: normal;
  5335 + word-spacing: normal;
  5336 + word-wrap: normal;
  5337 + font-size: 14px;
  5338 + background-color: #ffffff;
  5339 + -webkit-background-clip: padding-box;
  5340 + background-clip: padding-box;
  5341 + border: 1px solid #cccccc;
  5342 + border: 1px solid rgba(0, 0, 0, 0.2);
  5343 + border-radius: 2px;
  5344 + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  5345 + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  5346 +}
  5347 +.popover.top {
  5348 + margin-top: -10px;
  5349 +}
  5350 +.popover.right {
  5351 + margin-left: 10px;
  5352 +}
  5353 +.popover.bottom {
  5354 + margin-top: 10px;
  5355 +}
  5356 +.popover.left {
  5357 + margin-left: -10px;
  5358 +}
  5359 +.popover-title {
  5360 + margin: 0;
  5361 + padding: 8px 14px;
  5362 + font-size: 14px;
  5363 + background-color: #f7f7f7;
  5364 + border-bottom: 1px solid #ebebeb;
  5365 + border-radius: 1px 1px 0 0;
  5366 +}
  5367 +.popover-content {
  5368 + padding: 9px 14px;
  5369 +}
  5370 +.popover > .arrow,
  5371 +.popover > .arrow:after {
  5372 + position: absolute;
  5373 + display: block;
  5374 + width: 0;
  5375 + height: 0;
  5376 + border-color: transparent;
  5377 + border-style: solid;
  5378 +}
  5379 +.popover > .arrow {
  5380 + border-width: 11px;
  5381 +}
  5382 +.popover > .arrow:after {
  5383 + border-width: 10px;
  5384 + content: "";
  5385 +}
  5386 +.popover.top > .arrow {
  5387 + left: 50%;
  5388 + margin-left: -11px;
  5389 + border-bottom-width: 0;
  5390 + border-top-color: #999999;
  5391 + border-top-color: rgba(0, 0, 0, 0.25);
  5392 + bottom: -11px;
  5393 +}
  5394 +.popover.top > .arrow:after {
  5395 + content: " ";
  5396 + bottom: 1px;
  5397 + margin-left: -10px;
  5398 + border-bottom-width: 0;
  5399 + border-top-color: #ffffff;
  5400 +}
  5401 +.popover.right > .arrow {
  5402 + top: 50%;
  5403 + left: -11px;
  5404 + margin-top: -11px;
  5405 + border-left-width: 0;
  5406 + border-right-color: #999999;
  5407 + border-right-color: rgba(0, 0, 0, 0.25);
  5408 +}
  5409 +.popover.right > .arrow:after {
  5410 + content: " ";
  5411 + left: 1px;
  5412 + bottom: -10px;
  5413 + border-left-width: 0;
  5414 + border-right-color: #ffffff;
  5415 +}
  5416 +.popover.bottom > .arrow {
  5417 + left: 50%;
  5418 + margin-left: -11px;
  5419 + border-top-width: 0;
  5420 + border-bottom-color: #999999;
  5421 + border-bottom-color: rgba(0, 0, 0, 0.25);
  5422 + top: -11px;
  5423 +}
  5424 +.popover.bottom > .arrow:after {
  5425 + content: " ";
  5426 + top: 1px;
  5427 + margin-left: -10px;
  5428 + border-top-width: 0;
  5429 + border-bottom-color: #ffffff;
  5430 +}
  5431 +.popover.left > .arrow {
  5432 + top: 50%;
  5433 + right: -11px;
  5434 + margin-top: -11px;
  5435 + border-right-width: 0;
  5436 + border-left-color: #999999;
  5437 + border-left-color: rgba(0, 0, 0, 0.25);
  5438 +}
  5439 +.popover.left > .arrow:after {
  5440 + content: " ";
  5441 + right: 1px;
  5442 + border-right-width: 0;
  5443 + border-left-color: #ffffff;
  5444 + bottom: -10px;
  5445 +}
  5446 +.carousel {
  5447 + position: relative;
  5448 +}
  5449 +.carousel-inner {
  5450 + position: relative;
  5451 + overflow: hidden;
  5452 + width: 100%;
  5453 +}
  5454 +.carousel-inner > .item {
  5455 + display: none;
  5456 + position: relative;
  5457 + -webkit-transition: 0.6s ease-in-out left;
  5458 + -o-transition: 0.6s ease-in-out left;
  5459 + transition: 0.6s ease-in-out left;
  5460 +}
  5461 +.carousel-inner > .item > img,
  5462 +.carousel-inner > .item > a > img {
  5463 + line-height: 1;
  5464 +}
  5465 +@media all and (transform-3d), (-webkit-transform-3d) {
  5466 + .carousel-inner > .item {
  5467 + -webkit-transition: -webkit-transform 0.6s ease-in-out;
  5468 + -o-transition: -o-transform 0.6s ease-in-out;
  5469 + transition: transform 0.6s ease-in-out;
  5470 + -webkit-backface-visibility: hidden;
  5471 + backface-visibility: hidden;
  5472 + -webkit-perspective: 1000px;
  5473 + perspective: 1000px;
  5474 + }
  5475 + .carousel-inner > .item.next,
  5476 + .carousel-inner > .item.active.right {
  5477 + -webkit-transform: translate3d(100%, 0, 0);
  5478 + transform: translate3d(100%, 0, 0);
  5479 + left: 0;
  5480 + }
  5481 + .carousel-inner > .item.prev,
  5482 + .carousel-inner > .item.active.left {
  5483 + -webkit-transform: translate3d(-100%, 0, 0);
  5484 + transform: translate3d(-100%, 0, 0);
  5485 + left: 0;
  5486 + }
  5487 + .carousel-inner > .item.next.left,
  5488 + .carousel-inner > .item.prev.right,
  5489 + .carousel-inner > .item.active {
  5490 + -webkit-transform: translate3d(0, 0, 0);
  5491 + transform: translate3d(0, 0, 0);
  5492 + left: 0;
  5493 + }
  5494 +}
  5495 +.carousel-inner > .active,
  5496 +.carousel-inner > .next,
  5497 +.carousel-inner > .prev {
  5498 + display: block;
  5499 +}
  5500 +.carousel-inner > .active {
  5501 + left: 0;
  5502 +}
  5503 +.carousel-inner > .next,
  5504 +.carousel-inner > .prev {
  5505 + position: absolute;
  5506 + top: 0;
  5507 + width: 100%;
  5508 +}
  5509 +.carousel-inner > .next {
  5510 + left: 100%;
  5511 +}
  5512 +.carousel-inner > .prev {
  5513 + left: -100%;
  5514 +}
  5515 +.carousel-inner > .next.left,
  5516 +.carousel-inner > .prev.right {
  5517 + left: 0;
  5518 +}
  5519 +.carousel-inner > .active.left {
  5520 + left: -100%;
  5521 +}
  5522 +.carousel-inner > .active.right {
  5523 + left: 100%;
  5524 +}
  5525 +.carousel-control {
  5526 + position: absolute;
  5527 + top: 0;
  5528 + left: 0;
  5529 + bottom: 0;
  5530 + width: 15%;
  5531 + opacity: 0.5;
  5532 + filter: alpha(opacity=50);
  5533 + font-size: 20px;
  5534 + color: #ffffff;
  5535 + text-align: center;
  5536 + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  5537 + background-color: rgba(0, 0, 0, 0);
  5538 +}
  5539 +.carousel-control.left {
  5540 + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  5541 + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  5542 + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
  5543 + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  5544 + background-repeat: repeat-x;
  5545 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
  5546 +}
  5547 +.carousel-control.right {
  5548 + left: auto;
  5549 + right: 0;
  5550 + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  5551 + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  5552 + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
  5553 + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  5554 + background-repeat: repeat-x;
  5555 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
  5556 +}
  5557 +.carousel-control:hover,
  5558 +.carousel-control:focus {
  5559 + outline: 0;
  5560 + color: #ffffff;
  5561 + text-decoration: none;
  5562 + opacity: 0.9;
  5563 + filter: alpha(opacity=90);
  5564 +}
  5565 +.carousel-control .icon-prev,
  5566 +.carousel-control .icon-next,
  5567 +.carousel-control .glyphicon-chevron-left,
  5568 +.carousel-control .glyphicon-chevron-right {
  5569 + position: absolute;
  5570 + top: 50%;
  5571 + margin-top: -10px;
  5572 + z-index: 5;
  5573 + display: inline-block;
  5574 +}
  5575 +.carousel-control .icon-prev,
  5576 +.carousel-control .glyphicon-chevron-left {
  5577 + left: 50%;
  5578 + margin-left: -10px;
  5579 +}
  5580 +.carousel-control .icon-next,
  5581 +.carousel-control .glyphicon-chevron-right {
  5582 + right: 50%;
  5583 + margin-right: -10px;
  5584 +}
  5585 +.carousel-control .icon-prev,
  5586 +.carousel-control .icon-next {
  5587 + width: 20px;
  5588 + height: 20px;
  5589 + line-height: 1;
  5590 + font-family: serif;
  5591 +}
  5592 +.carousel-control .icon-prev:before {
  5593 + content: '\2039';
  5594 +}
  5595 +.carousel-control .icon-next:before {
  5596 + content: '\203a';
  5597 +}
  5598 +.carousel-indicators {
  5599 + position: absolute;
  5600 + bottom: 10px;
  5601 + left: 50%;
  5602 + z-index: 15;
  5603 + width: 60%;
  5604 + margin-left: -30%;
  5605 + padding-left: 0;
  5606 + list-style: none;
  5607 + text-align: center;
  5608 +}
  5609 +.carousel-indicators li {
  5610 + display: inline-block;
  5611 + width: 10px;
  5612 + height: 10px;
  5613 + margin: 1px;
  5614 + text-indent: -999px;
  5615 + border: 1px solid #ffffff;
  5616 + border-radius: 10px;
  5617 + cursor: pointer;
  5618 + background-color: #000 \9;
  5619 + background-color: rgba(0, 0, 0, 0);
  5620 +}
  5621 +.carousel-indicators .active {
  5622 + margin: 0;
  5623 + width: 12px;
  5624 + height: 12px;
  5625 + background-color: #ffffff;
  5626 +}
  5627 +.carousel-caption {
  5628 + position: absolute;
  5629 + left: 15%;
  5630 + right: 15%;
  5631 + bottom: 20px;
  5632 + z-index: 10;
  5633 + padding-top: 20px;
  5634 + padding-bottom: 20px;
  5635 + color: #ffffff;
  5636 + text-align: center;
  5637 + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  5638 +}
  5639 +.carousel-caption .btn {
  5640 + text-shadow: none;
  5641 +}
  5642 +@media screen and (min-width: 768px) {
  5643 + .carousel-control .glyphicon-chevron-left,
  5644 + .carousel-control .glyphicon-chevron-right,
  5645 + .carousel-control .icon-prev,
  5646 + .carousel-control .icon-next {
  5647 + width: 30px;
  5648 + height: 30px;
  5649 + margin-top: -10px;
  5650 + font-size: 30px;
  5651 + }
  5652 + .carousel-control .glyphicon-chevron-left,
  5653 + .carousel-control .icon-prev {
  5654 + margin-left: -10px;
  5655 + }
  5656 + .carousel-control .glyphicon-chevron-right,
  5657 + .carousel-control .icon-next {
  5658 + margin-right: -10px;
  5659 + }
  5660 + .carousel-caption {
  5661 + left: 20%;
  5662 + right: 20%;
  5663 + padding-bottom: 30px;
  5664 + }
  5665 + .carousel-indicators {
  5666 + bottom: 20px;
  5667 + }
  5668 +}
  5669 +.clearfix:before,
  5670 +.clearfix:after,
  5671 +.dl-horizontal dd:before,
  5672 +.dl-horizontal dd:after,
  5673 +.container:before,
  5674 +.container:after,
  5675 +.container-fluid:before,
  5676 +.container-fluid:after,
  5677 +.row:before,
  5678 +.row:after,
  5679 +.form-horizontal .form-group:before,
  5680 +.form-horizontal .form-group:after,
  5681 +.btn-toolbar:before,
  5682 +.btn-toolbar:after,
  5683 +.btn-group-vertical > .btn-group:before,
  5684 +.btn-group-vertical > .btn-group:after,
  5685 +.nav:before,
  5686 +.nav:after,
  5687 +.navbar:before,
  5688 +.navbar:after,
  5689 +.navbar-header:before,
  5690 +.navbar-header:after,
  5691 +.navbar-collapse:before,
  5692 +.navbar-collapse:after,
  5693 +.pager:before,
  5694 +.pager:after,
  5695 +.panel-body:before,
  5696 +.panel-body:after,
  5697 +.modal-header:before,
  5698 +.modal-header:after,
  5699 +.modal-footer:before,
  5700 +.modal-footer:after {
  5701 + content: " ";
  5702 + display: table;
  5703 +}
  5704 +.clearfix:after,
  5705 +.dl-horizontal dd:after,
  5706 +.container:after,
  5707 +.container-fluid:after,
  5708 +.row:after,
  5709 +.form-horizontal .form-group:after,
  5710 +.btn-toolbar:after,
  5711 +.btn-group-vertical > .btn-group:after,
  5712 +.nav:after,
  5713 +.navbar:after,
  5714 +.navbar-header:after,
  5715 +.navbar-collapse:after,
  5716 +.pager:after,
  5717 +.panel-body:after,
  5718 +.modal-header:after,
  5719 +.modal-footer:after {
  5720 + clear: both;
  5721 +}
  5722 +.center-block {
  5723 + display: block;
  5724 + margin-left: auto;
  5725 + margin-right: auto;
  5726 +}
  5727 +.pull-right {
  5728 + float: right !important;
  5729 +}
  5730 +.pull-left {
  5731 + float: left !important;
  5732 +}
  5733 +.hide {
  5734 + display: none !important;
  5735 +}
  5736 +.show {
  5737 + display: block !important;
  5738 +}
  5739 +.invisible {
  5740 + visibility: hidden;
  5741 +}
  5742 +.text-hide {
  5743 + font: 0/0 a;
  5744 + color: transparent;
  5745 + text-shadow: none;
  5746 + background-color: transparent;
  5747 + border: 0;
  5748 +}
  5749 +.hidden {
  5750 + display: none !important;
  5751 +}
  5752 +.affix {
  5753 + position: fixed;
  5754 +}
  5755 +@-ms-viewport {
  5756 + width: device-width;
  5757 +}
  5758 +.visible-xs,
  5759 +.visible-sm,
  5760 +.visible-md,
  5761 +.visible-lg {
  5762 + display: none !important;
  5763 +}
  5764 +.visible-xs-block,
  5765 +.visible-xs-inline,
  5766 +.visible-xs-inline-block,
  5767 +.visible-sm-block,
  5768 +.visible-sm-inline,
  5769 +.visible-sm-inline-block,
  5770 +.visible-md-block,
  5771 +.visible-md-inline,
  5772 +.visible-md-inline-block,
  5773 +.visible-lg-block,
  5774 +.visible-lg-inline,
  5775 +.visible-lg-inline-block {
  5776 + display: none !important;
  5777 +}
  5778 +@media (max-width: 767px) {
  5779 + .visible-xs {
  5780 + display: block !important;
  5781 + }
  5782 + table.visible-xs {
  5783 + display: table !important;
  5784 + }
  5785 + tr.visible-xs {
  5786 + display: table-row !important;
  5787 + }
  5788 + th.visible-xs,
  5789 + td.visible-xs {
  5790 + display: table-cell !important;
  5791 + }
  5792 +}
  5793 +@media (max-width: 767px) {
  5794 + .visible-xs-block {
  5795 + display: block !important;
  5796 + }
  5797 +}
  5798 +@media (max-width: 767px) {
  5799 + .visible-xs-inline {
  5800 + display: inline !important;
  5801 + }
  5802 +}
  5803 +@media (max-width: 767px) {
  5804 + .visible-xs-inline-block {
  5805 + display: inline-block !important;
  5806 + }
  5807 +}
  5808 +@media (min-width: 768px) and (max-width: 991px) {
  5809 + .visible-sm {
  5810 + display: block !important;
  5811 + }
  5812 + table.visible-sm {
  5813 + display: table !important;
  5814 + }
  5815 + tr.visible-sm {
  5816 + display: table-row !important;
  5817 + }
  5818 + th.visible-sm,
  5819 + td.visible-sm {
  5820 + display: table-cell !important;
  5821 + }
  5822 +}
  5823 +@media (min-width: 768px) and (max-width: 991px) {
  5824 + .visible-sm-block {
  5825 + display: block !important;
  5826 + }
  5827 +}
  5828 +@media (min-width: 768px) and (max-width: 991px) {
  5829 + .visible-sm-inline {
  5830 + display: inline !important;
  5831 + }
  5832 +}
  5833 +@media (min-width: 768px) and (max-width: 991px) {
  5834 + .visible-sm-inline-block {
  5835 + display: inline-block !important;
  5836 + }
  5837 +}
  5838 +@media (min-width: 992px) and (max-width: 1199px) {
  5839 + .visible-md {
  5840 + display: block !important;
  5841 + }
  5842 + table.visible-md {
  5843 + display: table !important;
  5844 + }
  5845 + tr.visible-md {
  5846 + display: table-row !important;
  5847 + }
  5848 + th.visible-md,
  5849 + td.visible-md {
  5850 + display: table-cell !important;
  5851 + }
  5852 +}
  5853 +@media (min-width: 992px) and (max-width: 1199px) {
  5854 + .visible-md-block {
  5855 + display: block !important;
  5856 + }
  5857 +}
  5858 +@media (min-width: 992px) and (max-width: 1199px) {
  5859 + .visible-md-inline {
  5860 + display: inline !important;
  5861 + }
  5862 +}
  5863 +@media (min-width: 992px) and (max-width: 1199px) {
  5864 + .visible-md-inline-block {
  5865 + display: inline-block !important;
  5866 + }
  5867 +}
  5868 +@media (min-width: 1200px) {
  5869 + .visible-lg {
  5870 + display: block !important;
  5871 + }
  5872 + table.visible-lg {
  5873 + display: table !important;
  5874 + }
  5875 + tr.visible-lg {
  5876 + display: table-row !important;
  5877 + }
  5878 + th.visible-lg,
  5879 + td.visible-lg {
  5880 + display: table-cell !important;
  5881 + }
  5882 +}
  5883 +@media (min-width: 1200px) {
  5884 + .visible-lg-block {
  5885 + display: block !important;
  5886 + }
  5887 +}
  5888 +@media (min-width: 1200px) {
  5889 + .visible-lg-inline {
  5890 + display: inline !important;
  5891 + }
  5892 +}
  5893 +@media (min-width: 1200px) {
  5894 + .visible-lg-inline-block {
  5895 + display: inline-block !important;
  5896 + }
  5897 +}
  5898 +@media (max-width: 767px) {
  5899 + .hidden-xs {
  5900 + display: none !important;
  5901 + }
  5902 +}
  5903 +@media (min-width: 768px) and (max-width: 991px) {
  5904 + .hidden-sm {
  5905 + display: none !important;
  5906 + }
  5907 +}
  5908 +@media (min-width: 992px) and (max-width: 1199px) {
  5909 + .hidden-md {
  5910 + display: none !important;
  5911 + }
  5912 +}
  5913 +@media (min-width: 1200px) {
  5914 + .hidden-lg {
  5915 + display: none !important;
  5916 + }
  5917 +}
  5918 +.visible-print {
  5919 + display: none !important;
  5920 +}
  5921 +@media print {
  5922 + .visible-print {
  5923 + display: block !important;
  5924 + }
  5925 + table.visible-print {
  5926 + display: table !important;
  5927 + }
  5928 + tr.visible-print {
  5929 + display: table-row !important;
  5930 + }
  5931 + th.visible-print,
  5932 + td.visible-print {
  5933 + display: table-cell !important;
  5934 + }
  5935 +}
  5936 +.visible-print-block {
  5937 + display: none !important;
  5938 +}
  5939 +@media print {
  5940 + .visible-print-block {
  5941 + display: block !important;
  5942 + }
  5943 +}
  5944 +.visible-print-inline {
  5945 + display: none !important;
  5946 +}
  5947 +@media print {
  5948 + .visible-print-inline {
  5949 + display: inline !important;
  5950 + }
  5951 +}
  5952 +.visible-print-inline-block {
  5953 + display: none !important;
  5954 +}
  5955 +@media print {
  5956 + .visible-print-inline-block {
  5957 + display: inline-block !important;
  5958 + }
  5959 +}
  5960 +@media print {
  5961 + .hidden-print {
  5962 + display: none !important;
  5963 + }
  5964 +}
... ...
400-SOURCECODE/Admin/src/assets/styles/fixed_table_rc.css 0 → 100644
  1 +.ft_container {border: 1px solid #ddd;}
  2 +.ft_container table { border-width: 0px; border-collapse: collapse; margin: 0; outline-style: none; font-size: 0.9em; background-color: #fff; }
  3 +
  4 +.ft_container table tr th { font-weight: bold; background: #0095da; color: #fff; }
  5 +
  6 +.ft_container table thead { -moz-user-select: none;-webkit-user-select: none;}
  7 +.ft_container table tr th,
  8 +.ft_container table tr td { border-collapse: collapse; padding: 5px 4px; border: 1px solid #CCCCCC; border-top-width: 0px; border-left-width: 0px; border-right-width: 1px; border-bottom-width: 1px; overflow:hidden; word-wrap: break-word;}
  9 +
  10 +.ft_container table tr:first-child td,
  11 +.ft_container table tr:first-child th { border-top-width: 1px; border-color: #CCCCCC; }
  12 +.ft_container table tr td:first-child,
  13 +.ft_container table tr th:first-child { border-left-width: 1px; border-color: #CCCCCC; }
  14 +
  15 +.ft_container { overflow: hidden; padding: 0px; }
  16 +
  17 +.ft_rel_container { position: relative; overflow: hidden; border-width: 0px; width: 100%; height: 100%; }
  18 +
  19 +.ft_r, .ft_rc { background-image: none; }
  20 +.ft_rc { position: absolute; z-index: 1005; }
  21 +.ft_r, .ft_c { position: relative; }
  22 +
  23 +.ft_rwrapper, .ft_cwrapper { overflow: hidden; position: absolute; z-index: 1001; border-width: 0px; padding: 0px; margin: 0px; width:100% !important; }
  24 +/*.ft_rwrapper { width: 100%; padding-right: 17px; }*/
  25 +
  26 +.ft_scroller { overflow: auto; height: 100%; padding: 0px; margin: 0px;}
  27 +
  28 +.ft_container tbody tr.ui-widget-content, thead.ui-widget-header { background-image: none; }
  29 +
  30 +.ft_container table.sorttable thead tr th { cursor: pointer; }
  31 +.ft_container table thead tr th.fx_sort_bg{ background-image: url(images/bg.gif); background-position: right center; background-repeat: no-repeat; }
  32 +.ft_container table thead tr th.fx_sort_asc{ background-image: url(images/asc.gif); }
  33 +.ft_container table thead tr th.fx_sort_desc{ background-image: url(images/desc.gif); }
... ...
400-SOURCECODE/Admin/src/assets/styles/fonts/glyphicons-halflings-regular.eot 0 → 100644
400-SOURCECODE/Admin/src/assets/styles/fonts/glyphicons-halflings-regular.svg 0 → 100644
  1 +<?xml version="1.0" standalone="no"?>
  2 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
  3 +<svg xmlns="http://www.w3.org/2000/svg">
  4 +<metadata></metadata>
  5 +<defs>
  6 +<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
  7 +<font-face units-per-em="1200" ascent="960" descent="-240" />
  8 +<missing-glyph horiz-adv-x="500" />
  9 +<glyph />
  10 +<glyph />
  11 +<glyph unicode="&#xd;" />
  12 +<glyph unicode=" " />
  13 +<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
  14 +<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
  15 +<glyph unicode="&#xa0;" />
  16 +<glyph unicode="&#x2000;" horiz-adv-x="652" />
  17 +<glyph unicode="&#x2001;" horiz-adv-x="1304" />
  18 +<glyph unicode="&#x2002;" horiz-adv-x="652" />
  19 +<glyph unicode="&#x2003;" horiz-adv-x="1304" />
  20 +<glyph unicode="&#x2004;" horiz-adv-x="434" />
  21 +<glyph unicode="&#x2005;" horiz-adv-x="326" />
  22 +<glyph unicode="&#x2006;" horiz-adv-x="217" />
  23 +<glyph unicode="&#x2007;" horiz-adv-x="217" />
  24 +<glyph unicode="&#x2008;" horiz-adv-x="163" />
  25 +<glyph unicode="&#x2009;" horiz-adv-x="260" />
  26 +<glyph unicode="&#x200a;" horiz-adv-x="72" />
  27 +<glyph unicode="&#x202f;" horiz-adv-x="260" />
  28 +<glyph unicode="&#x205f;" horiz-adv-x="326" />
  29 +<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
  30 +<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
  31 +<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
  32 +<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
  33 +<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
  34 +<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
  35 +<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
  36 +<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
  37 +<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
  38 +<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
  39 +<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
  40 +<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
  41 +<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
  42 +<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
  43 +<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
  44 +<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
  45 +<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
  46 +<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
  47 +<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
  48 +<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
  49 +<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
  50 +<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
  51 +<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
  52 +<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
  53 +<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
  54 +<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
  55 +<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
  56 +<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
  57 +<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
  58 +<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
  59 +<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
  60 +<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
  61 +<glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
  62 +<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
  63 +<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
  64 +<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
  65 +<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
  66 +<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
  67 +<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
  68 +<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
  69 +<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
  70 +<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
  71 +<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
  72 +<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
  73 +<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
  74 +<glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
  75 +<glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
  76 +<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
  77 +<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
  78 +<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
  79 +<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
  80 +<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
  81 +<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
  82 +<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
  83 +<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
  84 +<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
  85 +<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
  86 +<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
  87 +<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
  88 +<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
  89 +<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
  90 +<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
  91 +<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
  92 +<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
  93 +<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
  94 +<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
  95 +<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
  96 +<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
  97 +<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
  98 +<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
  99 +<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
  100 +<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
  101 +<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
  102 +<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
  103 +<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
  104 +<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
  105 +<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
  106 +<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
  107 +<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
  108 +<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
  109 +<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
  110 +<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
  111 +<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
  112 +<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
  113 +<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
  114 +<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
  115 +<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
  116 +<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
  117 +<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
  118 +<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
  119 +<glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
  120 +<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
  121 +<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
  122 +<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
  123 +<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
  124 +<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
  125 +<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
  126 +<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
  127 +<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
  128 +<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
  129 +<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
  130 +<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
  131 +<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
  132 +<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
  133 +<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
  134 +<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
  135 +<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
  136 +<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
  137 +<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
  138 +<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
  139 +<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
  140 +<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
  141 +<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
  142 +<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
  143 +<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
  144 +<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
  145 +<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
  146 +<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
  147 +<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
  148 +<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
  149 +<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
  150 +<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
  151 +<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
  152 +<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
  153 +<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
  154 +<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
  155 +<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
  156 +<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
  157 +<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
  158 +<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
  159 +<glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
  160 +<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
  161 +<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
  162 +<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
  163 +<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
  164 +<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
  165 +<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
  166 +<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
  167 +<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
  168 +<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
  169 +<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
  170 +<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
  171 +<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
  172 +<glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
  173 +<glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
  174 +<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
  175 +<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
  176 +<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
  177 +<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
  178 +<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
  179 +<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
  180 +<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
  181 +<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
  182 +<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
  183 +<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
  184 +<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
  185 +<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
  186 +<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
  187 +<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
  188 +<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
  189 +<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
  190 +<glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
  191 +<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
  192 +<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
  193 +<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
  194 +<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
  195 +<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
  196 +<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
  197 +<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
  198 +<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
  199 +<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
  200 +<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
  201 +<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
  202 +<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
  203 +<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
  204 +<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
  205 +<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
  206 +<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
  207 +<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
  208 +<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
  209 +<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
  210 +<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
  211 +<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
  212 +<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
  213 +<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
  214 +<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
  215 +<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
  216 +<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
  217 +<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
  218 +<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
  219 +<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
  220 +<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
  221 +<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
  222 +<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
  223 +<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
  224 +<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
  225 +<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
  226 +<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
  227 +<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
  228 +</font>
  229 +</defs></svg>
0 230 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/assets/styles/fonts/glyphicons-halflings-regular.ttf 0 → 100644
400-SOURCECODE/Admin/src/assets/styles/fonts/glyphicons-halflings-regular.woff 0 → 100644
400-SOURCECODE/Admin/src/assets/styles/fonts/glyphicons-halflings-regular.woff2 0 → 100644
No preview for this file type
400-SOURCECODE/Admin/src/assets/styles/images/asc.gif 0 → 100644

54 Bytes

400-SOURCECODE/Admin/src/assets/styles/images/bg.gif 0 → 100644

64 Bytes

400-SOURCECODE/Admin/src/assets/styles/images/desc.gif 0 → 100644

54 Bytes

400-SOURCECODE/Admin/src/assets/styles/main.css 0 → 100644
  1 +/***
  2 +MAIN.CSS for AIA
  3 +TO BE USED WITH CUSTOM BOOTSTRAP THEME ALREADY INCLUDED
  4 +**/
  5 +
  6 +/*** Global ***/
  7 +* {
  8 + outline: 0 !important;
  9 +}
  10 +body {
  11 + background: #383838;
  12 +}
  13 +.btn {
  14 + -webkit-transition: all .3s ease;
  15 + -ms-transition: all .3s ease;
  16 + transition: all .3s ease;
  17 +}
  18 +.btnCustom {
  19 + border: 0 !important;
  20 + padding-left: 50px;
  21 + padding-right: 50px;
  22 + min-height: 40px;
  23 +}
  24 +.btnCustom.btn-large {
  25 + width: 220px;
  26 + height: 50px;
  27 + padding-left: 0;
  28 + padding-right: 0;
  29 +}
  30 +footer {
  31 + color: #303030;
  32 + font: 12px/30px 'Open Sans';
  33 + margin-top: -30px;
  34 +}
  35 +footer.dark {
  36 + color: #ccc;
  37 + background: #303030;
  38 +}
  39 +.frameLogo {
  40 + display: block;
  41 +}
  42 +.navbar-brand {
  43 + height: 60px;
  44 + padding: 10px 15px;
  45 +}
  46 +.no-scroll {
  47 + overflow: hidden;
  48 +}
  49 +/*** Login Page ***/
  50 +.loginBg {
  51 + min-height: 100vh;
  52 + background: #303030;
  53 +}
  54 +.loginPanel {
  55 + margin: 0 0 100px;
  56 +}
  57 +.loginLogo {
  58 + margin: 20px auto;
  59 + display: block;
  60 + max-width: 360px;
  61 +}
  62 +.headerBand {
  63 + background: #818f44;
  64 + padding-bottom: 10px;
  65 + color: #fff;
  66 +}
  67 +.headerBand h1 {
  68 + font: 700 36px/1 'Open Sans';
  69 +}
  70 +.headerBand p {
  71 + font: 400 16px 'Open Sans';
  72 + letter-spacing: 0px;
  73 + word-spacing: 1px;
  74 +}
  75 +.loginBox {
  76 + max-width: 350px;
  77 + background: #666666;
  78 + margin: 30px auto 0;
  79 + border-radius: 2px;
  80 + -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, .5);
  81 + -ms-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, .5);
  82 + box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, .5);
  83 + padding: 15px 0;
  84 +}
  85 +.loginBox strong {
  86 + color: #0095da;
  87 + font: 600 18px/1 'Open Sans';
  88 + padding-bottom: 10px;
  89 + display: block;
  90 +}
  91 +.loginExBtn {
  92 + max-width: 350px;
  93 + margin: 15px auto 0;
  94 +}
  95 +.loginExBtn a {
  96 + width: 48%;
  97 +}
  98 +/*** Mainframe ***/
  99 +.sidebar {
  100 + height: 100vh;
  101 + background: #222;
  102 + width: 200px;
  103 + padding-top: 90px;
  104 + overflow: auto;
  105 + position: fixed;
  106 + left: 0;
  107 + top: 0;
  108 + z-index: 1029;
  109 +}
  110 +.navbar {
  111 + border-bottom: none!important;
  112 +}
  113 +.main {
  114 + background: #383838;
  115 + margin-left: 200px;
  116 + padding-top: 51px;
  117 +}
  118 +.treeview-left {
  119 + height: 100vh;
  120 + background: #222;
  121 + width: 200px;
  122 + padding-top: 90px;
  123 + overflow: auto;
  124 + position: fixed;
  125 + left: 0;
  126 + top: 0;
  127 + z-index: 1029;
  128 +}
  129 +.main-treeview {
  130 + background: #383838;
  131 + margin-left: 200px;
  132 + padding-top: 51px;
  133 +}
  134 +.nav-sidebar a {
  135 + color: #fff; /*border-bottom:1px solid #ccc!important;*/
  136 +}
  137 +.nav-sidebar li a {
  138 + color: #fff;
  139 +}
  140 +.nav-sidebar a:hover, .nav-sidebar a:focus {
  141 + color: #fff;
  142 + background: #1B92D0!important;
  143 +}
  144 +.nav-sidebar a.active {
  145 + color: #fff;
  146 + background: #1B92D0!important;
  147 +}
  148 +.toggleBar {
  149 + margin: 0px 10px 0 0;
  150 +}
  151 +.space-left20 {
  152 + padding-left: 20px;
  153 +}
  154 +.padd-lftright25 {
  155 + padding: 0 25px;
  156 +}
  157 +.tab-content {
  158 + padding: 10px 0;
  159 +}
  160 +.space-top50 {
  161 + margin-top: 50px;
  162 +}
  163 +/*.tools {
  164 + background: #eeeeee none repeat scroll 0 0;
  165 + border: 1px solid #c1c1c1;
  166 + border-top:none;
  167 + /*padding: 10px;
  168 + width:106px;
  169 + position:absolute;
  170 + left: 0;
  171 + top: 120px;
  172 + padding-top:10px;
  173 + z-index:1024;
  174 +
  175 +}*/
  176 +.tools i {
  177 + font-size: 1.4em;
  178 +}
  179 +.marginTop10 {
  180 + margin-top: 10px;
  181 +}
  182 +.marginTop2 {
  183 + margin-top: 2px;
  184 +}
  185 +.marginL2 {
  186 + margin-left: 2px!important;
  187 +}
  188 +.marginR5 {
  189 + margin-right: 5px!important;
  190 +}
  191 +.paddTop4 {
  192 + padding-top: 4px;
  193 +}
  194 +.vert_slider {
  195 + clear: both;
  196 + margin: 20px auto 30px;
  197 + width: 1rem;
  198 +}
  199 +#inner-anatomyPage .nav > li > a:hover {
  200 + background: #1c92d0;
  201 + color: #fff;
  202 + border-radius: 3px 3px 0 0;
  203 + border: 1px solid #1c92d0;
  204 + border-bottom: none;
  205 +}
  206 +.page-head {
  207 + background: #f3f3f3 none repeat scroll 0 0;
  208 + border-bottom: 1px solid #ffffff;
  209 + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.19);
  210 + padding: 8px 20px;
  211 + margin-bottom: 20px;
  212 +}
  213 +.no-margin {
  214 + margin: 0!important
  215 +}
  216 +.no-padding {
  217 + padding: 0!important
  218 +}
  219 +.marginTopBtm10 {
  220 + margin: 10px 0!important
  221 +}
  222 +.paddingTopBtm10 {
  223 + padding: 10px 0
  224 +}
  225 +.page-header {
  226 + border-bottom: 0!important
  227 +}
  228 +.marginTop5 {
  229 + margin-top: 5px;
  230 +}
  231 +.paddingbtm5 {
  232 + padding-bottom: 5px;
  233 +}
  234 +.border-Btm1 {
  235 + border-bottom: 1px solid #D8D8D8;
  236 +}
  237 +.pageHeading {
  238 + background: #818d43 none repeat scroll 0 0;
  239 + padding: 0px 15px;
  240 + margin-top: 60px;
  241 + z-index: 1030;
  242 + position: fixed;
  243 + width: 100%;
  244 +}
  245 +.pageHeading h4 {
  246 + font-size: 15px;
  247 + margin: 0!important;
  248 + color: #fff;
  249 + line-height: 30px;
  250 + font-weight: 600;
  251 + text-transform: uppercase
  252 +}
  253 +.color-white {
  254 + color: #fff!important;
  255 +}
  256 +.color-green {
  257 + color: #818f44!important;
  258 +}
  259 +.btn-black {
  260 + background-color: #4b4b4b;
  261 + border-color: #3f3f3f;
  262 + color: #ffffff;
  263 +}
  264 +.btn-black:hover, .btn-black:focus {
  265 + background-color: #1B92D0;
  266 + border-color: #1B92D0;
  267 + color: #ffffff;
  268 +}
  269 +.font16 {
  270 + font-size: 1.59em!important;
  271 +}
  272 +.modal-body {
  273 + padding: 0 10px;
  274 +}
  275 +.well-popup {
  276 + margin-bottom: 10px;
  277 + padding: 5px;
  278 +}
  279 +.annotation-modal-header {
  280 + padding: 5px 10px;
  281 +}
  282 +.form-group {
  283 + margin-bottom: 7px;
  284 +}
  285 +/********Stylish Search**************/
  286 +
  287 +#imaginary_container {
  288 + margin: 8px 0!important;
  289 +}
  290 +.stylish-input-group .input-group-addon {
  291 + background: white !important;
  292 +}
  293 +.stylish-input-group .form-control {
  294 + border-right: 0;
  295 + box-shadow: 0 0 0;
  296 + border-color: #ccc;
  297 + width: 30%;
  298 + float: right;
  299 +}
  300 +.stylish-input-group button {
  301 + border: 0;
  302 + background: transparent;
  303 +}
  304 +#vertical-slider {
  305 + height: 150px;
  306 + margin-left: 30px;
  307 +}
  308 +.navbar-nav > li > a {
  309 + line-height: 30px;
  310 +}
  311 +.paddTop5 {
  312 + padding-top: 5px;
  313 +}
  314 +.mrgnBtm5 {
  315 + margin-bottom: 3px;
  316 +}
  317 +.thumbnail a {
  318 + color: #303030!important;
  319 + text-decoration: none;
  320 +}
  321 +.thumbnail a:hover {
  322 + color: #FFFFFF!important;
  323 + text-decoration: none!important;
  324 +}
  325 +.thumbnail:hover {
  326 + background: #8C8C8C!important;
  327 + border: 1px solid #a2a2a2;
  328 +}
  329 +#inner-anatomyPage .nav-tabs {
  330 + border-bottom: 1px solid #494949;
  331 +}
  332 +#inner-anatomyPage .nav-tabs li a {
  333 + color: #fff;
  334 +}
  335 +#inner-anatomyPage .nav-tabs li.active {
  336 + color: #000;
  337 +}
  338 +#inner-anatomyPage .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
  339 + background: #1c92d0;
  340 + border: 1px solid #1c92d0;
  341 + color:#fff;
  342 +}
  343 +.main {
  344 + margin-left: 200px;
  345 + position: relative;
  346 + transition: margin .3s ease;
  347 + margin-top: 50px;
  348 +}
  349 +.main.active {
  350 + margin-left: 0;
  351 +}
  352 +.sidebar {
  353 + left: 0px;
  354 + transition: left .3s ease;
  355 +}
  356 +.sidebar.active {
  357 + left: -200px;
  358 +}
  359 +.main-treeview {
  360 + margin-left: 190px;
  361 + position: relative;
  362 + transition: margin .3s ease;
  363 + margin-top: 50px;
  364 +}
  365 +.main-treeview.active {
  366 + margin-left: 0;
  367 +}
  368 +.treeview-left {
  369 + left: 0px;
  370 + transition: left .3s ease;
  371 +}
  372 +.treeview-left.active {
  373 + left: -190px;
  374 +}
  375 +/*.main2{margin-left:106;position: relative;transition:margin .3s ease;margin-top:60px;}
  376 +.main2.active{margin-left:0;}
  377 +.tools{left: 0px;transition:left .3s ease;}
  378 +.tools.active{left: -106px;}*/
  379 +.main2 {
  380 + background: #383838;
  381 + margin-left: 110px;
  382 + padding-top: 51px;
  383 +}
  384 +.main2 {
  385 + margin-left: 128px;
  386 + position: relative;
  387 + transition: margin .3s ease;
  388 + margin-top: 50px;
  389 +}
  390 +.main2.active {
  391 + margin-left: 0;
  392 +}
  393 +.tools {
  394 + height: 100vh;
  395 + background: #222;
  396 + width: 128px;
  397 + padding-top: 110px;
  398 + /*overflow: hidden;*/
  399 + position: fixed;
  400 + left: 0;
  401 + top: 0;
  402 + z-index: 1029;
  403 + transition: left .3s ease;
  404 +}
  405 +
  406 +.tools.active {
  407 + left: -118px;
  408 +}
  409 +.navbar-fixed-top, .navbar-fixed-bottom {
  410 + z-index: 1035;
  411 +}
  412 +.main .breadcrumb {
  413 + background: #3d3d3d;
  414 + border: 1px solid #494949;
  415 + margin-bottom: 10px;
  416 + padding: 0 15px; /*background-color:rgba(61,61,61,0.95);*/
  417 +}
  418 +.main-treeview .breadcrumb {
  419 + background: #3d3d3d;
  420 + border: 1px solid #494949;
  421 + margin-bottom: 10px;
  422 + padding: 10px 15px; /*background-color:rgba(61,61,61,0.95);*/
  423 +}
  424 +.main2 .breadcrumb {
  425 + background: #3d3d3d;
  426 + border: 1px solid #494949;
  427 + margin-bottom: 10px;
  428 + padding: 5px; /*background-color:rgba(61,61,61,0.95);*/
  429 +}
  430 +.main-full {
  431 + margin-top: 100px;
  432 +}
  433 +.main-full .breadcrumb {
  434 + background: #3d3d3d;
  435 + border: 1px solid #494949;
  436 + margin-bottom: 10px;
  437 + padding: 5px; /*background-color:rgba(61,61,61,0.95);*/
  438 +}
  439 +.toggleHeadingButton {
  440 + font-size: 20px;
  441 + color: #fff;
  442 + cursor: pointer;
  443 +}
  444 +.indicators {
  445 + /*position: absolute;
  446 + bottom: 0;
  447 + left: 0;*/
  448 + background: #000000;
  449 + padding: 5px;
  450 + z-index: 9999;
  451 + /*width: 200px;*/
  452 +}
  453 +.well-white {
  454 + background: #fff;
  455 + height: 100vh;
  456 + padding: 10px;
  457 +}
  458 +.leftPanel-data {
  459 + padding: 10px 10px 0 10px;
  460 +}
  461 +.dragger {
  462 + position: relative;
  463 +}
  464 +.dragger #block-1 {
  465 + position: absolute;
  466 + top: 170px;
  467 + left: 170px;
  468 + width: 200px;
  469 + height: 50px;
  470 + border: 1px solid #333;
  471 + background: #E8E8E8;
  472 +}
  473 +.dragger .drag-img1 {
  474 + position: absolute;
  475 + bottom: 0px;
  476 + left: 0;
  477 +}
  478 +.bootstrap-dialog .modal-header.bootstrap-dialog-draggable {
  479 + cursor: move;
  480 +}
  481 +.thumbnail .caption p {
  482 + overflow: hidden;
  483 + text-overflow: ellipsis;
  484 + white-space: nowrap;
  485 + /* width: 150px !important;*/
  486 + text-align: center;
  487 +}
  488 +.pos-relative {
  489 + position: relative;
  490 + float: left;
  491 +}
  492 +.toggle-icon {
  493 + position: absolute;
  494 + top: 110px;
  495 + left: 118px;
  496 + z-index: 99999;
  497 + -moz-transition: left 0.5s ease;
  498 + transition: left 0.5s ease;
  499 + background: url(../assets/img/icon-sidebar.png) no-repeat 0;
  500 + width: 11px;
  501 + height: 33px;
  502 +}
  503 +.active .toggle-icon {
  504 + background: url(../assets/img/icon-sidebar.png) no-repeat -11px;
  505 + width: 11px;
  506 + height: 33px;
  507 +}
  508 +.toggle-icon-treeview {
  509 + position: absolute;
  510 + top: 110px;
  511 + left: 190px;
  512 + z-index: 99999;
  513 + -moz-transition: left 0.5s ease;
  514 + transition: left 0.5s ease;
  515 + background: url(../assets/img/icon-sidebar.png) no-repeat 0;
  516 + width: 11px;
  517 + height: 33px;
  518 +}
  519 +.active .toggle-icon-treeview {
  520 + background: url(../assets/img/icon-sidebar.png) no-repeat -11px;
  521 + width: 11px;
  522 + height: 33px;
  523 +}
  524 +.navbar-inverse .navbar-nav > li > a {
  525 + color: #FFFFFF;
  526 +}
  527 +.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {
  528 + color: #2db0f5;
  529 +}
  530 +ul.right0 {
  531 + right: 0!important;
  532 + left: auto;
  533 + min-width: 300px;
  534 + padding: 10px;
  535 + transition: visibility 0.15s ease 0s, opacity 0.15s ease 0s, transform 0.15s ease 0s;
  536 + border-bottom: 4px solid #abafb0;
  537 + box-shadow: 0 4px 2px -2px #abafb0 inset;
  538 +}
  539 +.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {
  540 + background-color: #0095da;
  541 + color: #ffffff;
  542 +}
  543 +.padd5 {
  544 + padding: 5px;
  545 +}
  546 +.padded25{ padding:25px;}
  547 +ul.listgrid-view{ list-style:none;}
  548 +ul.listgrid-view li{ float:left; margin-right:5px; background:#3D3D3D; padding:2px 5px; border-radius:2px;}
  549 +ul.listgrid-view li a{color:#fff!important;}
  550 +ul.listgrid-view li.active{ background:#0095da!important;}
  551 +.bg-white{ background:#fff;}
  552 +.stickey-area .pagination-sm > li > a, .pagination-sm > li > span{ padding:5px 8px!important;}
  553 +.padd-left17{ padding-left:17px;}
  554 +
  555 +.cursor-pointer{ cursor:pointer;}
  556 +.paddTopbtm15{ padding-top:15px; padding-bottom:15px;}
  557 +.paddTop15{ padding-top:15px;}
  558 +.padd10{ padding:10px!important;}
  559 +.no-margin-btm{ margin-bottom:0;}
  560 +.marginR0{ margin-right:0!important;}
  561 +.padd-right0{ padding-right:0;}
  562 +.padd-left0{ padding-left:0;}
  563 +.marginTop13{ margin-top:13px;}
  564 +.font13{ font-size:13px;}
  565 +.font11{ font-size:11px;}
  566 +.modal-footer{ padding:5px 10px;}
  567 +.paddTop0{ padding-top:0;}
  568 +.no-margin-top{ margin-top:0;}
  569 +/*.tab-mini > li > a{ padding-left:5px; padding-right:5px; font-size:12px;}*/
  570 +
  571 +
  572 +
  573 +.scrollable-Y200{ width:auto; height:228px; overflow-y:scroll; border:1px solid #e4e4e4; margin-bottom:0; z-index:999999; display:block; border-top:none; background:#fff;}
  574 +.modal-header{ cursor:move;}
  575 +.well-dark{ background:#2e2e2e; border:1px solid #686868; height:500px; overflow:hidden;}
  576 +select[multiple], select[size].multipleSelect{ height: 100%;}
  577 +#setting-modal-dark{ height:441px;}
  578 +#setting-modal-dark .modal-body{ overflow-y:auto; overflow-x:hidden; height:365px;}
  579 +#setting-modal-dark > .modal-header{ padding:5px 10px;}
  580 +#setting-modal-dark > .modal-header h4{ font-size:15px; font-weight:600;}
  581 +
  582 +#setting-modal-dark > .modal-body > .nav-tabs > li > a{ padding:5px!important}
  583 +#setting-modal-dark .nav > li > a { padding: 5px!important;}
  584 +
  585 +
  586 +
  587 +.bolder{ font-weight:bold;}
  588 +.skin-tones{ width:300px; margin:0 auto;}
  589 +
  590 +.modal-dark > .modal-header{ padding:5px 10px;}
  591 +.modal-dark > .modal-header h4{ font-size:15px; font-weight:600;}
  592 +.modal-header .close{ margin-top:0}
  593 +#setting-modal-dark .nav-tabs > li.active > a, #setting-modal-dark .nav-tabs > li.active > a:hover, #setting-modal-dark .nav-tabs > li.active > a:focus{ background:hsl(199, 100%, 43%); border:none; color:#fff;}
  594 +.annotation-modal-header h4{ font-size:15px; font-weight:600;}
  595 +.color-picker{ margin-left:25px; margin-top:-3px}
  596 +.pattern-picker{ margin-left:10px; margin-top:-3px}
  597 +.marginbtm10{ margin-bottom:10px;}
  598 +.bodyWrap2{ margin-top:60px;}
  599 +.toolsss {
  600 + height: 100vh;
  601 + width: 110px;
  602 + padding-top: 10px;
  603 + /*padding-top: 70px;*/
  604 + position:absolute;
  605 + /*overflow: hidden;*/
  606 + left: 0;
  607 + top: 0;
  608 + z-index: 1029;
  609 + transition: left .3s ease;
  610 + background:#ebebeb;
  611 + border-right:1px solid #dedede;
  612 +
  613 +}
  614 +.main3 {
  615 + background: #383838;
  616 + margin-left: 95px;
  617 + position: relative;
  618 + transition: margin .3s ease;
  619 + /*margin-top: 60px;*/
  620 +}
  621 +.well-bordered{ background:#fff; border:5px solid #f0f0f0; border-radius:0; box-shadow:none; padding:10px 20px; height:580px; overflow-y:auto}
  622 +.color-pallate{ position:absolute; top:15px;}
  623 +.font18{ font-size:18px;}
  624 +.bg-grey{ background:#f2f2f2;}
  625 +textarea {
  626 + resize: none;
  627 +}
  628 +.font12{ font-size:12px;}
  629 +.font14{ font-size:14px;}
  630 +.weight600{ font-weight:600;}
  631 +.marginbtm5{ margin-bottom:5px;}
  632 +.marginBtm12{ margin-bottom:12px;}
  633 +.anatomyTest-option{ padding-left:17px; font-size:12px; line-height:20px;}
  634 +.font-16{ font-size:16px;}
  635 +.width-auto{ width: auto;}
  636 +
  637 +/*=====Styles for Admin=====*/
  638 +.marginTop22{ margin-top:22px;}
  639 +.paddTop7{ padding-top: 7px;}
  640 +.font-normal{ font-weight: normal;}
  641 +
  642 +/*==========================================*/
  643 +/*30-1-2017*/
  644 +.header-middle .main-full {
  645 + margin-top: 148px;
  646 +}
  647 +.pageHeading-top {
  648 + background: #ccc none repeat scroll 0 0;
  649 + padding: 0px 15px;
  650 + margin-top: 60px;
  651 + z-index: 1030;
  652 + position: fixed;
  653 + width: 100%;
  654 +}
  655 +.pageHeading-top h4 {
  656 + font-size: 15px;
  657 + margin: 0!important;
  658 + color: #000;
  659 + line-height: 30px;
  660 + font-weight: 600;
  661 + text-transform: uppercase
  662 +}
  663 +
  664 +
  665 +
  666 + @-webkit-keyframes circle {
  667 +0% {
  668 + opacity: 1;
  669 +}
  670 + 40% {
  671 + opacity: 1;
  672 +}
  673 + 100% {
  674 + width: 200%;
  675 + height: 200%;
  676 + opacity: 0;
  677 +}
  678 +}
  679 +@keyframes circle {
  680 + 0% {
  681 + opacity: 1;
  682 +}
  683 + 40% {
  684 + opacity: 1;
  685 +}
  686 + 100% {
  687 + width: 200%;
  688 + height: 200%;
  689 + opacity: 0;
  690 +}
  691 +}
  692 +
  693 +@media (max-width: 480px) {
  694 +.tools i {
  695 + font-size: inherit;
  696 +}
  697 +.pageHeading h4 {
  698 + font-size: 20px;
  699 +}
  700 +}
  701 +
  702 +/** Responsive **/
  703 +@media (max-width: 1199px) {
  704 +/*.main{margin-left:0;position: relative;transition:left .3s ease;left: 0;}
  705 + .main.active{left: 250px;}
  706 + .sidebar{left: -250px;transition:left .3s ease;}
  707 + .sidebar.active{left: 0;}*/
  708 + /*.main2{margin-left:0;position: relative;transition:left .3s ease;left: 0;}
  709 + .main2.active{left: 106px;}
  710 + .tools{left: -106px;transition:left .3s ease;}
  711 + .tools.active{left: 0;}*/
  712 +
  713 +
  714 +}
  715 +
  716 +
  717 +
  718 +@media (max-width: 767px) {
  719 +textarea {
  720 + height: 120px !important;
  721 +}
  722 +.quesDetail>*, .patDataRow>* {
  723 + text-align: left !important;
  724 +}
  725 +.table {
  726 + font-size: .9em;
  727 +}
  728 +.stylish-input-group .form-control {
  729 + border-right: 0;
  730 + box-shadow: 0 0 0;
  731 + border-color: #ccc;
  732 + width: 100%;
  733 + float: right;
  734 +}
  735 +}
  736 +
  737 +@media (max-width: 1023px) {
  738 +/*.nav > li > a{ padding:15px 6px!important;}*/
  739 +
  740 +.main {
  741 + margin-left: 0;
  742 + position: relative;
  743 + transition: left .3s ease;
  744 + left: 0;
  745 +}
  746 +.main.active {
  747 + left: 200px;
  748 +}
  749 +.sidebar {
  750 + left: -200px;
  751 + transition: left .3s ease;
  752 +}
  753 +.sidebar.active {
  754 + left: 0;
  755 +}
  756 +.main-treeview {
  757 + margin-left: 0;
  758 + position: relative;
  759 + transition: left .3s ease;
  760 + left: 0;
  761 +}
  762 +.main-treeview.active {
  763 + left: 300px;
  764 +}
  765 +.treeview-left {
  766 + left: -200px;
  767 + transition: left .3s ease;
  768 +}
  769 +.treeview-left.active {
  770 + left: 0;
  771 +}
  772 +.tab-mini > li > a{overflow: hidden;
  773 +padding-left:5px; padding-right:5px;
  774 + text-overflow: ellipsis;
  775 + white-space: nowrap;
  776 + width: 86px !important;}
  777 +
  778 +
  779 +
  780 +
  781 +
  782 +
  783 +}
  784 +
  785 +
  786 +
  787 +@media (min-width: 768px) and (max-width: 1199px) {
  788 +.hidden-sm {
  789 + display: none !important;
  790 +}
  791 +.width120 {
  792 + width: 90%!important;
  793 +}
  794 +
  795 +.builder-Guide-left{ min-width:118px; width:9%; padding:0;}
  796 +.builder-Guide-right{ min-width:485px; width:80%; padding:0;}
  797 +.color-pallate{ position:absolute; top:5px;}
  798 +
  799 +/* .toggleBar { margin:20px 10px 0 0}*/
  800 +}
  801 +
  802 +@media (min-width: 768px) {
  803 +.toperMenu-spaceleft {
  804 + margin-left: 20px;
  805 +}
  806 +}
  807 +
  808 +@media (max-width: 350px) {
  809 +.pageHeading h4 {
  810 + overflow: hidden;
  811 + text-overflow: ellipsis;
  812 + white-space: nowrap;
  813 + width: 164px !important;
  814 +}
  815 +}
  816 +
  817 +@media (min-width: 1024px) and (max-width: 1199px) {
  818 +
  819 +.tab-mini > li > a{overflow: hidden;
  820 + padding-left:5px; padding-right:5px;
  821 + text-overflow: ellipsis;
  822 + white-space: nowrap;
  823 + width: 106px !important;}
  824 +
  825 +
  826 +}
  827 +
  828 +@media (min-width: 1200px) {
  829 + .builder-Guide-left{ min-width:118px; width:9%; padding:0;}
  830 + .builder-Guide-right{ width:auto; padding:0;}
  831 + }
  832 +
  833 +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
  834 + background: #1c92d0;
  835 + color:#fff;
  836 +}
0 837 \ No newline at end of file
... ...
400-SOURCECODE/Admin/src/environments/environment.prod.ts 0 → 100644
  1 +export const environment = {
  2 + production: true
  3 +};
... ...
400-SOURCECODE/Admin/src/environments/environment.ts 0 → 100644
  1 +// The file contents for the current environment will overwrite these during build.
  2 +// The build system defaults to the dev environment which uses `environment.ts`, but if you do
  3 +// `ng build --env=prod` then `environment.prod.ts` will be used instead.
  4 +// The list of which env maps to which file can be found in `.angular-cli.json`.
  5 +
  6 +export const environment = {
  7 + production: false
  8 +};
... ...
400-SOURCECODE/Admin/src/favicon.ico 0 → 100644
No preview for this file type
400-SOURCECODE/Admin/src/index.html 0 → 100644
  1 +
  2 +<!DOCTYPE html>
  3 +<html lang="en">
  4 +<head>
  5 + <meta charset="utf-8">
  6 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7 + <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  8 + <title>A.D.A.M. Interactive Anatomy</title>
  9 + <link href="../assets/styles/bootstrap.css" rel="stylesheet">
  10 + <link href="../assets/styles/main.css" rel="stylesheet">
  11 + <link href="../assets/styles/admin-custom.css" rel="stylesheet">
  12 + <link href="../assets/styles/angular-custom.css" rel="stylesheet">
  13 + <link href="assets/styles/bootstrap-datetimepicker.min.css" rel="stylesheet">
  14 + <link href="assets/styles/fixed_table_rc.css" type="text/css" rel="stylesheet" media="all" />
  15 + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
  16 + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,800,700,600,400italic">
  17 +
  18 + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  19 + <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  20 + <!--[if lt IE 9]>
  21 + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  22 + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  23 + <![endif]-->
  24 +
  25 +</head>
  26 +<body>
  27 + <div class="container-fluid">
  28 + <app-component></app-component>
  29 + </div>
  30 +
  31 + <script src="../assets/scripts/jquery-1.11.3.min.js"></script>
  32 + <script src="../assets/scripts/bootstrap.js"></script>
  33 + <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  34 + <script src="https://meetselva.github.io/fixed-table-rows-cols/js/sortable_table.js" type="text/javascript"></script>
  35 + <script src="../assets/scripts/fixed_table_rc.js" type="text/javascript"></script>
  36 + <!--Nav-->
  37 + <script>
  38 + $(function () {
  39 + $("#slider-range-min-2").slider({
  40 + range: "min",
  41 + min: 1,
  42 + max: 60,
  43 + value: 10,
  44 + slide: function (event, ui) {
  45 + $("#amount-2").val(ui.value);
  46 + }
  47 + });
  48 + $("#amount-2").val($("#slider-vertical-2").slider("value"));
  49 +
  50 + });
  51 + </script>
  52 + <script>
  53 + $(function () {
  54 +
  55 +
  56 + $('#fixed_hdr2').fxdHdrCol({
  57 + fixedCols: 0,
  58 + width: "100%",
  59 + height: 300,
  60 + colModal: [
  61 + { width: 150, align: 'center' },
  62 + { width: 150, align: 'center' },
  63 + { width: 150, align: 'Center' },
  64 + { width: 150, align: 'Center' },
  65 + { width: 150, align: 'Center' },
  66 + { width: 100, align: 'Center' },
  67 + { width: 130, align: 'Center' },
  68 + { width: 200, align: 'center' },
  69 + { width: 200, align: 'Center' },
  70 + { width: 200, align: 'center' },
  71 + { width: 100, align: 'center' },
  72 + ],
  73 + sort: true
  74 + });
  75 + });
  76 + </script>
  77 + <!--Nav-->
  78 +
  79 + <script>
  80 + $('.modal').draggable({
  81 + handle: '.modal-header'
  82 + })
  83 + </script>
  84 +</body>
  85 +</html>
... ...
400-SOURCECODE/Admin/src/main.ts 0 → 100644
  1 +import { enableProdMode } from '@angular/core';
  2 +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
  3 +
  4 +import { AppModule } from './app/app.module';
  5 +import { environment } from './environments/environment';
  6 +
  7 +if (environment.production) {
  8 + enableProdMode();
  9 +}
  10 +
  11 +platformBrowserDynamic().bootstrapModule(AppModule);
... ...
400-SOURCECODE/Admin/src/polyfills.ts 0 → 100644
  1 +/**
  2 + * This file includes polyfills needed by Angular and is loaded before the app.
  3 + * You can add your own extra polyfills to this file.
  4 + *
  5 + * This file is divided into 2 sections:
  6 + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
  7 + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
  8 + * file.
  9 + *
  10 + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
  11 + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
  12 + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
  13 + *
  14 + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
  15 + */
  16 +
  17 +/***************************************************************************************************
  18 + * BROWSER POLYFILLS
  19 + */
  20 +
  21 +/** IE9, IE10 and IE11 requires all of the following polyfills. **/
  22 +// import 'core-js/es6/symbol';
  23 +// import 'core-js/es6/object';
  24 +// import 'core-js/es6/function';
  25 +// import 'core-js/es6/parse-int';
  26 +// import 'core-js/es6/parse-float';
  27 +// import 'core-js/es6/number';
  28 +// import 'core-js/es6/math';
  29 +// import 'core-js/es6/string';
  30 +// import 'core-js/es6/date';
  31 +// import 'core-js/es6/array';
  32 +// import 'core-js/es6/regexp';
  33 +// import 'core-js/es6/map';
  34 +// import 'core-js/es6/weak-map';
  35 +// import 'core-js/es6/set';
  36 +
  37 +/** IE10 and IE11 requires the following for NgClass support on SVG elements */
  38 +// import 'classlist.js'; // Run `npm install --save classlist.js`.
  39 +
  40 +/** Evergreen browsers require these. **/
  41 +import 'core-js/es6/reflect';
  42 +import 'core-js/es7/reflect';
  43 +
  44 +
  45 +/**
  46 + * Required to support Web Animations `@angular/animation`.
  47 + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
  48 + **/
  49 +// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
  50 +
  51 +
  52 +
  53 +/***************************************************************************************************
  54 + * Zone JS is required by Angular itself.
  55 + */
  56 +import 'zone.js/dist/zone'; // Included with Angular CLI.
  57 +
  58 +
  59 +
  60 +/***************************************************************************************************
  61 + * APPLICATION IMPORTS
  62 + */
  63 +
  64 +/**
  65 + * Date, currency, decimal and percent pipes.
  66 + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
  67 + */
  68 +// import 'intl'; // Run `npm install --save intl`.
  69 +/**
  70 + * Need to import at least one locale-data with intl.
  71 + */
  72 +// import 'intl/locale-data/jsonp/en';
... ...
400-SOURCECODE/Admin/src/styles.css 0 → 100644
  1 +/* You can add global styles to this file, and also import other style files */
... ...
400-SOURCECODE/Admin/src/test.ts 0 → 100644
  1 +// This file is required by karma.conf.js and loads recursively all the .spec and framework files
  2 +
  3 +import 'zone.js/dist/long-stack-trace-zone';
  4 +import 'zone.js/dist/proxy.js';
  5 +import 'zone.js/dist/sync-test';
  6 +import 'zone.js/dist/jasmine-patch';
  7 +import 'zone.js/dist/async-test';
  8 +import 'zone.js/dist/fake-async-test';
  9 +import { getTestBed } from '@angular/core/testing';
  10 +import {
  11 + BrowserDynamicTestingModule,
  12 + platformBrowserDynamicTesting
  13 +} from '@angular/platform-browser-dynamic/testing';
  14 +
  15 +// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
  16 +declare const __karma__: any;
  17 +declare const require: any;
  18 +
  19 +// Prevent Karma from running prematurely.
  20 +__karma__.loaded = function () {};
  21 +
  22 +// First, initialize the Angular testing environment.
  23 +getTestBed().initTestEnvironment(
  24 + BrowserDynamicTestingModule,
  25 + platformBrowserDynamicTesting()
  26 +);
  27 +// Then we find all the tests.
  28 +const context = require.context('./', true, /\.spec\.ts$/);
  29 +// And load the modules.
  30 +context.keys().map(context);
  31 +// Finally, start Karma to run the tests.
  32 +__karma__.start();
... ...