package static

import (
	"bytes"
	"compress/gzip"
	"crypto/sha256"
	"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: %w", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	clErr := gz.Close()

	if err != nil {
		return nil, fmt.Errorf("read %q: %w", name, err)
	}
	if clErr != nil {
		return nil, err
	}

	return buf.Bytes(), nil
}

type asset struct {
	bytes  []byte
	info   os.FileInfo
	digest [sha256.Size]byte
}

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 _graphiqlHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x54\x4f\x6f\x13\x3f\x10\x3d\x6f\x3e\x85\x7f\x96\x7e\xd2\x46\x2a\x76\x52\x24\x0e\x9b\x4d\x0e\xd0\xaa\x02\x15\x4a\x81\x0b\x47\xd7\x9e\x5d\x3b\x78\xed\xed\xd8\x9b\x36\xaa\xf2\xdd\x91\xf7\x4f\x28\x7f\x2a\x21\x04\x17\xaf\x3d\x7e\xf3\xde\xf3\xcc\x68\xcb\xff\xce\xae\x5e\x7d\xfa\xfc\xfe\x9c\xe8\xd8\xd8\xcd\xac\x1c\x3e\x59\xa9\x41\xa8\xcd\x2c\xcb\x4a\x6b\xdc\x17\x82\x60\xd7\x34\xc4\xbd\x85\xa0\x01\x22\x25\x1a\xa1\x5a\x53\x1d\x63\x1b\x0a\xce\xa5\x72\xdb\xc0\xa4\xf5\x9d\xaa\xac\x40\x60\xd2\x37\x5c\x6c\xc5\x3d\xb7\xe6\x26\xf0\x1a\x45\xab\xcd\xad\xe5\x0b\xb6\x5c\xb2\xe5\xf2\x18\x60\x32\x04\xca\x7b\x99\x20\xd1\xb4\x91\x04\x94\xbf\x4d\x5b\x41\x94\x9a\x9f\xb2\x05\x7b\x3e\xec\x59\x63\x1c\xdb\x06\xba\x29\xf9\x40\xf7\xa7\xcc\x08\x42\x46\xbe\x7c\xc1\x4e\xd9\x82\x77\x8d\x1a\x02\xac\x45\xaf\x3a\x19\x8d\x77\x7f\x57\xe9\x99\xf2\xcd\x4f\x6a\x29\xf8\x2f\x14\x9f\x6e\xc6\x2f\x14\x4a\x3e\xce\x41\x79\xe3\xd5\x9e\xf4\x13\xb0\xa6\x77\x46\x45\x5d\x90\xe5\x62\xf1\xff\x8a\x68\x30\xb5\x8e\xd3\xa9\x11\x58\x1b\x57\x90\xc5\x8a\xf8\x1d\x60\x65\xfd\x5d\x41\xb4\x51\x0a\xdc\x8a\xf6\x96\x95\xd9\x11\xa3\xd6\x74\x92\xa5\x13\xeb\x23\xa2\x9d\x5e\xd1\xcd\xa5\x17\xca\xb8\x9a\x31\x56\x72\x65\x76\x8f\xde\x9b\xb6\x59\xd5\xb9\xbe\x30\xa4\x6f\xfd\xc5\xf5\x65\xde\x0a\x14\x4d\x98\x93\x87\x74\x9d\x21\xc4\x0e\xc7\xdb\x9c\x0e\xaf\xbc\xb5\xf4\x64\xbc\xce\x1a\x88\xda\xab\x82\xd0\xd6\x87\x48\x4f\x86\x60\x7a\x65\x41\xde\x7c\xbc\x7a\xc7\x42\x44\xe3\x6a\x53\xed\x27\xde\x11\x22\x11\x14\xb8\x68\x84\x0d\x05\xa1\xc6\x49\xdb\x29\x18\xf3\x0f\x73\x16\x35\xb8\xfc\xe8\x2d\x47\x08\xed\xe4\x68\xb2\x94\x62\x2c\xc2\x7d\xcc\xe7\xab\x27\xd2\x92\x8f\x63\x5a\xc4\xfd\xb4\x9d\x28\x7a\x87\xad\xc0\x00\x03\x74\xe0\xc9\x0e\x44\x8a\x28\x35\xc9\x01\xd1\xe3\xfc\xc7\xac\x04\x9d\x90\xa3\x70\x7f\x3c\xcc\xd2\xfa\x21\x4d\xdd\xd9\xd5\x5b\x86\xe0\x14\x60\xde\x23\xfa\x20\x93\x08\x22\xc2\xb9\x85\x06\x5c\xcc\x2f\xfa\xce\x5d\x5f\x9e\x90\x87\xbe\xba\x80\xc5\xb1\x09\x87\xb1\x4c\xca\xcb\x2e\x81\x59\x0d\x71\xcc\x7b\xb9\x7f\xad\xf2\x6f\x6d\x9f\x27\x5c\x5a\xbe\x1b\xb7\x64\x71\x33\x2b\xf9\xf0\x1b\xfa\x1a\x00\x00\xff\xff\xdb\x8e\x2c\x18\x9e\x04\x00\x00")

func graphiqlHtmlBytes() ([]byte, error) {
	return bindataRead(
		_graphiqlHtml,
		"graphiql.html",
	)
}

func graphiqlHtml() (*asset, error) {
	bytes, err := graphiqlHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "graphiql.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x76, 0x8, 0xb4, 0x3a, 0xe7, 0xdb, 0xc8, 0x3d, 0x2d, 0x1f, 0x1c, 0x2d, 0xd3, 0x9b, 0xf2, 0xd8, 0xe5, 0xd6, 0x5f, 0x3a, 0x7c, 0x6d, 0x80, 0xf7, 0x40, 0xdc, 0x58, 0xf1, 0x75, 0xbd, 0xf0, 0xa1}}
	return a, nil
}

var _schemaGql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x54\x51\x6f\xe3\x36\x0c\x7e\xb6\x7f\x05\xdb\x7b\x69\x81\x21\x0f\xc3\x9e\x8c\x6d\x40\xda\x6e\x58\xb1\xcb\xed\x76\x69\x87\x01\x41\x31\x30\x16\xe3\x10\x91\x25\x1f\x25\xa5\x0d\x0e\xfd\xef\x83\xe4\x24\x95\xe3\xb6\xc0\x9e\xf7\x64\xf3\x23\x3f\x8a\xfa\x44\xd2\xd5\x6b\x6a\x11\xbe\x95\xc5\xd7\x40\xb2\xab\xa0\xf8\x33\x7e\xcb\xe7\xb2\xf4\xbb\x8e\x20\x59\xd1\xfd\x01\x84\xbc\x30\x6d\x09\x50\x6b\xd8\xa2\x66\x85\x9e\x14\xa0\x73\xe4\x1d\x58\x03\x7e\x4d\x30\xf7\xa4\x35\x0a\x18\xf2\x8f\x56\x36\x93\xb2\xe8\xfd\x15\x2c\xa6\xf1\xe7\xec\xe1\xac\x7c\x27\x19\x3b\x17\x48\xde\xc9\xb6\x0f\xa8\x60\x71\x9b\xfe\x46\xf9\xbc\xa0\x22\x70\x1e\xbd\x83\x95\xd8\x36\xe5\xd1\xe8\x3c\xfc\x68\x42\xfb\x9b\x0d\xe2\xa6\x8d\xfd\x19\xd6\xf1\x2f\x32\x2f\x14\xad\x30\x68\x0f\x3f\xc1\xf7\x3f\xf4\xf0\xe5\x04\x6c\xe7\xd9\x1a\xd4\x7a\x07\x9d\xd8\x2d\x2b\x82\xda\x06\xe3\x49\x00\x8d\x8a\xbc\x25\x3a\xea\x2f\x0f\x6c\x56\x16\x56\x56\x60\xc5\xda\x93\xb0\x69\x26\x65\xd1\xa2\x6c\xc8\xbb\x8b\xb2\x28\x62\x68\xba\xfd\xb5\x55\x54\xc1\xdc\xc7\x90\x1c\xef\xef\x92\x79\xf6\x67\xbd\x46\xca\x5d\x23\x5e\x76\xc5\x0a\x6e\x8d\x2f\x8b\xcb\x0a\x16\xb3\x54\xca\x48\xf9\xa6\x11\x6a\x92\xec\x03\xd1\xac\xbc\xa1\x59\x64\x27\x7d\x5e\x95\x07\x41\xb3\xf3\x60\x57\xd0\x21\xcb\x27\x6c\xc9\xc1\x05\x4d\xa2\x14\x1f\x60\x71\xfe\xf7\xc7\xd9\x3f\x57\x77\xd7\xe7\xdf\x41\xfa\xbd\x9f\xdf\x9c\x3f\x5c\x82\x15\x40\x70\x6c\x1a\x4d\x50\x07\x11\x32\xf5\xae\x67\xa5\xb0\xf3\xcb\x48\x1e\x28\x0b\x42\x2e\x68\xef\x26\x65\xe1\xb9\xde\x90\x5c\x24\x4d\x06\x12\x1d\x0b\xa8\x60\xd1\x83\x0f\x6f\x6a\x33\x3d\xaa\x70\x54\xe9\xb9\x2c\x5d\x8d\xb1\xef\xae\xb8\x89\x81\x7b\xeb\x8e\x5b\xda\x8f\x45\x52\x3f\x8e\x45\x7e\xf2\xd9\xa1\x3d\xa7\x75\x7a\xa4\x0c\x8f\xa4\xcc\x34\xa1\xdd\xc7\xb8\x54\xca\x59\x59\x60\xf0\xeb\x2f\xf4\x35\xb0\x90\xaa\xe0\xca\x5a\x4d\x68\x8e\xf8\xd6\xd6\xb8\xd4\x34\x70\xb4\xfd\x19\xbf\x6a\x8b\x29\x41\xdf\x2b\xc6\x8b\xd5\x9a\xd4\xd5\xee\xc6\xb6\xc8\x66\x40\x31\xf5\xda\x8e\x9b\x6a\xe8\xb9\x1b\x96\xca\x2e\xa1\xd3\x14\x30\x2c\x4d\xb1\xeb\x34\xee\x6e\xa8\xe6\x16\xb5\xab\xf6\x72\xc5\xfb\x61\x9b\xe7\x50\xe4\xea\xcc\xac\xad\x51\x1c\xfb\xc7\x65\xe0\x8a\x9f\x48\x7d\x0a\xed\x32\xf6\xf3\x31\x51\x8b\x4f\x23\x8c\xdd\xbd\xd1\xdc\xb2\x1f\x56\x23\xa4\xa8\x4d\x6d\x79\x6b\x9c\x97\x50\x9f\x9e\x50\x5b\xad\xd1\x93\xa0\x9e\x2a\x25\xe4\x1c\xbd\xeb\x9d\x73\x63\xd0\x07\x39\x89\x0a\x26\x8e\x4f\x8e\xc5\xb1\x09\x6e\xd4\x04\xb7\x37\xfb\xa7\x3d\xac\xd2\xbe\xbf\x62\xd3\xa4\x71\xfb\x8c\x2c\x19\xe9\xd5\x1d\x91\xe3\xc3\x59\x3f\xd4\xf2\xca\x8e\x38\x71\x8d\x78\x31\xe3\x5f\x56\x87\xf8\x44\x87\xe6\xd9\x13\x4e\xe1\x54\xe8\x75\xdf\x67\xbd\xf8\xb6\x23\xf3\xe2\xd7\xf6\xf1\xc5\x58\x73\xb3\xce\x32\xae\xd1\x34\xf9\x09\xda\xba\xcc\xe4\x78\xdc\x16\xf5\xdc\xa3\xf8\x2a\x8d\x56\x6a\x02\x71\xfe\x23\xa9\x86\xe4\x3a\xc6\x47\xf8\xe8\x8c\x0b\xe9\x2d\x9f\x15\x45\xb2\xb4\x76\x33\x8f\x3b\xac\x82\x3f\x06\xf6\xcb\x1b\x9c\x4e\xfb\x7f\x7d\x8d\x77\x34\xff\x3f\xcb\x3a\xc4\xe1\x5b\x09\xc5\x92\xd5\xfe\x86\xc7\xc1\x5d\xb2\x3a\x55\x62\xc9\x6a\x86\x4f\xf9\x12\xdb\x9c\xb2\xd0\x6d\x4e\x59\xe8\x36\x33\xce\xf4\x72\x9d\x10\xaa\x53\x7b\xc6\xea\xb3\xe5\x6c\x45\x1e\xaa\xed\x27\x22\x3e\x7d\x17\x96\x9a\xeb\xdf\x69\x97\xef\xe6\xe1\xee\x0a\xa2\xf3\x3d\x6e\x5b\x7d\xff\xe5\x63\xbe\xb7\x48\x91\x60\xdc\x35\x73\x92\xed\x60\xd0\xe2\xea\x1e\x81\x5e\xd0\xb8\x15\xc9\xc8\xf1\x48\xcb\x69\xf0\xeb\x5f\x8c\xea\xfa\xaa\xb3\xf5\xd9\x59\xc7\x7e\xc4\xb0\xd2\xdc\x3d\xb2\xf7\x39\xf8\x5c\xfe\x1b\x00\x00\xff\xff\x0b\x65\xd4\x2d\xd2\x09\x00\x00")

func schemaGqlBytes() ([]byte, error) {
	return bindataRead(
		_schemaGql,
		"schema.gql",
	)
}

func schemaGql() (*asset, error) {
	bytes, err := schemaGqlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "schema.gql", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7a, 0x78, 0xf7, 0x84, 0xb0, 0x32, 0xc9, 0x9f, 0xd3, 0x8b, 0x8e, 0x30, 0x2d, 0xe2, 0xf7, 0xba, 0x39, 0xd2, 0x82, 0xc, 0xea, 0xcf, 0x1f, 0xd9, 0xd2, 0xfd, 0xf8, 0xc4, 0xb0, 0xd8, 0x9d, 0x69}}
	return a, nil
}

func Asset(name string) ([]byte, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; 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)
}

func AssetString(name string) (string, error) {
	data, err := Asset(name)
	return string(data), err
}

func MustAsset(name string) []byte {
	a, err := Asset(name)
	if err != nil {
		panic("asset: Asset(" + name + "): " + err.Error())
	}

	return a
}

func MustAssetString(name string) string {
	return string(MustAsset(name))
}

func AssetInfo(name string) (os.FileInfo, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; 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)
}

func AssetDigest(name string) ([sha256.Size]byte, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; ok {
		a, err := f()
		if err != nil {
			return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err)
		}
		return a.digest, nil
	}
	return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name)
}

func Digests() (map[string][sha256.Size]byte, error) {
	mp := make(map[string][sha256.Size]byte, len(_bindata))
	for name := range _bindata {
		a, err := _bindata[name]()
		if err != nil {
			return nil, err
		}
		mp[name] = a.digest
	}
	return mp, nil
}

func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

var _bindata = map[string]func() (*asset, error){
	"graphiql.html": graphiqlHtml,
	"schema.gql":    schemaGql,
}

func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		canonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(canonicalName, "/")
		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{
	"graphiql.html": &bintree{graphiqlHtml, map[string]*bintree{}},
	"schema.gql":    &bintree{schemaGql, map[string]*bintree{}},
}}

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
	}
	return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
}

func RestoreAssets(dir, name string) error {
	children, err := AssetDir(name)

	if err != nil {
		return RestoreAsset(dir, name)
	}

	for _, child := range children {
		err = RestoreAssets(dir, filepath.Join(name, child))
		if err != nil {
			return err
		}
	}
	return nil
}

func _filePath(dir, name string) string {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
}
// Code generated by go-bindata. DO NOT EDIT.
// sources:
// graphiql.html (1.182kB)
// schema.gql (2.514kB)

package static

import (
	"bytes"
	"compress/gzip"
	"crypto/sha256"
	"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: %w", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	clErr := gz.Close()

	if err != nil {
		return nil, fmt.Errorf("read %q: %w", name, err)
	}
	if clErr != nil {
		return nil, err
	}

	return buf.Bytes(), nil
}

type asset struct {
	bytes  []byte
	info   os.FileInfo
	digest [sha256.Size]byte
}

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 _graphiqlHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x54\x4f\x6f\x13\x3f\x10\x3d\x6f\x3e\x85\x7f\x96\x7e\xd2\x46\x2a\x76\x52\x24\x0e\x9b\x4d\x0e\xd0\xaa\x02\x15\x4a\x81\x0b\x47\xd7\x9e\x5d\x3b\x78\xed\xed\xd8\x9b\x36\xaa\xf2\xdd\x91\xf7\x4f\x28\x7f\x2a\x21\x04\x17\xaf\x3d\x7e\xf3\xde\xf3\xcc\x68\xcb\xff\xce\xae\x5e\x7d\xfa\xfc\xfe\x9c\xe8\xd8\xd8\xcd\xac\x1c\x3e\x59\xa9\x41\xa8\xcd\x2c\xcb\x4a\x6b\xdc\x17\x82\x60\xd7\x34\xc4\xbd\x85\xa0\x01\x22\x25\x1a\xa1\x5a\x53\x1d\x63\x1b\x0a\xce\xa5\x72\xdb\xc0\xa4\xf5\x9d\xaa\xac\x40\x60\xd2\x37\x5c\x6c\xc5\x3d\xb7\xe6\x26\xf0\x1a\x45\xab\xcd\xad\xe5\x0b\xb6\x5c\xb2\xe5\xf2\x18\x60\x32\x04\xca\x7b\x99\x20\xd1\xb4\x91\x04\x94\xbf\x4d\x5b\x41\x94\x9a\x9f\xb2\x05\x7b\x3e\xec\x59\x63\x1c\xdb\x06\xba\x29\xf9\x40\xf7\xa7\xcc\x08\x42\x46\xbe\x7c\xc1\x4e\xd9\x82\x77\x8d\x1a\x02\xac\x45\xaf\x3a\x19\x8d\x77\x7f\x57\xe9\x99\xf2\xcd\x4f\x6a\x29\xf8\x2f\x14\x9f\x6e\xc6\x2f\x14\x4a\x3e\xce\x41\x79\xe3\xd5\x9e\xf4\x13\xb0\xa6\x77\x46\x45\x5d\x90\xe5\x62\xf1\xff\x8a\x68\x30\xb5\x8e\xd3\xa9\x11\x58\x1b\x57\x90\xc5\x8a\xf8\x1d\x60\x65\xfd\x5d\x41\xb4\x51\x0a\xdc\x8a\xf6\x96\x95\xd9\x11\xa3\xd6\x74\x92\xa5\x13\xeb\x23\xa2\x9d\x5e\xd1\xcd\xa5\x17\xca\xb8\x9a\x31\x56\x72\x65\x76\x8f\xde\x9b\xb6\x59\xd5\xb9\xbe\x30\xa4\x6f\xfd\xc5\xf5\x65\xde\x0a\x14\x4d\x98\x93\x87\x74\x9d\x21\xc4\x0e\xc7\xdb\x9c\x0e\xaf\xbc\xb5\xf4\x64\xbc\xce\x1a\x88\xda\xab\x82\xd0\xd6\x87\x48\x4f\x86\x60\x7a\x65\x41\xde\x7c\xbc\x7a\xc7\x42\x44\xe3\x6a\x53\xed\x27\xde\x11\x22\x11\x14\xb8\x68\x84\x0d\x05\xa1\xc6\x49\xdb\x29\x18\xf3\x0f\x73\x16\x35\xb8\xfc\xe8\x2d\x47\x08\xed\xe4\x68\xb2\x94\x62\x2c\xc2\x7d\xcc\xe7\xab\x27\xd2\x92\x8f\x63\x5a\xc4\xfd\xb4\x9d\x28\x7a\x87\xad\xc0\x00\x03\x74\xe0\xc9\x0e\x44\x8a\x28\x35\xc9\x01\xd1\xe3\xfc\xc7\xac\x04\x9d\x90\xa3\x70\x7f\x3c\xcc\xd2\xfa\x21\x4d\xdd\xd9\xd5\x5b\x86\xe0\x14\x60\xde\x23\xfa\x20\x93\x08\x22\xc2\xb9\x85\x06\x5c\xcc\x2f\xfa\xce\x5d\x5f\x9e\x90\x87\xbe\xba\x80\xc5\xb1\x09\x87\xb1\x4c\xca\xcb\x2e\x81\x59\x0d\x71\xcc\x7b\xb9\x7f\xad\xf2\x6f\x6d\x9f\x27\x5c\x5a\xbe\x1b\xb7\x64\x71\x33\x2b\xf9\xf0\x1b\xfa\x1a\x00\x00\xff\xff\xdb\x8e\x2c\x18\x9e\x04\x00\x00")

func graphiqlHtmlBytes() ([]byte, error) {
	return bindataRead(
		_graphiqlHtml,
		"graphiql.html",
	)
}

func graphiqlHtml() (*asset, error) {
	bytes, err := graphiqlHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "graphiql.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x76, 0x8, 0xb4, 0x3a, 0xe7, 0xdb, 0xc8, 0x3d, 0x2d, 0x1f, 0x1c, 0x2d, 0xd3, 0x9b, 0xf2, 0xd8, 0xe5, 0xd6, 0x5f, 0x3a, 0x7c, 0x6d, 0x80, 0xf7, 0x40, 0xdc, 0x58, 0xf1, 0x75, 0xbd, 0xf0, 0xa1}}
	return a, nil
}

var _schemaGql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x54\x51\x6f\xe3\x36\x0c\x7e\xb6\x7f\x05\xdb\x7b\x69\x81\x21\x0f\xc3\x9e\x8c\x6d\x40\xda\x6e\x58\xb1\xcb\xed\x76\x69\x87\x01\x41\x31\x30\x16\xe3\x10\x91\x25\x1f\x25\xa5\x0d\x0e\xfd\xef\x83\xe4\x24\x95\xe3\xb6\xc0\x9e\xf7\x64\xf3\x23\x3f\x8a\xfa\x44\xd2\xd5\x6b\x6a\x11\xbe\x95\xc5\xd7\x40\xb2\xab\xa0\xf8\x33\x7e\xcb\xe7\xb2\xf4\xbb\x8e\x20\x59\xd1\xfd\x01\x84\xbc\x30\x6d\x09\x50\x6b\xd8\xa2\x66\x85\x9e\x14\xa0\x73\xe4\x1d\x58\x03\x7e\x4d\x30\xf7\xa4\x35\x0a\x18\xf2\x8f\x56\x36\x93\xb2\xe8\xfd\x15\x2c\xa6\xf1\xe7\xec\xe1\xac\x7c\x27\x19\x3b\x17\x48\xde\xc9\xb6\x0f\xa8\x60\x71\x9b\xfe\x46\xf9\xbc\xa0\x22\x70\x1e\xbd\x83\x95\xd8\x36\xe5\xd1\xe8\x3c\xfc\x68\x42\xfb\x9b\x0d\xe2\xa6\x8d\xfd\x19\xd6\xf1\x2f\x32\x2f\x14\xad\x30\x68\x0f\x3f\xc1\xf7\x3f\xf4\xf0\xe5\x04\x6c\xe7\xd9\x1a\xd4\x7a\x07\x9d\xd8\x2d\x2b\x82\xda\x06\xe3\x49\x00\x8d\x8a\xbc\x25\x3a\xea\x2f\x0f\x6c\x56\x16\x56\x56\x60\xc5\xda\x93\xb0\x69\x26\x65\xd1\xa2\x6c\xc8\xbb\x8b\xb2\x28\x62\x68\xba\xfd\xb5\x55\x54\xc1\xdc\xc7\x90\x1c\xef\xef\x92\x79\xf6\x67\xbd\x46\xca\x5d\x23\x5e\x76\xc5\x0a\x6e\x8d\x2f\x8b\xcb\x0a\x16\xb3\x54\xca\x48\xf9\xa6\x11\x6a\x92\xec\x03\xd1\xac\xbc\xa1\x59\x64\x27\x7d\x5e\x95\x07\x41\xb3\xf3\x60\x57\xd0\x21\xcb\x27\x6c\xc9\xc1\x05\x4d\xa2\x14\x1f\x60\x71\xfe\xf7\xc7\xd9\x3f\x57\x77\xd7\xe7\xdf\x41\xfa\xbd\x9f\xdf\x9c\x3f\x5c\x82\x15\x40\x70\x6c\x1a\x4d\x50\x07\x11\x32\xf5\xae\x67\xa5\xb0\xf3\xcb\x48\x1e\x28\x0b\x42\x2e\x68\xef\x26\x65\xe1\xb9\xde\x90\x5c\x24\x4d\x06\x12\x1d\x0b\xa8\x60\xd1\x83\x0f\x6f\x6a\x33\x3d\xaa\x70\x54\xe9\xb9\x2c\x5d\x8d\xb1\xef\xae\xb8\x89\x81\x7b\xeb\x8e\x5b\xda\x8f\x45\x52\x3f\x8e\x45\x7e\xf2\xd9\xa1\x3d\xa7\x75\x7a\xa4\x0c\x8f\xa4\xcc\x34\xa1\xdd\xc7\xb8\x54\xca\x59\x59\x60\xf0\xeb\x2f\xf4\x35\xb0\x90\xaa\xe0\xca\x5a\x4d\x68\x8e\xf8\xd6\xd6\xb8\xd4\x34\x70\xb4\xfd\x19\xbf\x6a\x8b\x29\x41\xdf\x2b\xc6\x8b\xd5\x9a\xd4\xd5\xee\xc6\xb6\xc8\x66\x40\x31\xf5\xda\x8e\x9b\x6a\xe8\xb9\x1b\x96\xca\x2e\xa1\xd3\x14\x30\x2c\x4d\xb1\xeb\x34\xee\x6e\xa8\xe6\x16\xb5\xab\xf6\x72\xc5\xfb\x61\x9b\xe7\x50\xe4\xea\xcc\xac\xad\x51\x1c\xfb\xc7\x65\xe0\x8a\x9f\x48\x7d\x0a\xed\x32\xf6\xf3\x31\x51\x8b\x4f\x23\x8c\xdd\xbd\xd1\xdc\xb2\x1f\x56\x23\xa4\xa8\x4d\x6d\x79\x6b\x9c\x97\x50\x9f\x9e\x50\x5b\xad\xd1\x93\xa0\x9e\x2a\x25\xe4\x1c\xbd\xeb\x9d\x73\x63\xd0\x07\x39\x89\x0a\x26\x8e\x4f\x8e\xc5\xb1\x09\x6e\xd4\x04\xb7\x37\xfb\xa7\x3d\xac\xd2\xbe\xbf\x62\xd3\xa4\x71\xfb\x8c\x2c\x19\xe9\xd5\x1d\x91\xe3\xc3\x59\x3f\xd4\xf2\xca\x8e\x38\x71\x8d\x78\x31\xe3\x5f\x56\x87\xf8\x44\x87\xe6\xd9\x13\x4e\xe1\x54\xe8\x75\xdf\x67\xbd\xf8\xb6\x23\xf3\xe2\xd7\xf6\xf1\xc5\x58\x73\xb3\xce\x32\xae\xd1\x34\xf9\x09\xda\xba\xcc\xe4\x78\xdc\x16\xf5\xdc\xa3\xf8\x2a\x8d\x56\x6a\x02\x71\xfe\x23\xa9\x86\xe4\x3a\xc6\x47\xf8\xe8\x8c\x0b\xe9\x2d\x9f\x15\x45\xb2\xb4\x76\x33\x8f\x3b\xac\x82\x3f\x06\xf6\xcb\x1b\x9c\x4e\xfb\x7f\x7d\x8d\x77\x34\xff\x3f\xcb\x3a\xc4\xe1\x5b\x09\xc5\x92\xd5\xfe\x86\xc7\xc1\x5d\xb2\x3a\x55\x62\xc9\x6a\x86\x4f\xf9\x12\xdb\x9c\xb2\xd0\x6d\x4e\x59\xe8\x36\x33\xce\xf4\x72\x9d\x10\xaa\x53\x7b\xc6\xea\xb3\xe5\x6c\x45\x1e\xaa\xed\x27\x22\x3e\x7d\x17\x96\x9a\xeb\xdf\x69\x97\xef\xe6\xe1\xee\x0a\xa2\xf3\x3d\x6e\x5b\x7d\xff\xe5\x63\xbe\xb7\x48\x91\x60\xdc\x35\x73\x92\xed\x60\xd0\xe2\xea\x1e\x81\x5e\xd0\xb8\x15\xc9\xc8\xf1\x48\xcb\x69\xf0\xeb\x5f\x8c\xea\xfa\xaa\xb3\xf5\xd9\x59\xc7\x7e\xc4\xb0\xd2\xdc\x3d\xb2\xf7\x39\xf8\x5c\xfe\x1b\x00\x00\xff\xff\x0b\x65\xd4\x2d\xd2\x09\x00\x00")

func schemaGqlBytes() ([]byte, error) {
	return bindataRead(
		_schemaGql,
		"schema.gql",
	)
}

func schemaGql() (*asset, error) {
	bytes, err := schemaGqlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "schema.gql", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7a, 0x78, 0xf7, 0x84, 0xb0, 0x32, 0xc9, 0x9f, 0xd3, 0x8b, 0x8e, 0x30, 0x2d, 0xe2, 0xf7, 0xba, 0x39, 0xd2, 0x82, 0xc, 0xea, 0xcf, 0x1f, 0xd9, 0xd2, 0xfd, 0xf8, 0xc4, 0xb0, 0xd8, 0x9d, 0x69}}
	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) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; 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)
}

// AssetString returns the asset contents as a string (instead of a []byte).
func AssetString(name string) (string, error) {
	data, err := Asset(name)
	return string(data), err
}

// 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
}

// MustAssetString is like AssetString but panics when Asset would return an
// error. It simplifies safe initialization of global variables.
func MustAssetString(name string) string {
	return string(MustAsset(name))
}

// 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) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; 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)
}

// AssetDigest returns the digest of the file with the given name. It returns an
// error if the asset could not be found or the digest could not be loaded.
func AssetDigest(name string) ([sha256.Size]byte, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; ok {
		a, err := f()
		if err != nil {
			return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err)
		}
		return a.digest, nil
	}
	return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name)
}

// Digests returns a map of all known files and their checksums.
func Digests() (map[string][sha256.Size]byte, error) {
	mp := make(map[string][sha256.Size]byte, len(_bindata))
	for name := range _bindata {
		a, err := _bindata[name]()
		if err != nil {
			return nil, err
		}
		mp[name] = a.digest
	}
	return mp, nil
}

// 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){
	"graphiql.html": graphiqlHtml,
	"schema.gql":    schemaGql,
}

// 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, and
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		canonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(canonicalName, "/")
		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{
	"graphiql.html": &bintree{graphiqlHtml, map[string]*bintree{}},
	"schema.gql":    &bintree{schemaGql, 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
	}
	return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
}

// 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 {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
}
