<!DOCTYPE html>
<!--
~ Copyright 2014-present Open Networking Foundation
~
~ 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="data/img/onos-logo.png">

    <link rel="apple-touch-icon" href="data/img/apple-touch-icon.png">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,700'
          rel='stylesheet' type='text/css'>
    <link href="onos.theme.css" type='text/css'>
    <link href="app/fw/layer/loading.service.css" rel='stylesheet' type='text/css'>
    <base href="/">
    <title>ONOS</title>

    <!-- {INJECTED-USER-START} -->
    <!-- {INJECTED-USER-END} -->

    <!-- ONOS UI Framework included here -->
    <!--<script src="onos.js"></script>-->
    <!--<script src="dist/onos.js"></script>-->

    <!-- Framework and library stylesheets included here -->
    <!--<link rel="stylesheet" href="dist/onos.css">-->

    <!-- Contributed javascript injected here -->
    <!-- {INJECTED-JAVASCRIPT-START} -->
    <!-- {INJECTED-JAVASCRIPT-END} -->

    <!-- Contributed stylesheets injected here -->
    <!-- {INJECTED-STYLESHEETS-START} -->
    <!-- {INJECTED-STYLESHEETS-END} -->

</head>
<body class="light">
    <onos-root></onos-root>

<!--<script>-->
    <!--&lt;!&ndash; Inject user agent info into html element to allow CSS sensitivity. &ndash;&gt;-->
    <!--(function () {-->
        <!--var t = ('ontouchstart' in window) || ('onmsgesturechange' in window);-->
        <!--d3.select(document.documentElement)-->
            <!--.attr('data-useragent', navigator.userAgent)-->
            <!--.attr('data-platform', navigator.platform)-->
            <!--.classed('touch', t);-->
    <!--}());-->
<!--</script>-->
</body>
</html>
