# HG changeset patch # User Yasutaka Higa # Date 1410250847 -32400 # Node ID 14da4e3ec8327fc1e9577a8507721815056eadc2 # Parent ce4917c50d293e2097ab2cf61a938f30296e9aad auto-Update generated slides by script diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/pictures/cover.jpg Binary file slides/20140909/pictures/cover.jpg has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/scripts/script.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/scripts/script.js Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,213 @@ +(function () { + var url = window.location, + body = document.body, + slides = document.querySelectorAll('div.slide'), + progress = document.querySelector('div.progress div'), + slideList = [], + l = slides.length, + i; + + for (i = 0; i < l; i++) { + slideList.push(slides[i].id); + } + + function getTransform() { + var denominator = Math.max( + body.clientWidth / window.innerWidth, + body.clientHeight / window.innerHeight + ); + + return 'scale(' + (1 / denominator) + ')'; + } + + function applyTransform(transform) { + body.style.MozTransform = transform; + body.style.WebkitTransform = transform; + body.style.OTransform = transform; + body.style.msTransform = transform; + body.style.transform = transform; + } + + function enterSingleSlideMode() { + body.className = 'full'; + applyTransform(getTransform()); + } + + function enterSlideListMode() { + body.className = 'list'; + applyTransform('none'); + } + + function getCurrentSlideNumber() { + return slideList.indexOf(url.hash.substr(1)); + } + + function scrollToCurrentSlide() { + var current_slide = document.getElementById(slideList[getCurrentSlideNumber()]); + + if (null != current_slide) { + window.scrollTo(0, current_slide.offsetTop); + } + } + + function isSlideListMode() { + return 'full' !== url.search.substr(1); + } + + function normalizeSlideNumber(slide_number) { + if (0 > slide_number) { + return slideList.length - 1; + } else if (slideList.length <= slide_number) { + return 0; + } else { + return slide_number; + } + } + + function updateProgress(slide_number) { + if (!progress) return; + progress.style.width = (100 / (slideList.length - 1) * normalizeSlideNumber(slide_number)).toFixed(2) + '%'; + } + + function getSlideHashByNumber(slide_number) { + return '#' + slideList[normalizeSlideNumber(slide_number)]; + } + + function goToSlide(slide_number) { + url.hash = getSlideHashByNumber(slide_number); + + if (!isSlideListMode()) { + updateProgress(slide_number); + } + } + + window.addEventListener('DOMContentLoaded', function () { + if (!isSlideListMode()) { + // "?full" is present without slide hash so we should display first + // slide + if ( -1 === getCurrentSlideNumber() ) { + history.replaceState(null, null, url.pathname + '?full' + getSlideHashByNumber( 0 ) ); + } + + enterSingleSlideMode(); + updateProgress(getCurrentSlideNumber()); + } + }, false); + + window.addEventListener('popstate', function (e) { + if (isSlideListMode()) { + enterSlideListMode(); + scrollToCurrentSlide(); + } else { + enterSingleSlideMode(); + } + }, false); + + window.addEventListener('resize', function (e) { + if (!isSlideListMode()) { + applyTransform(getTransform()); + } + }, false); + + document.addEventListener('keydown', function (e) { + if (e.altKey || e.ctrlKey || e.metaKey) return; + + var current_slide_number = getCurrentSlideNumber(); + + switch (e.which) { + case 9: // Tab = +1; Shift + Tab = -1 + if (isSlideListMode()) { + e.preventDefault(); + + current_slide_number += e.shiftKey ? -1 : 1; + url.hash = getSlideHashByNumber(current_slide_number); + } + break; + + case 13: // Enter + if (isSlideListMode()) { + e.preventDefault(); + + history.pushState(null, null, url.pathname + '?full' + getSlideHashByNumber(current_slide_number)); + enterSingleSlideMode(); + + updateProgress(current_slide_number); + } + break; + + case 27: // Esc + if (!isSlideListMode()) { + e.preventDefault(); + + history.pushState(null, null, url.pathname + getSlideHashByNumber(current_slide_number)); + enterSlideListMode(); + scrollToCurrentSlide(); + } + break; + + case 33: // PgUp + case 38: // Up + case 37: // Left + case 72: // h + case 75: // k + e.preventDefault(); + + current_slide_number--; + goToSlide(current_slide_number); + break; + + case 34: // PgDown + case 40: // Down + case 39: // Right + case 76: // l + case 74: // j + e.preventDefault(); + + current_slide_number++; + goToSlide(current_slide_number); + break; + + case 36: // Home + e.preventDefault(); + + current_slide_number = 0; + goToSlide(current_slide_number); + break; + + case 35: // End + e.preventDefault(); + + current_slide_number = slideList.length - 1; + goToSlide(current_slide_number); + break; + + case 32: // Space = +1; Shift + Space = -1 + e.preventDefault(); + + current_slide_number += e.shiftKey ? -1 : 1; + goToSlide(current_slide_number); + break; + + default: + // Behave as usual + } + }, false); + + document.addEventListener('click', function (e) { + if ( + 'SECTION' === e.target.nodeName && + -1 !== e.target.parentNode.parentNode.className.indexOf('slide') && + isSlideListMode() + ) { + e.preventDefault(); + + // NOTE: we should update hash to get things work properly + url.hash = '#' + e.target.parentNode.parentNode.id; + history.replaceState(null, null, url.pathname + '?full#' + e.target.parentNode.parentNode.id); + enterSingleSlideMode(); + + updateProgress(getCurrentSlideNumber()); + } + }, false); + +}()); diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/slide.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/slide.html Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,409 @@ + + + + + プログラムのデバッグ支援 + + + + + + + + +
+

プログラムのデバッグ支援

+

Yasutaka Higa

+
+
+
+
+

プログラムのデバッグ支援

+
+ + + +
+
+ + + + +
+
+
+

研究目的

+
+ + + + +
    +
  • プログラミングにおいて、ソースコードを改変するとプログラムの挙動も変わる
  • +
  • しかしリファクタリングにおいてはソースコードを変更した後も同じ結果を得たい
  • +
  • ソースコードの改変をモナドとして記述し、実行結果の変化を自動的に検出したい
  • +
  • これによりリファクタリング支援や後方互換性の支援などを行なう
  • +
+ + + +
+
+ +
+
+
+

近況報告

+
+ + +
    +
  • Deifine Simple Similar +
      +
    • Similar
    • +
    • Similar as Functor
    • +
    • Similar as Applicative Functor
    • +
    • Similar as Monad
    • +
    +
  • +
+ + + +
+
+ +
+
+
+

Similar

+
+ + +
    +
  • List みたいな感じになりました
  • +
+ +
data Similar a = Single a | Similar a (Similar a)
+
+ +
    +
  • オリジナルの関数は Single で値を包んでおく必要がある +
      +
    • 全てはモナド、って伏線がここで
    • +
    +
  • +
  • 似てる関数は、その値を a に、とオリジナルの関数をsimilarする
  • +
+ + + +
+
+ +
+
+
+

Similar Syntax

+
+ + +
    +
  • オリジナルの関数は Single で値を包んでおく必要がある +
      +
    • こうしておかないと、リファクタリング時にオリジナルの関数を修正する必要が出てくる
    • +
    • とは言え関数を呼び出す側は変更しなくてはならないのでリファクタリング時にプログラムが全く変更されない訳では無い
    • +
    +
  • +
  • その変わり「関数Aをリファクタリングした関数Bをリファクタリングした関数C」も扱える
  • +
+ + + +
+
+ +
+
+
+

Similar Syntax Example

+
+ + +
double :: Int -> Similar Int
+double x = Single (2 * x)
+
+twicePlus :: Int -> Similar Int
+twicePlus x = Similar (x + x) (double x)
+
+ + + +
+
+ +
+
+
+

Similar as Functor

+
+ + +
    +
  • Functor は関数 f を全ての要素に与える +
      +
    • List っぽい
    • +
    +
  • +
+ +
instance Functor Similar where
+   fmap f (Single a)    = Single (f a)
+   fmap f (Similar a s) = Similar (f a) (fmap f s)
+
+ + + +
+
+ +
+
+
+

Similar as Monad

+
+ + +
    +
  • mu は Similar (Similar a) -> Similar a
  • +
  • List の List みたいな感じで一旦 flatten する必要が
  • +
  • Similar (Similar a) はこんなの
  • +
+ +
Similar (Single (Similar 1 (Single 1)))
+        (Single (Single (Similar 1 (Single 1))))
+
+ + + +
+
+ +
+
+
+

Definition : mu

+
+ + + +
mu :: (Similar (Similar a)) -> Similar a
+mu (Single s)     = s
+mu (Similar s ss) = similar s (mu ss)
+
+ +
    +
  • similar は list で言う append みたいな
  • +
  • mu の中で変更を検出しても良いが Eq の instance である必要がある
  • +
  • なので最後の時に値比較をすることに +
      +
    • 値比較 + debugger で追いたい情報を埋めこんでおくと良い?
    • +
    +
  • +
+ + + +
+
+ +
+
+
+

Definition : Similar as Monad

+
+ + +
instance Monad Similar where
+    return              = Single
+    (Single x)    >>= f = f x
+    (Similar x s) >>= f = mu $ Similar (f x) (fmap f s)
+
+
    +
  • Similar (f x) (fmap f s) の type が (Similar (Similar a))
  • +
+ + + +
+
+ +
+
+
+

Get value : Similar

+
+ + + +
same :: (Eq a) => Similar a -> a
+same (Single x)    = x
+same (Similar x s) = if x == (same s) then x else (error "same")
+
+ +
    +
  • 今は値が違う、というエラーメッセージのみ
  • +
+ + + +
+
+ +
+
+
+

Get value : Similar

+
+ + +
    +
  • こっちは値比較無し
  • +
  • 問答無用で正しく動いている方を取る
  • +
+ +
value :: Similar a -> a
+value (Single x)    = x
+value (Similar x s) = value s
+
+ + + +
+
+ +
+
+
+

Execution Samples : bind

+
+ + +
*Main>  return 100 >>= double  >>= twicePlus
+Similar 400 (Single 400)
+*Main>  return 100 >>= double  >>= twicePlus >>= plusTwo
+Similar 402 (Similar 800 (Similar 402 (Single 800)))
+
+ + + +
+
+ +
+
+
+

Execution Samples : Get value

+
+ + +
*Main> same $  return 100 >>= double  >>= twicePlus >>= plusTwo
+*** Exception: same
+*Main> same $  return 100 >>= double  >>= twicePlus
+400
+
+ + + +
+
+ +
+
+
+

Similar as Applicative Functor

+
+ + +
    +
  • ghc 7.8.3 から Monad の instance にするには Applicative にもしておくこと推奨
  • +
  • Similar 内に function が入ってる場合の挙動 +
      +
    • T f みたいな状態
    • +
    +
  • +
  • こっちも List っぽい感じで全てのパターンを作ってしまう
  • +
+ + + +
+
+ +
+
+
+

Define : Similar as Applicative Functor

+
+ + +
instance Applicative Similar where
+    pure                 = Single
+    (Single f)    <*> s  = fmap f s
+    (Similar f s) <*> ss = similar (fmap f ss) (s <*> ss)
+
+ + + +
+
+ +
+
+
+

summary

+
+ + +
    +
  • List (non-deterministic Monad) っぽい +
      +
    • debugger info の埋め込み
    • +
    • どんな関数がどんな順番で呼ばれたか
    • +
    +
  • +
  • Functor raw, Monad raw +
      +
    • 証明しておく必要が
    • +
    • 特に Monoid なのかどうか
    • +
    +
  • +
+ + + + +
+
+ + + +
+ + + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/slide.md Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,154 @@ +title: プログラムのデバッグ支援 +author: Yasutaka Higa +cover: +lang: Japanese + + + +# 研究目的 +* プログラミングにおいて、ソースコードを改変するとプログラムの挙動も変わる +* しかしリファクタリングにおいてはソースコードを変更した後も同じ結果を得たい +* ソースコードの改変をモナドとして記述し、実行結果の変化を自動的に検出したい +* これによりリファクタリング支援や後方互換性の支援などを行なう + + +# 近況報告 +* Deifine Simple Similar + * Similar + * Similar as Functor + * Similar as Applicative Functor + * Similar as Monad + + +# Similar +* List みたいな感じになりました + +``` +data Similar a = Single a | Similar a (Similar a) +``` + +* オリジナルの関数は Single で値を包んでおく必要がある + * 全てはモナド、って伏線がここで +* 似てる関数は、その値を a に、とオリジナルの関数をsimilarする + +# Similar Syntax +* オリジナルの関数は Single で値を包んでおく必要がある + * こうしておかないと、リファクタリング時にオリジナルの関数を修正する必要が出てくる + * とは言え関数を呼び出す側は変更しなくてはならないのでリファクタリング時にプログラムが全く変更されない訳では無い +* その変わり「関数Aをリファクタリングした関数Bをリファクタリングした関数C」も扱える + + +# Similar Syntax Example +``` +double :: Int -> Similar Int +double x = Single (2 * x) + +twicePlus :: Int -> Similar Int +twicePlus x = Similar (x + x) (double x) +``` + +# Similar as Functor +* Functor は関数 f を全ての要素に与える + * List っぽい + +``` +instance Functor Similar where + fmap f (Single a) = Single (f a) + fmap f (Similar a s) = Similar (f a) (fmap f s) +``` + +# Similar as Monad +* mu は Similar (Similar a) -> Similar a +* List の List みたいな感じで一旦 flatten する必要が +* Similar (Similar a) はこんなの + +``` +Similar (Single (Similar 1 (Single 1))) + (Single (Single (Similar 1 (Single 1)))) +``` + +# Definition : mu + +``` +mu :: (Similar (Similar a)) -> Similar a +mu (Single s) = s +mu (Similar s ss) = similar s (mu ss) +``` + +* similar は list で言う append みたいな +* mu の中で変更を検出しても良いが Eq の instance である必要がある +* なので最後の時に値比較をすることに + * 値比較 + debugger で追いたい情報を埋めこんでおくと良い? + +# Definition : Similar as Monad +``` +instance Monad Similar where + return = Single + (Single x) >>= f = f x + (Similar x s) >>= f = mu $ Similar (f x) (fmap f s) +``` +* Similar (f x) (fmap f s) の type が (Similar (Similar a)) + + +# Get value : Similar + +``` +same :: (Eq a) => Similar a -> a +same (Single x) = x +same (Similar x s) = if x == (same s) then x else (error "same") +``` + +* 今は値が違う、というエラーメッセージのみ + + +# Get value : Similar +* こっちは値比較無し +* 問答無用で正しく動いている方を取る + +``` +value :: Similar a -> a +value (Single x) = x +value (Similar x s) = value s +``` + +# Execution Samples : bind +``` +*Main> return 100 >>= double >>= twicePlus +Similar 400 (Single 400) +*Main> return 100 >>= double >>= twicePlus >>= plusTwo +Similar 402 (Similar 800 (Similar 402 (Single 800))) +``` + +# Execution Samples : Get value +``` +*Main> same $ return 100 >>= double >>= twicePlus >>= plusTwo +*** Exception: same +*Main> same $ return 100 >>= double >>= twicePlus +400 +``` + + + +# Similar as Applicative Functor +* ghc 7.8.3 から Monad の instance にするには Applicative にもしておくこと推奨 +* Similar 内に function が入ってる場合の挙動 + * T f みたいな状態 +* こっちも List っぽい感じで全てのパターンを作ってしまう + +# Define : Similar as Applicative Functor +``` +instance Applicative Similar where + pure = Single + (Single f) <*> s = fmap f s + (Similar f s) <*> ss = similar (fmap f ss) (s <*> ss) +``` + +# summary +* List (non-deterministic Monad) っぽい + * debugger info の埋め込み + * どんな関数がどんな順番で呼ばれたか +* Functor raw, Monad raw + * 証明しておく必要が + * 特に Monoid なのかどうか + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/DroidSansMono.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/DroidSansMono.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,626 @@ + + + + Foundry: Ascender Corporation + Foundry URL: http://www.ascendercorp.com/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/DroidSansMono.ttf Binary file slides/20140909/themes/ribbon/fonts/DroidSansMono.ttf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Bold.Italic.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/PTSans.Bold.Italic.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Bold.Italic.ttf Binary file slides/20140909/themes/ribbon/fonts/PTSans.Bold.Italic.ttf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Bold.Italic.woff Binary file slides/20140909/themes/ribbon/fonts/PTSans.Bold.Italic.woff has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Bold.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/PTSans.Bold.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Bold.ttf Binary file slides/20140909/themes/ribbon/fonts/PTSans.Bold.ttf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Bold.woff Binary file slides/20140909/themes/ribbon/fonts/PTSans.Bold.woff has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Italic.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/PTSans.Italic.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Italic.ttf Binary file slides/20140909/themes/ribbon/fonts/PTSans.Italic.ttf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Italic.woff Binary file slides/20140909/themes/ribbon/fonts/PTSans.Italic.woff has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Narrow.Bold.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/PTSans.Narrow.Bold.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Narrow.Bold.ttf Binary file slides/20140909/themes/ribbon/fonts/PTSans.Narrow.Bold.ttf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Narrow.Bold.woff Binary file slides/20140909/themes/ribbon/fonts/PTSans.Narrow.Bold.woff has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Narrow.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/PTSans.Narrow.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Narrow.ttf Binary file slides/20140909/themes/ribbon/fonts/PTSans.Narrow.ttf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.Narrow.woff Binary file slides/20140909/themes/ribbon/fonts/PTSans.Narrow.woff has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/PTSans.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.ttf Binary file slides/20140909/themes/ribbon/fonts/PTSans.ttf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/PTSans.woff Binary file slides/20140909/themes/ribbon/fonts/PTSans.woff has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/TargetBlank.otf Binary file slides/20140909/themes/ribbon/fonts/TargetBlank.otf has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/fonts/TargetBlank.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/fonts/TargetBlank.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,14 @@ + + + + Designer: Vadim Makeev + + + + + + + + + + \ No newline at end of file diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/images/grid.png Binary file slides/20140909/themes/ribbon/images/grid.png has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/images/linen.png Binary file slides/20140909/themes/ribbon/images/linen.png has changed diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/images/ribbon.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/images/ribbon.svg Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/styles/fonts.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/styles/fonts.css Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,63 @@ +/* PTSans */ +@font-face { + font-family:'PT Sans'; + src:local('PT Sans'), + url(../fonts/PTSans.woff) format('woff'), + url(../fonts/PTSans.ttf) format('truetype'), + url(../fonts/PTSans.svg#PTSans-Regular) format('svg'); + } +@font-face { + font-weight:bold; + font-family:'PT Sans'; + src:local('PT Sans Bold'), + url(../fonts/PTSans.Bold.woff) format('woff'), + url(../fonts/PTSans.Bold.ttf) format('truetype'), + url(../fonts/PTSans.Bold.svg#PTSans-Bold) format('svg'); + } +@font-face { + font-style:italic; + font-family:'PT Sans'; + src:local('PT Sans Italic'), + url(../fonts/PTSans.Italic.woff) format('woff'), + url(../fonts/PTSans.Italic.ttf) format('truetype'), + url(../fonts/PTSans.Italic.svg#PTSans-Italic) format('svg'); + } +@font-face { + font-style:italic; + font-weight:bold; + font-family:'PT Sans'; + src:local('PT Sans Bold Italic'), + url(../fonts/PTSans.Bold.Italic.woff) format('woff'), + url(../fonts/PTSans.Bold.Italic.ttf) format('truetype'), + url(../fonts/PTSans.Bold.Italic.svg#PTSans-BoldItalic) format('svg'); + } +@font-face { + font-family:'PT Sans Narrow'; + src:local('PT Sans Narrow'), + url(../fonts/PTSans.Narrow.woff) format('woff'), + url(../fonts/PTSans.Narrow.ttf) format('truetype'), + url(../fonts/PTSans.Narrow.svg#PTSans-Narrow) format('svg'); + } +@font-face { + font-family:'PT Sans Narrow'; + font-weight:bold; + src:local('PT Sans Narrow Bold'), + url(../fonts/PTSans.Narrow.Bold.woff) format('woff'), + url(../fonts/PTSans.Narrow.Bold.ttf) format('truetype'), + url(../fonts/PTSans.Narrow.Bold.svg#PTSans-NarrowBold) format('svg'); + } + +/* Droid Sans Mono */ +@font-face { + font-family:'Droid Sans Mono'; + src:local('Droid Sans Mono'), + url(../fonts/DroidSansMono.ttf) format('truetype'), + url(../fonts/DroidSansMono.svg#DroidSansMono) format('svg'); + } + +/* Linker */ +@font-face { + font-family:'Target Blank'; + src:url(../fonts/TargetBlank.otf) format('opentype'), + url(../fonts/TargetBlank.svg#TargetBlank) format('svg'); + } \ No newline at end of file diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/styles/reset.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/styles/reset.css Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,42 @@ +HTML, BODY, DIV, SPAN, APPLET, OBJECT, IFRAME, +H1, H2, H3, H4, H5, H6, P, BLOCKQUOTE, PRE, +A, ABBR, ACRONYM, ADDRESS, BIG, CITE, CODE, +DEL, DFN, EM, IMG, INS, KBD, Q, S, SAMP, +SMALL, STRIKE, STRONG, SUB, SUP, TT, VAR, +B, U, I, CENTER, +DL, DT, DD, OL, UL, LI, +FIELDSET, FORM, LABEL, LEGEND, +TABLE, CAPTION, TBODY, TFOOT, THEAD, TR, TH, TD, +ARTICLE, ASIDE, CANVAS, DETAILS, EMBED, +FIGURE, FIGCAPTION, FOOTER, HEADER, HGROUP, +MENU, NAV, OUTPUT, RUBY, SECTION, SUMMARY, +TIME, MARK, AUDIO, VIDEO { + margin:0; + padding:0; + border:0; + font-size:100%; + font:inherit; + vertical-align:baseline; + } +ARTICLE, ASIDE, DETAILS, FIGCAPTION, FIGURE, +FOOTER, HEADER, HGROUP, MENU, NAV, SECTION { + display:block; + } +BODY { + line-height:1; + } +OL, UL { + list-style:none; + } +BLOCKQUOTE, Q { + quotes:none; + } +BLOCKQUOTE:before, BLOCKQUOTE:after, +Q:before, Q:after { + content:''; + content:none; + } +TABLE { + border-collapse:collapse; + border-spacing:0; + } \ No newline at end of file diff -r ce4917c50d29 -r 14da4e3ec832 slides/20140909/themes/ribbon/styles/style.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20140909/themes/ribbon/styles/style.css Tue Sep 09 17:20:47 2014 +0900 @@ -0,0 +1,385 @@ +/* + Ribbon theme for Shower presentation template: http://github.com/pepelsbey/shower + Copyright © 2010–2011 Vadim Makeev, http://pepelsbey.net/ + Licensed under MIT license: https://github.com/pepelsbey/shower/wiki/License +*/ + +@import url(fonts.css); +@import url(reset.css); + +BODY { + font:25px/1.8 'PT Sans', sans-serif; + counter-reset:paging; + } + +/* Slide +---------------------------------------- */ +.slide:after { + counter-increment:paging; + content:counter(paging, decimal-leading-zero); + } +.slide SECTION { + padding:80px 120px 0; + width:784px; + height:560px; + background:#FFF; + color:#000; + } + .slide SECTION:before { + position:absolute; + top:0; + right:120px; + width:40px; + height:120px; + background:url(../images/ribbon.svg) no-repeat; + content:''; + } + +/* Header */ +.slide HEADER { + margin:0 0 58px; + color:#666; + font:bold 40px/1.13 'PT Sans Narrow', sans-serif; + } + +/* Elements */ +.slide P { + margin:0 0 45px; + } +.slide P.note { + color:#888; + } +.slide A { + border-bottom:0.1em solid; + color:#0174A7; + text-decoration:none; + } +.slide A[target=_blank] { + margin-right:22px; + } +.slide A[target=_blank]:after { + position:absolute; + margin-left:7px; + font-family:'Target Blank'; + content:'\005E'; + } +.slide B, +.slide STRONG { + font-weight:bold; + } +.slide I, +.slide EM { + font-style:italic; + } +.slide KBD, +.slide CODE { + padding:3px 8px; + -webkit-border-radius:8px; + -moz-border-radius:8px; + border-radius:8px; + background:#FAFAA2; + -webkit-tab-size:4; + -moz-tab-size:4; + -o-tab-size:4; + tab-size:4; + font-family:Consolas, 'Droid Sans Mono', monospace; + } + +/* Quote */ +.slide BLOCKQUOTE { + font-style:italic; + } +.slide BLOCKQUOTE:before { + position:absolute; + margin:-15px 0 0 -80px; + color:#CCC; + font:200px/1 'PT Sans', sans-serif; + content:'\201C'; /* ldquo */ + } +.slide BLOCKQUOTE:after { + margin:-45px 0 45px; + display:block; + color:#444; + font-weight:bold; + content:attr(cite); + } + +/* Lists */ +.slide OL, +.slide UL { + margin:0 0 45px; + counter-reset:list; + } + .slide UL UL, + .slide OL UL, + .slide OL OL, + .slide UL OL { + margin:0 0 0 38px; + } + .slide OL > LI:before, + .slide UL > LI:before { + position:absolute; + margin-left:-120px; + width:100px; + color:#BBB; + text-align:right; + } + .slide UL > LI:before { + content:'\2022'; /* bull */ + line-height:1.1; + font-size:40px; + } + .slide OL > LI:before { + counter-increment:list; + content:counter(list)'.'; + } + +/* Code */ +.slide PRE { + margin:0 0 45px; + counter-reset:code; + white-space:normal; + } + .slide PRE CODE { + display:block; + padding:0; + background:none; + white-space:pre; + } + .slide PRE CODE:before { + position:absolute; + margin:0 0 0 -120px; + width:110px; + color:#BBB; + text-align:right; + counter-increment:code; + content:counter(code, decimal-leading-zero)'.'; + } + .slide PRE MARK { + padding:3px 8px; + -webkit-border-radius:8px; + -moz-border-radius:8px; + border-radius:8px; + } + .slide PRE MARK { + background:#FAFAA2; + color:#000; + font-style:normal; + } + .slide PRE MARK.important { + background:#C00; + color:#FFF; + font-weight:normal; + } + +/* Background */ +.slide.bg SECTION { + background:transparent; + } + .slide.bg SECTION:before { + display:none; + } +.slide.bg IMG { + position:absolute; + top:0; + left:0; + z-index:-1; + width:100%; + } + +/* Shout */ +.slide.shout SECTION:before { + display:none; + } +.slide.shout H2 { + position:absolute; + top:50%; + left:0; + width:100%; + text-align:center; + line-height:1; + font-size:150px; + -webkit-transform:translateY(-50%); + -moz-transform:translateY(-50%); + -ms-transform:translateY(-50%); + -o-transform:translateY(-50%); + transform:translateY(-50%); + } + .slide.shout H2 A[target=_blank] { + margin:0; + } + .slide.shout H2 A[target=_blank]:after { + content:''; + } + +/* Middle */ +.middle { + position:absolute; + top:50%; + left:50%; + -webkit-transform:translate(-50%, -50%); + -moz-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + -o-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); + } + +/* List +---------------------------------------- */ +.list { + float:left; + padding:80px 0 80px 100px; + background:#585A5E url(../images/linen.png); + } + +/* Caption */ +.list .caption { + color:#3C3D40; + text-shadow:0 1px 1px #8D8E90; + } + .list .caption H1 { + font:bold 50px/1 'PT Sans Narrow', sans-serif; + } + +/* Slide */ +.list .slide { + position:relative; + float:left; + margin:0 50px 0 0; + padding:80px 0 0; + } + .list .slide:after { + position:absolute; + bottom:-45px; + left:57px; + color:#3C3D40; + text-shadow:0 1px 1px #8D8E90; + line-height:1; + font-weight:bold; + font-size:25px; + } + .list .slide:target:after { + text-shadow:0 -1px 1px #1F3F60; + color:#4B86C2; + } + .list .slide > DIV { + position:relative; + overflow:hidden; + width:512px; + height:320px; + box-shadow:0 0 50px #3C3D40; + border-radius:1px; + background:rgba(0, 0, 0, 0.3); + } + .list .slide > DIV:hover { + box-shadow: + 0 0 0 10px rgba(60, 61, 64, 0.6), + 0 0 50px #3C3D40; + } + .list .slide:target > DIV { + box-shadow: + 0 0 0 1px #305F8D, + 0 0 0 10px #3C7CBD, + 0 0 50px #3C3D40; + } + .list .slide SECTION { + -webkit-transform-origin:0 0; + -webkit-transform:scale(0.5); + -moz-transform-origin:0 0; + -moz-transform:scale(0.5); + -ms-transform-origin:0 0; + -ms-transform:scale(0.5); + -o-transform-origin:0 0; + -o-transform:scale(0.5); + transform-origin:0 0; + transform:scale(0.5); + } + .list .slide SECTION:after { + position:absolute; + top:0; + right:0; + bottom:0; + left:0; + content:''; + } + +/* Full +---------------------------------------- */ +.full { + position:absolute; + top:50%; + left:50%; + overflow:hidden; + margin:-320px 0 0 -512px; + width:1024px; + height:640px; + background:#000; + } + .full .caption { + display:none; + } + .full .slide { + position:absolute; + visibility:hidden; + } + .full .slide:target { + visibility:visible; + } + .full .slide:after { + position:absolute; + bottom:85px; + left:120px; + color:#BBB; + line-height:1; + } + .full .slide SECTION { + -webkit-transform:scale(1); + -moz-transform:scale(1); + -ms-transform:scale(1); + -o-transform:scale(1); + transform:scale(1); + } + .full .slide.bg { + z-index:1; + } + .full .slide.bg:after, + .full .slide.shout:after { + content:''; + } + +/* Inner Navigation */ +.full .inner > * { + opacity:0; + -webkit-transition:opacity 0.5s linear; + -moz-transition:opacity 0.5s linear; + -ms-transition:opacity 0.5s linear; + -o-transition:opacity 0.5s linear; + transition:opacity 0.5s linear; + } +.full .inner > .active { + opacity:1; + } + +/* Progress */ +.full .progress { + position:absolute; + right:118px; + bottom:49px; + left:118px; + border-radius:7px; + border:2px solid rgba(255, 255, 255, 0.2); + } + .full .progress DIV { + width:0; + height:10px; + border-radius:5px; + background:rgba(177, 177, 177, 0.4); + -webkit-transition:width 0.2s linear; + -moz-transition:width 0.2s linear; + -ms-transition:width 0.2s linear; + -o-transition:width 0.2s linear; + transition:width 0.2s linear; + } +.full .progress-off { + z-index:1; + } \ No newline at end of file