284 lines
47 KiB
Go
284 lines
47 KiB
Go
|
// Code generated by go-bindata.
|
||
|
// sources:
|
||
|
// data/3dgrid125.json
|
||
|
// data/net100.json
|
||
|
// data/net300.json
|
||
|
// DO NOT EDIT!
|
||
|
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"compress/gzip"
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"io/ioutil"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
"strings"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func bindataRead(data []byte, name string) ([]byte, error) {
|
||
|
gz, err := gzip.NewReader(bytes.NewBuffer(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
|
||
|
}
|
||
|
|
||
|
var _data3dgrid125Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x9c\xc1\x6a\xdd\x48\x17\x84\xf7\xf7\x29\xc4\x5d\x7b\xa1\x96\xd4\x52\x2b\xeb\xff\x2d\x7e\xb2\x08\xb1\x09\x97\x09\xf6\x60\x7b\x60\x20\xe4\xdd\x87\x78\x98\xd8\x8b\xaa\xfa\x9a\xde\x04\x62\xf1\x05\x5c\x7d\xba\x54\xad\x3e\x27\x3f\x2e\xd3\x74\xbd\x7f\x78\xf9\xfa\x7c\xfb\xf3\xf5\xf6\xf4\x78\xfd\x34\x5d\xd7\xff\x4d\xf5\xef\x3a\x7d\x7b\xbe\xdd\xdf\x4d\x65\xa9\xd3\xe3\xd3\xfd\xc3\xcb\x74\x7b\x9c\x5e\x9f\x5e\xbf\x7c\xbf\xde\xfd\x62\xde\x7e\x76\xfd\x34\xfd\xff\x32\x4d\xd3\xf4\xe3\xed\xcf\x69\xba\xde\xee\x7f\xfd\x0b\xf3\xf5\xed\xef\x3f\xef\xd4\xc3\x92\x1e\x2e\xe9\xe1\x9a\x1e\x6e\xe9\x61\x4d\x0f\xf7\xf4\xf0\x48\x0f\x5b\x7a\x78\x46\x11\xb2\x44\x51\xa3\x12\x45\x2a\x51\xa5\x12\x65\x2a\x51\xa7\x12\x85\x2a\x51\xa9\x12\xa5\x2a\x51\xab\x25\x6a\xb5\xe4\x7a\x8a\x5a\x2d\x51\xab\x25\x6a\xb5\x44\xad\x96\xa8\xd5\x12\xb5\x5a\xa2\x56\x4b\xd4\x6a\x8d\x5a\xad\x51\xab\x35\x6f\xbe\xa8\xd5\x1a\xb5\x5a\xa3\x56\x6b\xd4\x6a\x8d\x5a\xad\x51\xab\x35\x6a\xb5\x45\xad\xb6\xa8\xd5\x16\xb5\xda\xb2\x53\x45\xad\xb6\xa8\xd5\x16\xb5\xda\xa2\x56\x5b\xd4\x6a\x8b\x5a\xd5\xa8\x55\x8d\x5a\xd5\xa8\x55\x8d\x5a\xd5\x6c\xeb\x51\xab\x1a\xb5\xaa\x51\xab\x1a\xb5\xaa\x51\xab\x3d\x6a\xb5\x47\xad\xf6\xa8\xd5\x1e\xb5\xda\xa3\x56\x7b\x7e\x07\x46\xad\xf6\xa8\xd5\x1e\xb5\xda\xa3\x56\x47\xd4\xea\x88\x5a\x1d\x51\xab\x23\x6a\x75\x44\xad\x8e\xa8\xd5\x91\x03\x43\xd4\xea\x88\x5a\x1d\x51\xab\x16\xb5\x6a\x51\xab\x16\xb5\x6a\x51\xab\x16\xb5\x6a\x51\xab\x16\xb5\x6a\x39\x5d\x45\xad\x5a\xd4\xea\x8c\x5a\x9d\x51\xab\x33\x6a\x75\x46\xad\xce\xa8\xd5\x19\xb5\x3a\xa3\x56\x67\xd4\xea\xcc\x51\x14\xb2\x68\x0e\xa3\x73\x4e\xa3\x73\x8e\xa3\x73\xce\xa3\x73\x0e\xa4\x73\x4e\xa4\x73\x8e\xa4\x73\xce\xa4\x73\x0e\xa5\x73\x56\x8d\x22\x7c\x56\x0d\x42\x3c\xa4\x78\x88\xf1\x90\xe3\x21\xc8\x43\x92\x87\x28\x9f\xb3\x7c\xc9\x61\xbe\xe4\x34\x5f\x72\x9c\x2f\x39\xcf\x97\xdf\x81\xfe\x32\x4d\x9f\xdf\x4e\xb1\xdf\x6f\x8f\x7f\x88\x53\xec\xcb\xd3\x5f\xcf\x5f\x1f\xfe\x3d\xac\xde\xfd\xf7\xc3\xd7\x2f\xcf\xdf\x1e\x5e\xc3\xf1\xf6\x9d\x5a\x14\x65\x7e\xb3\x77\x6a\x55\x94\xf9\x85\xdf\xa9\x4d\x51\x46\x87\x77\xaa\x0e\xfd\x5e\xbb\xa2\x4c\xad\x01\x85\x6a\x1c\x8a\x32\x85\x0b\x14\x6a\xd8\x14\x65\x76\x01\x50\xa8\xfc\xa9\x28\xb3\xa5\x80\x32\x26\xf0\xa1\x7a\xe7\xa1\x05\x2b\xb2\xea\x9d\xdf\x11\x87\x6b\x56\xf4\x76\xc1\x0a\xd1\x1c\x2e\x5b\x91\xfb\xcc\xf9\x31\x71\xb8\x72\x45\x6e\x50\xe7\xef\xc4\x19\x73\xfd\x80\xc9\x9d\xdd\xb1\x76\x7a\x97\x72\xad\x68\x8e\x17\x4f\xee\x54\xf7\x66\x42\x8e\x57\x4f\xee\x56\xf7\xaa\x43\x8e\x97\x4f\xee\x58\xf7\xee\x44\x0e\xb7\xfa\x22\xb7\x3a\xaf\xdf\x22\xf7\xac\x7b\x4b\x13\xc7\xeb\xb7\xc8\x4d\xeb\x5e\xfb\xc4\xf1\xfa\x2d\xfa\xad\x8a\xf5\xa2\x39\x5e\xbf\x45\x6e\x5b\x17\x4c\x88\x73\x61\xea\x03\x37\xf6\x26\x5f\xe4\xb6\x75\xdf\x34\x89\xe3\xd5\xd3\xef\x65\xae\x96\xb1\xf7\xf9\x22\x37\xad\xfb\xea\x4a\x1c\xaf\x9d\xdc\xb3\xee\x33\x2e\x71\xb8\xd5\x57\xb9\xd5\x79\xed\x34\xc7\x98\xdc\xe9\xee\x43\x33\x71\xbc\xe6\x9a\x63\x4c\x1a\x84\xfb\xe2\x4d\x1c\xd7\x8a\xe6\x18\x93\xbe\xe2\x3e\xbd\x13\xc7\x35\xa6\x39\xc6\xf4\xb1\x02\xb7\x82\xe6\xdc\x9d\x05\x71\x8c\x49\xf7\xeb\xa8\xcd\xc1\x94\xb4\x4a\xfb\x73\xd7\x1b\xc8\x71\x71\x0e\xa6\xab\x55\xfa\xa6\xbb\x68\x41\x8e\xab\x73\x30\x95\xad\xda\x70\x79\x17\x69\x8e\xcb\x73\x30\xcd\xad\xd2\xa9\xdd\xe5\x13\x72\x6c\xf1\x83\x29\x70\x93\x16\xcf\xf5\xa9\x39\x4e\x8f\x9b\xf4\x6a\x77\xb1\x46\x1c\xd7\xa7\xe6\x38\x75\x6e\xd2\xac\xdd\x15\x1f\x71\x5c\x9f\x9a\xe3\xb4\xba\x49\xb7\x76\x97\x8d\xc4\x71\x7d\x6a\x8e\x53\xee\x26\xed\xda\x5d\x7b\x12\xe7\xae\x69\x89\xe3\x74\xbc\x49\x9f\xef\xa8\x4f\xc9\xf1\xa9\x68\x93\x7e\xed\xae\x74\x91\xe3\xfa\xd4\x31\x9e\x39\xe9\xd7\xee\x72\x19\x39\xae\x4f\x9d\xe3\x99\x93\x7e\xed\xae\xb9\x91\xe3\xfa\xd4\x07\x07\xe6\x74\x92\xe7\x7d\xa4\x39\xf6\x79\x7d\xe2\x40\xae\x0e\x1e\x1d\xaa\xf4\x5d\xd7\x14\x40\x1c\x9f\x01\xaa\xf4\x4f\xd7\x66\x40\x1c\x87\xf9\x2a\x7d\xd0\x35\x2e\x10\xc7\xa9\xbc\x4a\x3f\x73\xad\x10\xc4\x71\xbc\xae\xd2\xcf\x3a\xd6\x6f\x30\x5f\x57\x7d\x53\xc0\x75\xa6\x39\x5e\xf7\xc1\x7c\x5d\xa5\x2f\xb9\xc6\x11\xe4\xb8\x5e\x06\xf3\x75\x95\xbe\xe4\x5a\x58\x90\xe3\x3a\x1b\xcc\xd7\x55\xfa\x92\x6b\xa6\x41\x8e\xfd\x6c\x30\x5f\xef\x
|
||
|
|
||
|
func data3dgrid125JsonBytes() ([]byte, error) {
|
||
|
return bindataRead(
|
||
|
_data3dgrid125Json,
|
||
|
"data/3dgrid125.json",
|
||
|
)
|
||
|
}
|
||
|
|
||
|
func data3dgrid125Json() (*asset, error) {
|
||
|
bytes, err := data3dgrid125JsonBytes()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
info := bindataFileInfo{name: "data/3dgrid125.json", size: 20718, mode: os.FileMode(420), modTime: time.Unix(1537280754, 0)}
|
||
|
a := &asset{bytes: bytes, info: info}
|
||
|
return a, nil
|
||
|
}
|
||
|
|
||
|
var _dataNet100Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x9d\xbd\x6e\x1d\x37\x10\x46\x7b\x3d\xc5\xe2\xd6\x82\x71\xf7\x7f\xd7\x8f\x91\x36\x70\x21\x48\x17\xb6\x90\xe4\x4a\x90\x14\xa4\x30\xfc\xee\x81\x04\x38\x45\xb0\xe3\x33\x87\x98\xc6\x8d\xd6\x07\x24\xbf\x59\xee\xc7\xe1\x90\xf7\xfb\x4d\xd7\x9d\x1e\x2e\xaf\xf7\x2f\x8f\xcf\x6f\x8f\x4f\xd7\xd3\xe7\xee\xf4\xdb\xdd\xf5\xe1\xe9\xaf\xee\xeb\xcb\xdd\xf3\xb7\xee\x9f\xc7\xb7\x6f\x5d\x7f\x3e\x77\xd7\xa7\x87\xcb\xeb\x6d\x37\x75\xcf\xc3\x73\x77\xff\x74\xbd\x5e\xee\xdf\xff\xc3\x6b\x77\xb9\xbb\xff\x76\xba\x7d\xe7\x7c\x3c\x72\xfa\xdc\xfd\x7e\xd3\x75\x5d\xf7\xfd\xe3\xdf\xae\x3b\x3d\x3e\xbc\x53\xfb\x7d\xf8\xd4\x2f\xdb\xa7\xfe\xd3\x70\xfa\xf8\xcb\x8f\xdb\x5f\x3f\x36\xe6\x1e\x9b\x72\x8f\xcd\xb9\xc7\x96\xdc\x63\x6b\xee\xb1\x2d\xf7\xd8\x9e\x7b\xac\x3f\x27\x9f\xeb\x93\xcf\x25\x85\xe8\x93\x4a\xf4\x49\x29\xfa\xa4\x16\x7d\x52\x8c\x3e\xa9\x46\x9f\x94\xa3\x4f\xea\x31\x24\xf5\x18\x92\x7a\x0c\x49\x3d\x86\xa4\x1e\x43\x52\x8f\x21\xa9\xc7\x90\xd4\x63\x48\xea\x31\x24\xf5\x18\x92\x7a\x8c\x49\x3d\xc6\xa4\x1e\x63\x76\xa2\x4a\xea\x31\x26\xf5\x18\x93\x7a\x8c\x49\x3d\xc6\xa4\x1e\x63\x52\x8f\x31\xa9\xc7\x94\xd4\x63\x4a\xea\x31\x25\xf5\x98\xb2\x5f\x8e\xa4\x1e\x53\x52\x8f\x29\xa9\xc7\x94\xd4\x63\x4a\xea\x31\x25\xf5\x98\x93\x7a\xcc\x49\x3d\xe6\xa4\x1e\x73\x52\x8f\x39\xfb\x29\x4f\xea\x31\x27\xf5\x98\x93\x7a\xcc\x49\x3d\xe6\xa4\x1e\x4b\x52\x8f\x25\xa9\xc7\x92\xd4\x63\x49\xea\xb1\x24\xf5\x58\xb2\xde\x2a\xa9\xc7\x92\xd4\x63\x49\xea\xb1\x24\xf5\x58\x93\x7a\xac\x49\x3d\xd6\xa4\x1e\x6b\x52\x8f\x35\xa9\xc7\x9a\xd4\x63\xcd\x9a\xdd\xa4\x1e\x6b\x52\x8f\x35\xa9\xc7\x96\xd4\x63\x4b\xea\xb1\x25\xf5\xd8\x92\x7a\x6c\x49\x3d\xb6\xa4\x1e\x5b\x52\x8f\x2d\xbb\xfa\x48\xea\xb1\x25\xf5\xd8\x93\x7a\xec\x49\x3d\xf6\xa4\x1e\x7b\x52\x8f\x3d\xa9\xc7\x9e\xd4\x63\x4f\xea\xb1\x27\xf5\xd8\xb3\xcb\xc1\xf4\x7a\x30\xbb\x20\x3c\xff\x54\xe4\xa6\xeb\xbe\x7c\x2c\xd5\xff\x7c\xbc\xfe\x71\xb0\x54\x7f\x7d\xfa\xfb\xe5\xfe\xf2\xff\xe5\xfa\xed\xcf\x3f\xbf\xdd\xbd\x7c\xbd\xbc\xe5\x56\x0f\x0d\xa8\xe8\x85\x6f\x69\x55\x10\x5b\x0d\xa8\xc8\x5e\x1d\xa1\xc6\x5f\xa3\xa2\x95\x6f\x0b\x2a\x08\xba\x06\x54\x61\xff\x04\x6a\x82\x46\x05\x2f\x5f\x03\x2a\x78\xed\x1a\x48\x91\x13\x6b\xe9\x9f\x88\xf5\x19\x62\x3d\x98\x1f\x1b\x50\x51\xaa\xa7\x01\x15\xb9\xae\x96\x56\x09\xd4\x02\x63\x25\x86\x1d\x50\xd1\xf2\xb6\x01\x15\x39\xb1\x16\x54\x9e\xb4\xd6\x35\x0a\x50\x62\x32\x06\x52\x94\x43\x69\x40\x45\xe9\xcf\x23\xd4\x06\x28\x31\x2f\x00\xca\xcc\x0b\xd4\x2a\x31\xf1\x01\x2a\x4a\xad\x1d\xa1\x76\x88\x05\x11\x56\x80\x8a\x16\x26\x2d\xad\x12\x71\x05\xa8\x28\xdd\x71\x84\xea\xcf\x65\x6f\x33\xa1\x8c\x4f\x23\x56\x94\x19\x6d\x61\x45\x59\xb3\x43\x56\x5f\x67\x20\x89\x15\x65\x49\x5a\x58\xd1\xce\x48\x53\x1f\x4d\xbb\xc0\xda\xaa\x3e\x02\xcb\x18\x36\x62\x45\x2b\xeb\x26\x96\xe9\x23\xf8\xdb\x28\x23\xdb\xc2\xaa\x6c\x97\x99\xe9\x89\x15\x65\x43\x0f\x59\xe4\xbc\x8d\x8e\xc0\x8a\xb2\xd7\x4d\xed\x32\x63\x4f\x46\x5e\xa0\xc8\x32\x9b\x29\x9a\x58\x66\x8a\x06\x56\xb4\xf1\xd2\xc2\x32\xc3\x05\x56\x37\xda\xd7\x6a\x61\x99\x35\x14\xb1\x8c\x85\xc3\x76\x99\x90\x20\x17\x6e\x66\x09\x60\x45\x39\xb4\x16\x56\xb4\x5f\xd2\xc2\x32\x46\xb5\x07\xd3\xab\x9c\x09\xd9\x7a\xb1\x42\x20\x56\xb4\xff\xd5\xc2\x8a\x72\xf1\x87\x2c\x30\xbe\x26\x51\x46\x2c\xf5\xe5\x00\x56\x94\x67\x6e\x61\x45\x7b\x35\x87\x79\x45\x70\xbe\x26\x9b\x44\x2c\x95\x3a\xa5\x95\x42\x1d\xca\x8c\x16\xf8\xde\xa8\xca\xa2\x85\x65\x7c\x2f\xb1\x54\x44\x50\xbb\xcc\xd0\x83\xef\x8d\x76\xbf\x5b\x58\xe6\x8b\x46\xac\xa8\x7a\xa4\x85\x15\xed\x14\x1f\xb2\xc0\xf7\x46\x55\x4b\x2d\xac\x68\x27\xaa\x85\x15\x55\xb3\xb4\xb0\xa2\x1d\xd0\x43\x16\xe5\xc2\x4d\x7c\x01\xcb\x7c\x39\x90\x65\xc6\x1e\x58\x26\x45\x38\x80\xf1\x8d\xaa\xab\x5a\x58\xd1\x4e\x7b\x0b\xcb\x6c\xdf\x81\x59\x8d\x0a\x78\x5a\x58\x6a\x03\x8f\x32\xf5\xe6\x43\x0b\xac\xa8\x68\xe7\x90\x05\x66\x35\x2a\x60\x69\x61\x19\x73\x4f\xac\x68\x43\xbb\x85\xa5\x5e\x6d\x32\xbe\xa6\x5d\xc0\x32\xb3\x17\xad\x13\x4c\x78\x51\xb3\x4c\xbb\xc8\x8f\x9b\xd7\x91\x3c\xb4\xf9\x0a\x01\xcb\xec\x82\x13\xcb\x7c\xd1\x46\x30\xab\xc6\x31\x11\xcb\xec\x7e\x12\xcb\xec\xf4\x53\xb2\xdd\x0c\x17\x98\x55\x13\xf6\xc4\x32\x1b\x68\xd8\x2e\x33\xf4\xc4\x12\xb3\xea\x48\x25\x29\xe2\
|
||
|
|
||
|
func dataNet100JsonBytes() ([]byte, error) {
|
||
|
return bindataRead(
|
||
|
_dataNet100Json,
|
||
|
"data/net100.json",
|
||
|
)
|
||
|
}
|
||
|
|
||
|
func dataNet100Json() (*asset, error) {
|
||
|
bytes, err := dataNet100JsonBytes()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
info := bindataFileInfo{name: "data/net100.json", size: 33079, mode: os.FileMode(420), modTime: time.Unix(1537280754, 0)}
|
||
|
a := &asset{bytes: bytes, info: info}
|
||
|
return a, nil
|
||
|
}
|
||
|
|
||
|
var _dataNet300Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x9d\xcf\xaa\x1c\xc9\x73\x46\xf7\x7a\x8a\xe6\xae\x45\xd3\x19\xfd\x7f\x1e\xc3\x5b\x33\x0b\x21\x89\x19\x61\x5b\x12\x92\x8c\x17\xc3\xbc\xbb\xb9\xd7\x0c\x86\x1f\x95\x75\xbe\x93\xc4\x46\x9b\xdb\x3a\x44\x55\x66\x65\x46\x44\x46\xc6\xf7\xd7\xbb\xc3\xe1\xe5\xd3\xe7\x9f\x1f\x7f\x7c\xf9\xfe\xeb\xcb\xb7\xaf\x2f\xbf\x1d\x5e\xfe\xed\xc3\xd7\x4f\xdf\xfe\xeb\xf0\xc7\x8f\x0f\xdf\xff\x3c\xfc\xcf\x97\x5f\x7f\x1e\xce\xa7\xd3\xe1\xeb\xb7\x4f\x9f\x7f\xbe\x3f\x5c\x0e\xdf\xeb\xfb\xe1\xe3\xb7\xaf\x5f\x3f\x7f\x7c\xfd\x0f\x3f\x0f\x9f\x3f\x7c\xfc\xf3\xe5\xfd\x2b\xe7\xed\x27\x2f\xbf\x1d\xfe\xfd\xdd\xe1\x70\x38\xfc\xf5\xf6\xef\xe1\xf0\xf2\xe5\xd3\x2b\x75\x3c\xeb\x38\x6e\x8f\xe3\x38\xd6\xcb\xdb\x5f\xfe\x7e\xbf\xff\xb3\x73\xf6\xb3\x4b\xf6\xb3\x6b\xf6\xb3\x5b\xf6\xb3\x7b\xf6\xb3\x47\xf6\xb3\x67\xf6\xb3\x71\x0a\x7f\x37\xc2\xdf\x85\x03\x31\xc2\x91\x18\xe1\x50\x8c\x70\x2c\x46\x38\x18\x23\x1c\x8d\x11\x0e\xc7\x08\xc7\xa3\xc2\xf1\xa8\x70\x3c\x2a\x1c\x8f\x0a\xc7\xa3\xc2\xf1\xa8\x70\x3c\x2a\x1c\x8f\x0a\xc7\xa3\xc2\xf1\xa8\x70\x3c\xce\xe1\x78\x9c\xc3\xf1\x38\xa7\x0b\x55\x38\x1e\xe7\x70\x3c\xce\xe1\x78\x9c\xc3\xf1\x38\x87\xe3\x71\x0e\xc7\xe3\x1c\x8e\xc7\x25\x1c\x8f\x4b\x38\x1e\x97\x70\x3c\x2e\xe9\xce\x11\x8e\xc7\x25\x1c\x8f\x4b\x38\x1e\x97\x70\x3c\x2e\xe1\x78\x5c\xc2\xf1\xb8\x86\xe3\x71\x0d\xc7\xe3\x1a\x8e\xc7\x35\x1c\x8f\x6b\xba\x95\x87\xe3\x71\x0d\xc7\xe3\x1a\x8e\xc7\x35\x1c\x8f\x6b\x38\x1e\xb7\x70\x3c\x6e\xe1\x78\xdc\xc2\xf1\xb8\x85\xe3\x71\x0b\xc7\xe3\x96\xfa\x56\xe1\x78\xdc\xc2\xf1\xb8\x85\xe3\x71\x0b\xc7\xe3\x1e\x8e\xc7\x3d\x1c\x8f\x7b\x38\x1e\xf7\x70\x3c\xee\xe1\x78\xdc\xc3\xf1\xb8\xa7\xce\x6e\x38\x1e\xf7\x70\x3c\xee\xe1\x78\x3c\xc2\xf1\x78\x84\xe3\xf1\x08\xc7\xe3\x11\x8e\xc7\x23\x1c\x8f\x47\x38\x1e\x8f\x70\x3c\x1e\x69\xf4\x11\x8e\xc7\x23\x1c\x8f\x67\x38\x1e\xcf\x70\x3c\x9e\xe1\x78\x3c\xc3\xf1\x78\x86\xe3\xf1\x0c\xc7\xe3\x19\x8e\xc7\x33\x1c\x8f\x67\x1a\x0e\xc6\xf1\x60\x1a\x10\x9e\xd2\x88\xf0\x94\x86\x84\xa7\x34\x26\x3c\xa5\x41\xe1\x29\x8d\x0a\x4f\x69\x58\x78\x4a\xe3\xc2\x53\x1a\x18\x9e\xd2\x91\xc9\x43\xf5\x74\x64\xe2\x60\x3d\x8e\xd6\xe3\x70\x3d\x8e\xd7\xe3\x80\x3d\x8e\xd8\xe3\x90\x3d\x8d\xd9\x47\x1a\xb4\x8f\x34\x6a\x1f\x69\xd8\x3e\xd2\xb8\x7d\xa4\x81\xfb\x48\x23\xf7\x91\x86\xee\x23\x8d\xdd\x47\x1a\xbc\x8f\x34\x7a\x1f\x69\xf8\x3e\xd2\xf8\x7d\xa4\x01\xfc\x48\x23\xf8\x91\x86\xf0\x23\x8d\xe1\x47\x1a\xc4\x8f\x34\x8a\x1f\x69\x18\x3f\xd2\x38\x7e\xa4\x81\xfc\x48\x23\xf9\x91\x86\xf2\x23\x8d\xe5\x47\x1a\xcc\x8f\x34\x9a\x1f\x69\x38\x3f\xd2\x78\x7e\xa4\x01\xfd\x48\x23\xfa\x91\x86\xf4\x23\x8d\xe9\x47\x1a\xd4\x8f\x34\xaa\x1f\x69\x58\x3f\xd2\xb8\x7e\xa4\x81\xfd\x48\x23\xfb\x91\x86\xf6\x23\x8d\xed\x47\x1a\xdc\x8f\x34\xba\x1f\x69\x78\x3f\xd2\xf8\x7e\xa4\x01\xfe\x48\x23\xfc\x91\x86\xf8\x23\x8d\xf1\x47\x1a\xe4\x8f\x34\xca\x1f\x69\x98\x3f\xd2\x38\x7f\xa4\x81\xfe\x48\x23\xfd\x91\x86\xfa\x23\x8d\xf5\x47\x1a\xec\x8f\x34\xda\x1f\x69\xb8\x3f\xd2\x78\x7f\xa4\x01\xff\x48\x23\xfe\x91\x86\xfc\x23\x8d\xf9\x47\x1a\xf4\x8f\x34\xea\x1f\x69\xd8\x3f\xd2\xb8\x7f\xa4\x81\xff\x48\x23\xff\x91\x86\xfe\x23\x8d\xfd\x47\x1a\xfc\x8f\x34\xfa\x1f\x69\xf8\x3f\xd2\xf8\x7f\xa4\x09\x80\x91\x66\x00\x46\x9a\x02\x18\x69\x0e\xa0\xd2\x1c\x40\xa5\x39\x80\x4a\x73\x00\x95\xe6\x00\x2a\xcd\x01\x54\x9a\x03\xa8\x34\x07\x50\x69\x0e\xa0\xd2\x1c\x40\xa5\x39\x80\x4a\x73\x00\x95\xe6\x00\x2a\xcd\x01\x54\x9a\x03\xa8\x34\x07\x50\x69\x0e\xa0\xd2\x1c\x40\xa5\x39\x80\x4a\x73\x00\x15\x9f\xdb\xc7\x07\xf7\xf9\xc9\x7d\x3a\x32\xf1\xd9\x7d\x7c\x78\x1f\x9f\xde\xc7\xc7\xf7\xf1\xf9\x7d\x7c\x80\x9f\xe6\x00\x2a\xcd\x01\x54\x9a\x03\xa8\x34\x07\x50\x69\x0e\xa0\xd2\x1c\x40\xa5\x39\x80\x4a\x73\x00\x95\xe6\x00\x2a\xcd\x01\x54\x9a\x03\xa8\x34\x07\x50\x69\x0e\xa0\xd2\x1c\x40\xa5\x39\x80\x4a\x73\x00\x95\xe6\x00\x2a\xcd\x01\x54\x9a\x03\xa8\x34\x07\x50\x69\x0e\xa0\xd2\x1c\x40\xa5\x39\x80\x4a\x73\x00\x95\xe6\x00\x2a\xcd\x01\x54\x96\x03\xa8\x63\xf4\xcc\x75\x8c\x9e\xb8\xb2\x8a\xc4\xca\x2a\x12\x2b\xab\x48\xac\xac\x22\xb1\xb2\x8a\xc4\xca\x2a\x12\x2b\xab\x48\xac\xac\x22\xb1\xc2\x8a\xc4\x0a\x2b\x12\x2b\xac\x48\xac\xb0\x22\xb1\xc2\x8a\xc4\x0a\x2b\x12\x2b\xac\x48\xac\xb0\x22\xb1\xc2\
|
||
|
|
||
|
func dataNet300JsonBytes() ([]byte, error) {
|
||
|
return bindataRead(
|
||
|
_dataNet300Json,
|
||
|
"data/net300.json",
|
||
|
)
|
||
|
}
|
||
|
|
||
|
func dataNet300Json() (*asset, error) {
|
||
|
bytes, err := dataNet300JsonBytes()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
info := bindataFileInfo{name: "data/net300.json", size: 103393, mode: os.FileMode(420), modTime: time.Unix(1537280754, 0)}
|
||
|
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){
|
||
|
"data/3dgrid125.json": data3dgrid125Json,
|
||
|
"data/net100.json": dataNet100Json,
|
||
|
"data/net300.json": dataNet300Json,
|
||
|
}
|
||
|
|
||
|
// 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{
|
||
|
"data": &bintree{nil, map[string]*bintree{
|
||
|
"3dgrid125.json": &bintree{data3dgrid125Json, map[string]*bintree{}},
|
||
|
"net100.json": &bintree{dataNet100Json, map[string]*bintree{}},
|
||
|
"net300.json": &bintree{dataNet300Json, 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, "/")...)...)
|
||
|
}
|
||
|
|