<!DOCTYPE html>
<!--
~ Copyright 2015 Open Networking Laboratory
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~     http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
~
-->
<html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" href="imgs/bird.png">

    <title>CORD Subscriber Portal</title>

    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/angular-route/angular-route.js"></script>
    <script src="bower_components/angular-animate/angular-animate.js"></script>
    <script src="bower_components/angular-resource/angular-resource.js"></script>
    <script src="bower_components/angular-cookies/angular-cookies.js"></script>
    <script src="bower_components/jquery/dist/jquery.js"></script>

    <script src="cord.js"></script>
    <script src="app/fw/services/rest.js"></script>
    <script src="app/fw/services/helpers.js"></script>
    <link rel="stylesheet" href="app/view/common/common.css">

    <script src="app/fw/mast/mast.js"></script>
    <link rel="stylesheet" href="app/fw/mast/mast.css">
    <script src="app/fw/foot/foot.js"></script>
    <link rel="stylesheet" href="app/fw/foot/foot.css">

    <script src="app/fw/nav/nav.js"></script>
    <link rel="stylesheet" href="app/fw/nav/nav.css">

    <script src="app/fw/icon/icon.js"></script>

    <script src="app/view/login/login.js"></script>
    <link rel="stylesheet" href="app/view/login/login.css">

    <script src="app/view/home/home.js"></script>
    <link rel="stylesheet" href="app/view/home/home.css">

    <script src="app/view/user/user.js"></script>
    <link rel="stylesheet" href="app/view/user/user.css">

    <script src="app/view/bundle/bundle.js"></script>
    <link rel="stylesheet" href="app/view/bundle/bundle.css">

</head>
<body ng-app="cordGui">
<div id="frame" ng-controller="CordCtrl as cordCtrl">

<mast></mast>
<foot></foot>
    <div id="view" ng-view></div>

        <svg id="icon-defs">
            <defs>
                <symbol id="bird" viewBox="352 224 113 112">
                    <path d="M427.7,300.4 c-6.9,0.6-13.1,5-19.2,7.1c-18.1,6.2-33.9,
                    9.1-56.5,4.7c24.6,17.2,36.6,13,63.7,0.1c-0.5,0.6-0.7,1.3-1.3,
                    1.9c1.4-0.4,2.4-1.7,3.4-2.2c-0.4,0.7-0.9,1.5-1.4,1.9c2.2-0.6,
                    3.7-2.3,5.9-3.9c-2.4,2.1-4.2,5-6,8c-1.5,2.5-3.1,4.8-5.1,6.9c-1,
                    1-1.9,1.9-2.9,2.9c-1.4,1.3-2.9,2.5-5.1,2.9c1.7,0.1,3.6-0.3,6.5
                    -1.9c-1.6,2.4-7.1,6.2-9.9,7.2c10.5-2.6,19.2-15.9,25.7-18c18.3
                    -5.9,13.8-3.4,27-14.2c1.6-1.3,3-1,5.1-0.8c1.1,0.1,2.1,0.3,3.2,
                    0.5c0.8,0.2,1.4,0.4,2.2,0.8l1.8,0.9c-1.9-4.5-2.3-4.1-5.9-6c-2.3
                    -1.3-3.3-3.8-6.2-4.9c-7.1-2.6-11.9,11.7-11.7-5c0.1-8,4.2-14.4,
                    6.4-22c1.1-3.8,2.3-7.6,2.4-11.5c0.1-2.3,0-4.7-0.4-7c-2-11.2-8.4
                    -21.5-19.7-24.8c-1-0.3-1.1-0.3-0.9,0c9.6,17.1,7.2,38.3,3.1,54.2
                    C429.9,285.5,426.7,293.2,427.7,300.4z"></path>
                </symbol>
                <symbol id="checkMark" viewBox="0 0 10 10">
                    <path d="M2.6,4.5c0,0,0.7-0.4,1.2,0.3l1.0,1.8c0,0,2.7-5.4,2.8-5.7c
                    0,0,0.5-0.9,1.4-0.1c0,0,0.5,0.5,0,1.3S6.8,7.3,5.6,9.2c0,0-0.4,0.5
                    -1.2,0.1S2.2,5.4,2.2,5.4S2.2,4.7,2.6,4.5z"></path>
                </symbol>
                <symbol id="xMark" viewBox="0 0 10 10">
                    <path d="M9.0,7.2C8.2,6.9,7.4,6.1,6.7,5.2c0.4-0.5,0.7-0.8,0.8-1.0C
                    7.8,3.5,9.4,1.6,8.1,1.1C6.8,0.6,6.6,1.7,6.6,1.7C6.4,2.1,6.0,2.7,
                    5.4,3.4C4.9,2.5,4.5,1.9,4.5,1.9S3.8,0.2,2.9,0.7C1.9,1.1,2.3,2.3,
                    2.3,2.3c0.3,1.1,0.8,2.1,1.4,2.9C2.5,6.4,1.3,7.4,1.3,7.4S0.8,7.8,
                    0.8,8.1C0.9,8.3,0.9,9.6,2.4,9.1C3.1,8.8,4.1,7.9,5.1,7.0c1.3,1.3,
                    2.5,1.9,2.5,1.9s0.5,0.5,1.4-0.2C9.8,7.9,9.0,7.2,9.0,7.2z"></path>
                </symbol>
            </defs>
        </svg>
    </div>

    <script type='text/javascript' id="__bs_script__">
        //<![CDATA[
        document.write("<script async src='http://HOST:3000/browser-sync/browser-sync-client.2.11.1.js'><\/script>".replace("HOST", location.hostname));
        //]]>
    </script>
</body>
</html>
