diff --git a/public/3d_fonts/MediaWord.blob b/public/3d_fonts/MediaWord.blob new file mode 100644 index 0000000..43526b2 --- /dev/null +++ b/public/3d_fonts/MediaWord.blob @@ -0,0 +1 @@ +{"glyphs":{"0":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 434 347 l 347 347 l 347 260 l 260 260 l 174 260 l 174 174 l 87 174 l 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 87 521 l 87 434 l 87 347 l 87 260 l 174 260 l 174 347 l 260 347 l 347 347 l 347 434 l 434 434 l 434 521 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 434 87 m 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"1":{"ha":434,"x_min":0,"x_max":347,"o":"m 260 0 l 260 87 l 260 174 l 260 260 l 260 347 l 260 434 l 174 434 l 174 347 l 87 347 l 0 347 l 0 434 l 87 434 l 174 434 l 174 521 l 260 521 l 260 608 l 347 608 l 347 521 l 347 434 l 347 347 l 347 260 l 347 174 l 347 87 l 347 0 l 260 0 z "},"2":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 347 l 0 434 l 0 521 l 87 521 l 87 434 l 87 347 l 0 347 m 434 87 l 521 87 l 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 l 87 174 l 174 174 l 260 174 l 260 87 l 347 87 l 434 87 m 260 174 l 260 260 l 347 260 l 347 174 l 260 174 m 347 260 l 347 347 l 434 347 l 434 260 l 347 260 m 434 347 l 434 434 l 434 521 l 521 521 l 521 434 l 521 347 l 434 347 m 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"3":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 434 l 0 521 l 87 521 l 87 434 l 0 434 m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 87 174 l 87 87 m 434 260 l 347 260 l 260 260 l 174 260 l 174 347 l 260 347 l 347 347 l 434 347 l 434 260 m 434 347 l 434 434 l 434 521 l 521 521 l 521 434 l 521 347 l 434 347 m 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"4":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 0 l 347 87 l 347 174 l 260 174 l 174 174 l 87 174 l 0 174 l 0 260 l 0 347 l 87 347 l 87 434 l 174 434 l 174 521 l 260 521 l 260 608 l 347 608 l 434 608 l 434 521 l 434 434 l 434 347 l 434 260 l 521 260 l 521 174 l 434 174 l 434 87 l 434 0 l 347 0 m 260 260 l 347 260 l 347 347 l 347 434 l 347 521 l 260 521 l 260 434 l 174 434 l 174 347 l 87 347 l 87 260 l 174 260 l 260 260 z "},"5":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 87 174 l 87 87 m 434 260 l 347 260 l 260 260 l 174 260 l 87 260 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 434 l 87 347 l 174 347 l 260 347 l 347 347 l 434 347 l 434 260 z "},"6":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 m 434 260 l 347 260 l 260 260 l 174 260 l 174 347 l 260 347 l 347 347 l 434 347 l 434 260 m 87 434 l 87 521 l 174 521 l 174 434 l 87 434 m 260 608 l 347 608 l 347 521 l 260 521 l 174 521 l 174 608 l 260 608 z "},"7":{"ha":608,"x_min":0,"x_max":521,"o":"m 260 0 l 260 87 l 260 174 l 260 260 l 347 260 l 347 174 l 347 87 l 347 0 l 260 0 m 347 260 l 347 347 l 347 434 l 434 434 l 434 347 l 434 260 l 347 260 m 434 434 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 521 608 l 521 521 l 521 434 l 434 434 z "},"8":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 87 260 l 87 174 l 87 87 m 434 260 l 347 260 l 260 260 l 174 260 l 87 260 l 87 347 l 174 347 l 260 347 l 347 347 l 434 347 l 434 260 m 434 347 l 434 434 l 434 521 l 521 521 l 521 434 l 521 347 l 434 347 m 87 347 l 0 347 l 0 434 l 0 521 l 87 521 l 87 434 l 87 347 m 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"9":{"ha":608,"x_min":0,"x_max":521,"o":"m 260 87 l 347 87 l 347 0 l 260 0 l 174 0 l 174 87 l 260 87 m 347 87 l 347 174 l 434 174 l 434 87 l 347 87 m 434 174 l 434 260 l 434 347 l 434 434 l 434 521 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 434 174 m 260 347 l 347 347 l 347 260 l 260 260 l 174 260 l 87 260 l 87 347 l 174 347 l 260 347 m 87 347 l 0 347 l 0 434 l 0 521 l 87 521 l 87 434 l 87 347 m 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "}," ":{"ha":434,"x_min":0,"x_max":0,"o":""},"!":{"ha":260,"x_min":0,"x_max":174,"o":"m 87 87 l 174 87 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 m 87 174 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 174 521 l 174 434 l 174 347 l 174 260 l 174 174 l 87 174 z "},"\"":{"ha":521,"x_min":0,"x_max":434,"o":"m 260 347 l 260 434 l 260 521 l 260 608 l 347 608 l 434 608 l 434 521 l 434 434 l 347 434 l 347 347 l 260 347 m 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 174 521 l 174 434 l 87 434 l 87 347 l 0 347 z "},"#":{"ha":694,"x_min":0,"x_max":608,"o":"m 260 0 l 260 87 l 260 174 l 174 174 l 174 87 l 174 0 l 87 0 l 87 87 l 87 174 l 0 174 l 0 260 l 87 260 l 174 260 l 174 347 l 87 347 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 260 521 l 260 608 l 347 608 l 347 521 l 347 434 l 434 434 l 434 521 l 434 608 l 521 608 l 521 521 l 521 434 l 608 434 l 608 347 l 521 347 l 434 347 l 434 260 l 521 260 l 608 260 l 608 174 l 521 174 l 434 174 l 347 174 l 347 87 l 347 0 l 260 0 m 347 260 l 347 347 l 260 347 l 260 260 l 347 260 z "},"%":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 0 l 0 87 l 87 87 l 87 0 l 0 0 m 434 0 l 347 0 l 260 0 l 260 87 l 260 174 l 174 174 l 174 87 l 87 87 l 87 174 l 174 174 l 174 260 l 87 260 l 0 260 l 0 347 l 0 434 l 0 521 l 87 521 l 174 521 l 260 521 l 260 434 l 260 347 l 347 347 l 347 260 l 434 260 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 434 87 l 434 174 l 347 174 l 347 87 l 434 87 m 347 347 l 347 434 l 434 434 l 434 347 l 347 347 m 174 347 l 174 434 l 87 434 l 87 347 l 174 347 m 434 434 l 434 521 l 521 521 l 521 434 l 434 434 z "},"&":{"ha":694,"x_min":0,"x_max":608,"o":"m 521 87 l 608 87 l 608 0 l 521 0 l 434 0 l 434 87 l 521 87 m 174 87 l 260 87 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 m 434 87 l 347 87 l 260 87 l 260 174 l 260 260 l 347 260 l 434 260 l 434 174 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 87 260 l 87 174 l 87 87 m 434 260 l 434 347 l 521 347 l 521 260 l 434 260 m 260 260 l 174 260 l 87 260 l 87 347 l 87 434 l 87 521 l 174 521 l 174 434 l 174 347 l 260 347 l 260 260 m 260 608 l 347 608 l 347 521 l 260 521 l 174 521 l 174 608 l 260 608 z "},"*":{"ha":521,"x_min":0,"x_max":434,"o":"m 347 260 l 347 347 l 434 347 l 434 260 l 347 260 m 174 260 l 174 347 l 87 347 l 87 260 l 0 260 l 0 347 l 87 347 l 87 434 l 87 521 l 174 521 l 174 608 l 260 608 l 260 521 l 347 521 l 347 434 l 347 347 l 260 347 l 260 260 l 174 260 m 347 521 l 347 608 l 434 608 l 434 521 l 347 521 m 87 521 l 0 521 l 0 608 l 87 608 l 87 521 z "},",":{"ha":347,"x_min":87,"x_max":260,"o":"m 87 -87 l 87 0 l 87 87 l 87 174 l 174 174 l 260 174 l 260 87 l 260 0 l 174 0 l 174 -87 l 87 -87 z "},"-":{"ha":521,"x_min":87,"x_max":434,"o":"m 347 347 l 434 347 l 434 260 l 347 260 l 260 260 l 174 260 l 87 260 l 87 347 l 174 347 l 260 347 l 347 347 z "},".":{"ha":347,"x_min":87,"x_max":260,"o":"m 174 0 l 87 0 l 87 87 l 87 174 l 174 174 l 260 174 l 260 87 l 260 0 l 174 0 z "},"/":{"ha":521,"x_min":87,"x_max":434,"o":"m 87 0 l 87 87 l 87 174 l 174 174 l 174 87 l 174 0 l 87 0 m 174 174 l 174 260 l 174 347 l 260 347 l 260 260 l 260 174 l 174 174 m 260 347 l 260 434 l 260 521 l 347 521 l 347 434 l 347 347 l 260 347 m 347 521 l 347 608 l 347 694 l 434 694 l 434 608 l 434 521 l 347 521 z "},":":{"ha":347,"x_min":87,"x_max":260,"o":"m 174 0 l 87 0 l 87 87 l 87 174 l 174 174 l 260 174 l 260 87 l 260 0 l 174 0 m 174 347 l 87 347 l 87 434 l 87 521 l 174 521 l 260 521 l 260 434 l 260 347 l 174 347 z "},"?":{"ha":521,"x_min":0,"x_max":434,"o":"m 174 0 l 174 87 l 260 87 l 260 0 l 174 0 m 174 174 l 174 260 l 174 347 l 260 347 l 347 347 l 347 260 l 260 260 l 260 174 l 174 174 m 347 347 l 347 434 l 347 521 l 434 521 l 434 434 l 434 347 l 347 347 m 347 521 l 260 521 l 174 521 l 87 521 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 347 521 z "},"@":{"ha":694,"x_min":0,"x_max":608,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 347 174 l 260 174 l 174 174 l 174 87 l 87 87 l 87 174 l 174 174 l 174 260 l 174 347 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 l 347 347 l 260 347 l 260 260 l 347 260 l 434 260 l 434 347 l 521 347 l 521 434 l 608 434 l 608 347 l 608 260 l 608 174 l 521 174 l 521 87 l 434 87 m 87 174 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 l 87 174 m 521 434 l 434 434 l 434 521 l 521 521 l 521 434 m 174 434 l 87 434 l 87 521 l 174 521 l 174 434 m 434 521 l 347 521 l 260 521 l 174 521 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"A":{"ha":694,"x_min":0,"x_max":608,"o":"m 521 0 l 521 87 l 521 174 l 608 174 l 608 87 l 608 0 l 521 0 m 0 0 l 0 87 l 0 174 l 87 174 l 87 87 l 87 0 l 0 0 m 521 174 l 434 174 l 347 174 l 260 174 l 174 174 l 87 174 l 87 260 l 87 347 l 174 347 l 174 260 l 260 260 l 347 260 l 434 260 l 434 347 l 521 347 l 521 260 l 521 174 m 434 347 l 347 347 l 347 434 l 347 521 l 434 521 l 434 434 l 434 347 m 174 347 l 174 434 l 174 521 l 260 521 l 260 434 l 260 347 l 174 347 m 347 521 l 260 521 l 260 608 l 347 608 l 347 521 z "},"B":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 174 l 434 260 l 347 260 l 260 260 l 174 260 l 87 260 l 87 174 l 87 87 l 174 87 l 260 87 l 347 87 m 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 l 521 521 l 521 434 l 521 347 l 434 347 l 434 434 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 434 l 87 347 l 174 347 l 260 347 l 347 347 l 434 347 l 434 260 l 521 260 l 521 174 l 521 87 l 434 87 l 434 0 l 347 0 z "},"C":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 434 l 434 521 l 521 521 l 521 434 l 434 434 m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 521 174 l 521 87 l 434 87 m 174 87 l 87 87 l 87 174 l 174 174 l 174 87 m 87 174 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 l 87 174 m 87 434 l 87 521 l 174 521 l 174 434 l 87 434 m 434 521 l 347 521 l 260 521 l 174 521 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"D":{"ha":608,"x_min":0,"x_max":521,"o":"m 260 87 l 347 87 l 347 174 l 434 174 l 434 260 l 434 347 l 434 434 l 347 434 l 347 521 l 260 521 l 174 521 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 l 174 87 l 260 87 m 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 347 521 l 434 521 l 434 434 l 521 434 l 521 347 l 521 260 l 521 174 l 434 174 l 434 87 l 347 87 l 347 0 l 260 0 z "},"E":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 87 l 521 87 l 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 521 608 l 521 521 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 434 l 87 347 l 174 347 l 260 347 l 347 347 l 434 347 l 434 260 l 347 260 l 260 260 l 174 260 l 87 260 l 87 174 l 87 87 l 174 87 l 260 87 l 347 87 l 434 87 z "},"F":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 521 608 l 521 521 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 434 l 87 347 l 174 347 l 260 347 l 347 347 l 434 347 l 434 260 l 347 260 l 260 260 l 174 260 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 z "},"G":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 434 l 434 521 l 521 521 l 521 434 l 434 434 m 434 0 l 347 0 l 260 0 l 174 0 l 174 87 l 260 87 l 347 87 l 434 87 l 434 174 l 434 260 l 347 260 l 347 347 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 174 87 l 87 87 l 87 174 l 174 174 l 174 87 m 87 174 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 l 87 174 m 87 434 l 87 521 l 174 521 l 174 434 l 87 434 m 434 521 l 347 521 l 260 521 l 174 521 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"H":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 434 174 l 434 260 l 347 260 l 260 260 l 174 260 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 87 347 l 174 347 l 260 347 l 347 347 l 434 347 l 434 434 l 434 521 l 434 608 l 521 608 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 z "},"I":{"ha":521,"x_min":0,"x_max":434,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 l 174 87 l 174 174 l 174 260 l 174 347 l 174 434 l 174 521 l 87 521 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 l 347 521 l 260 521 l 260 434 l 260 347 l 260 260 l 260 174 l 260 87 l 347 87 z "},"J":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 434 347 l 434 434 l 434 521 l 434 608 l 521 608 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 87 260 l 87 174 l 87 87 z "},"K":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 m 434 87 l 347 87 l 347 174 l 434 174 l 434 87 m 347 174 l 260 174 l 260 260 l 347 260 l 347 174 m 260 260 l 174 260 l 174 347 l 260 347 l 260 260 m 260 347 l 260 434 l 347 434 l 347 347 l 260 347 m 347 434 l 347 521 l 434 521 l 434 434 l 347 434 m 434 521 l 434 608 l 521 608 l 521 521 l 434 521 z "},"L":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 87 l 521 87 l 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 l 174 87 l 260 87 l 347 87 l 434 87 z "},"M":{"ha":694,"x_min":0,"x_max":608,"o":"m 521 0 l 521 87 l 521 174 l 521 260 l 521 347 l 434 347 l 434 260 l 434 174 l 347 174 l 347 87 l 347 0 l 260 0 l 260 87 l 260 174 l 347 174 l 347 260 l 347 347 l 434 347 l 434 434 l 434 521 l 521 521 l 521 608 l 608 608 l 608 521 l 608 434 l 608 347 l 608 260 l 608 174 l 608 87 l 608 0 l 521 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 174 521 l 174 434 l 174 347 l 260 347 l 260 260 l 260 174 l 174 174 l 174 260 l 174 347 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 z "},"N":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 434 174 l 347 174 l 347 260 l 434 260 l 434 347 l 434 434 l 434 521 l 434 608 l 521 608 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 174 521 l 174 434 l 260 434 l 260 347 l 347 347 l 347 260 l 260 260 l 260 347 l 174 347 l 174 434 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 z "},"O":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 434 347 l 434 434 l 434 521 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 m 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"P":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 l 521 521 l 521 434 l 521 347 l 434 347 l 434 260 l 347 260 l 260 260 l 174 260 l 174 347 l 260 347 l 347 347 l 434 347 l 434 434 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 z "},"Q":{"ha":694,"x_min":0,"x_max":608,"o":"m 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 l 434 87 l 434 174 l 434 260 l 434 347 l 434 434 l 434 521 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 608 87 l 608 0 l 521 0 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 m 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 z "},"R":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 434 521 l 521 521 l 521 434 l 521 347 l 434 347 l 434 260 l 347 260 l 347 174 l 434 174 l 434 87 l 347 87 l 347 174 l 260 174 l 260 260 l 174 260 l 174 347 l 260 347 l 347 347 l 434 347 l 434 434 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 z "},"S":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 347 174 l 347 260 l 434 260 l 521 260 l 521 174 l 521 87 l 434 87 m 347 260 l 260 260 l 174 260 l 174 347 l 260 347 l 347 347 l 347 260 m 174 347 l 87 347 l 0 347 l 0 434 l 0 521 l 87 521 l 87 434 l 174 434 l 174 347 m 434 608 l 521 608 l 521 521 l 434 521 l 347 521 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 z "},"T":{"ha":694,"x_min":0,"x_max":608,"o":"m 260 0 l 260 87 l 260 174 l 260 260 l 260 347 l 260 434 l 260 521 l 174 521 l 87 521 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 521 608 l 608 608 l 608 521 l 521 521 l 434 521 l 347 521 l 347 434 l 347 347 l 347 260 l 347 174 l 347 87 l 347 0 l 260 0 z "},"U":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 434 347 l 434 434 l 434 521 l 434 608 l 521 608 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 z "},"V":{"ha":694,"x_min":0,"x_max":608,"o":"m 260 0 l 260 87 l 347 87 l 347 0 l 260 0 m 347 87 l 347 174 l 347 260 l 434 260 l 434 174 l 434 87 l 347 87 m 260 87 l 174 87 l 174 174 l 174 260 l 260 260 l 260 174 l 260 87 m 434 260 l 434 347 l 434 434 l 521 434 l 521 347 l 521 260 l 434 260 m 174 260 l 87 260 l 87 347 l 87 434 l 174 434 l 174 347 l 174 260 m 521 434 l 521 521 l 521 608 l 608 608 l 608 521 l 608 434 l 521 434 m 87 434 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 z "},"W":{"ha":694,"x_min":0,"x_max":608,"o":"m 434 0 l 347 0 l 347 87 l 347 174 l 434 174 l 434 260 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 174 0 l 87 0 l 87 87 l 87 174 l 87 260 l 87 347 l 174 347 l 174 260 l 174 174 l 260 174 l 260 87 l 260 0 l 174 0 m 347 174 l 260 174 l 260 260 l 260 347 l 260 434 l 260 521 l 260 608 l 347 608 l 347 521 l 347 434 l 347 347 l 347 260 l 347 174 m 521 347 l 521 434 l 521 521 l 521 608 l 608 608 l 608 521 l 608 434 l 608 347 l 521 347 m 87 347 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 87 347 z "},"X":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 434 174 l 521 174 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 0 174 l 87 174 l 87 87 l 87 0 l 0 0 m 434 174 l 347 174 l 347 260 l 434 260 l 434 174 m 87 174 l 87 260 l 174 260 l 174 174 l 87 174 m 347 260 l 260 260 l 174 260 l 174 347 l 260 347 l 347 347 l 347 260 m 347 347 l 347 434 l 434 434 l 434 347 l 347 347 m 174 347 l 87 347 l 87 434 l 174 434 l 174 347 m 434 434 l 434 521 l 434 608 l 521 608 l 521 521 l 521 434 l 434 434 m 87 434 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 z "},"Y":{"ha":694,"x_min":0,"x_max":608,"o":"m 260 0 l 260 87 l 260 174 l 260 260 l 347 260 l 347 174 l 347 87 l 347 0 l 260 0 m 347 260 l 347 347 l 434 347 l 434 260 l 347 260 m 260 260 l 174 260 l 174 347 l 260 347 l 260 260 m 434 347 l 434 434 l 521 434 l 521 347 l 434 347 m 174 347 l 87 347 l 87 434 l 174 434 l 174 347 m 521 434 l 521 521 l 521 608 l 608 608 l 608 521 l 608 434 l 521 434 m 87 434 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 z "},"Z":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 87 l 521 87 l 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 l 87 174 l 174 174 l 174 87 l 260 87 l 347 87 l 434 87 m 174 174 l 174 260 l 174 347 l 260 347 l 260 434 l 347 434 l 347 347 l 347 260 l 260 260 l 260 174 l 174 174 m 347 434 l 347 521 l 260 521 l 174 521 l 87 521 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 434 608 l 521 608 l 521 521 l 434 521 l 434 434 l 347 434 z "},"`":{"ha":434,"x_min":174,"x_max":347,"o":"m 174 260 l 174 347 l 174 434 l 174 521 l 260 521 l 347 521 l 347 434 l 347 347 l 260 347 l 260 260 l 174 260 z "},"a":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 434 174 l 347 174 l 260 174 l 174 174 l 87 174 l 87 87 l 174 87 l 260 87 l 347 87 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 0 174 l 87 174 l 87 260 l 174 260 l 260 260 l 347 260 l 434 260 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 z "},"b":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 434 87 l 434 174 l 434 260 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 174 174 l 174 87 l 260 87 l 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 174 87 l 87 87 l 87 0 l 0 0 z "},"c":{"ha":521,"x_min":0,"x_max":434,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 87 347 l 87 260 l 87 174 l 87 87 m 347 434 l 434 434 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 434 l 174 434 l 260 434 l 347 434 z "},"d":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 347 87 l 347 174 l 434 174 l 434 260 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 87 87 l 174 87 l 260 87 l 347 87 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 87 347 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 521 l 434 608 l 521 608 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 z "},"e":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 87 l 521 87 l 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 87 347 l 87 260 l 174 260 l 260 260 l 347 260 l 434 260 l 434 347 l 521 347 l 521 260 l 521 174 l 434 174 l 347 174 l 260 174 l 174 174 l 87 174 l 87 87 m 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 z "},"f":{"ha":694,"x_min":0,"x_max":608,"o":"m 174 0 l 174 87 l 174 174 l 174 260 l 174 347 l 87 347 l 0 347 l 0 434 l 87 434 l 174 434 l 174 521 l 260 521 l 260 434 l 347 434 l 434 434 l 434 347 l 347 347 l 260 347 l 260 260 l 260 174 l 260 87 l 260 0 l 174 0 m 521 608 l 608 608 l 608 521 l 521 521 l 434 521 l 347 521 l 260 521 l 260 608 l 347 608 l 434 608 l 521 608 z "},"g":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 -87 l 434 -87 l 434 -174 l 347 -174 l 260 -174 l 174 -174 l 87 -174 l 87 -87 l 174 -87 l 260 -87 l 347 -87 m 434 -87 l 434 0 l 434 87 l 347 87 l 347 174 l 434 174 l 434 260 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 87 87 l 174 87 l 260 87 l 347 87 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 87 347 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 521 -87 l 434 -87 z "},"h":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 434 174 l 434 260 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 z "},"i":{"ha":434,"x_min":0,"x_max":347,"o":"m 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 l 174 87 l 174 174 l 174 260 l 174 347 l 87 347 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 260 347 l 260 260 l 260 174 l 260 87 l 347 87 l 347 0 l 260 0 m 174 608 l 260 608 l 260 521 l 174 521 l 87 521 l 87 608 l 174 608 z "},"j":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 0 l 434 0 l 434 -87 l 347 -87 l 260 -87 l 174 -87 l 87 -87 l 87 0 l 174 0 l 260 0 l 347 0 m 434 0 l 434 87 l 434 174 l 434 260 l 434 347 l 434 434 l 347 434 l 260 434 l 260 521 l 347 521 l 434 521 l 521 521 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 87 0 l 0 0 l 0 87 l 0 174 l 87 174 l 87 87 l 87 0 m 434 694 l 521 694 l 521 608 l 434 608 l 347 608 l 347 694 l 434 694 z "},"k":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 0 521 l 0 608 l 87 608 l 87 521 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 m 434 87 l 347 87 l 347 174 l 434 174 l 434 87 m 347 174 l 260 174 l 174 174 l 174 260 l 260 260 l 347 260 l 347 174 m 347 260 l 347 347 l 434 347 l 434 260 l 347 260 m 434 347 l 434 434 l 521 434 l 521 347 l 434 347 z "},"l":{"ha":434,"x_min":0,"x_max":347,"o":"m 260 0 l 260 87 l 260 174 l 260 260 l 260 347 l 260 434 l 260 521 l 174 521 l 87 521 l 0 521 l 0 608 l 87 608 l 174 608 l 260 608 l 347 608 l 347 521 l 347 434 l 347 347 l 347 260 l 347 174 l 347 87 l 347 0 l 260 0 z "},"m":{"ha":694,"x_min":0,"x_max":608,"o":"m 521 0 l 521 87 l 521 174 l 521 260 l 521 347 l 608 347 l 608 260 l 608 174 l 608 87 l 608 0 l 521 0 m 260 0 l 260 87 l 260 174 l 260 260 l 260 347 l 347 347 l 347 260 l 347 174 l 347 87 l 347 0 l 260 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 m 521 347 l 434 347 l 347 347 l 347 434 l 434 434 l 521 434 l 521 347 z "},"n":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 434 174 l 434 260 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 z "},"o":{"ha":608,"x_min":0,"x_max":521,"o":"m 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 m 434 87 l 434 174 l 434 260 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 434 87 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 87 347 l 87 260 l 87 174 l 87 87 m 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 z "},"p":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 -87 l 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 434 347 l 521 347 l 521 260 l 521 174 l 521 87 l 434 87 l 434 174 l 434 260 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 174 174 l 174 87 l 260 87 l 347 87 l 434 87 l 434 0 l 347 0 l 260 0 l 174 0 l 174 87 l 87 87 l 87 0 l 87 -87 l 0 -87 z "},"q":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 -87 l 434 0 l 434 87 l 347 87 l 347 174 l 434 174 l 434 260 l 434 347 l 347 347 l 260 347 l 174 347 l 87 347 l 87 260 l 87 174 l 87 87 l 174 87 l 260 87 l 347 87 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 87 347 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 521 -87 l 434 -87 z "},"r":{"ha":608,"x_min":0,"x_max":521,"o":"m 0 0 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 174 347 l 174 260 l 87 260 l 87 174 l 87 87 l 87 0 l 0 0 m 434 434 l 521 434 l 521 347 l 434 347 l 347 347 l 260 347 l 174 347 l 174 434 l 260 434 l 347 434 l 434 434 z "},"s":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 l 174 87 l 260 87 l 347 87 l 347 174 l 434 174 l 521 174 l 521 87 l 521 0 l 434 0 m 347 174 l 260 174 l 174 174 l 174 260 l 260 260 l 347 260 l 347 174 m 174 260 l 87 260 l 0 260 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 521 434 l 521 347 l 434 347 l 347 347 l 260 347 l 174 347 l 174 260 z "},"t":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 87 l 521 87 l 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 174 87 l 260 87 l 347 87 l 434 87 m 174 87 l 87 87 l 87 174 l 87 260 l 87 347 l 0 347 l 0 434 l 87 434 l 87 521 l 174 521 l 174 434 l 260 434 l 347 434 l 434 434 l 521 434 l 521 347 l 434 347 l 347 347 l 260 347 l 174 347 l 174 260 l 174 174 l 174 87 z "},"u":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 87 87 l 174 87 l 260 87 l 347 87 l 434 87 l 434 174 l 434 260 l 434 347 l 434 434 l 521 434 l 521 347 l 521 260 l 521 174 l 521 87 l 521 0 l 434 0 m 87 87 l 0 87 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 l 87 174 l 87 87 z "},"v":{"ha":694,"x_min":0,"x_max":608,"o":"m 260 0 l 260 87 l 347 87 l 347 0 l 260 0 m 347 87 l 347 174 l 434 174 l 434 87 l 347 87 m 260 87 l 174 87 l 174 174 l 260 174 l 260 87 m 434 174 l 434 260 l 521 260 l 521 174 l 434 174 m 174 174 l 87 174 l 87 260 l 174 260 l 174 174 m 521 260 l 521 347 l 521 434 l 608 434 l 608 347 l 608 260 l 521 260 m 87 260 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 z "},"w":{"ha":694,"x_min":0,"x_max":608,"o":"m 347 0 l 347 87 l 434 87 l 434 0 l 347 0 m 174 0 l 174 87 l 260 87 l 260 0 l 174 0 m 434 87 l 434 174 l 521 174 l 521 87 l 434 87 m 347 87 l 260 87 l 260 174 l 260 260 l 260 347 l 260 434 l 347 434 l 347 347 l 347 260 l 347 174 l 347 87 m 174 87 l 87 87 l 87 174 l 174 174 l 174 87 m 521 174 l 521 260 l 521 347 l 521 434 l 608 434 l 608 347 l 608 260 l 608 174 l 521 174 m 87 174 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 l 87 174 z "},"x":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 0 l 434 87 l 521 87 l 521 0 l 434 0 m 0 0 l 0 87 l 87 87 l 87 0 l 0 0 m 434 87 l 347 87 l 347 174 l 434 174 l 434 87 m 87 87 l 87 174 l 174 174 l 174 87 l 87 87 m 347 174 l 260 174 l 174 174 l 174 260 l 260 260 l 347 260 l 347 174 m 347 260 l 347 347 l 434 347 l 434 260 l 347 260 m 174 260 l 87 260 l 87 347 l 174 347 l 174 260 m 434 347 l 434 434 l 521 434 l 521 347 l 434 347 m 87 347 l 0 347 l 0 434 l 87 434 l 87 347 z "},"y":{"ha":608,"x_min":0,"x_max":521,"o":"m 87 -87 l 174 -87 l 174 -174 l 87 -174 l 0 -174 l 0 -87 l 87 -87 m 174 -87 l 174 0 l 174 87 l 260 87 l 347 87 l 347 0 l 260 0 l 260 -87 l 174 -87 m 347 87 l 347 174 l 434 174 l 434 87 l 347 87 m 174 87 l 87 87 l 87 174 l 174 174 l 174 87 m 434 174 l 434 260 l 434 347 l 434 434 l 521 434 l 521 347 l 521 260 l 521 174 l 434 174 m 87 174 l 0 174 l 0 260 l 0 347 l 0 434 l 87 434 l 87 347 l 87 260 l 87 174 z "},"z":{"ha":608,"x_min":0,"x_max":521,"o":"m 434 87 l 521 87 l 521 0 l 434 0 l 347 0 l 260 0 l 174 0 l 87 0 l 0 0 l 0 87 l 87 87 l 87 174 l 174 174 l 174 87 l 260 87 l 347 87 l 434 87 m 260 260 l 347 260 l 347 174 l 260 174 l 174 174 l 174 260 l 260 260 m 347 260 l 347 347 l 260 347 l 174 347 l 87 347 l 0 347 l 0 434 l 87 434 l 174 434 l 260 434 l 347 434 l 434 434 l 521 434 l 521 347 l 434 347 l 434 260 l 347 260 z "},"{":{"ha":347,"x_min":0,"x_max":260,"o":"m 174 0 l 174 87 l 87 87 l 87 174 l 87 260 l 0 260 l 0 347 l 0 434 l 87 434 l 87 521 l 87 608 l 174 608 l 174 694 l 260 694 l 260 608 l 260 521 l 174 521 l 174 434 l 174 347 l 174 260 l 174 174 l 260 174 l 260 87 l 260 0 l 174 0 z "},"}":{"ha":347,"x_min":0,"x_max":260,"o":"m 0 0 l 0 87 l 0 174 l 87 174 l 87 260 l 87 347 l 87 434 l 87 521 l 0 521 l 0 608 l 0 694 l 87 694 l 87 608 l 174 608 l 174 521 l 174 434 l 260 434 l 260 347 l 260 260 l 174 260 l 174 174 l 174 87 l 87 87 l 87 0 l 0 0 z "},"~":{"ha":694,"x_min":0,"x_max":608,"o":"m 0 260 l 0 347 l 87 347 l 87 260 l 0 260 m 434 260 l 521 260 l 521 174 l 434 174 l 347 174 l 347 260 l 434 260 m 521 260 l 521 347 l 608 347 l 608 260 l 521 260 m 347 260 l 260 260 l 260 347 l 347 347 l 347 260 m 260 347 l 174 347 l 87 347 l 87 434 l 174 434 l 260 434 l 260 347 z "}," ":{"ha":434,"x_min":0,"x_max":0,"o":""}},"familyName":"LainPlainV21","ascender":925,"descender":-174,"underlinePosition":-174,"underlineThickness":69,"boundingBox":{"yMin":-174,"xMin":0,"yMax":925,"xMax":608},"resolution":1000,"original_font_information":{"format":0,"copyright":"TheOneBimBuns","fontFamily":"LainPlainV21","fontSubfamily":"Medium","uniqueID":"TheOneBimBuns:LainPlainV21","fullName":"LainPlainV21","version":"Version 001.000 ","postScriptName":"LainPlainV21"},"cssFontWeight":"normal","cssFontStyle":"normal"} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 9789ab8..9a6cf12 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,8 +4,8 @@ import "./static/css/hub.css"; import "./static/css/main.css"; import { Canvas } from "react-three-fiber"; import Boot from "./components/Boot"; -import MediaPlayer from "./components/MediaPlayer"; -import MediaOverlay from "./components/MediaOverlay"; +import MediaPlayer from "./components/MediaScene/MediaPlayer"; +import MediaScene from "./components/MediaScene/MediaScene"; import EventStateManager from "./components/StateManagers/EventStateManager"; const App = () => { @@ -27,12 +27,12 @@ const App = () => { - + {/**/} - + {/**/} ); }; diff --git a/src/components/MediaOverlay.tsx b/src/components/MediaOverlay.tsx deleted file mode 100644 index 47cebe3..0000000 --- a/src/components/MediaOverlay.tsx +++ /dev/null @@ -1,241 +0,0 @@ -import React, { useCallback, useEffect, useRef, useState } from "react"; - -import grayTextureFile from "../static/sprite/gray_box.png"; -import darkGrayTextureFile from "../static/sprite/dark_gray_box.png"; -import mediaOverlayHud from "../static/sprite/media_hud.png"; - -import { useFrame, useLoader } from "react-three-fiber"; -import * as THREE from "three"; -import { OrbitControls } from "drei"; -import { a, useTrail } from "@react-spring/three"; -import { useMediaStore } from "../store"; -import BigLetter from "./TextRenderer/BigLetter"; -import MediumLetter from "./TextRenderer/MediumLetter"; -import TextRenderer from "./TextRenderer/TextRenderer"; - -type ShapeProps = { - position: number[]; - selectable?: boolean; - active?: boolean; -}; - -const GrayCube = (props: ShapeProps) => { - const grayTex = useLoader(THREE.TextureLoader, grayTextureFile); - const darkGrayTex = useLoader(THREE.TextureLoader, darkGrayTextureFile); - - const cubeRef = useRef(); - - useFrame(() => { - if (props.selectable && props.active) { - cubeRef.current!.rotation.y -= 0.015; - } else { - cubeRef.current!.rotation.y = 0; - } - }); - - return ( - - - - - ); -}; - -const GrayTriangularPrism = (props: ShapeProps) => { - const grayTex = useLoader(THREE.TextureLoader, grayTextureFile); - const darkGrayTex = useLoader(THREE.TextureLoader, darkGrayTextureFile); - - const prismRef = useRef(); - - const verts = new Float32Array([ - // Top - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 1, - 0, - - // Bottom - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - - // Sides - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 0, - - // Hypotenuse - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 1, - - 0, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - ]); - - useFrame(() => { - if (props.selectable && props.active) { - prismRef.current!.rotation.y -= 0.015; - } else { - prismRef.current!.rotation.y = 0; - } - }); - - return ( - - - - - - // - // - // - // - // - // - ); -}; - -const MediaOverlay = () => { - const [grayCubesActive, setGrayCubesActive] = useState(false); - const mediaHudOverlayTex = useLoader(THREE.TextureLoader, mediaOverlayHud); - - const activeMediaElement = useMediaStore((state) => state.activeMediaElement); - - return ( - <> - - - - - - - - - - - - - - - - - - - - - - ); -}; - -export default MediaOverlay; diff --git a/src/components/MediaScene/LeftSide/Cube.tsx b/src/components/MediaScene/LeftSide/Cube.tsx new file mode 100644 index 0000000..21492ec --- /dev/null +++ b/src/components/MediaScene/LeftSide/Cube.tsx @@ -0,0 +1,39 @@ +import { useFrame, useLoader } from "react-three-fiber"; +import * as THREE from "three"; +import grayTextureFile from "../../../static/sprite/gray_box.png"; +import darkGrayTextureFile from "../../../static/sprite/dark_gray_box.png"; +import React, { useRef } from "react"; +import { ShapeProps } from "./LeftSide"; + +const Cube = (props: ShapeProps) => { + const grayTex = useLoader(THREE.TextureLoader, grayTextureFile); + const darkGrayTex = useLoader(THREE.TextureLoader, darkGrayTextureFile); + + const cubeRef = useRef(); + + useFrame(() => { + if (props.selectable && props.active) { + cubeRef.current!.rotation.y -= 0.015; + } else { + cubeRef.current!.rotation.y = 0; + } + }); + + return ( + + + + + ); +}; + +export default Cube; diff --git a/src/components/MediaScene/LeftSide/LeftSide.tsx b/src/components/MediaScene/LeftSide/LeftSide.tsx new file mode 100644 index 0000000..de03784 --- /dev/null +++ b/src/components/MediaScene/LeftSide/LeftSide.tsx @@ -0,0 +1,43 @@ +import React from "react"; +import TriangularPrism from "./TriangularPrism"; +import Cube from "./Cube"; + +type LeftSideShapesProps = { + active: "cube" | "triangle" | ""; +}; + +export type ShapeProps = { + position: number[]; + selectable?: boolean; + active?: boolean; +}; + +const LeftSide = (props: LeftSideShapesProps) => { + const cubesActive = props.active === "cube"; + const trianglesActive = props.active === "triangle"; + + return ( + <> + + + + + + + + {/*main two*/} + + + + ); +}; + +export default LeftSide; diff --git a/src/components/MediaScene/LeftSide/TriangularPrism.tsx b/src/components/MediaScene/LeftSide/TriangularPrism.tsx new file mode 100644 index 0000000..6f1f124 --- /dev/null +++ b/src/components/MediaScene/LeftSide/TriangularPrism.tsx @@ -0,0 +1,147 @@ +import { useFrame, useLoader } from "react-three-fiber"; +import * as THREE from "three"; +import grayTextureFile from "../../../static/sprite/gray_box.png"; +import darkGrayTextureFile from "../../../static/sprite/dark_gray_box.png"; +import React, { useRef } from "react"; +import { ShapeProps } from "./LeftSide"; + +const TriangularPrism = (props: ShapeProps) => { + const grayTex = useLoader(THREE.TextureLoader, grayTextureFile); + const darkGrayTex = useLoader(THREE.TextureLoader, darkGrayTextureFile); + + const prismRef = useRef(); + + const verts = new Float32Array([ + // Top + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + + // Bottom + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + + // Sides + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + + // Hypotenuse + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + ]); + + useFrame(() => { + if (props.selectable && props.active) { + prismRef.current!.rotation.y -= 0.015; + } else { + prismRef.current!.rotation.y = 0; + } + }); + + return ( + + + + + + // + // + // + // + // + // + ); +}; + +export default TriangularPrism; \ No newline at end of file diff --git a/src/components/MediaPlayer.tsx b/src/components/MediaScene/MediaPlayer.tsx similarity index 84% rename from src/components/MediaPlayer.tsx rename to src/components/MediaScene/MediaPlayer.tsx index 1065384..7f0e43c 100644 --- a/src/components/MediaPlayer.tsx +++ b/src/components/MediaScene/MediaPlayer.tsx @@ -1,6 +1,6 @@ import React from "react"; import ReactPlayer from "react-player"; -import test from "../static/movie/test.webm"; +import test from "../../static/movie/test.webm"; const MediaPlayer = () => { return ( diff --git a/src/components/MediaScene/MediaScene.tsx b/src/components/MediaScene/MediaScene.tsx new file mode 100644 index 0000000..42279f6 --- /dev/null +++ b/src/components/MediaScene/MediaScene.tsx @@ -0,0 +1,43 @@ +import React, { useRef, useState } from "react"; + +import grayTextureFile from "../../static/sprite/gray_box.png"; +import darkGrayTextureFile from "../../static/sprite/dark_gray_box.png"; +import mediaOverlayHud from "../../static/sprite/media_hud.png"; + +import { useFrame, useLoader } from "react-three-fiber"; +import * as THREE from "three"; +import { OrbitControls } from "drei"; +import { useMediaStore, useMediaWordStore } from "../../store"; +import TextRenderer from "../TextRenderer/TextRenderer"; +import LeftSide from "./LeftSide/LeftSide"; +import Word from "./Word"; + +const MediaScene = () => { + const [grayCubesActive, setGrayCubesActive] = useState(false); + const mediaHudOverlayTex = useLoader(THREE.TextureLoader, mediaOverlayHud); + const words = useMediaWordStore((state) => state.words); + + const activeMediaElement = useMediaStore((state) => state.activeMediaElement); + + return ( + <> + + + + + + + + + + + + + + + + + ); +}; + +export default MediaScene; diff --git a/src/components/MediaScene/Word.tsx b/src/components/MediaScene/Word.tsx new file mode 100644 index 0000000..e21d2c3 --- /dev/null +++ b/src/components/MediaScene/Word.tsx @@ -0,0 +1,49 @@ +import React, { useMemo } from "react"; +import * as THREE from "three"; +import wordInactiveTexture from "../../static/sprite/word_background.png"; +import wordActiveTexture from "../../static/sprite/word_background_active.png"; +import { useLoader } from "react-three-fiber"; + +type WordProps = { + word: string; + posX: number; + posY: number; +}; + +const Word = (props: WordProps) => { + const wordFont = useLoader(THREE.FontLoader, "/3d_fonts/MediaWord.blob"); + const config = useMemo( + () => ({ + font: wordFont, + size: 1, + }), + [wordFont] + ); + + const wordInactiveTex = useLoader(THREE.TextureLoader, wordInactiveTexture); + const wordActiveTex = useLoader(THREE.TextureLoader, wordActiveTexture); + + return ( + + + + + + + + + + + + ); +}; + +export default Word; diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts index 16f954b..55adf9e 100644 --- a/src/react-app-env.d.ts +++ b/src/react-app-env.d.ts @@ -8,3 +8,5 @@ declare module "threejs-slice-geometry" { const src: any; export default src; } + +declare module '*.ttf'; diff --git a/src/store.ts b/src/store.ts index 75cf517..13ac16b 100644 --- a/src/store.ts +++ b/src/store.ts @@ -85,6 +85,17 @@ type MiddleRingState = { setMiddleRingAnimDuration: (to: number) => void; }; +type MediaWordState = { + words: string[]; + fstWordPos: number[]; + sndWordPos: number[]; + thirdWordPos: number[]; + setWords: (to: string[]) => void; + setFstWordPos: (to: number[]) => void; + setSndWordPos: (to: number[]) => void; + setThirdWordPos: (to: number[]) => void; +}; + type MediaState = { activeMediaElement: string; leftColActiveMediaElement: string; @@ -244,3 +255,14 @@ export const useMediaStore = create((set) => ({ setLeftColActiveMediaElementTextPos: (to) => set(() => ({ leftColActiveMediaElementTextPos: to })), })); + +export const useMediaWordStore = create((set) => ({ + words: ["eye", "quiet", "hallucination"], + fstWordPos: [0, 0, 0], + sndWordPos: [0, 0, 0], + thirdWordPos: [0, 0, 0], + setWords: (to) => set(() => ({ words: to })), + setFstWordPos: (to) => set(() => ({ fstWordPos: to })), + setSndWordPos: (to) => set(() => ({ sndWordPos: to })), + setThirdWordPos: (to) => set(() => ({ thirdWordPos: to })), +}));