2017-10-28 00:11:05 +00:00
|
|
|
// Code generated by go-bindata.
|
|
|
|
// sources:
|
|
|
|
// clientpack/apple-touch-icon.png
|
|
|
|
// clientpack/favicon.ico
|
|
|
|
// clientpack/index.htm
|
|
|
|
// DO NOT EDIT!
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"compress/gzip"
|
|
|
|
"fmt"
|
|
|
|
"io"
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func bindataRead(data, name string) ([]byte, error) {
|
|
|
|
gz, err := gzip.NewReader(strings.NewReader(data))
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
var buf bytes.Buffer
|
|
|
|
_, err = io.Copy(&buf, gz)
|
|
|
|
clErr := gz.Close()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
|
|
|
}
|
|
|
|
if clErr != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return buf.Bytes(), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type asset struct {
|
|
|
|
bytes []byte
|
|
|
|
info os.FileInfo
|
|
|
|
}
|
|
|
|
|
|
|
|
type bindataFileInfo struct {
|
|
|
|
name string
|
|
|
|
size int64
|
|
|
|
mode os.FileMode
|
|
|
|
modTime time.Time
|
|
|
|
}
|
|
|
|
|
|
|
|
func (fi bindataFileInfo) Name() string {
|
|
|
|
return fi.name
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Size() int64 {
|
|
|
|
return fi.size
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Mode() os.FileMode {
|
|
|
|
return fi.mode
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) ModTime() time.Time {
|
|
|
|
return fi.modTime
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) IsDir() bool {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Sys() interface{} {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2017-10-28 00:27:19 +00:00
|
|
|
var _appleTouchIconPng = "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\xfa\x79\x3c\x94\x6f\xf4\x3f\x8e\x5f\xf7\x6d\x30\x48\x88\x08\xc9\x64\x89\x2c\x11\xa9\x10\x33\x95\x5d\x96\x44\xb2\xab\x2c\xd9\xc9\x96\xc4\x0c\x6d\xb2\xaf\xd9\x99\xa2\x6c\x85\xac\x45\xcc\xa8\x14\x29\xfb\x2e\x5b\xc9\xbe\x65\x1d\x66\xcc\xfc\x1e\x53\xaf\xf7\xfb\xf1\xfe\xfc\xf3\x7b\x3c\xbe\x7f\xb8\xdd\xf7\x35\x33\xe7\x3a\xe7\x3c\xcf\x39\xd7\xf3\xdc\xd7\xf5\xc4\xd8\x50\x9b\x9d\x55\x80\x15\x00\xc0\xae\xab\xa3\x61\x02\x00\x0c\xe8\x7f\x48\x26\x00\xc0\xc6\x9d\xde\x5d\x00\x0c\x9c\x75\x35\xce\x9b\xde\x19\x5e\xca\x66\xa9\x3a\xd8\x9c\x4e\x1a\x61\xc9\x78\x12\x89\x55\x53\x4c\x77\x97\x92\x57\x74\x3e\xe6\x64\xdd\x59\x28\xf3\x3c\xfc\x40\xd3\x21\x47\x2e\x3e\xce\xa9\xa3\x51\xc7\x4e\x4c\x1c\xf9\xf5\xe1\xf9\xdb\xe6\x43\xf2\x1a\x3c\x88\x23\x51\xe1\xd1\x1f\x3e\x8a\xff\x0c\x57\x1f\xd2\x7c\x7e\xab\xb7\x4b\x8c\x5b\x38\xb2\xf5\x64\xab\x72\xd0\xf3\xb3\x4f\x12\x5b\x09\x84\x2d\xa5\x9e\x53\x36\xa3\x7d\x21\xe4\xb1\x11\xb3\x3d\x72\xb6\x6f\xc3\x76\x03\x33\x87\xd7\xf8\xfc\x6e\xe8\xa6\x59\x9f\x79\xfd\xde\x92\x17\xd6\x17\x00\x80\xb7\x5e\x7c\x04\x00\x00\x28\xfa\x05\x07\x30\x69\xeb\x1d\x68\x82\xf3\x88\x3e\xed\x5d\x25\x79\xb0\x76\xc9\x9f\x79\xbb\x2b\xa1\x04\x01\x8c\x95\x2c\x7f\x7c\x99\xae\x19\x78\xbd\x7c\xf3\xca\xc8\x82\xd3\x4e\x47\xc3\xf6\xd8\xc8\x37\xf1\x0b\x40\x8a\x7d\x43\x68\x24\xfc\x3d\xed\x92\x37\x33\x90\xd7\x3f\x90\x31\x62\x7b\xa6\xfe\x46\xe7\x07\xc7\xf3\xc0\x14\x22\xf8\x5a\xe1\x53\xbf\xfc\x09\xbb\xac\x06\x40\x5a\x9c\x03\x5b\x8e\x57\x12\xcc\x15\x6e\x80\xc4\x3c\x61\x24\xb2\xef\xee\x8d\x16\x50\x3d\xa0\xdc\x2e\x35\x80\x79\x57\x81\x10\x41\x18\x94\xee\x3b\x75\x14\xfc\x66\xdd\xdd\x3b\xf4\x9b\x01\x60\xac\x02\xec\x2d\x86\x1c\xf0\x3c\x70\xe7\xd3\x31\x61\xed\x4e\x66\x00\x0c\xf8\xd3\x6e\x90\x4f\x85\xf5\xc1\xf2\x4e\xdf\xd2\x98\xb6\x5d\x5e\xad\x0f\xe9\x85\x00\x80\x3b\x15\x01\x2e\x65\x9f\xbc\xa9\x25\x0a\xdb\x6b\x75\x8e\xd7\x7a\x54\xa1\x9f\x76\xa9\x03\x30\x95\x7c\x30\x4d\xca\x02\x32\x67\xb2\xe4\x02\x30\x1a\x00\x14\x8c\x04\x61\xc2\x00\x70\x42\x08\xfc\xd5\x26\x3b\x98\x76\x87\x3e\xda\xab\x8b\x38\x56\x77\x40\x9e\x11\x2a\xb4\x99\x58\x99\x53\xff\xee\x33\x58\xcf\x01\xc0\x66\x41\x73\x48\xb4\xb7\x26\x9e\x1f\x2a\xb4\x9d\x48\xc5\xd1\x6e\xce\x54\x86\x50\x00\x00\x9a\xcf\x5b\x43\xac\xe7\x23\x31\x6c\x70\xbc\xd7\xaa\xf0\x4c\xfc\x32\x33\xc0\xdd\xe8\x99\x3f\xa4\x20\x6b\x7c\x07\xba\x25\xb8\xa9\x5f\x47\x90\x58\x62\x05\x60\xdf\xb3\xa1\x1d\x77\x4b\x7c\xf9\x10\xee\x02\x1b\x4e\x90\x42\xae\x65\xc4\x6a\xed\x01\x60\x7f\xe3\x34\x46\x0c\xcf\x02\x75\x3a\x6c\xcc\x76\x1d\x58\x75\x2c\x25\x84\x6d\x31\x00\xf0\xa8\x67\x56\xfd\x44\xb6\xb2\xaf\x93\x34\xcc\x29\x4c\x51\xad\x33\xd2\x17\xfa\xba\x0d\x03\x9c\x9a\xfb\x6d\x61\x06\x6b\x96\x5b\xe7\xc1\xf3\xfb\x58\xec\xe3\x64\x34\x00\x83\x4f\x1c\x80\xd6\xdb\x03\x9d\x0f\xc0\xe2\x61\x8a\xe0\x70\x38\x1a\x00\xdc\xf7\x08\xc4\x29\x11\x90\xcb\x88\x65\xa1\xb0\x57\xb1\x00\x20\xc9\x12\x53\x8a\x88\x96\x7c\x0d\xaa\x64\xb7\x92\x26\xc6\x73\x6b\x00\x00\xe2\x79\x45\xb2\x82\x9d\x96\x52\xd0\x2d\x36\x6a\x87\xb2\xcc\x16\x03\xc0\xad\x55\xb4\x86\x6c\x14\x3f\x46\xf4\x6a\x02\x24\x15\x00\xb0\x99\x82\xcb\x60\x03\x4d\xc2\x00\xe0\xa9\x07\x8c\xaf\x40\x28\x12\x03\x00\x3c\x17\x61\xd7\x63\x20\x4f\x2b\x46\x84\xfe\x74\x4b\x87\x18\xb2\x3d\x6a\xee\xcf\x52\xf8\x02\xe8\xf8\x13\xa8\xf7\xe8\xa2\xdf\x9c\x7a\x07\xcb\x13\x59\x21\xef\xfb\x68\x32\x05\x02\x60\xc3\xc5\x4f\x1c\x5f\xec\x0f\x17\x9f\x00\x9e\xab\xa9\x44\xa3\x87\x74\x1d\xfd\xa2\xbd\xc5\xf1\x5d\x3a\x90\xf7\x7d\x2c\x76\xa6\xf2\x7e\x08\x3d\xe2\xd4\xe8\xb6\x29\xe8\x81\x1f\x13\xe3\x5d\x21\x77\x87\x26\xed\x85\x01\xc0\xbd\xaa\xaa\x8b\xfb\x68\xc3\x72\xeb\xe4\x05\x70\xed\x0f\x07\x00\xf1\x82\x99\x59\x52\x8b\xfb\x0a\x9f\x82\xf2\x59\x0e\x00\x50\xe8\xdb\x76\x3c\x69\xf5\x40\x7e\x85\x03\x00\xe3\x83\xb7\x6d\x38\xe2\x4b\xfe\x7b\x50\xb2\xcc\x3e\x3c\xc0\x30\x25\x05\x44\xb5\x63\x93\x83\x68\x39\xf7\xb4\x00\x00\x66\xcf\x82\xfa\x5f\x59\x34\xb0\x8a\x03\xcf\x55\xe1\x05\x75\x83\xc9\x4a\x08\x80\x42\xa9\x5f\xd6\x2c\x69\x96\x48\xba\x36\xda\x8f\x7b\xd1\x00\x60\x64\x6f\xf9\x0b\x3f\xae\x3f\xd0\x69\x82\x80\xf0\xed\xf4\x81\xa5\x5b\xb7\x19\xf1\xcf\xd7\x61\x29\x5e\x70\x86\xb4\xed\xa7\x3e\xb2\xce\x01\x00\xa8\xce\x4b\x95\
|
2017-10-28 00:11:05 +00:00
|
|
|
|
|
|
|
func appleTouchIconPngBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_appleTouchIconPng,
|
|
|
|
"apple-touch-icon.png",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func appleTouchIconPng() (*asset, error) {
|
|
|
|
bytes, err := appleTouchIconPngBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2017-10-28 00:27:19 +00:00
|
|
|
info := bindataFileInfo{name: "apple-touch-icon.png", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
2017-10-28 00:11:05 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
2017-10-28 00:27:19 +00:00
|
|
|
var _faviconIco = "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\xbc\x09\x38\x95\x5f\xdb\xff\x7d\xee\x6d\x63\x9b\x32\x94\x88\x62\x27\x95\x28\x43\x32\x54\x86\xad\xcc\xf3\x4c\xe6\xb1\x89\x0c\x95\xcc\x6c\xa4\x28\x42\x11\x45\x48\x48\xe6\x29\x99\xf7\x0e\xa1\x54\xc8\x2c\x63\x28\xa1\x48\x32\x73\xbd\xc7\xe5\xfe\x75\x3f\x3d\xd3\xfd\x3c\xc7\xf3\x1e\xff\xfb\x5e\x1d\x9f\xc3\xb5\xaf\xf3\x7b\xae\x73\xad\x75\xad\x6b\xad\x73\x39\xb6\x00\x30\x80\x03\x16\x16\xf4\x27\x1e\xce\x53\x03\x28\xc3\xdf\x0a\x06\x08\x90\x27\x08\x90\x4f\x0d\x40\x20\xfc\xed\x73\x16\x0b\x80\xb9\x28\xfc\xa5\x27\xc0\x79\x1c\x00\x95\x02\x80\x00\x00\xb0\x00\x00\x01\xfe\x56\xcf\x3f\x2a\x62\x62\x62\x20\x29\x29\x09\xc7\x8f\x1f\x07\x59\x59\x59\x20\x12\x89\xa0\xac\xac\x0c\xea\xea\xea\xa0\xa9\xa9\x09\x7a\x7a\x7a\x60\x6c\x6c\x0c\x66\x66\x66\x60\x69\x69\x09\xb6\xb6\xb6\xe0\xe8\xe8\x08\xe7\xcf\x9f\x87\x4b\x97\x2e\x81\xbb\xbb\x3b\x78\x78\x78\x80\xb7\xb7\x37\x04\x07\x07\x43\x68\x68\x28\x84\x87\x87\x43\x54\x54\x14\xdc\xbd\x7b\x17\xe2\xe3\xe3\x21\x29\x29\x09\x1e\x3f\x7e\x0c\x19\x19\x19\xf0\xec\xd9\x33\xc8\xcb\xcb\x83\x92\x92\x12\x28\x2d\x2d\x85\x8a\x8a\x0a\xa8\xa9\xa9\x81\xfa\xfa\x7a\x78\xf5\xea\x15\xb4\xb7\xb7\x43\x57\x57\x17\xf4\xf5\xf5\xc1\xc0\xc0\x00\x8c\x8c\x8c\xc0\x97\x2f\x5f\x60\x6a\x6a\x0a\xe6\xe6\xe6\xa0\x68\x05\x81\xf6\x35\x04\x10\x04\xf9\x5b\x07\x44\xf6\x02\xe8\x4a\x01\xb8\x69\x02\x44\xdb\x03\x14\x7a\x03\xb4\x46\x01\xcc\x65\x02\x2b\x52\x0a\x62\x48\x2d\xe8\x21\xcd\xe0\x8e\x74\x40\x0c\x32\x00\x45\xc8\x04\xb4\x23\x73\x7f\xf8\x6f\x03\xd0\xe5\x04\x70\xe3\x03\x88\x3e\x0c\x50\x28\x09\xd0\x4a\x04\x98\x53\x07\x56\xc4\x1c\xc4\x10\x77\xd0\x43\x6e\x82\x3b\xf2\x08\x62\x90\x62\x28\x42\x5e\x43\x3b\x32\xfc\x77\x7f\xac\x08\x00\x4e\x17\x80\xc6\x0d\x00\x1f\x0d\x40\x5f\x08\xc0\xd0\x0a\xb0\x6d\x0e\x80\x80\xb0\x81\x2c\x22\x06\xe6\x88\x1e\x78\x23\xee\x90\x80\xc4\xc0\x73\xa4\x08\x3a\x91\xf6\xbf\xfb\xef\x10\x01\xe0\xd3\x05\x10\x75\x03\x90\x8d\x06\xd0\x2c\x04\x38\xd3\x0a\x70\x6e\x0e\xc0\x0b\x61\x85\x5b\x88\x18\x24\x21\x7a\x90\x8f\xb8\x03\x05\x89\x81\x0f\x48\x11\x8c\xff\xe1\x7f\x40\x04\x80\xa8\x0b\x60\xe6\x06\x70\x35\x1a\xe0\x4e\x21\xc0\xb3\x56\x80\xba\x39\x80\x76\x84\x15\x7a\x11\x31\x18\x42\xf4\x60\x0c\x71\x87\xaf\x48\x0c\xcc\x22\x45\xb0\xf8\x87\xbf\xc8\x01\x00\x5d\x05\x00\x37\x73\x80\xe8\xab\x00\x85\x77\x00\x5a\x9f\x01\xcc\xd5\x03\x20\x1f\x58\x01\xe9\x15\x03\x64\x50\x0f\x90\x71\x77\x40\xa6\x62\x00\x99\x2b\x02\x64\xf1\x0f\xff\x1d\x00\xba\x7c\x00\x6e\xa2\x00\xd1\x72\x00\x85\x5a\x00\xad\xe6\x00\x73\x17\x00\x10\x6f\x56\x40\x6e\x89\x01\xf2\x48\x0f\x90\x02\x77\x40\x5e\xc6\x00\xf2\xa1\x08\x90\x89\x3f\xfc\xa9\x00\x74\x71\x00\x6e\x34\x00\xd1\x74\x00\x85\xf4\x00\xad\x8c\x00\x73\xdb\x00\x10\x02\x1b\x20\x72\x62\x80\x58\xe8\x01\xe2\xe3\x0e\x48\x7c\x0c\x20\x65\x45\x80\x74\xfe\xe1\x0f\xdb\x40\x17\x38\xc0\x0d\xf6\x42\x34\x08\x41\x21\x48\x42\x2b\x10\x61\x0e\xd4\x00\x61\x35\x03\x44\xcc\x0d\x10\xbd\x1b\x80\xb8\x27\x01\x12\x53\x0c\x48\x51\x33\x20\xed\xc3\x7f\xf8\x13\x40\x17\x24\xc1\x0d\x34\x21\x1a\xec\xa0\x10\xbc\xa0\x15\xee\xc0\x1c\xa4\x03\xc2\x5a\x02\x88\x58\x2d\x20\x7a\x4d\x80\xb8\xb7\x03\x12\x33\x00\x48\xd1\x04\x20\xed\xff\x36\x7f\x0e\x83\x08\x68\x80\x2e\x5c\x00\x37\xb8\x09\xd1\x90\x01\x85\xd0\x00\xad\x30\x0a\x73\x30\xc7\x8a\xc0\xbc\x18\x02\x0b\x7a\x08\x2c\xba\x23\xb0\x14\x83\xc0\x4a\x11\x02\x6b\xed\xff\x36\x7f\xb9\x41\x04\x8e\x80\x2e\xc8\x83\x1b\xe8\x43\x34\xd8\x43\x21\x5c\x83\x56\x08\x83\x39\x78\xc0\x8a\x40\xa6\x18\x02\xa5\x7a\x08\xd4\xb9\x23\xd0\x1a\x83\xc0\x40\x11\x02\xd3\x7f\xf8\xe3\xff\x1a\x01\x76\x70\x03\x6e\x88\x86\xbd\x50\x08\x07\xa0\x15\x0e\xc3\x1c\xc8\xb1\x22\x60\x2a\x86\x80\xbb\x1e\x02\x11\xee\x08\x64\xc6\x20\x40\x2e\x42\xa0\xff\xb7\x3f\x27\x1d\xfe\xef\x85\x8e\x03\x76\x61\xa9\xb0\x54\x54\x54\x58\xec\xdf\xe0\x64\xa4\xda\x2a\xb8\xbf\xa0\x67\xc0\x61\xb1\x58\x2c\x15\x0e\x47\x85\xc1\x50\xe1\x70\xf4\x8c\xd4\x3c\x04\x02\x0f\x3b\x35\x0d\x17\x3f\x3f\x27\x35\x35\x3d\x13\xf5\x81\x9d\x2c\xdb\xf9\x08\xfc\x7b\x18\x99\xf6\xf2\x50\x33\x32\xd1\x1c\x62\xa1\xa1\xa1\x17\x3c\x48\x4b\x43\xc3\x20\x40\xc7\xb8\x8d\x46\x88\x95\x96\x96\xf6\x00\x1f\xed\x56\x61\x62\xa6\x3d\xcc\x86\xc7\xd3\x1e\xe4\xc3\xe3\xd1\x86\x30\xb1\xe0\x05\xd9
|
2017-10-28 00:11:05 +00:00
|
|
|
|
|
|
|
func faviconIcoBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_faviconIco,
|
|
|
|
"favicon.ico",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func faviconIco() (*asset, error) {
|
|
|
|
bytes, err := faviconIcoBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2017-10-28 00:27:19 +00:00
|
|
|
info := bindataFileInfo{name: "favicon.ico", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
2017-10-28 00:11:05 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
2017-10-28 00:27:19 +00:00
|
|
|
var _indexHtm = "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x7f\xdb\x36\xb6\x28\xfa\xff\xf9\x14\x12\x3b\x65\x81\x0a\x92\x49\x59\x76\x62\xca\xb0\xb6\x9b\x38\x4d\x3a\xcd\xa3\x79\xb4\x9d\x91\x35\xfd\x51\x24\x64\xb1\xa1\x48\x05\x04\xfd\xa8\xa9\xfd\xd9\xef\x0f\x2f\x12\x7c\xc8\x49\x3b\x67\xdf\x7d\xce\xbd\x7b\xd2\xb1\x48\x10\x8f\x05\x60\x61\x61\xbd\xb0\x70\xda\x7f\xfa\xfa\xc9\xfb\x7f\xbc\xb9\xe8\xad\xd9\x26\x3e\x3b\x55\x7f\x89\x1f\x9e\x9d\x6e\x08\xf3\x7b\xc1\xda\xa7\x19\x61\xd8\xfa\xf0\xfe\xd9\xf0\xb1\xa5\x52\xd7\x8c\x6d\x87\xe4\x53\x1e\x5d\x63\xeb\x49\x9a\x30\x92\xb0\xe1\xfb\xbb\x2d\xb1\x7a\x81\x7c\xc3\x16\x23\xb7\xec\x80\x57\x37\xd5\x55\xd4\x6a\x48\xfc\x0d\xc1\xd6\x75\x44\x6e\xb6\x29\x65\x46\xb9\x9b\x28\x64\x6b\x1c\x92\xeb\x28\x20\x43\xf1\x82\xa2\x24\x62\x91\x1f\x0f\xb3\xc0\x8f\x09\x76\xd1\xc6\xbf\x8d\x36\xf9\xa6\x7c\xcf\x33\x42\xc5\x8b\xbf\x8c\x09\x76\xea\x4d\xf8\xdb\x6d\x4c\x86\x9b\x74\x19\xc5\x64\x78\x43\x96\x43\x7f\xbb\x1d\x06\xfe\x96\xe7\x35\x9a\xbd\x23\x99\x75\x76\x1a\x47\xc9\xc7\x1e\x25\xb1\x2e\xc6\xd2\x3c\x58\x0f\xa3\x20\x4d\xac\xde\x9a\x92\x15\xb6\x0e\x9a\x1f\x46\xdb\xe4\xca\x3a\x3b\xcd\xd8\x5d\x4c\xce\xbe\xbd\xe7\x4d\x7c\x8c\xd8\x90\x77\x7f\x98\x45\x7f\x90\xa1\x1f\xfe\x9e\x67\xcc\x73\x1d\xe7\xeb\xe9\x70\x93\xfe\xb1\xf7\x53\xd6\xfd\x65\xb7\x4c\xc3\x3b\xc4\x47\xf2\x7e\x4d\xa2\xab\xb5\xca\x2f\x86\x46\x3e\x6e\x7c\x7a\x15\x25\x9e\x33\xdd\xfa\x61\x18\x25\x57\x9e\x33\x5d\xa6\x34\x24\xd4\x73\xa6\xab\x34\x61\xc3\x95\xbf\x89\xe2\x3b\xef\x7b\x92\x90\x6b\x1f\x3d\x27\xf1\x35\x61\x51\xe0\xa3\x73\x1a\xf9\x31\xca\xfc\x24\x1b\x66\x84\x46\x2b\x99\x9b\x03\xe0\xb9\xe3\xed\xed\x6e\xb4\x8d\xfd\x80\x6c\xf8\xec\xb2\x74\xab\x9b\x1f\x4f\xb6\xb7\xd3\x6d\x9a\x45\x2c\x4a\x13\xcf\x5f\x66\x69\x9c\x33\x32\x65\xe9\xd6\x73\xa6\x31\x59\x31\xcf\x99\x52\x91\xd3\x31\x6b\xd8\x44\xe1\x7d\x77\x29\x51\xa1\x2a\x31\x5d\xa6\x8c\xa5\x1b\x6f\xe2\x6c\x6f\x55\x65\x66\x25\xf2\xab\x86\x44\x64\x6a\xd7\xa9\xaa\x78\x08\x98\xad\x9f\x90\xf8\x5e\x8d\xe1\x51\x77\x35\x1a\xa2\x12\x44\x03\xb4\xdd\x28\xf1\xaf\xa3\x2b\x9f\xa5\x74\x78\x13\x45\x79\xaf\xd1\x51\x95\xd5\x1d\x7f\x26\x6f\xbd\x3f\x9f\xcd\x2e\xc1\xae\x57\xbe\x21\x49\xbe\xcc\x19\x4b\x93\x8e\xe1\x95\x7d\x18\x6f\x6f\x65\x2f\xb6\xb7\xd3\x20\xa7\x59\x4a\xbd\x6d\x1a\x25\x8c\xd0\x69\x90\xc6\x29\xf5\xbe\x72\x1c\x85\x2a\x37\x12\x92\x47\x8e\x33\x8d\xa3\x84\x0c\x15\x64\xce\x54\x83\xf8\x78\x7b\xab\x71\x8f\x3f\x0a\x94\xf5\xe3\xe8\x2a\xf1\x02\xc2\x6b\x34\x01\xea\x65\xd7\x57\xf7\x46\x66\xa3\x0e\x33\x9b\xb7\x4e\xaf\x09\xbd\x5f\xfa\xc1\xc7\x2b\x9a\xe6\x49\xe8\x7d\xb5\x5a\xad\x64\x8e\x5a\xea\xd3\xa7\x4f\xa7\xcb\xf4\x76\x98\xad\xfd\x30\xbd\xf1\x9c\xde\x64\x7b\xdb\xe3\x53\xd3\xfb\xea\xc9\x93\x27\xd3\x30\xca\xb6\xb1\x7f\xe7\x25\x69\x42\x3a\xe6\x53\x02\x32\x76\xf8\x6c\xff\x31\x8c\x92\x90\xdc\x7a\xae\x33\xe5\x6d\xaf\xe2\xf4\x66\x78\xe7\xf9\x39\x4b\x65\xb3\xbd\x3c\xbe\x6f\x2f\x2b\xf5\x2d\x8e\xee\xe3\x28\x63\x43\xb1\xe6\x87\xec\x6e\x4b\x54\x93\x2a\xdf\x71\x6b\x98\xcb\x82\x1d\x5d\x3d\x3c\x3c\xd4\xb3\x20\x7a\xcd\xfc\xe5\xd2\xa7\xd5\x5c\x52\x12\xfb\x2c\xba\x26\x25\xa0\xde\x3a\x0a\x43\x92\x4c\xcd\x4a\xfc\x13\xfe\xcf\x48\x1a\x46\x1b\xff\x8a\x78\x7c\x0e\x7d\x3a\xbc\xa2\x7e\x18\x91\x84\x01\x89\x3a\xe8\xab\xef\xbe\xfb\x0e\x7d\x75\x71\x71\x01\xdb\x45\x38\x21\xfa\x4b\xc5\xd2\x3f\xfe\x52\x39\x45\x30\x3f\x5f\x74\x15\xc5\x8c\x50\x6f\x4b\xd3\xab\x28\xf4\x9e\xfe\xfa\x82\x97\x7f\x4f\xfd\x24\x5b\xa5\x74\x33\x7a\x19\x05\x34\xcd\xd2\x15\x1b\x95\x75\x64\xcc\xa7\xec\x09\x1f\xdb\x8c\x51\xcc\xab\xe2\xb5\xf5\x48\x12\x56\x89\x17\xe2\x7f\x50\x8c\x7b\xc4\xc8\xe6\x5e\x63\x51\x94\x88\x05\xb0\x8c\xd3\xe0\xe3\xb4\x81\x9b\x1a\x93\xf9\x0a\x54\xb4\x76\xa8\x16\x58\x2f\x4b\xe3\x28\xec\x89\x5c\xea\x8b\x5c\x84\x6e\xf5\x2d\x3c\xe4\xff\x14\xdd\xd6\x05\x2b\x34\xeb\x89\xf5\xa1\xe0\xd1\x18\xd3\xd9\xc8\xc5\xc5\x45\x99\x71\x94\x91\x98\x04\x8c\x84\x7b\xf2\x3a\xce\xf1\xc4\x71\xaa\xec\x79\x42\x89\x1f\x36\x57\xdd\x8a\xc8\x2c\xc3\xd8\x5f\x92\xf8\xbe\x89\xc6\xfc\x4b\x10\xa7\x59\x03\x87\x9f\x3d\xe6\xff\x14\x1a\x5f\x51\x72\xd7\x22\x26\x0d\xb2\xd3\x39\xc8\x2d\x5a\x62\x0c\xc9\x61\x35\xd0\x7c\x76\xf3\x4c\xec\x50\x7a\x9f\x73\xeb\xe3\x6e\x52\x2e\x91\xad\xbd\x98\xf8\xe0\xb8\xdb\xdb\x69\xb9\x
|
2017-10-28 00:11:05 +00:00
|
|
|
|
|
|
|
func indexHtmBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_indexHtm,
|
|
|
|
"index.htm",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func indexHtm() (*asset, error) {
|
|
|
|
bytes, err := indexHtmBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2017-10-28 00:27:19 +00:00
|
|
|
info := bindataFileInfo{name: "index.htm", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
2017-10-28 00:11:05 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Asset loads and returns the asset for the given name.
|
|
|
|
// It returns an error if the asset could not be found or
|
|
|
|
// could not be loaded.
|
|
|
|
func Asset(name string) ([]byte, error) {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[cannonicalName]; ok {
|
|
|
|
a, err := f()
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
|
|
|
|
}
|
|
|
|
return a.bytes, nil
|
|
|
|
}
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
|
|
|
|
// MustAsset is like Asset but panics when Asset would return an error.
|
|
|
|
// It simplifies safe initialization of global variables.
|
|
|
|
func MustAsset(name string) []byte {
|
|
|
|
a, err := Asset(name)
|
|
|
|
if err != nil {
|
|
|
|
panic("asset: Asset(" + name + "): " + err.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetInfo loads and returns the asset info for the given name.
|
|
|
|
// It returns an error if the asset could not be found or
|
|
|
|
// could not be loaded.
|
|
|
|
func AssetInfo(name string) (os.FileInfo, error) {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[cannonicalName]; ok {
|
|
|
|
a, err := f()
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
|
|
|
|
}
|
|
|
|
return a.info, nil
|
|
|
|
}
|
|
|
|
return nil, fmt.Errorf("AssetInfo %s not found", name)
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetNames returns the names of the assets.
|
|
|
|
func AssetNames() []string {
|
|
|
|
names := make([]string, 0, len(_bindata))
|
|
|
|
for name := range _bindata {
|
|
|
|
names = append(names, name)
|
|
|
|
}
|
|
|
|
return names
|
|
|
|
}
|
|
|
|
|
|
|
|
// _bindata is a table, holding each asset generator, mapped to its name.
|
|
|
|
var _bindata = map[string]func() (*asset, error){
|
|
|
|
"apple-touch-icon.png": appleTouchIconPng,
|
|
|
|
"favicon.ico": faviconIco,
|
|
|
|
"index.htm": indexHtm,
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetDir returns the file names below a certain
|
|
|
|
// directory embedded in the file by go-bindata.
|
|
|
|
// For example if you run go-bindata on data/... and data contains the
|
|
|
|
// following hierarchy:
|
|
|
|
// data/
|
|
|
|
// foo.txt
|
|
|
|
// img/
|
|
|
|
// a.png
|
|
|
|
// b.png
|
|
|
|
// then AssetDir("data") would return []string{"foo.txt", "img"}
|
|
|
|
// AssetDir("data/img") would return []string{"a.png", "b.png"}
|
|
|
|
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
|
|
|
|
// AssetDir("") will return []string{"data"}.
|
|
|
|
func AssetDir(name string) ([]string, error) {
|
|
|
|
node := _bintree
|
|
|
|
if len(name) != 0 {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
pathList := strings.Split(cannonicalName, "/")
|
|
|
|
for _, p := range pathList {
|
|
|
|
node = node.Children[p]
|
|
|
|
if node == nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if node.Func != nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
rv := make([]string, 0, len(node.Children))
|
|
|
|
for childName := range node.Children {
|
|
|
|
rv = append(rv, childName)
|
|
|
|
}
|
|
|
|
return rv, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type bintree struct {
|
|
|
|
Func func() (*asset, error)
|
|
|
|
Children map[string]*bintree
|
|
|
|
}
|
|
|
|
var _bintree = &bintree{nil, map[string]*bintree{
|
|
|
|
"apple-touch-icon.png": &bintree{appleTouchIconPng, map[string]*bintree{}},
|
|
|
|
"favicon.ico": &bintree{faviconIco, map[string]*bintree{}},
|
|
|
|
"index.htm": &bintree{indexHtm, map[string]*bintree{}},
|
|
|
|
}}
|
|
|
|
|
|
|
|
// RestoreAsset restores an asset under the given directory
|
|
|
|
func RestoreAsset(dir, name string) error {
|
|
|
|
data, err := Asset(name)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
info, err := AssetInfo(name)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// RestoreAssets restores an asset under the given directory recursively
|
|
|
|
func RestoreAssets(dir, name string) error {
|
|
|
|
children, err := AssetDir(name)
|
|
|
|
// File
|
|
|
|
if err != nil {
|
|
|
|
return RestoreAsset(dir, name)
|
|
|
|
}
|
|
|
|
// Dir
|
|
|
|
for _, child := range children {
|
|
|
|
err = RestoreAssets(dir, filepath.Join(name, child))
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func _filePath(dir, name string) string {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
|
|
|
|
}
|
|
|
|
|