add fallback device rule with "*" pseudo client

This commit is contained in:
sentriz
2020-03-12 12:28:07 +00:00
parent a3fce34cba
commit 1fcf5bcb17
3 changed files with 127 additions and 125 deletions

View File

@@ -62,7 +62,7 @@ var Bytes = map[string]*EmbeddedAsset{
0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a, 0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,
}}, }},
"pages/home.tmpl": &EmbeddedAsset{ "pages/home.tmpl": &EmbeddedAsset{
ModTime: time.Unix(1583975009, 0), ModTime: time.Unix(1584016057, 0),
Bytes: []byte{ Bytes: []byte{
0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x75,0x73,0x65,0x72,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x64,0x69,0x76, 0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x75,0x73,0x65,0x72,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x64,0x69,0x76,
0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x61,0x64,0x64,0x65,0x64,0x20,0x62,0x6f,0x78,0x22,0x3e,0x0a,0x20,0x20,0x20, 0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x61,0x64,0x64,0x65,0x64,0x20,0x62,0x6f,0x78,0x22,0x3e,0x0a,0x20,0x20,0x20,
@@ -246,123 +246,123 @@ var Bytes = map[string]*EmbeddedAsset{
0x72,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x27,0x73,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x69, 0x72,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x27,0x73,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x69,
0x6e,0x20,0x74,0x68,0x65,0x20,0x67,0x6f,0x6e,0x69,0x63,0x20,0x6c,0x6f,0x67,0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x20,0x20,0x20, 0x6e,0x20,0x74,0x68,0x65,0x20,0x67,0x6f,0x6e,0x69,0x63,0x20,0x6c,0x6f,0x67,0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x20,0x74,0x65,0x78, 0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x20,0x74,0x65,0x78,
0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x28,0x6c,0x6f,0x6f,0x6b,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x22, 0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x73,0x6f,0x6d,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x20,0x63,0x6c,0x69,
0x26,0x63,0x3d,0x22,0x20,0x75,0x72,0x6c,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72, 0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x73,0x3a,0x20,0x22,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,
0x29,0x3c,0x2f,0x70,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22, 0x22,0x65,0x6d,0x70,0x22,0x3e,0x44,0x53,0x75,0x62,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x22,0x2c,0x20,0x22,0x3c,0x73,0x70,
0x6c,0x69,0x67,0x68,0x74,0x20,0x74,0x65,0x78,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x73,0x6f,0x6d,0x65,0x20,0x63, 0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x65,0x6d,0x70,0x22,0x3e,0x4a,0x61,0x6d,0x73,0x74,0x61,0x73,0x68,0x3c,
0x6f,0x6d,0x6d,0x6f,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x73,0x3a,0x20,0x22,0x3c,0x73,0x70, 0x2f,0x73,0x70,0x61,0x6e,0x3e,0x22,0x2c,0x20,0x22,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x65,
0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x65,0x6d,0x70,0x22,0x3e,0x44,0x53,0x75,0x62,0x3c,0x2f,0x73,0x70,0x61, 0x6d,0x70,0x22,0x3e,0x53,0x6f,0x75,0x6e,0x64,0x77,0x61,0x76,0x65,0x73,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x22,0x3c,0x2f,
0x6e,0x3e,0x22,0x2c,0x20,0x22,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x65,0x6d,0x70,0x22,0x3e, 0x70,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,
0x4a,0x61,0x6d,0x73,0x74,0x61,0x73,0x68,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x22,0x2c,0x20,0x22,0x3c,0x73,0x70,0x61,0x6e, 0x68,0x74,0x20,0x74,0x65,0x78,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x6f,0x72,0x20,0x75,0x73,0x65,0x20,0x22,0x2a,
0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x65,0x6d,0x70,0x22,0x3e,0x53,0x6f,0x75,0x6e,0x64,0x77,0x61,0x76,0x65,0x73,0x3c, 0x22,0x20,0x61,0x73,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x20,0x61,
0x2f,0x73,0x70,0x61,0x6e,0x3e,0x22,0x3c,0x2f,0x70,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x72,0x2f, 0x6e,0x79,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x3c,0x2f,0x70,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,
0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x64,0x3d,0x22,0x74,0x72,0x61, 0x72,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x64,0x3d,0x22,0x74,
0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20, 0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x22,0x3e,0x0a,0x20,
0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x24,0x70,0x72,0x65,0x66,0x20,0x3a,0x3d,0x20,0x2e, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x24,0x70,0x72,0x65,0x66,0x20,0x3a,0x3d,
0x54,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x50,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x20,0x7d,0x7d,0x0a, 0x20,0x2e,0x54,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x50,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x20,0x7d,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x66,0x6f,0x72,0x6d,0x20,0x69,0x64,0x3d,0x22,0x74,0x72,0x61,
0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,0x2e,0x43,0x6c,0x69,
0x65,0x6e,0x74,0x20,0x7d,0x7d,0x22,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x22,0x7b,0x7b,0x20,0x70,0x72,0x69,0x6e,0x74,
0x66,0x20,0x22,0x2f,0x61,0x64,0x6d,0x69,0x6e,0x2f,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x74,0x72,0x61,0x6e,0x73,0x63,0x6f,
0x64,0x65,0x5f,0x70,0x72,0x65,0x66,0x5f,0x64,0x6f,0x3f,0x63,0x6c,0x69,0x65,0x6e,0x74,0x3d,0x25,0x73,0x22,0x20,0x24,0x70,
0x72,0x65,0x66,0x2e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x7c,0x20,0x70,0x61,0x74,0x68,0x20,0x7d,0x7d,0x22,0x20,0x6d,0x65,
0x74,0x68,0x6f,0x64,0x3d,0x22,0x70,0x6f,0x73,0x74,0x22,0x3e,0x3c,0x2f,0x66,0x6f,0x72,0x6d,0x3e,0x0a,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,
0x2e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x7d,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,0x2e,0x50,0x72,0x6f,
0x66,0x69,0x6c,0x65,0x20,0x7d,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x74,0x72,
0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,0x2e,0x43,0x6c,
0x69,0x65,0x6e,0x74,0x20,0x7d,0x7d,0x22,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x73,0x75,0x62,0x6d,0x69,0x74,0x22,0x20,0x76,
0x61,0x6c,0x75,0x65,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,
0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x66,0x6f,0x72,0x6d,0x20,0x69,0x64,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x66,0x6f,0x72,0x6d,0x20,0x69,0x64,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,
0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,0x2e,0x43,0x6c,0x69,0x65,0x6e, 0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x61,0x64,0x64,0x22,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x22,0x7b,
0x74,0x20,0x7d,0x7d,0x22,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x22,0x7b,0x7b,0x20,0x70,0x72,0x69,0x6e,0x74,0x66,0x20, 0x7b,0x20,0x70,0x61,0x74,0x68,0x20,0x22,0x2f,0x61,0x64,0x6d,0x69,0x6e,0x2f,0x63,0x72,0x65,0x61,0x74,0x65,0x5f,0x74,0x72,
0x22,0x2f,0x61,0x64,0x6d,0x69,0x6e,0x2f,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x74,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65, 0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x5f,0x70,0x72,0x65,0x66,0x5f,0x64,0x6f,0x22,0x20,0x7d,0x7d,0x22,0x20,0x6d,0x65,0x74,
0x5f,0x70,0x72,0x65,0x66,0x5f,0x64,0x6f,0x3f,0x63,0x6c,0x69,0x65,0x6e,0x74,0x3d,0x25,0x73,0x22,0x20,0x24,0x70,0x72,0x65, 0x68,0x6f,0x64,0x3d,0x22,0x70,0x6f,0x73,0x74,0x22,0x3e,0x3c,0x2f,0x66,0x6f,0x72,0x6d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,
0x66,0x2e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x7c,0x20,0x70,0x61,0x74,0x68,0x20,0x7d,0x7d,0x22,0x20,0x6d,0x65,0x74,0x68, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,
0x6f,0x64,0x3d,0x22,0x70,0x6f,0x73,0x74,0x22,0x3e,0x3c,0x2f,0x66,0x6f,0x72,0x6d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x74,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x61,0x64,0x64,0x22,0x20,0x74,0x79,0x70,0x65,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,0x2e,0x43, 0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x22,0x20,0x70,0x6c,
0x6c,0x69,0x65,0x6e,0x74,0x20,0x7d,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x22,0x3e,
0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,0x2e,0x50,0x72,0x6f,0x66,0x69, 0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x73,
0x6c,0x65,0x20,0x7d,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x65,0x6c,0x65,0x63,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,
0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x74,0x72,0x61,0x6e, 0x65,0x66,0x2d,0x61,0x64,0x64,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x22,0x3e,0x0a,
0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x7b,0x7b,0x20,0x24,0x70,0x72,0x65,0x66,0x2e,0x43,0x6c,0x69,0x65, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x72,0x61,0x6e,0x67,0x65,
0x6e,0x74,0x20,0x7d,0x7d,0x22,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x73,0x75,0x62,0x6d,0x69,0x74,0x22,0x20,0x76,0x61,0x6c, 0x20,0x24,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x3a,0x3d,0x20,0x2e,0x54,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x50,
0x75,0x65,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x72,0x6f,0x66,0x69,0x6c,0x65,0x73,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x65, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x7b,0x7b,
0x6e,0x64,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x24,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x7d,0x7d,0x22,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x72,0x6f,0x66,0x69,0x6c,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x66,0x6f,0x72,0x6d,0x20,0x69,0x64,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x63,0x6f, 0x65,0x20,0x7d,0x7d,0x3c,0x2f,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x61,0x64,0x64,0x22,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x22,0x7b,0x7b,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x70,0x61,0x74,0x68,0x20,0x22,0x2f,0x61,0x64,0x6d,0x69,0x6e,0x2f,0x63,0x72,0x65,0x61,0x74,0x65,0x5f,0x74,0x72,0x61,0x6e, 0x20,0x20,0x20,0x20,0x3c,0x2f,0x73,0x65,0x6c,0x65,0x63,0x74,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,
0x73,0x63,0x6f,0x64,0x65,0x5f,0x70,0x72,0x65,0x66,0x5f,0x64,0x6f,0x22,0x20,0x7d,0x7d,0x22,0x20,0x6d,0x65,0x74,0x68,0x6f, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,
0x64,0x3d,0x22,0x70,0x6f,0x73,0x74,0x22,0x3e,0x3c,0x2f,0x66,0x6f,0x72,0x6d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x74,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x61,0x64,0x64,0x22,0x20,0x74,0x79,0x70,0x65,
0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x74,0x72, 0x3d,0x22,0x73,0x75,0x62,0x6d,0x69,0x74,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x73,0x61,0x76,0x65,0x22,0x3e,0x3c,
0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x61,0x64,0x64,0x22,0x20,0x74,0x79,0x70,0x65,0x3d,0x22, 0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,
0x74,0x65,0x78,0x74,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x22,0x20,0x70,0x6c,0x61,0x63, 0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x3c,
0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x22,0x3e,0x3c,0x2f, 0x2f,0x64,0x69,0x76,0x3e,0x0a,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x61,0x64,0x64,0x65,0x64,
0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x73,0x65,0x6c, 0x20,0x62,0x6f,0x78,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,
0x65,0x63,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66, 0x6f,0x78,0x2d,0x74,0x69,0x74,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x20,0x63,0x6c,
0x2d,0x61,0x64,0x64,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20, 0x61,0x73,0x73,0x3d,0x22,0x6d,0x64,0x69,0x20,0x6d,0x64,0x69,0x2d,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x6d,0x75,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x24, 0x73,0x69,0x63,0x22,0x3e,0x3c,0x2f,0x69,0x3e,0x20,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,
0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x3a,0x3d,0x20,0x2e,0x54,0x72,0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x50,0x72,0x6f, 0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,
0x66,0x69,0x6c,0x65,0x73,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x6c,0x6f,0x63,0x6b,0x2d,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x65,0x78,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x0a,
0x20,0x20,0x20,0x20,0x20,0x3c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x7b,0x7b,0x20,0x24, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x69,0x66,0x20,0x65,0x71,0x20,0x28,0x6c,0x65,0x6e,0x20,0x2e,0x50,
0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x7d,0x7d,0x22,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20, 0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x73,0x29,0x20,0x30,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x7d,0x7d,0x3c,0x2f,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x22,0x3e,0x6e,
0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x6f,0x20,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x73,0x20,0x79,0x65,0x74,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,
0x20,0x20,0x3c,0x2f,0x73,0x65,0x6c,0x65,0x63,0x74,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x74,0x72, 0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x63,0x65,0x6e,0x74,0x2d,0x70,0x6c,0x61,0x79,0x6c,
0x61,0x6e,0x73,0x63,0x6f,0x64,0x65,0x2d,0x70,0x72,0x65,0x66,0x2d,0x61,0x64,0x64,0x22,0x20,0x74,0x79,0x70,0x65,0x3d,0x22, 0x69,0x73,0x74,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,
0x73,0x75,0x62,0x6d,0x69,0x74,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x73,0x61,0x76,0x65,0x22,0x3e,0x3c,0x2f,0x74, 0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x20,0x3a,0x3d,0x20,0x2e,0x50,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x73,0x20,
0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,
0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x3c,0x2f,0x64, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,
0x69,0x76,0x3e,0x0a,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x61,0x64,0x64,0x65,0x64,0x20,0x62, 0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2e,0x4e,0x61,0x6d,0x65,
0x6f,0x78,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6f,0x78, 0x20,0x7d,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,
0x2d,0x74,0x69,0x74,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x20,0x63,0x6c,0x61,0x73, 0x3e,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x22,0x3e,0x28,0x7b,0x7b,
0x73,0x3d,0x22,0x6d,0x64,0x69,0x20,0x6d,0x64,0x69,0x2d,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x6d,0x75,0x73,0x69, 0x20,0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2e,0x54,0x72,0x61,0x63,0x6b,0x43,0x6f,0x75,0x6e,0x74,0x20,0x7d,0x7d,
0x63,0x22,0x3e,0x3c,0x2f,0x69,0x3e,0x20,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f, 0x20,0x74,0x72,0x61,0x63,0x6b,0x73,0x29,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,
0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x6f,0x2d,0x73,
0x63,0x6b,0x2d,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x65,0x78,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x0a,0x20,0x20, 0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,
0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x69,0x66,0x20,0x65,0x71,0x20,0x28,0x6c,0x65,0x6e,0x20,0x2e,0x50,0x6c,0x61, 0x22,0x20,0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x7b,0x7b,0x20,0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2e,0x43,0x72,
0x79,0x6c,0x69,0x73,0x74,0x73,0x29,0x20,0x30,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x65,0x61,0x74,0x65,0x64,0x41,0x74,0x20,0x7d,0x7d,0x22,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,
0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x22,0x3e,0x6e,0x6f,0x20, 0x2e,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x41,0x74,0x20,0x7c,0x20,0x64,0x61,0x74,0x65,0x48,0x75,0x6d,0x61,0x6e,0x20,0x7d,
0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x73,0x20,0x79,0x65,0x74,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20, 0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c, 0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,
0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x63,0x65,0x6e,0x74,0x2d,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,
0x74,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x24,0x70, 0x20,0x20,0x20,0x3c,0x62,0x72,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x66,0x6f,0x72,0x6d,0x0a,0x20,
0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x20,0x3a,0x3d,0x20,0x2e,0x50,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x73,0x20,0x7d,0x7d, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3d,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x75,0x70,0x6c,0x6f,0x61,0x64,0x2d,0x66,0x6f,0x72,0x6d,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x72,0x69, 0x20,0x65,0x6e,0x63,0x74,0x79,0x70,0x65,0x3d,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x61,0x72,0x74,0x2f,0x66,0x6f,0x72,0x6d,
0x67,0x68,0x74,0x22,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2e,0x4e,0x61,0x6d,0x65,0x20,0x7d, 0x2d,0x64,0x61,0x74,0x61,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,
0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x3c, 0x6e,0x3d,0x22,0x7b,0x7b,0x20,0x70,0x61,0x74,0x68,0x20,0x22,0x2f,0x61,0x64,0x6d,0x69,0x6e,0x2f,0x75,0x70,0x6c,0x6f,0x61,
0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x22,0x3e,0x28,0x7b,0x7b,0x20,0x24, 0x64,0x5f,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x5f,0x64,0x6f,0x22,0x20,0x7d,0x7d,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,
0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2e,0x54,0x72,0x61,0x63,0x6b,0x43,0x6f,0x75,0x6e,0x74,0x20,0x7d,0x7d,0x20,0x74, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x3d,0x22,0x70,0x6f,0x73,0x74,0x22,0x0a,0x20,0x20,0x20,
0x72,0x61,0x63,0x6b,0x73,0x29,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x6f,0x2d,0x73,0x6d,0x61, 0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,
0x6c,0x6c,0x22,0x3e,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x22,0x20, 0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,
0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x7b,0x7b,0x20,0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2e,0x43,0x72,0x65,0x61, 0x70,0x75,0x74,0x20,0x69,0x64,0x3d,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x75,0x70,0x6c,0x6f,0x61,0x64,0x2d,
0x74,0x65,0x64,0x41,0x74,0x20,0x7d,0x7d,0x22,0x3e,0x7b,0x7b,0x20,0x24,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2e,0x43, 0x69,0x6e,0x70,0x75,0x74,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,
0x72,0x65,0x61,0x74,0x65,0x64,0x41,0x74,0x20,0x7c,0x20,0x64,0x61,0x74,0x65,0x48,0x75,0x6d,0x61,0x6e,0x20,0x7d,0x7d,0x3c, 0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x20,0x30,0x3b,0x22,0x20,0x6e,
0x2f,0x73,0x70,0x61,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x61,0x6d,0x65,0x3d,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x66,0x69,0x6c,0x65,0x73,0x22,0x20,0x74,0x79,0x70,
0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a, 0x65,0x3d,0x22,0x66,0x69,0x6c,0x65,0x22,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,
0x20,0x3c,0x62,0x72,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x66,0x6f,0x72,0x6d,0x0a,0x20,0x20,0x20, 0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x75,0x70,0x6c,0x6f,0x61,0x64,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3d,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x75,0x70, 0x6d,0x33,0x75,0x38,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,
0x6c,0x6f,0x61,0x64,0x2d,0x66,0x6f,0x72,0x6d,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, 0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x66,0x6f,0x72,0x6d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
0x6e,0x63,0x74,0x79,0x70,0x65,0x3d,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x61,0x72,0x74,0x2f,0x66,0x6f,0x72,0x6d,0x2d,0x64, 0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,
0x61,0x74,0x61,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3d, 0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,
0x22,0x7b,0x7b,0x20,0x70,0x61,0x74,0x68,0x20,0x22,0x2f,0x61,0x64,0x6d,0x69,0x6e,0x2f,0x75,0x70,0x6c,0x6f,0x61,0x64,0x5f, 0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x75,0x70,0x6c,0x6f,0x61,0x64,0x2d,0x69,0x6e,0x70,0x75,0x74,0x22,0x29,0x2e,
0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x5f,0x64,0x6f,0x22,0x20,0x7d,0x7d,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x6f,0x6e,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x3d,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x3d,0x22,0x70,0x6f,0x73,0x74,0x22,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,
0x20,0x20,0x20,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x73,0x74, 0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x75,0x70,
0x79,0x6c,0x65,0x3d,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b, 0x6c,0x6f,0x61,0x64,0x2d,0x66,0x6f,0x72,0x6d,0x22,0x29,0x2e,0x73,0x75,0x62,0x6d,0x69,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,
0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x73,0x63,
0x74,0x20,0x69,0x64,0x3d,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x75,0x70,0x6c,0x6f,0x61,0x64,0x2d,0x69,0x6e, 0x72,0x69,0x70,0x74,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,
0x70,0x75,0x74,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x62, 0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,
0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x20,0x30,0x3b,0x22,0x20,0x6e,0x61,0x6d,
0x65,0x3d,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x66,0x69,0x6c,0x65,0x73,0x22,0x20,0x74,0x79,0x70,0x65,0x3d,
0x22,0x66,0x69,0x6c,0x65,0x22,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,
0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x75,0x70,0x6c,0x6f,0x61,0x64,0x20,0x6d,0x33,
0x75,0x38,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x66,0x6f,0x72,0x6d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,
0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x70,0x6c,
0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x75,0x70,0x6c,0x6f,0x61,0x64,0x2d,0x69,0x6e,0x70,0x75,0x74,0x22,0x29,0x2e,0x6f,0x6e,
0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x3d,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,
0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x70,0x6c,0x61,0x79,0x6c,0x69,0x73,0x74,0x2d,0x75,0x70,0x6c,0x6f,
0x61,0x64,0x2d,0x66,0x6f,0x72,0x6d,0x22,0x29,0x2e,0x73,0x75,0x62,0x6d,0x69,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x73,0x63,0x72,0x69,
0x70,0x74,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x7b,0x7b,
0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,
}}, }},
"pages/delete_user.tmpl": &EmbeddedAsset{ "pages/delete_user.tmpl": &EmbeddedAsset{
ModTime: time.Unix(1582000031, 0), ModTime: time.Unix(1582000031, 0),
@@ -390,7 +390,7 @@ var Bytes = map[string]*EmbeddedAsset{
0x2f,0x64,0x69,0x76,0x3e,0x0a,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a, 0x2f,0x64,0x69,0x76,0x3e,0x0a,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,
}}, }},
"pages/update_lastfm_api_key.tmpl": &EmbeddedAsset{ "pages/update_lastfm_api_key.tmpl": &EmbeddedAsset{
ModTime: time.Unix(1583975009, 0), ModTime: time.Unix(1583976323, 0),
Bytes: []byte{ Bytes: []byte{
0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x75,0x73,0x65,0x72,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x64,0x69,0x76, 0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x75,0x73,0x65,0x72,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x64,0x69,0x76,
0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x61,0x64,0x64,0x65,0x64,0x20,0x62,0x6f,0x78,0x22,0x3e,0x0a,0x20,0x20,0x20, 0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x61,0x64,0x64,0x65,0x64,0x20,0x62,0x6f,0x78,0x22,0x3e,0x0a,0x20,0x20,0x20,
@@ -494,7 +494,7 @@ var Bytes = map[string]*EmbeddedAsset{
0x20,0x7d,0x7d,0x0a, 0x20,0x7d,0x7d,0x0a,
}}, }},
"static/reset.css": &EmbeddedAsset{ "static/reset.css": &EmbeddedAsset{
ModTime: time.Unix(1583975009, 0), ModTime: time.Unix(1583976323, 0),
Bytes: []byte{ Bytes: []byte{
0x2f,0x2a,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6d,0x65,0x79,0x65,0x72,0x77,0x65,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x65, 0x2f,0x2a,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6d,0x65,0x79,0x65,0x72,0x77,0x65,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x65,
0x72,0x69,0x63,0x2f,0x74,0x6f,0x6f,0x6c,0x73,0x2f,0x63,0x73,0x73,0x2f,0x72,0x65,0x73,0x65,0x74,0x2f,0x0a,0x20,0x20,0x20, 0x72,0x69,0x63,0x2f,0x74,0x6f,0x6f,0x6c,0x73,0x2f,0x63,0x73,0x73,0x2f,0x72,0x65,0x73,0x65,0x74,0x2f,0x0a,0x20,0x20,0x20,
@@ -10803,7 +10803,7 @@ var Bytes = map[string]*EmbeddedAsset{
0x55,0x23,0xfe,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, 0x55,0x23,0xfe,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
}}, }},
"static/main.css": &EmbeddedAsset{ "static/main.css": &EmbeddedAsset{
ModTime: time.Unix(1583975009, 0), ModTime: time.Unix(1583976324, 0),
Bytes: []byte{ Bytes: []byte{
0x3a,0x72,0x6f,0x6f,0x74,0x20,0x7b,0x0a,0x20,0x20,0x2d,0x2d,0x70,0x61,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x2e, 0x3a,0x72,0x6f,0x6f,0x74,0x20,0x7b,0x0a,0x20,0x20,0x2d,0x2d,0x70,0x61,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x2e,
0x37,0x35,0x72,0x65,0x6d,0x3b,0x0a,0x7d,0x0a,0x0a,0x2a,0x2c,0x0a,0x73,0x70,0x61,0x6e,0x2c,0x0a,0x64,0x69,0x76,0x2c,0x0a, 0x37,0x35,0x72,0x65,0x6d,0x3b,0x0a,0x7d,0x0a,0x0a,0x2a,0x2c,0x0a,0x73,0x70,0x61,0x6e,0x2c,0x0a,0x64,0x69,0x76,0x2c,0x0a,
@@ -10890,7 +10890,7 @@ var Bytes = map[string]*EmbeddedAsset{
0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x0a,0x7d,0x0a, 0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x0a,0x7d,0x0a,
}}, }},
"partials/head.tmpl": &EmbeddedAsset{ "partials/head.tmpl": &EmbeddedAsset{
ModTime: time.Unix(1583975009, 0), ModTime: time.Unix(1583976324, 0),
Bytes: []byte{ Bytes: []byte{
0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x68,0x65,0x61,0x64,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x6c,0x69,0x6e, 0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x68,0x65,0x61,0x64,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x6c,0x69,0x6e,
0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d, 0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,
@@ -10917,7 +10917,7 @@ var Bytes = map[string]*EmbeddedAsset{
0x65,0x3d,0x6e,0x6f,0x22,0x3e,0x0a,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a, 0x65,0x3d,0x6e,0x6f,0x22,0x3e,0x0a,0x7b,0x7b,0x20,0x65,0x6e,0x64,0x20,0x7d,0x7d,0x0a,
}}, }},
"layouts/base.tmpl": &EmbeddedAsset{ "layouts/base.tmpl": &EmbeddedAsset{
ModTime: time.Unix(1583975009, 0), ModTime: time.Unix(1583976323, 0),
Bytes: []byte{ Bytes: []byte{
0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x21, 0x7b,0x7b,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x22,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x20,0x7d,0x7d,0x0a,0x3c,0x21,
0x64,0x6f,0x63,0x74,0x79,0x70,0x65,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x20,0x20,0x20, 0x64,0x6f,0x63,0x74,0x79,0x70,0x65,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x20,0x20,0x20,

View File

@@ -112,8 +112,8 @@
</div> </div>
<div class="block-right"> <div class="block-right">
<p class="light text-right">you can find your device's client name in the gonic logs</p> <p class="light text-right">you can find your device's client name in the gonic logs</p>
<p class="light text-right">(look for the "&c=" url query parameter)</p>
<p class="light text-right">some common client names: "<span class="emp">DSub</span>", "<span class="emp">Jamstash</span>", "<span class="emp">Soundwaves</span>"</p> <p class="light text-right">some common client names: "<span class="emp">DSub</span>", "<span class="emp">Jamstash</span>", "<span class="emp">Soundwaves</span>"</p>
<p class="light text-right">or use "*" as fallback rule for any client</p>
<br/> <br/>
<table id="transcode-preferences"> <table id="transcode-preferences">
{{ range $pref := .TranscodePreferences }} {{ range $pref := .TranscodePreferences }}

View File

@@ -118,14 +118,16 @@ func (c *Controller) ServeStream(w http.ResponseWriter, r *http.Request) *spec.R
play.Count++ // for getAlbumList?type=frequent play.Count++ // for getAlbumList?type=frequent
c.DB.Save(&play) c.DB.Save(&play)
}() }()
client := params.GetOr("c", "*") client := params.Get("c")
servOpts := serveTrackOptions{ servOpts := serveTrackOptions{
track: track, track: track,
musicPath: c.MusicPath, musicPath: c.MusicPath,
} }
pref := &db.TranscodePreference{} pref := &db.TranscodePreference{}
err = c.DB. err = c.DB.
Where("user_id=? AND client=? COLLATE NOCASE", user.ID, client). Where("user_id=?", user.ID).
Where("client COLLATE NOCASE IN (?)", []string{"*", client}).
Order("client DESC"). // ensure "*" is last if it's there
First(pref). First(pref).
Error Error
if gorm.IsRecordNotFoundError(err) { if gorm.IsRecordNotFoundError(err) {