Skip to content

Instantly share code, notes, and snippets.

@fumieval
Last active December 16, 2015 05:38
Show Gist options
  • Save fumieval/5385729 to your computer and use it in GitHub Desktop.
Save fumieval/5385729 to your computer and use it in GitHub Desktop.
ぶるぶるちょまど(https://twitter.com/chomado/status/323644612357001217 )をコンビネータとして解釈する純粋関数型言語。 oは3-タプル(K, S, K)をチャーチエンコードしたものにあたる。(* ~ *)はコメント。入出力はチャーチエンコードされた自然数のリスト。
import Control.Applicative
import Data.Word
import System.Environment
import Text.Trifecta
import Control.Monad
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as BL
import qualified Codec.Binary.UTF8.String as UTF8
infixl 9 :$
data Expr = Expr :$ Expr | I | K | S | O
| Inc | Nat !Word8 | Cons | Nil deriving Show
apply :: Expr -> Expr -> Expr
apply (S :$ x :$ y) z = apply x z `apply` apply y z
apply (K :$ x) y = x
apply I x = x
apply O x = x `apply` K `apply` S `apply` K
apply Inc (Nat x) = Nat $! succ x
apply f x = f :$ x
eval :: Expr -> Expr
eval (x :$ y) = eval x `apply` eval y
eval x = x
encode :: BL.ByteString -> Expr
encode = foldr cons empty . map church . BL.unpack where
empty = K :$ I
cons x xs = (S :$ ((S :$ (K :$ ((S :$ (K :$ S)) :$ K))) :$ ((S :$ I) :$ (K :$ x)))) :$ xs
church :: Word8 -> Expr
church 0 = K :$ I
church 1 = I
church n = S :$ (S :$ (K :$ S) :$ K) :$ church (pred n)
decode :: Expr -> BL.ByteString
decode expr = runList $ expr `apply` Cons `apply` Nil where
runList (Cons :$ x :$ xs) = unchurch x `BL.cons` runList xs
runList Nil = BL.empty
runList _ = error "Result was not a list"
unchurch :: Expr -> Word8
unchurch expr = case expr `apply` Inc `apply` Nat 0 of
Nat n -> n
_ -> error "Result was not a number"
parseExpr :: Unspaced Parser Expr
parseExpr = foldl (:$) <$> parseTerm <*> many parseTerm
parseTerm :: Unspaced Parser Expr
parseTerm = skipComment $ parens parseExpr <|> (char 'o' >> pure O)
skipComment m = many comment *> m <* many comment
comment :: Unspaced Parser ()
comment = void $ string "(*" *> manyTill anyChar (try (string "*)"))
main = do
(path:_) <- getArgs
Just prog <- parseFromFile (runUnspaced parseExpr) path
input <- encode <$> BL.pack <$> UTF8.encode <$> getContents
BL.putStr $ decode $ eval $ prog :$ input
(((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o))))((o(*゚▽゚*)((o(*゚▽゚*)o)))(o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)((o(*゚▽゚*)((o(*゚▽゚*)o)))(((o(*゚▽゚*)o))(*゚▽゚*)o)(((o(*゚▽゚*)o))(*゚▽゚*)o)))))((o(*゚▽゚*)((o(*゚▽゚*)o)))((((o(*゚▽゚*)o))(*゚▽゚*)o)(o(*゚▽゚*)((o(*゚▽゚*)o))))(((o(*゚▽゚*)o))(*゚▽゚*)o))))))))))))))))))
@chomado
Copy link

chomado commented Apr 15, 2013

Σ(・□・;)
ふおおおおお!!(((o(゚▽゚)o)))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment