WEBVTT
Kind: captions
Language: en

00:00:00.550 --> 00:00:12.390 align:start position:0%
 
[Music]

00:00:12.390 --> 00:00:12.400 align:start position:0%
 
 

00:00:12.400 --> 00:00:17.510 align:start position:0%
 
okay<00:00:13.360><c> uh</c><00:00:14.360><c> hello</c><00:00:14.679><c> again</c><00:00:15.199><c> everybody</c>

00:00:17.510 --> 00:00:17.520 align:start position:0%
okay uh hello again everybody
 

00:00:17.520 --> 00:00:22.109 align:start position:0%
okay uh hello again everybody
hello<00:00:18.520><c> welcome</c><00:00:18.800><c> to</c><00:00:19.039><c> day</c><00:00:19.240><c> two</c><00:00:19.920><c> all</c><00:00:20.439><c> devor</c>

00:00:22.109 --> 00:00:22.119 align:start position:0%
hello welcome to day two all devor
 

00:00:22.119 --> 00:00:26.550 align:start position:0%
hello welcome to day two all devor
zero<00:00:23.119><c> uh</c><00:00:23.240><c> I'm</c><00:00:23.320><c> going</c><00:00:23.439><c> to</c><00:00:23.560><c> start</c><00:00:23.880><c> by</c><00:00:24.760><c> um</c><00:00:25.599><c> talking</c>

00:00:26.550 --> 00:00:26.560 align:start position:0%
zero uh I'm going to start by um talking
 

00:00:26.560 --> 00:00:28.269 align:start position:0%
zero uh I'm going to start by um talking
a<00:00:26.720><c> little</c><00:00:26.960><c> bit</c><00:00:27.240><c> about</c>

00:00:28.269 --> 00:00:28.279 align:start position:0%
a little bit about
 

00:00:28.279 --> 00:00:30.749 align:start position:0%
a little bit about
solidity<00:00:29.279><c> the</c><00:00:29.640><c> uh</c>

00:00:30.749 --> 00:00:30.759 align:start position:0%
solidity the uh
 

00:00:30.759 --> 00:00:32.790 align:start position:0%
solidity the uh
new<00:00:31.039><c> contract</c>

00:00:32.790 --> 00:00:32.800 align:start position:0%
new contract
 

00:00:32.800 --> 00:00:34.549 align:start position:0%
new contract
language<00:00:33.800><c> and</c>

00:00:34.549 --> 00:00:34.559 align:start position:0%
language and
 

00:00:34.559 --> 00:00:38.190 align:start position:0%
language and
then<00:00:35.559><c> Christian</c><00:00:36.520><c> where's</c><00:00:37.200><c> Christian</c>

00:00:38.190 --> 00:00:38.200 align:start position:0%
then Christian where's Christian
 

00:00:38.200 --> 00:00:41.389 align:start position:0%
then Christian where's Christian
Christian<00:00:38.640><c> is</c><00:00:38.760><c> going</c><00:00:38.920><c> to</c><00:00:39.239><c> continue</c><00:00:39.800><c> with</c><00:00:40.399><c> uh</c>

00:00:41.389 --> 00:00:41.399 align:start position:0%
Christian is going to continue with uh
 

00:00:41.399 --> 00:00:43.310 align:start position:0%
Christian is going to continue with uh
uh<00:00:42.000><c> the</c><00:00:42.120><c> implementation</c><00:00:42.760><c> and</c><00:00:42.879><c> a</c><00:00:43.000><c> lot</c><00:00:43.120><c> more</c>

00:00:43.310 --> 00:00:43.320 align:start position:0%
uh the implementation and a lot more
 

00:00:43.320 --> 00:00:45.389 align:start position:0%
uh the implementation and a lot more
sort<00:00:43.480><c> of</c><00:00:43.600><c> details</c><00:00:43.960><c> and</c><00:00:44.120><c> road</c><00:00:44.399><c> map</c><00:00:45.120><c> of</c><00:00:45.280><c> the</c>

00:00:45.389 --> 00:00:45.399 align:start position:0%
sort of details and road map of the
 

00:00:45.399 --> 00:00:47.670 align:start position:0%
sort of details and road map of the
future<00:00:45.680><c> of</c>

00:00:47.670 --> 00:00:47.680 align:start position:0%
future of
 

00:00:47.680 --> 00:00:50.110 align:start position:0%
future of
it<00:00:48.680><c> so</c><00:00:48.879><c> I'm</c><00:00:49.039><c> just</c><00:00:49.199><c> going</c>

00:00:50.110 --> 00:00:50.120 align:start position:0%
it so I'm just going
 

00:00:50.120 --> 00:00:54.430 align:start position:0%
it so I'm just going
to<00:00:51.120><c> basically</c><00:00:51.559><c> go</c><00:00:51.760><c> into</c><00:00:52.640><c> what</c><00:00:53.160><c> drove</c><00:00:53.879><c> the</c>

00:00:54.430 --> 00:00:54.440 align:start position:0%
to basically go into what drove the
 

00:00:54.440 --> 00:00:58.270 align:start position:0%
to basically go into what drove the
original<00:00:55.440><c> um</c><00:00:55.879><c> sort</c><00:00:56.079><c> of</c><00:00:56.640><c> need</c><00:00:57.000><c> for</c>

00:00:58.270 --> 00:00:58.280 align:start position:0%
original um sort of need for
 

00:00:58.280 --> 00:01:04.030 align:start position:0%
original um sort of need for
a<00:00:59.280><c> new</c><00:00:59.519><c> language</c>

00:01:04.030 --> 00:01:04.040 align:start position:0%
 
 

00:01:04.040 --> 00:01:06.469 align:start position:0%
 
so<00:01:04.239><c> our</c><00:01:04.400><c> main</c><00:01:04.640><c> issue</c><00:01:04.960><c> is</c><00:01:05.320><c> that</c><00:01:05.519><c> we</c><00:01:05.680><c> need</c><00:01:06.000><c> people</c>

00:01:06.469 --> 00:01:06.479 align:start position:0%
so our main issue is that we need people
 

00:01:06.479 --> 00:01:10.550 align:start position:0%
so our main issue is that we need people
lots<00:01:06.680><c> of</c><00:01:06.880><c> people</c><00:01:07.280><c> to</c><00:01:07.479><c> write</c><00:01:07.960><c> contracts</c><00:01:08.920><c> and</c>

00:01:10.550 --> 00:01:10.560 align:start position:0%
lots of people to write contracts and
 

00:01:10.560 --> 00:01:14.749 align:start position:0%
lots of people to write contracts and
as<00:01:11.560><c> as</c><00:01:11.840><c> a</c><00:01:12.040><c> lot</c><00:01:12.720><c> as</c><00:01:12.920><c> often</c><00:01:13.200><c> it</c><00:01:13.360><c> is</c><00:01:13.520><c> brought</c><00:01:13.840><c> up</c><00:01:14.640><c> uh</c>

00:01:14.749 --> 00:01:14.759 align:start position:0%
as as a lot as often it is brought up uh
 

00:01:14.759 --> 00:01:16.230 align:start position:0%
as as a lot as often it is brought up uh
these<00:01:15.000><c> contracts</c><00:01:15.439><c> need</c><00:01:15.560><c> to</c><00:01:15.680><c> be</c><00:01:15.799><c> correct</c>

00:01:16.230 --> 00:01:16.240 align:start position:0%
these contracts need to be correct
 

00:01:16.240 --> 00:01:17.550 align:start position:0%
these contracts need to be correct
because<00:01:16.439><c> once</c><00:01:16.600><c> they're</c><00:01:16.759><c> on</c><00:01:16.840><c> the</c><00:01:16.960><c> blockchain</c>

00:01:17.550 --> 00:01:17.560 align:start position:0%
because once they're on the blockchain
 

00:01:17.560 --> 00:01:18.990 align:start position:0%
because once they're on the blockchain
you<00:01:17.680><c> can't</c><00:01:17.920><c> change</c><00:01:18.240><c> them</c><00:01:18.439><c> unless</c><00:01:18.680><c> you've</c><00:01:18.840><c> got</c>

00:01:18.990 --> 00:01:19.000 align:start position:0%
you can't change them unless you've got
 

00:01:19.000 --> 00:01:20.429 align:start position:0%
you can't change them unless you've got
some<00:01:19.119><c> sort</c><00:01:19.280><c> of</c><00:01:19.360><c> update</c><00:01:19.640><c> mechanism</c><00:01:20.040><c> in</c><00:01:20.200><c> place</c>

00:01:20.429 --> 00:01:20.439 align:start position:0%
some sort of update mechanism in place
 

00:01:20.439 --> 00:01:22.190 align:start position:0%
some sort of update mechanism in place
but<00:01:20.560><c> that</c><00:01:20.680><c> brings</c><00:01:20.960><c> along</c><00:01:21.520><c> a</c><00:01:21.640><c> whole</c><00:01:21.759><c> slew</c><00:01:22.079><c> of</c>

00:01:22.190 --> 00:01:22.200 align:start position:0%
but that brings along a whole slew of
 

00:01:22.200 --> 00:01:23.670 align:start position:0%
but that brings along a whole slew of
other<00:01:22.439><c> questions</c><00:01:22.880><c> like</c><00:01:23.040><c> how</c><00:01:23.159><c> do</c><00:01:23.280><c> you</c><00:01:23.400><c> trust</c>

00:01:23.670 --> 00:01:23.680 align:start position:0%
other questions like how do you trust
 

00:01:23.680 --> 00:01:26.870 align:start position:0%
other questions like how do you trust
that<00:01:23.840><c> the</c><00:01:23.960><c> updates</c><00:01:24.280><c> are</c><00:01:24.400><c> going</c><00:01:24.479><c> to</c><00:01:24.600><c> be</c><00:01:25.439><c> U</c>

00:01:26.870 --> 00:01:26.880 align:start position:0%
that the updates are going to be U
 

00:01:26.880 --> 00:01:30.190 align:start position:0%
that the updates are going to be U
legitimate<00:01:27.880><c> so</c><00:01:28.640><c> these</c><00:01:28.759><c> are</c><00:01:29.000><c> the</c><00:01:29.520><c> two</c><00:01:29.960><c> main</c>

00:01:30.190 --> 00:01:30.200 align:start position:0%
legitimate so these are the two main
 

00:01:30.200 --> 00:01:32.270 align:start position:0%
legitimate so these are the two main
things<00:01:30.560><c> that</c><00:01:30.840><c> that</c><00:01:30.920><c> we're</c><00:01:31.119><c> concerned</c><00:01:31.560><c> with</c>

00:01:32.270 --> 00:01:32.280 align:start position:0%
things that that we're concerned with
 

00:01:32.280 --> 00:01:33.830 align:start position:0%
things that that we're concerned with
lots<00:01:32.520><c> of</c><00:01:32.680><c> people</c><00:01:33.040><c> are</c><00:01:33.200><c> able</c><00:01:33.439><c> to</c><00:01:33.600><c> write</c>

00:01:33.830 --> 00:01:33.840 align:start position:0%
lots of people are able to write
 

00:01:33.840 --> 00:01:40.510 align:start position:0%
lots of people are able to write
contracts<00:01:34.720><c> and</c><00:01:35.079><c> that</c><00:01:35.240><c> these</c><00:01:35.479><c> contracts</c><00:01:36.159><c> are</c>

00:01:40.510 --> 00:01:40.520 align:start position:0%
 
 

00:01:40.520 --> 00:01:44.510 align:start position:0%
 
correct<00:01:41.520><c> so</c><00:01:42.200><c> one</c><00:01:42.320><c> of</c><00:01:42.479><c> the</c><00:01:42.720><c> obvious</c><00:01:43.119><c> ways</c><00:01:43.960><c> of</c>

00:01:44.510 --> 00:01:44.520 align:start position:0%
correct so one of the obvious ways of
 

00:01:44.520 --> 00:01:46.350 align:start position:0%
correct so one of the obvious ways of
getting<00:01:44.840><c> more</c><00:01:45.119><c> people</c><00:01:45.360><c> to</c><00:01:45.520><c> write</c><00:01:45.719><c> contracts</c>

00:01:46.350 --> 00:01:46.360 align:start position:0%
getting more people to write contracts
 

00:01:46.360 --> 00:01:48.510 align:start position:0%
getting more people to write contracts
is<00:01:46.520><c> to</c><00:01:47.320><c> allow</c><00:01:47.640><c> them</c><00:01:47.759><c> to</c><00:01:47.920><c> write</c><00:01:48.119><c> it</c><00:01:48.240><c> in</c><00:01:48.360><c> a</c>

00:01:48.510 --> 00:01:48.520 align:start position:0%
is to allow them to write it in a
 

00:01:48.520 --> 00:01:50.870 align:start position:0%
is to allow them to write it in a
language<00:01:49.000><c> that</c><00:01:49.119><c> they're</c><00:01:49.560><c> already</c><00:01:50.240><c> reasonably</c>

00:01:50.870 --> 00:01:50.880 align:start position:0%
language that they're already reasonably
 

00:01:50.880 --> 00:01:55.950 align:start position:0%
language that they're already reasonably
familiar<00:01:51.360><c> with</c><00:01:52.079><c> so</c><00:01:53.040><c> um</c><00:01:54.040><c> since</c><00:01:54.600><c> a</c><00:01:54.719><c> lot</c><00:01:54.880><c> of</c><00:01:55.079><c> our</c>

00:01:55.950 --> 00:01:55.960 align:start position:0%
familiar with so um since a lot of our
 

00:01:55.960 --> 00:01:57.950 align:start position:0%
familiar with so um since a lot of our
uh<00:01:56.159><c> prospective</c><00:01:56.799><c> developers</c><00:01:57.520><c> are</c><00:01:57.680><c> going</c><00:01:57.799><c> to</c>

00:01:57.950 --> 00:01:57.960 align:start position:0%
uh prospective developers are going to
 

00:01:57.960 --> 00:02:00.389 align:start position:0%
uh prospective developers are going to
be<00:01:58.640><c> people</c><00:01:59.000><c> who</c><00:01:59.320><c> who</c><00:01:59.439><c> are</c><00:01:59.520><c> already</c><00:02:00.200><c> understand</c>

00:02:00.389 --> 00:02:00.399 align:start position:0%
be people who who are already understand
 

00:02:00.399 --> 00:02:03.230 align:start position:0%
be people who who are already understand
web<00:02:00.640><c> Technologies</c><00:02:01.640><c> HTML</c><00:02:02.159><c> JavaScript</c>

00:02:03.230 --> 00:02:03.240 align:start position:0%
web Technologies HTML JavaScript
 

00:02:03.240 --> 00:02:06.630 align:start position:0%
web Technologies HTML JavaScript
CSS<00:02:04.240><c> um</c><00:02:04.439><c> it</c><00:02:04.560><c> makes</c><00:02:04.840><c> some</c><00:02:05.079><c> sense</c><00:02:05.759><c> to</c><00:02:06.000><c> have</c><00:02:06.280><c> the</c>

00:02:06.630 --> 00:02:06.640 align:start position:0%
CSS um it makes some sense to have the
 

00:02:06.640 --> 00:02:09.389 align:start position:0%
CSS um it makes some sense to have the
contract<00:02:07.360><c> language</c><00:02:08.039><c> be</c><00:02:08.640><c> syntactically</c>

00:02:09.389 --> 00:02:09.399 align:start position:0%
contract language be syntactically
 

00:02:09.399 --> 00:02:13.229 align:start position:0%
contract language be syntactically
similar<00:02:10.200><c> to</c><00:02:11.200><c> one</c><00:02:11.319><c> of</c><00:02:11.480><c> these</c><00:02:11.680><c> so</c>

00:02:13.229 --> 00:02:13.239 align:start position:0%
similar to one of these so
 

00:02:13.239 --> 00:02:15.270 align:start position:0%
similar to one of these so
JavaScript

00:02:15.270 --> 00:02:15.280 align:start position:0%
JavaScript
 

00:02:15.280 --> 00:02:18.589 align:start position:0%
JavaScript
um<00:02:16.280><c> leverage</c><00:02:17.160><c> the</c><00:02:17.360><c> existing</c><00:02:17.720><c> skill</c><00:02:18.080><c> set</c><00:02:18.440><c> as</c>

00:02:18.589 --> 00:02:18.599 align:start position:0%
um leverage the existing skill set as
 

00:02:18.599 --> 00:02:21.190 align:start position:0%
um leverage the existing skill set as
it's

00:02:21.190 --> 00:02:21.200 align:start position:0%
 
 

00:02:21.200 --> 00:02:26.150 align:start position:0%
 
there<00:02:22.200><c> we</c><00:02:22.560><c> also</c><00:02:23.560><c> need</c><00:02:24.319><c> to</c><00:02:25.319><c> a</c><00:02:25.560><c> a</c><00:02:25.680><c> language</c><00:02:26.000><c> is</c>

00:02:26.150 --> 00:02:26.160 align:start position:0%
there we also need to a a language is
 

00:02:26.160 --> 00:02:27.830 align:start position:0%
there we also need to a a language is
only<00:02:26.400><c> as</c><00:02:26.599><c> good</c><00:02:26.760><c> as</c><00:02:26.920><c> the</c><00:02:27.080><c> concepts</c><00:02:27.480><c> it</c><00:02:27.599><c> can</c>

00:02:27.830 --> 00:02:27.840 align:start position:0%
only as good as the concepts it can
 

00:02:27.840 --> 00:02:29.990 align:start position:0%
only as good as the concepts it can
express<00:02:28.280><c> easily</c>

00:02:29.990 --> 00:02:30.000 align:start position:0%
express easily
 

00:02:30.000 --> 00:02:32.110 align:start position:0%
express easily
so<00:02:30.200><c> it</c><00:02:30.319><c> makes</c><00:02:30.599><c> sense</c><00:02:30.920><c> to</c><00:02:31.120><c> build</c><00:02:31.400><c> in</c><00:02:31.959><c> the</c>

00:02:32.110 --> 00:02:32.120 align:start position:0%
so it makes sense to build in the
 

00:02:32.120 --> 00:02:33.509 align:start position:0%
so it makes sense to build in the
concepts<00:02:32.599><c> that</c><00:02:32.680><c> we</c><00:02:32.800><c> know</c><00:02:33.000><c> we're</c><00:02:33.160><c> going</c><00:02:33.319><c> to</c>

00:02:33.509 --> 00:02:33.519 align:start position:0%
concepts that we know we're going to
 

00:02:33.519 --> 00:02:35.750 align:start position:0%
concepts that we know we're going to
need<00:02:33.760><c> to</c><00:02:34.000><c> use</c>

00:02:35.750 --> 00:02:35.760 align:start position:0%
need to use
 

00:02:35.760 --> 00:02:38.910 align:start position:0%
need to use
often

00:02:38.910 --> 00:02:38.920 align:start position:0%
 
 

00:02:38.920 --> 00:02:42.990 align:start position:0%
 
um<00:02:39.920><c> a</c><00:02:40.159><c> contract</c><00:02:40.840><c> language</c><00:02:41.840><c> it</c><00:02:42.000><c> makes</c><00:02:42.400><c> sense</c><00:02:42.800><c> to</c>

00:02:42.990 --> 00:02:43.000 align:start position:0%
um a contract language it makes sense to
 

00:02:43.000 --> 00:02:45.869 align:start position:0%
um a contract language it makes sense to
have<00:02:43.239><c> contracts</c><00:02:43.920><c> as</c><00:02:44.040><c> a</c><00:02:44.239><c> first</c><00:02:44.720><c> class</c><00:02:45.040><c> citizen</c>

00:02:45.869 --> 00:02:45.879 align:start position:0%
have contracts as a first class citizen
 

00:02:45.879 --> 00:02:47.070 align:start position:0%
have contracts as a first class citizen
in<00:02:46.080><c> that</c>

00:02:47.070 --> 00:02:47.080 align:start position:0%
in that
 

00:02:47.080 --> 00:02:49.350 align:start position:0%
in that
language<00:02:48.080><c> so</c><00:02:48.280><c> what</c><00:02:48.400><c> we</c><00:02:48.519><c> do</c><00:02:48.720><c> is</c><00:02:48.879><c> we</c><00:02:49.040><c> take</c><00:02:49.239><c> the</c>

00:02:49.350 --> 00:02:49.360 align:start position:0%
language so what we do is we take the
 

00:02:49.360 --> 00:02:51.990 align:start position:0%
language so what we do is we take the
notion<00:02:49.640><c> of</c><00:02:50.000><c> contract</c><00:02:51.000><c> and</c><00:02:51.120><c> we</c><00:02:51.280><c> take</c><00:02:51.599><c> a</c><00:02:51.840><c> a</c>

00:02:51.990 --> 00:02:52.000 align:start position:0%
notion of contract and we take a a
 

00:02:52.000 --> 00:02:54.309 align:start position:0%
notion of contract and we take a a
paradigm<00:02:52.440><c> that</c><00:02:52.599><c> already</c><00:02:53.159><c> exists</c><00:02:54.159><c> uh</c>

00:02:54.309 --> 00:02:54.319 align:start position:0%
paradigm that already exists uh
 

00:02:54.319 --> 00:02:55.670 align:start position:0%
paradigm that already exists uh
objectoriented

00:02:55.670 --> 00:02:55.680 align:start position:0%
objectoriented
 

00:02:55.680 --> 00:02:57.949 align:start position:0%
objectoriented
programming<00:02:56.680><c> and</c><00:02:56.920><c> if</c><00:02:57.040><c> you</c><00:02:57.200><c> think</c><00:02:57.440><c> about</c><00:02:57.680><c> it</c>

00:02:57.949 --> 00:02:57.959 align:start position:0%
programming and if you think about it
 

00:02:57.959 --> 00:02:59.949 align:start position:0%
programming and if you think about it
contracts<00:02:58.480><c> can</c><00:02:58.760><c> very</c><00:02:58.959><c> easily</c><00:02:59.280><c> be</c><00:02:59.480><c> con</c>

00:02:59.949 --> 00:02:59.959 align:start position:0%
contracts can very easily be con
 

00:02:59.959 --> 00:03:02.190 align:start position:0%
contracts can very easily be con
considered<00:03:00.640><c> classes</c><00:03:01.080><c> or</c><00:03:01.440><c> objects</c><00:03:01.879><c> depending</c>

00:03:02.190 --> 00:03:02.200 align:start position:0%
considered classes or objects depending
 

00:03:02.200 --> 00:03:05.630 align:start position:0%
considered classes or objects depending
on<00:03:03.040><c> um</c><00:03:03.920><c> whether</c><00:03:04.120><c> you</c><00:03:04.280><c> look</c><00:03:04.480><c> upon</c><00:03:04.799><c> the</c><00:03:05.480><c> the</c>

00:03:05.630 --> 00:03:05.640 align:start position:0%
on um whether you look upon the the
 

00:03:05.640 --> 00:03:07.509 align:start position:0%
on um whether you look upon the the
instance<00:03:06.040><c> of</c><00:03:06.159><c> the</c><00:03:06.280><c> contract</c><00:03:06.640><c> or</c><00:03:06.760><c> the</c><00:03:06.920><c> contract</c>

00:03:07.509 --> 00:03:07.519 align:start position:0%
instance of the contract or the contract
 

00:03:07.519 --> 00:03:09.670 align:start position:0%
instance of the contract or the contract
the<00:03:07.720><c> the</c><00:03:08.000><c> Prototype</c><00:03:08.440><c> of</c><00:03:08.519><c> the</c>

00:03:09.670 --> 00:03:09.680 align:start position:0%
the the Prototype of the
 

00:03:09.680 --> 00:03:12.430 align:start position:0%
the the Prototype of the
contract<00:03:10.680><c> and</c><00:03:10.799><c> so</c><00:03:11.080><c> we</c><00:03:11.360><c> we</c><00:03:11.879><c> uh</c><00:03:12.000><c> base</c><00:03:12.280><c> the</c>

00:03:12.430 --> 00:03:12.440 align:start position:0%
contract and so we we uh base the
 

00:03:12.440 --> 00:03:13.990 align:start position:0%
contract and so we we uh base the
language<00:03:12.760><c> around</c><00:03:13.040><c> this</c>

00:03:13.990 --> 00:03:14.000 align:start position:0%
language around this
 

00:03:14.000 --> 00:03:17.190 align:start position:0%
language around this
notion<00:03:15.000><c> similarly</c><00:03:15.560><c> within</c><00:03:16.200><c> ethereum</c>

00:03:17.190 --> 00:03:17.200 align:start position:0%
notion similarly within ethereum
 

00:03:17.200 --> 00:03:20.149 align:start position:0%
notion similarly within ethereum
contracts<00:03:17.640><c> have</c><00:03:17.879><c> storage</c><00:03:18.879><c> now</c><00:03:19.760><c> having</c><00:03:19.959><c> to</c>

00:03:20.149 --> 00:03:20.159 align:start position:0%
contracts have storage now having to
 

00:03:20.159 --> 00:03:23.070 align:start position:0%
contracts have storage now having to
store<00:03:20.560><c> things</c><00:03:20.840><c> in</c><00:03:21.000><c> terms</c><00:03:21.360><c> of</c><00:03:22.360><c> literals</c><00:03:22.920><c> is</c>

00:03:23.070 --> 00:03:23.080 align:start position:0%
store things in terms of literals is
 

00:03:23.080 --> 00:03:25.509 align:start position:0%
store things in terms of literals is
almost<00:03:23.440><c> like</c><00:03:23.959><c> you</c><00:03:24.080><c> know</c><00:03:24.280><c> having</c><00:03:24.560><c> a</c><00:03:25.200><c> a</c>

00:03:25.509 --> 00:03:25.519 align:start position:0%
almost like you know having a a
 

00:03:25.519 --> 00:03:27.190 align:start position:0%
almost like you know having a a
beautiful<00:03:26.080><c> high</c><00:03:26.280><c> level</c><00:03:26.519><c> language</c><00:03:26.840><c> and</c><00:03:27.000><c> having</c>

00:03:27.190 --> 00:03:27.200 align:start position:0%
beautiful high level language and having
 

00:03:27.200 --> 00:03:30.110 align:start position:0%
beautiful high level language and having
to<00:03:27.599><c> store</c><00:03:28.000><c> your</c><00:03:28.319><c> integers</c><00:03:28.799><c> as</c><00:03:29.000><c> bites</c><00:03:30.000><c> it</c>

00:03:30.110 --> 00:03:30.120 align:start position:0%
to store your integers as bites it
 

00:03:30.120 --> 00:03:32.390 align:start position:0%
to store your integers as bites it
doesn't<00:03:30.360><c> really</c><00:03:30.560><c> make</c><00:03:30.760><c> sense</c><00:03:31.040><c> so</c><00:03:31.920><c> what</c><00:03:32.080><c> we</c><00:03:32.200><c> do</c>

00:03:32.390 --> 00:03:32.400 align:start position:0%
doesn't really make sense so what we do
 

00:03:32.400 --> 00:03:33.750 align:start position:0%
doesn't really make sense so what we do
is<00:03:32.519><c> we</c><00:03:32.640><c> say</c><00:03:32.920><c> right</c><00:03:33.120><c> well</c><00:03:33.280><c> we</c><00:03:33.360><c> are</c><00:03:33.480><c> going</c><00:03:33.560><c> to</c>

00:03:33.750 --> 00:03:33.760 align:start position:0%
is we say right well we are going to
 

00:03:33.760 --> 00:03:35.750 align:start position:0%
is we say right well we are going to
support<00:03:34.480><c> the</c><00:03:34.640><c> storage</c><00:03:35.280><c> but</c><00:03:35.400><c> we're</c><00:03:35.519><c> going</c><00:03:35.599><c> to</c>

00:03:35.750 --> 00:03:35.760 align:start position:0%
support the storage but we're going to
 

00:03:35.760 --> 00:03:38.309 align:start position:0%
support the storage but we're going to
do<00:03:35.879><c> so</c><00:03:36.120><c> in</c><00:03:36.280><c> a</c><00:03:36.519><c> with</c><00:03:36.640><c> an</c><00:03:36.879><c> abstraction</c><00:03:37.400><c> layer</c><00:03:38.120><c> and</c>

00:03:38.309 --> 00:03:38.319 align:start position:0%
do so in a with an abstraction layer and
 

00:03:38.319 --> 00:03:39.869 align:start position:0%
do so in a with an abstraction layer and
actually<00:03:38.640><c> what</c><00:03:38.760><c> the</c><00:03:38.879><c> programmer</c><00:03:39.280><c> sees</c><00:03:39.640><c> is</c>

00:03:39.869 --> 00:03:39.879 align:start position:0%
actually what the programmer sees is
 

00:03:39.879 --> 00:03:42.710 align:start position:0%
actually what the programmer sees is
just<00:03:40.400><c> what</c><00:03:40.519><c> they</c><00:03:40.680><c> used</c><00:03:40.959><c> to</c><00:03:41.400><c> which</c><00:03:41.560><c> is</c><00:03:41.720><c> to</c><00:03:41.879><c> say</c>

00:03:42.710 --> 00:03:42.720 align:start position:0%
just what they used to which is to say
 

00:03:42.720 --> 00:03:47.270 align:start position:0%
just what they used to which is to say
uh<00:03:42.920><c> usable</c><00:03:43.959><c> types</c><00:03:44.959><c> strings</c><00:03:46.280><c> structures</c>

00:03:47.270 --> 00:03:47.280 align:start position:0%
uh usable types strings structures
 

00:03:47.280 --> 00:03:50.789 align:start position:0%
uh usable types strings structures
integers<00:03:47.760><c> of</c><00:03:47.920><c> various</c><00:03:48.280><c> sizes</c>

00:03:50.789 --> 00:03:50.799 align:start position:0%
integers of various sizes
 

00:03:50.799 --> 00:03:54.429 align:start position:0%
integers of various sizes
booleans<00:03:51.799><c> and</c><00:03:51.959><c> then</c><00:03:52.200><c> finally</c><00:03:53.159><c> contracts</c><00:03:53.760><c> do</c>

00:03:54.429 --> 00:03:54.439 align:start position:0%
booleans and then finally contracts do
 

00:03:54.439 --> 00:03:56.350 align:start position:0%
booleans and then finally contracts do
um<00:03:54.599><c> a</c><00:03:54.720><c> lot</c><00:03:54.879><c> of</c><00:03:55.079><c> IO</c><00:03:55.400><c> and</c><00:03:55.519><c> whereas</c><00:03:55.760><c> in</c><00:03:55.920><c> normal</c>

00:03:56.350 --> 00:03:56.360 align:start position:0%
um a lot of IO and whereas in normal
 

00:03:56.360 --> 00:03:59.030 align:start position:0%
um a lot of IO and whereas in normal
objectoriented<00:03:57.079><c> languages</c><00:03:58.079><c> um</c><00:03:58.280><c> you</c><00:03:58.560><c> may</c><00:03:58.799><c> have</c>

00:03:59.030 --> 00:03:59.040 align:start position:0%
objectoriented languages um you may have
 

00:03:59.040 --> 00:04:00.910 align:start position:0%
objectoriented languages um you may have
ways<00:03:59.280><c> of</c><00:03:59.439><c> passing</c><00:04:00.040><c> parameters</c><00:04:00.480><c> as</c><00:04:00.680><c> in</c>

00:04:00.910 --> 00:04:00.920 align:start position:0%
ways of passing parameters as in
 

00:04:00.920 --> 00:04:04.390 align:start position:0%
ways of passing parameters as in
parameters<00:04:01.319><c> and</c><00:04:01.480><c> out</c><00:04:02.159><c> parameters</c><00:04:03.159><c> um</c><00:04:03.599><c> C++</c><00:04:04.280><c> for</c>

00:04:04.390 --> 00:04:04.400 align:start position:0%
parameters and out parameters um C++ for
 

00:04:04.400 --> 00:04:06.149 align:start position:0%
parameters and out parameters um C++ for
instance<00:04:04.680><c> uses</c><00:04:05.040><c> pointers</c><00:04:05.360><c> or</c><00:04:05.519><c> references</c><00:04:06.040><c> to</c>

00:04:06.149 --> 00:04:06.159 align:start position:0%
instance uses pointers or references to
 

00:04:06.159 --> 00:04:09.509 align:start position:0%
instance uses pointers or references to
do<00:04:06.360><c> that</c><00:04:06.879><c> if</c><00:04:07.000><c> you've</c><00:04:07.360><c> got</c><00:04:08.360><c> uh</c><00:04:09.079><c> there</c><00:04:09.200><c> are</c><00:04:09.439><c> there</c>

00:04:09.509 --> 00:04:09.519 align:start position:0%
do that if you've got uh there are there
 

00:04:09.519 --> 00:04:12.149 align:start position:0%
do that if you've got uh there are there
are<00:04:10.200><c> language</c><00:04:10.560><c> idioms</c><00:04:11.000><c> that</c><00:04:11.159><c> allow</c><00:04:11.400><c> you</c><00:04:11.560><c> to</c><00:04:12.000><c> um</c>

00:04:12.149 --> 00:04:12.159 align:start position:0%
are language idioms that allow you to um
 

00:04:12.159 --> 00:04:14.429 align:start position:0%
are language idioms that allow you to um
have<00:04:12.360><c> multiple</c><00:04:12.840><c> outputs</c><00:04:13.680><c> uh</c><00:04:13.799><c> sort</c><00:04:14.000><c> of</c><00:04:14.120><c> as</c><00:04:14.319><c> part</c>

00:04:14.429 --> 00:04:14.439 align:start position:0%
have multiple outputs uh sort of as part
 

00:04:14.439 --> 00:04:16.310 align:start position:0%
have multiple outputs uh sort of as part
of<00:04:14.760><c> again</c><00:04:15.000><c> a</c><00:04:15.120><c> first</c><00:04:15.480><c> class</c><00:04:15.840><c> portion</c><00:04:16.079><c> of</c><00:04:16.160><c> the</c>

00:04:16.310 --> 00:04:16.320 align:start position:0%
of again a first class portion of the
 

00:04:16.320 --> 00:04:18.469 align:start position:0%
of again a first class portion of the
language<00:04:17.160><c> I</c><00:04:17.239><c> believe</c><00:04:17.560><c> go</c><00:04:17.840><c> is</c><00:04:17.959><c> one</c><00:04:18.079><c> of</c><00:04:18.239><c> these</c>

00:04:18.469 --> 00:04:18.479 align:start position:0%
language I believe go is one of these
 

00:04:18.479 --> 00:04:19.949 align:start position:0%
language I believe go is one of these
Jeff<00:04:18.720><c> will</c><00:04:18.919><c> probably</c><00:04:19.199><c> be</c><00:04:19.280><c> able</c><00:04:19.440><c> to</c><00:04:19.560><c> confirm</c>

00:04:19.949 --> 00:04:19.959 align:start position:0%
Jeff will probably be able to confirm
 

00:04:19.959 --> 00:04:24.030 align:start position:0%
Jeff will probably be able to confirm
that<00:04:20.160><c> wherever</c><00:04:20.440><c> he</c><00:04:20.919><c> yeah</c><00:04:22.000><c> yeah</c><00:04:23.000><c> um</c><00:04:23.240><c> and</c><00:04:23.400><c> so</c>

00:04:24.030 --> 00:04:24.040 align:start position:0%
that wherever he yeah yeah um and so
 

00:04:24.040 --> 00:04:25.510 align:start position:0%
that wherever he yeah yeah um and so
this<00:04:24.280><c> this</c><00:04:24.400><c> makes</c><00:04:24.600><c> a</c><00:04:24.680><c> lot</c><00:04:24.840><c> of</c><00:04:24.960><c> sense</c><00:04:25.199><c> within</c>

00:04:25.510 --> 00:04:25.520 align:start position:0%
this this makes a lot of sense within
 

00:04:25.520 --> 00:04:28.070 align:start position:0%
this this makes a lot of sense within
contracts<00:04:26.120><c> where</c><00:04:26.639><c> um</c><00:04:27.000><c> we</c><00:04:27.160><c> are</c><00:04:27.520><c> going</c><00:04:27.720><c> to</c><00:04:27.919><c> want</c>

00:04:28.070 --> 00:04:28.080 align:start position:0%
contracts where um we are going to want
 

00:04:28.080 --> 00:04:31.110 align:start position:0%
contracts where um we are going to want
to<00:04:28.960><c> call</c><00:04:29.280><c> things</c><00:04:29.479><c> in</c><00:04:29.800><c> and</c><00:04:29.919><c> then</c><00:04:30.280><c> take</c><00:04:30.639><c> data</c><00:04:30.960><c> out</c>

00:04:31.110 --> 00:04:31.120 align:start position:0%
to call things in and then take data out
 

00:04:31.120 --> 00:04:32.870 align:start position:0%
to call things in and then take data out
of<00:04:31.280><c> the</c><00:04:31.440><c> contract</c><00:04:31.960><c> without</c><00:04:32.199><c> having</c><00:04:32.400><c> to</c><00:04:32.600><c> worry</c>

00:04:32.870 --> 00:04:32.880 align:start position:0%
of the contract without having to worry
 

00:04:32.880 --> 00:04:36.749 align:start position:0%
of the contract without having to worry
about<00:04:33.120><c> things</c><00:04:33.320><c> like</c>

00:04:36.749 --> 00:04:36.759 align:start position:0%
 
 

00:04:36.759 --> 00:04:39.189 align:start position:0%
 
references<00:04:37.759><c> so</c><00:04:37.919><c> then</c><00:04:38.039><c> we</c><00:04:38.160><c> come</c><00:04:38.320><c> on</c><00:04:38.440><c> to</c><00:04:38.840><c> making</c>

00:04:39.189 --> 00:04:39.199 align:start position:0%
references so then we come on to making
 

00:04:39.199 --> 00:04:40.830 align:start position:0%
references so then we come on to making
things<00:04:39.759><c> you</c><00:04:39.880><c> know</c><00:04:40.000><c> how</c><00:04:40.120><c> do</c><00:04:40.240><c> we</c><00:04:40.400><c> make</c><00:04:40.600><c> things</c>

00:04:40.830 --> 00:04:40.840 align:start position:0%
things you know how do we make things
 

00:04:40.840 --> 00:04:42.830 align:start position:0%
things you know how do we make things
correct<00:04:41.120><c> how</c><00:04:41.199><c> do</c><00:04:41.320><c> we</c><00:04:41.440><c> make</c><00:04:41.560><c> it</c><00:04:41.840><c> most</c><00:04:42.280><c> likely</c>

00:04:42.830 --> 00:04:42.840 align:start position:0%
correct how do we make it most likely
 

00:04:42.840 --> 00:04:44.950 align:start position:0%
correct how do we make it most likely
that<00:04:43.039><c> these</c><00:04:43.280><c> contracts</c><00:04:44.199><c> are</c><00:04:44.400><c> going</c><00:04:44.600><c> to</c><00:04:44.759><c> be</c>

00:04:44.950 --> 00:04:44.960 align:start position:0%
that these contracts are going to be
 

00:04:44.960 --> 00:04:48.430 align:start position:0%
that these contracts are going to be
correct<00:04:46.039><c> well</c><00:04:47.039><c> the</c><00:04:47.199><c> most</c><00:04:47.520><c> obvious</c><00:04:47.919><c> way</c><00:04:48.160><c> is</c>

00:04:48.430 --> 00:04:48.440 align:start position:0%
correct well the most obvious way is
 

00:04:48.440 --> 00:04:53.510 align:start position:0%
correct well the most obvious way is
unit<00:04:48.800><c> testing</c><00:04:49.600><c> right</c><00:04:50.680><c> you</c><00:04:51.680><c> but</c><00:04:52.120><c> unit</c><00:04:52.520><c> testing</c>

00:04:53.510 --> 00:04:53.520 align:start position:0%
unit testing right you but unit testing
 

00:04:53.520 --> 00:04:56.230 align:start position:0%
unit testing right you but unit testing
at<00:04:53.680><c> least</c><00:04:54.039><c> with</c><00:04:54.680><c> uh</c><00:04:54.800><c> traditional</c><00:04:55.720><c> um</c><00:04:55.919><c> sort</c><00:04:56.120><c> of</c>

00:04:56.230 --> 00:04:56.240 align:start position:0%
at least with uh traditional um sort of
 

00:04:56.240 --> 00:04:57.629 align:start position:0%
at least with uh traditional um sort of
basic<00:04:56.520><c> unit</c><00:04:56.800><c> testing</c><00:04:57.039><c> Frameworks</c><00:04:57.479><c> are</c><00:04:57.560><c> going</c>

00:04:57.629 --> 00:04:57.639 align:start position:0%
basic unit testing Frameworks are going
 

00:04:57.639 --> 00:05:00.110 align:start position:0%
basic unit testing Frameworks are going
to<00:04:58.039><c> require</c><00:04:59.039><c> effort</c><00:04:59.440><c> at</c><00:04:59.720><c> least</c><00:04:59.880><c> a</c><00:04:59.960><c> small</c>

00:05:00.110 --> 00:05:00.120 align:start position:0%
to require effort at least a small
 

00:05:00.120 --> 00:05:01.909 align:start position:0%
to require effort at least a small
amount<00:05:00.320><c> of</c><00:05:00.440><c> effort</c><00:05:00.759><c> from</c><00:05:00.919><c> the</c><00:05:01.080><c> programmer</c><00:05:01.600><c> to</c>

00:05:01.909 --> 00:05:01.919 align:start position:0%
amount of effort from the programmer to
 

00:05:01.919 --> 00:05:04.310 align:start position:0%
amount of effort from the programmer to
to<00:05:02.280><c> put</c><00:05:02.479><c> the</c><00:05:02.600><c> unit</c><00:05:02.919><c> tests</c><00:05:03.280><c> in</c><00:05:03.720><c> so</c><00:05:03.880><c> what</c><00:05:04.000><c> we</c><00:05:04.120><c> do</c>

00:05:04.310 --> 00:05:04.320 align:start position:0%
to put the unit tests in so what we do
 

00:05:04.320 --> 00:05:06.670 align:start position:0%
to put the unit tests in so what we do
is<00:05:04.440><c> we</c><00:05:04.600><c> devise</c><00:05:04.960><c> the</c><00:05:05.120><c> language</c><00:05:05.919><c> or</c><00:05:06.080><c> at</c><00:05:06.199><c> least</c>

00:05:06.670 --> 00:05:06.680 align:start position:0%
is we devise the language or at least
 

00:05:06.680 --> 00:05:10.029 align:start position:0%
is we devise the language or at least
the<00:05:07.160><c> language</c><00:05:08.160><c> um</c><00:05:08.800><c> development</c><00:05:09.400><c> environment</c>

00:05:10.029 --> 00:05:10.039 align:start position:0%
the language um development environment
 

00:05:10.039 --> 00:05:12.270 align:start position:0%
the language um development environment
combination<00:05:11.039><c> um</c><00:05:11.199><c> to</c><00:05:11.360><c> make</c><00:05:11.560><c> unit</c><00:05:11.880><c> tests</c>

00:05:12.270 --> 00:05:12.280 align:start position:0%
combination um to make unit tests
 

00:05:12.280 --> 00:05:15.029 align:start position:0%
combination um to make unit tests
actually<00:05:12.600><c> easier</c><00:05:13.000><c> to</c><00:05:13.199><c> have</c><00:05:13.360><c> in</c><00:05:13.680><c> than</c><00:05:13.880><c> not</c><00:05:14.840><c> so</c>

00:05:15.029 --> 00:05:15.039 align:start position:0%
actually easier to have in than not so
 

00:05:15.039 --> 00:05:17.510 align:start position:0%
actually easier to have in than not so
we<00:05:15.160><c> do</c><00:05:15.360><c> things</c><00:05:15.720><c> like</c><00:05:16.280><c> all</c><00:05:16.600><c> already</c><00:05:17.000><c> have</c><00:05:17.320><c> a</c>

00:05:17.510 --> 00:05:17.520 align:start position:0%
we do things like all already have a
 

00:05:17.520 --> 00:05:20.070 align:start position:0%
we do things like all already have a
space<00:05:17.880><c> where</c><00:05:18.080><c> the</c><00:05:18.199><c> unit</c><00:05:18.520><c> test</c><00:05:18.840><c> goes</c><00:05:19.800><c> and</c><00:05:19.919><c> then</c>

00:05:20.070 --> 00:05:20.080 align:start position:0%
space where the unit test goes and then
 

00:05:20.080 --> 00:05:21.550 align:start position:0%
space where the unit test goes and then
the<00:05:20.199><c> ability</c><00:05:20.639><c> just</c><00:05:20.759><c> to</c><00:05:20.919><c> press</c><00:05:21.120><c> enter</c><00:05:21.360><c> and</c><00:05:21.440><c> you</c>

00:05:21.550 --> 00:05:21.560 align:start position:0%
the ability just to press enter and you
 

00:05:21.560 --> 00:05:23.189 align:start position:0%
the ability just to press enter and you
get<00:05:21.680><c> another</c><00:05:21.960><c> unit</c><00:05:22.240><c> test</c><00:05:22.440><c> so</c><00:05:22.600><c> just</c><00:05:22.759><c> make</c><00:05:22.919><c> it</c>

00:05:23.189 --> 00:05:23.199 align:start position:0%
get another unit test so just make it
 

00:05:23.199 --> 00:05:27.710 align:start position:0%
get another unit test so just make it
incredibly<00:05:24.199><c> easy</c><00:05:24.840><c> to</c><00:05:25.160><c> place</c><00:05:26.160><c> um</c><00:05:26.800><c> the</c><00:05:27.440><c> uh</c>

00:05:27.710 --> 00:05:27.720 align:start position:0%
incredibly easy to place um the uh
 

00:05:27.720 --> 00:05:29.990 align:start position:0%
incredibly easy to place um the uh
expected<00:05:28.280><c> results</c><00:05:28.840><c> or</c><00:05:28.960><c> a</c><00:05:29.120><c> set</c><00:05:29.280><c> of</c><00:05:29.680><c> expected</c>

00:05:29.990 --> 00:05:30.000 align:start position:0%
expected results or a set of expected
 

00:05:30.000 --> 00:05:32.150 align:start position:0%
expected results or a set of expected
results<00:05:30.840><c> um</c><00:05:31.000><c> in</c>

00:05:32.150 --> 00:05:32.160 align:start position:0%
results um in
 

00:05:32.160 --> 00:05:36.790 align:start position:0%
results um in
there<00:05:33.160><c> the</c><00:05:33.360><c> second</c><00:05:33.759><c> thing</c><00:05:35.039><c> that</c><00:05:36.039><c> really</c><00:05:36.479><c> helps</c>

00:05:36.790 --> 00:05:36.800 align:start position:0%
there the second thing that really helps
 

00:05:36.800 --> 00:05:39.990 align:start position:0%
there the second thing that really helps
us<00:05:37.080><c> guarantee</c><00:05:38.039><c> that</c><00:05:38.560><c> um</c><00:05:38.759><c> a</c><00:05:39.000><c> contract</c><00:05:39.680><c> is</c>

00:05:39.990 --> 00:05:40.000 align:start position:0%
us guarantee that um a contract is
 

00:05:40.000 --> 00:05:42.070 align:start position:0%
us guarantee that um a contract is
operating<00:05:40.560><c> according</c><00:05:40.880><c> to</c>

00:05:42.070 --> 00:05:42.080 align:start position:0%
operating according to
 

00:05:42.080 --> 00:05:45.469 align:start position:0%
operating according to
specification<00:05:43.080><c> um</c><00:05:43.280><c> for</c><00:05:43.960><c> some</c><00:05:44.960><c> simpler</c>

00:05:45.469 --> 00:05:45.479 align:start position:0%
specification um for some simpler
 

00:05:45.479 --> 00:05:47.390 align:start position:0%
specification um for some simpler
specification<00:05:46.360><c> than</c><00:05:46.520><c> the</c><00:05:46.680><c> definition</c><00:05:47.080><c> of</c><00:05:47.240><c> the</c>

00:05:47.390 --> 00:05:47.400 align:start position:0%
specification than the definition of the
 

00:05:47.400 --> 00:05:49.790 align:start position:0%
specification than the definition of the
contract<00:05:47.960><c> in</c><00:05:48.639><c> in</c>

00:05:49.790 --> 00:05:49.800 align:start position:0%
contract in in
 

00:05:49.800 --> 00:05:53.189 align:start position:0%
contract in in
code<00:05:50.800><c> is</c><00:05:51.000><c> this</c><00:05:51.160><c> notion</c><00:05:51.440><c> of</c><00:05:51.560><c> formal</c><00:05:52.199><c> proofing</c>

00:05:53.189 --> 00:05:53.199 align:start position:0%
code is this notion of formal proofing
 

00:05:53.199 --> 00:05:57.150 align:start position:0%
code is this notion of formal proofing
so<00:05:54.000><c> who</c><00:05:54.319><c> is</c><00:05:54.600><c> familiar</c><00:05:55.080><c> with</c><00:05:55.440><c> formal</c><00:05:56.160><c> proofing</c>

00:05:57.150 --> 00:05:57.160 align:start position:0%
so who is familiar with formal proofing
 

00:05:57.160 --> 00:06:00.189 align:start position:0%
so who is familiar with formal proofing
anyone<00:05:57.919><c> at</c><00:05:58.080><c> all</c><00:05:58.440><c> a</c><00:05:58.560><c> little</c><00:05:58.800><c> bit</c><00:05:59.360><c> okay</c>

00:06:00.189 --> 00:06:00.199 align:start position:0%
anyone at all a little bit okay
 

00:06:00.199 --> 00:06:02.469 align:start position:0%
anyone at all a little bit okay
so<00:06:00.919><c> formal</c><00:06:01.360><c> proofing</c><00:06:01.720><c> is</c><00:06:01.800><c> the</c><00:06:01.960><c> notion</c><00:06:02.319><c> that</c>

00:06:02.469 --> 00:06:02.479 align:start position:0%
so formal proofing is the notion that
 

00:06:02.479 --> 00:06:06.150 align:start position:0%
so formal proofing is the notion that
you<00:06:02.639><c> can</c><00:06:03.360><c> um</c><00:06:04.240><c> you</c><00:06:04.360><c> can</c><00:06:04.600><c> describe</c><00:06:05.199><c> you</c><00:06:05.319><c> can</c>

00:06:06.150 --> 00:06:06.160 align:start position:0%
you can um you can describe you can
 

00:06:06.160 --> 00:06:11.230 align:start position:0%
you can um you can describe you can
specify<00:06:07.400><c> um</c><00:06:08.639><c> the</c><00:06:09.639><c> um</c><00:06:10.039><c> you</c><00:06:10.160><c> can</c><00:06:10.319><c> specify</c><00:06:10.680><c> some</c>

00:06:11.230 --> 00:06:11.240 align:start position:0%
specify um the um you can specify some
 

00:06:11.240 --> 00:06:13.990 align:start position:0%
specify um the um you can specify some
expectation<00:06:12.240><c> of</c><00:06:12.479><c> a</c>

00:06:13.990 --> 00:06:14.000 align:start position:0%
expectation of a
 

00:06:14.000 --> 00:06:17.629 align:start position:0%
expectation of a
program<00:06:15.000><c> and</c><00:06:15.160><c> that</c><00:06:15.440><c> this</c><00:06:16.400><c> expectation</c><00:06:17.400><c> can</c>

00:06:17.629 --> 00:06:17.639 align:start position:0%
program and that this expectation can
 

00:06:17.639 --> 00:06:20.950 align:start position:0%
program and that this expectation can
either<00:06:17.880><c> be</c><00:06:18.120><c> proved</c><00:06:18.599><c> or</c><00:06:18.800><c> not</c><00:06:19.080><c> proved</c><00:06:20.080><c> but</c><00:06:20.360><c> it</c><00:06:20.639><c> it</c>

00:06:20.950 --> 00:06:20.960 align:start position:0%
either be proved or not proved but it it
 

00:06:20.960 --> 00:06:23.350 align:start position:0%
either be proved or not proved but it it
that<00:06:21.199><c> happens</c><00:06:21.880><c> at</c><00:06:22.000><c> the</c><00:06:22.199><c> point</c><00:06:22.440><c> of</c><00:06:22.680><c> compilation</c>

00:06:23.350 --> 00:06:23.360 align:start position:0%
that happens at the point of compilation
 

00:06:23.360 --> 00:06:25.430 align:start position:0%
that happens at the point of compilation
not<00:06:23.599><c> at</c><00:06:23.759><c> the</c><00:06:23.880><c> point</c><00:06:24.080><c> of</c><00:06:24.240><c> running</c><00:06:24.639><c> the</c>

00:06:25.430 --> 00:06:25.440 align:start position:0%
not at the point of running the
 

00:06:25.440 --> 00:06:28.430 align:start position:0%
not at the point of running the
program<00:06:26.440><c> so</c><00:06:26.680><c> you</c><00:06:26.800><c> can</c><00:06:27.120><c> specify</c><00:06:27.639><c> for</c><00:06:27.880><c> instance</c>

00:06:28.430 --> 00:06:28.440 align:start position:0%
program so you can specify for instance
 

00:06:28.440 --> 00:06:32.189 align:start position:0%
program so you can specify for instance
that<00:06:28.560><c> you</c><00:06:28.840><c> expect</c><00:06:29.960><c> um</c><00:06:30.199><c> no</c><00:06:30.599><c> matter</c><00:06:31.599><c> what</c><00:06:31.919><c> state</c>

00:06:32.189 --> 00:06:32.199 align:start position:0%
that you expect um no matter what state
 

00:06:32.199 --> 00:06:33.909 align:start position:0%
that you expect um no matter what state
the<00:06:32.360><c> program</c><00:06:32.680><c> gets</c><00:06:32.880><c> into</c><00:06:33.199><c> you</c><00:06:33.319><c> can</c><00:06:33.560><c> expect</c>

00:06:33.909 --> 00:06:33.919 align:start position:0%
the program gets into you can expect
 

00:06:33.919 --> 00:06:36.350 align:start position:0%
the program gets into you can expect
that<00:06:34.199><c> all</c><00:06:34.520><c> the</c><00:06:34.680><c> balances</c><00:06:35.319><c> will</c><00:06:35.560><c> add</c><00:06:35.759><c> up</c><00:06:35.960><c> to</c><00:06:36.160><c> a</c>

00:06:36.350 --> 00:06:36.360 align:start position:0%
that all the balances will add up to a
 

00:06:36.360 --> 00:06:38.510 align:start position:0%
that all the balances will add up to a
particular<00:06:36.840><c> number</c><00:06:37.560><c> and</c><00:06:37.720><c> what</c><00:06:37.840><c> you</c><00:06:37.919><c> can</c><00:06:38.120><c> do</c><00:06:38.400><c> is</c>

00:06:38.510 --> 00:06:38.520 align:start position:0%
particular number and what you can do is
 

00:06:38.520 --> 00:06:41.110 align:start position:0%
particular number and what you can do is
if<00:06:38.680><c> your</c><00:06:38.880><c> program</c><00:06:39.199><c> is</c><00:06:39.360><c> written</c><00:06:40.120><c> um</c><00:06:40.440><c> using</c><00:06:40.759><c> a</c>

00:06:41.110 --> 00:06:41.120 align:start position:0%
if your program is written um using a
 

00:06:41.120 --> 00:06:44.189 align:start position:0%
if your program is written um using a
particular<00:06:42.120><c> um</c><00:06:42.440><c> nonch</c><00:06:43.000><c> incomplete</c><00:06:43.599><c> but</c><00:06:43.759><c> non</c><00:06:44.039><c> a</c>

00:06:44.189 --> 00:06:44.199 align:start position:0%
particular um nonch incomplete but non a
 

00:06:44.199 --> 00:06:45.950 align:start position:0%
particular um nonch incomplete but non a
particular<00:06:44.639><c> language</c><00:06:45.280><c> still</c><00:06:45.560><c> relatively</c>

00:06:45.950 --> 00:06:45.960 align:start position:0%
particular language still relatively
 

00:06:45.960 --> 00:06:49.909 align:start position:0%
particular language still relatively
Rich<00:06:46.319><c> subset</c><00:06:46.720><c> of</c><00:06:46.880><c> it</c><00:06:47.479><c> um</c><00:06:47.800><c> you</c><00:06:47.960><c> can</c><00:06:48.199><c> use</c><00:06:48.599><c> this</c><00:06:49.560><c> um</c>

00:06:49.909 --> 00:06:49.919 align:start position:0%
Rich subset of it um you can use this um
 

00:06:49.919 --> 00:06:51.110 align:start position:0%
Rich subset of it um you can use this um
well<00:06:50.000><c> the</c><00:06:50.120><c> compiler</c><00:06:50.520><c> can</c><00:06:50.680><c> use</c><00:06:50.840><c> this</c><00:06:50.960><c> at</c>

00:06:51.110 --> 00:06:51.120 align:start position:0%
well the compiler can use this at
 

00:06:51.120 --> 00:06:53.309 align:start position:0%
well the compiler can use this at
compile<00:06:51.520><c> time</c><00:06:51.960><c> in</c><00:06:52.080><c> order</c><00:06:52.280><c> to</c><00:06:52.599><c> guarantee</c><00:06:53.160><c> that</c>

00:06:53.309 --> 00:06:53.319 align:start position:0%
compile time in order to guarantee that
 

00:06:53.319 --> 00:06:55.710 align:start position:0%
compile time in order to guarantee that
that<00:06:53.560><c> statement</c><00:06:54.160><c> always</c><00:06:54.720><c> remains</c><00:06:55.080><c> correct</c>

00:06:55.710 --> 00:06:55.720 align:start position:0%
that statement always remains correct
 

00:06:55.720 --> 00:06:59.110 align:start position:0%
that statement always remains correct
always<00:06:56.199><c> no</c><00:06:56.400><c> matter</c><00:06:56.960><c> what</c><00:06:57.960><c> as</c><00:06:58.120><c> long</c><00:06:58.759><c> as</c><00:06:58.879><c> long</c><00:06:59.039><c> as</c>

00:06:59.110 --> 00:06:59.120 align:start position:0%
always no matter what as long as long as
 

00:06:59.120 --> 00:07:01.150 align:start position:0%
always no matter what as long as long as
you<00:06:59.240><c> own</c><00:06:59.759><c> use</c><00:07:00.039><c> the</c><00:07:00.319><c> uh</c><00:07:00.479><c> the</c><00:07:00.599><c> methods</c><00:07:00.960><c> but</c><00:07:01.080><c> of</c>

00:07:01.150 --> 00:07:01.160 align:start position:0%
you own use the uh the methods but of
 

00:07:01.160 --> 00:07:02.510 align:start position:0%
you own use the uh the methods but of
course<00:07:01.319><c> there's</c><00:07:01.520><c> no</c><00:07:01.720><c> other</c><00:07:01.840><c> way</c><00:07:01.960><c> in</c><00:07:02.080><c> ethereum</c>

00:07:02.510 --> 00:07:02.520 align:start position:0%
course there's no other way in ethereum
 

00:07:02.520 --> 00:07:04.710 align:start position:0%
course there's no other way in ethereum
than<00:07:02.720><c> to</c><00:07:02.840><c> use</c><00:07:03.039><c> the</c><00:07:03.160><c> methods</c><00:07:04.080><c> um</c><00:07:04.360><c> that</c><00:07:04.599><c> that</c>

00:07:04.710 --> 00:07:04.720 align:start position:0%
than to use the methods um that that
 

00:07:04.720 --> 00:07:07.629 align:start position:0%
than to use the methods um that that
will<00:07:05.000><c> always</c><00:07:05.479><c> remain</c>

00:07:07.629 --> 00:07:07.639 align:start position:0%
will always remain
 

00:07:07.639 --> 00:07:11.070 align:start position:0%
will always remain
true<00:07:08.680><c> um</c><00:07:09.680><c> this</c><00:07:09.840><c> is</c><00:07:10.039><c> used</c>

00:07:11.070 --> 00:07:11.080 align:start position:0%
true um this is used
 

00:07:11.080 --> 00:07:14.350 align:start position:0%
true um this is used
in<00:07:12.080><c> existing</c><00:07:12.840><c> I</c><00:07:12.960><c> think</c><00:07:13.080><c> it's</c><00:07:13.240><c> used</c><00:07:13.479><c> in</c><00:07:13.960><c> uh</c><00:07:14.240><c> a</c>

00:07:14.350 --> 00:07:14.360 align:start position:0%
in existing I think it's used in uh a
 

00:07:14.360 --> 00:07:16.309 align:start position:0%
in existing I think it's used in uh a
lot<00:07:14.479><c> of</c><00:07:14.599><c> safety</c><00:07:14.960><c> critical</c><00:07:15.319><c> environments</c><00:07:16.199><c> uh</c>

00:07:16.309 --> 00:07:16.319 align:start position:0%
lot of safety critical environments uh
 

00:07:16.319 --> 00:07:19.189 align:start position:0%
lot of safety critical environments uh
nuclear<00:07:17.039><c> power</c><00:07:17.319><c> plants</c><00:07:17.680><c> I</c><00:07:17.800><c> believe</c><00:07:18.520><c> use</c>

00:07:19.189 --> 00:07:19.199 align:start position:0%
nuclear power plants I believe use
 

00:07:19.199 --> 00:07:22.230 align:start position:0%
nuclear power plants I believe use
techniques<00:07:19.680><c> like</c><00:07:19.879><c> this</c><00:07:20.680><c> um</c><00:07:20.960><c> the</c><00:07:21.240><c> Rolls-Royce</c>

00:07:22.230 --> 00:07:22.240 align:start position:0%
techniques like this um the Rolls-Royce
 

00:07:22.240 --> 00:07:24.029 align:start position:0%
techniques like this um the Rolls-Royce
uh<00:07:22.360><c> the</c><00:07:22.479><c> big</c><00:07:22.639><c> engines</c><00:07:23.120><c> that</c><00:07:23.240><c> you</c><00:07:23.319><c> see</c><00:07:23.800><c> on</c><00:07:23.919><c> the</c>

00:07:24.029 --> 00:07:24.039 align:start position:0%
uh the big engines that you see on the
 

00:07:24.039 --> 00:07:26.990 align:start position:0%
uh the big engines that you see on the
side<00:07:24.199><c> of</c><00:07:24.520><c> airliners</c><00:07:25.520><c> the</c><00:07:25.960><c> uh</c><00:07:26.319><c> the</c><00:07:26.520><c> reverse</c>

00:07:26.990 --> 00:07:27.000 align:start position:0%
side of airliners the uh the reverse
 

00:07:27.000 --> 00:07:30.670 align:start position:0%
side of airliners the uh the reverse
thrust<00:07:27.800><c> mechanism</c><00:07:28.800><c> um</c><00:07:29.000><c> this</c><00:07:29.120><c> was</c><00:07:29.759><c> uh</c><00:07:30.440><c> also</c>

00:07:30.670 --> 00:07:30.680 align:start position:0%
thrust mechanism um this was uh also
 

00:07:30.680 --> 00:07:33.029 align:start position:0%
thrust mechanism um this was uh also
uses<00:07:31.599><c> so</c><00:07:31.840><c> what</c><00:07:32.080><c> the</c><00:07:32.160><c> microcontroller</c><00:07:32.840><c> for</c>

00:07:33.029 --> 00:07:33.039 align:start position:0%
uses so what the microcontroller for
 

00:07:33.039 --> 00:07:35.670 align:start position:0%
uses so what the microcontroller for
that<00:07:33.479><c> also</c><00:07:33.680><c> uses</c><00:07:33.960><c> formal</c><00:07:34.319><c> proofing</c><00:07:35.160><c> um</c><00:07:35.319><c> I</c><00:07:35.440><c> know</c>

00:07:35.670 --> 00:07:35.680 align:start position:0%
that also uses formal proofing um I know
 

00:07:35.680 --> 00:07:38.670 align:start position:0%
that also uses formal proofing um I know
that<00:07:35.919><c> because</c><00:07:36.440><c> my</c><00:07:36.680><c> old</c><00:07:37.120><c> University</c><00:07:38.120><c> um</c><00:07:38.280><c> helps</c>

00:07:38.670 --> 00:07:38.680 align:start position:0%
that because my old University um helps
 

00:07:38.680 --> 00:07:40.950 align:start position:0%
that because my old University um helps
develop<00:07:39.160><c> that</c><00:07:40.160><c> that</c><00:07:40.319><c> particular</c><00:07:40.680><c> piece</c><00:07:40.840><c> of</c>

00:07:40.950 --> 00:07:40.960 align:start position:0%
develop that that particular piece of
 

00:07:40.960 --> 00:07:43.550 align:start position:0%
develop that that particular piece of
technology<00:07:41.960><c> so</c><00:07:42.120><c> it's</c><00:07:42.280><c> in</c><00:07:42.520><c> use</c><00:07:42.919><c> already</c><00:07:43.400><c> but</c>

00:07:43.550 --> 00:07:43.560 align:start position:0%
technology so it's in use already but
 

00:07:43.560 --> 00:07:46.830 align:start position:0%
technology so it's in use already but
it's<00:07:43.759><c> not</c><00:07:44.080><c> it's</c><00:07:44.240><c> not</c><00:07:44.479><c> widely</c><00:07:44.919><c> used</c><00:07:45.520><c> and</c><00:07:45.720><c> so</c><00:07:46.199><c> um</c>

00:07:46.830 --> 00:07:46.840 align:start position:0%
it's not it's not widely used and so um
 

00:07:46.840 --> 00:07:48.790 align:start position:0%
it's not it's not widely used and so um
it<00:07:46.919><c> makes</c><00:07:47.120><c> some</c><00:07:47.319><c> sense</c><00:07:47.560><c> for</c><00:07:48.000><c> contracts</c><00:07:48.599><c> which</c>

00:07:48.790 --> 00:07:48.800 align:start position:0%
it makes some sense for contracts which
 

00:07:48.800 --> 00:07:50.149 align:start position:0%
it makes some sense for contracts which
you<00:07:48.919><c> know</c><00:07:49.080><c> cannot</c><00:07:49.360><c> be</c><00:07:49.479><c> changed</c><00:07:49.800><c> once</c><00:07:50.000><c> they're</c>

00:07:50.149 --> 00:07:50.159 align:start position:0%
you know cannot be changed once they're
 

00:07:50.159 --> 00:07:53.830 align:start position:0%
you know cannot be changed once they're
in<00:07:50.319><c> there</c><00:07:50.800><c> to</c><00:07:50.960><c> use</c><00:07:51.240><c> similar</c>

00:07:53.830 --> 00:07:53.840 align:start position:0%
in there to use similar
 

00:07:53.840 --> 00:07:56.070 align:start position:0%
in there to use similar
Technologies<00:07:54.840><c> and</c><00:07:55.000><c> then</c><00:07:55.120><c> the</c><00:07:55.280><c> final</c><00:07:55.840><c> final</c>

00:07:56.070 --> 00:07:56.080 align:start position:0%
Technologies and then the final final
 

00:07:56.080 --> 00:07:57.869 align:start position:0%
Technologies and then the final final
thing<00:07:56.240><c> is</c><00:07:56.360><c> the</c><00:07:56.520><c> documentation</c><00:07:57.199><c> documentation</c>

00:07:57.869 --> 00:07:57.879 align:start position:0%
thing is the documentation documentation
 

00:07:57.879 --> 00:07:59.950 align:start position:0%
thing is the documentation documentation
is<00:07:58.360><c> you</c><00:07:58.479><c> know</c><00:07:58.919><c> Absolut</c><00:07:59.479><c> absolutely</c>

00:07:59.950 --> 00:07:59.960 align:start position:0%
is you know Absolut absolutely
 

00:07:59.960 --> 00:08:02.710 align:start position:0%
is you know Absolut absolutely
fundamental<00:08:00.639><c> to</c><00:08:00.840><c> our</c><00:08:01.120><c> security</c><00:08:01.680><c> model</c><00:08:02.440><c> when</c>

00:08:02.710 --> 00:08:02.720 align:start position:0%
fundamental to our security model when
 

00:08:02.720 --> 00:08:05.029 align:start position:0%
fundamental to our security model when
the<00:08:03.120><c> uh</c><00:08:03.240><c> decentralized</c><00:08:03.919><c> application</c><00:08:04.759><c> wants</c>

00:08:05.029 --> 00:08:05.039 align:start position:0%
the uh decentralized application wants
 

00:08:05.039 --> 00:08:06.390 align:start position:0%
the uh decentralized application wants
to<00:08:05.319><c> make</c><00:08:05.479><c> a</c><00:08:05.639><c> transaction</c><00:08:06.120><c> with</c><00:08:06.240><c> the</c>

00:08:06.390 --> 00:08:06.400 align:start position:0%
to make a transaction with the
 

00:08:06.400 --> 00:08:08.469 align:start position:0%
to make a transaction with the
blockchain<00:08:07.159><c> wants</c><00:08:07.479><c> to</c><00:08:07.639><c> sign</c><00:08:08.039><c> something</c><00:08:08.319><c> with</c>

00:08:08.469 --> 00:08:08.479 align:start position:0%
blockchain wants to sign something with
 

00:08:08.479 --> 00:08:11.309 align:start position:0%
blockchain wants to sign something with
the<00:08:08.599><c> user's</c><00:08:08.960><c> key</c><00:08:09.680><c> it's</c><00:08:10.400><c> really</c><00:08:10.960><c> really</c>

00:08:11.309 --> 00:08:11.319 align:start position:0%
the user's key it's really really
 

00:08:11.319 --> 00:08:14.149 align:start position:0%
the user's key it's really really
important<00:08:12.199><c> that</c><00:08:12.400><c> the</c><00:08:12.560><c> user</c><00:08:13.199><c> can</c><00:08:13.599><c> read</c><00:08:13.919><c> a</c>

00:08:14.149 --> 00:08:14.159 align:start position:0%
important that the user can read a
 

00:08:14.159 --> 00:08:16.510 align:start position:0%
important that the user can read a
statement<00:08:15.120><c> as</c><00:08:15.240><c> to</c><00:08:15.560><c> what</c><00:08:15.720><c> is</c><00:08:15.919><c> going</c><00:08:16.159><c> on</c><00:08:16.360><c> with</c>

00:08:16.510 --> 00:08:16.520 align:start position:0%
statement as to what is going on with
 

00:08:16.520 --> 00:08:18.469 align:start position:0%
statement as to what is going on with
their<00:08:16.720><c> key</c><00:08:17.039><c> because</c><00:08:17.159><c> if</c><00:08:17.280><c> they</c><00:08:17.440><c> can't</c><00:08:17.680><c> do</c><00:08:17.879><c> that</c>

00:08:18.469 --> 00:08:18.479 align:start position:0%
their key because if they can't do that
 

00:08:18.479 --> 00:08:20.830 align:start position:0%
their key because if they can't do that
we<00:08:18.720><c> you</c><00:08:18.800><c> know</c><00:08:18.919><c> we're</c><00:08:19.080><c> back</c><00:08:19.240><c> to</c><00:08:19.400><c> Step</c><00:08:19.639><c> One</c><00:08:20.599><c> um</c>

00:08:20.830 --> 00:08:20.840 align:start position:0%
we you know we're back to Step One um
 

00:08:20.840 --> 00:08:26.149 align:start position:0%
we you know we're back to Step One um
this<00:08:21.360><c> is</c><00:08:22.360><c> absolutely</c><00:08:23.319><c> fundamental</c><00:08:24.319><c> to</c><00:08:25.039><c> um</c><00:08:25.800><c> uh</c>

00:08:26.149 --> 00:08:26.159 align:start position:0%
this is absolutely fundamental to um uh
 

00:08:26.159 --> 00:08:29.070 align:start position:0%
this is absolutely fundamental to um uh
our<00:08:26.840><c> this</c><00:08:27.080><c> notion</c><00:08:27.560><c> of</c><00:08:27.759><c> having</c><00:08:28.120><c> a</c><00:08:28.400><c> a</c><00:08:28.800><c> sort</c><00:08:29.000><c> of</c>

00:08:29.070 --> 00:08:29.080 align:start position:0%
our this notion of having a a sort of
 

00:08:29.080 --> 00:08:31.469 align:start position:0%
our this notion of having a a sort of
more<00:08:29.639><c> trustworthy</c><00:08:30.639><c> um</c><00:08:30.840><c> interface</c><00:08:31.280><c> to</c>

00:08:31.469 --> 00:08:31.479 align:start position:0%
more trustworthy um interface to
 

00:08:31.479 --> 00:08:33.790 align:start position:0%
more trustworthy um interface to
massively<00:08:31.879><c> multi-user</c>

00:08:33.790 --> 00:08:33.800 align:start position:0%
massively multi-user
 

00:08:33.800 --> 00:08:36.070 align:start position:0%
massively multi-user
applications<00:08:34.800><c> and</c><00:08:34.959><c> so</c><00:08:35.320><c> we</c><00:08:35.519><c> we</c><00:08:35.680><c> build</c><00:08:35.919><c> the</c>

00:08:36.070 --> 00:08:36.080 align:start position:0%
applications and so we we build the
 

00:08:36.080 --> 00:08:38.149 align:start position:0%
applications and so we we build the
document<00:08:36.760><c> documentation</c><00:08:37.360><c> system</c><00:08:37.800><c> actually</c>

00:08:38.149 --> 00:08:38.159 align:start position:0%
document documentation system actually
 

00:08:38.159 --> 00:08:42.230 align:start position:0%
document documentation system actually
into<00:08:38.479><c> the</c><00:08:39.120><c> language</c><00:08:40.120><c> now</c><00:08:41.120><c> this</c>

00:08:42.230 --> 00:08:42.240 align:start position:0%
into the language now this
 

00:08:42.240 --> 00:08:45.590 align:start position:0%
into the language now this
is<00:08:43.240><c> you</c><00:08:43.399><c> could</c><00:08:43.560><c> argue</c><00:08:43.880><c> that</c><00:08:44.039><c> doxygen</c><00:08:44.880><c> Java</c><00:08:45.240><c> do</c>

00:08:45.590 --> 00:08:45.600 align:start position:0%
is you could argue that doxygen Java do
 

00:08:45.600 --> 00:08:47.269 align:start position:0%
is you could argue that doxygen Java do
already<00:08:45.920><c> sort</c><00:08:46.120><c> of</c><00:08:46.360><c> have</c><00:08:46.519><c> something</c><00:08:46.839><c> similar</c>

00:08:47.269 --> 00:08:47.279 align:start position:0%
already sort of have something similar
 

00:08:47.279 --> 00:08:48.790 align:start position:0%
already sort of have something similar
and<00:08:47.519><c> you</c><00:08:47.640><c> know</c><00:08:47.880><c> they</c><00:08:48.000><c> do</c><00:08:48.440><c> but</c><00:08:48.560><c> what</c><00:08:48.680><c> we're</c>

00:08:48.790 --> 00:08:48.800 align:start position:0%
and you know they do but what we're
 

00:08:48.800 --> 00:08:49.910 align:start position:0%
and you know they do but what we're
going<00:08:48.880><c> to</c><00:08:48.959><c> do</c><00:08:49.080><c> is</c><00:08:49.160><c> we're</c><00:08:49.279><c> going</c><00:08:49.360><c> to</c><00:08:49.480><c> build</c><00:08:49.680><c> on</c>

00:08:49.910 --> 00:08:49.920 align:start position:0%
going to do is we're going to build on
 

00:08:49.920 --> 00:08:51.910 align:start position:0%
going to do is we're going to build on
that<00:08:50.120><c> and</c><00:08:50.240><c> we're</c><00:08:50.360><c> going</c><00:08:50.440><c> to</c><00:08:50.640><c> have</c><00:08:51.080><c> um</c><00:08:51.760><c> uh</c>

00:08:51.910 --> 00:08:51.920 align:start position:0%
that and we're going to have um uh
 

00:08:51.920 --> 00:08:53.509 align:start position:0%
that and we're going to have um uh
rather<00:08:52.160><c> than</c><00:08:52.320><c> just</c><00:08:52.480><c> placeholders</c><00:08:53.160><c> actually</c>

00:08:53.509 --> 00:08:53.519 align:start position:0%
rather than just placeholders actually
 

00:08:53.519 --> 00:08:54.670 align:start position:0%
rather than just placeholders actually
have

00:08:54.670 --> 00:08:54.680 align:start position:0%
have
 

00:08:54.680 --> 00:08:57.910 align:start position:0%
have
evaluatable<00:08:55.680><c> um</c><00:08:56.680><c> Expressions</c><00:08:57.399><c> within</c><00:08:57.720><c> the</c>

00:08:57.910 --> 00:08:57.920 align:start position:0%
evaluatable um Expressions within the
 

00:08:57.920 --> 00:09:01.829 align:start position:0%
evaluatable um Expressions within the
documentation<00:08:58.640><c> itself</c>

00:09:01.829 --> 00:09:01.839 align:start position:0%
 
 

00:09:01.839 --> 00:09:04.350 align:start position:0%
 
so<00:09:02.519><c> contracts</c><00:09:03.000><c> as</c><00:09:03.160><c> first</c><00:09:03.399><c> class</c><00:09:03.640><c> citizens</c>

00:09:04.350 --> 00:09:04.360 align:start position:0%
so contracts as first class citizens
 

00:09:04.360 --> 00:09:07.269 align:start position:0%
so contracts as first class citizens
here's<00:09:04.839><c> uh</c><00:09:05.160><c> here's</c><00:09:05.320><c> an</c>

00:09:07.269 --> 00:09:07.279 align:start position:0%
here's uh here's an
 

00:09:07.279 --> 00:09:10.790 align:start position:0%
here's uh here's an
example<00:09:08.279><c> and</c><00:09:09.000><c> can</c><00:09:09.160><c> I</c><00:09:09.320><c> stand</c><00:09:09.880><c> in</c><00:09:10.040><c> any</c><00:09:10.240><c> one</c><00:09:10.519><c> place</c>

00:09:10.790 --> 00:09:10.800 align:start position:0%
example and can I stand in any one place
 

00:09:10.800 --> 00:09:12.710 align:start position:0%
example and can I stand in any one place
that<00:09:10.920><c> will</c><00:09:11.079><c> allow</c><00:09:11.360><c> everybody</c><00:09:11.800><c> to</c><00:09:12.000><c> see</c>

00:09:12.710 --> 00:09:12.720 align:start position:0%
that will allow everybody to see
 

00:09:12.720 --> 00:09:14.630 align:start position:0%
that will allow everybody to see
probably

00:09:14.630 --> 00:09:14.640 align:start position:0%
probably
 

00:09:14.640 --> 00:09:17.710 align:start position:0%
probably
not<00:09:15.640><c> get</c><00:09:15.839><c> most</c><00:09:16.040><c> people</c><00:09:16.279><c> I</c><00:09:16.399><c> guess</c><00:09:17.040><c> um</c><00:09:17.399><c> so</c><00:09:17.560><c> you</c>

00:09:17.710 --> 00:09:17.720 align:start position:0%
not get most people I guess um so you
 

00:09:17.720 --> 00:09:19.949 align:start position:0%
not get most people I guess um so you
got<00:09:17.839><c> the</c><00:09:17.959><c> idea</c><00:09:18.360><c> you</c><00:09:18.480><c> know</c><00:09:18.959><c> people</c><00:09:19.160><c> who</c><00:09:19.600><c> code</c><00:09:19.839><c> a</c>

00:09:19.949 --> 00:09:19.959 align:start position:0%
got the idea you know people who code a
 

00:09:19.959 --> 00:09:23.430 align:start position:0%
got the idea you know people who code a
bit<00:09:20.079><c> in</c><00:09:20.200><c> C++</c><00:09:20.959><c> will</c><00:09:21.240><c> probably</c><00:09:21.880><c> this</c>

00:09:23.430 --> 00:09:23.440 align:start position:0%
bit in C++ will probably this
 

00:09:23.440 --> 00:09:27.230 align:start position:0%
bit in C++ will probably this
Willa<00:09:24.440><c> you</c><00:09:24.560><c> can</c><00:09:25.079><c> Bo</c><00:09:25.440><c> is</c><00:09:25.640><c> wrong</c><00:09:26.519><c> should</c><00:09:26.600><c> read</c>

00:09:27.230 --> 00:09:27.240 align:start position:0%
Willa you can Bo is wrong should read
 

00:09:27.240 --> 00:09:30.350 align:start position:0%
Willa you can Bo is wrong should read
function<00:09:28.240><c> but</c><00:09:28.560><c> uh</c><00:09:28.760><c> yeah</c><00:09:29.480><c> so</c><00:09:29.880><c> it</c><00:09:30.000><c> looks</c><00:09:30.200><c> a</c>

00:09:30.350 --> 00:09:30.360 align:start position:0%
function but uh yeah so it looks a
 

00:09:30.360 --> 00:09:33.470 align:start position:0%
function but uh yeah so it looks a
little<00:09:30.560><c> bit</c><00:09:30.760><c> like</c><00:09:30.880><c> a</c><00:09:31.079><c> class</c><00:09:32.079><c> as</c><00:09:32.200><c> you</c><00:09:32.360><c> might</c>

00:09:33.470 --> 00:09:33.480 align:start position:0%
little bit like a class as you might
 

00:09:33.480 --> 00:09:36.990 align:start position:0%
little bit like a class as you might
expect<00:09:34.480><c> and</c><00:09:34.600><c> you</c><00:09:34.720><c> got</c><00:09:34.880><c> set</c><00:09:35.120><c> and</c><00:09:35.399><c> get</c><00:09:36.279><c> yeah</c><00:09:36.800><c> you</c>

00:09:36.990 --> 00:09:37.000 align:start position:0%
expect and you got set and get yeah you
 

00:09:37.000 --> 00:09:39.069 align:start position:0%
expect and you got set and get yeah you
pass<00:09:37.200><c> a</c><00:09:37.360><c> parameter</c><00:09:37.760><c> into</c><00:09:38.040><c> one</c><00:09:38.720><c> this</c><00:09:38.839><c> should</c>

00:09:39.069 --> 00:09:39.079 align:start position:0%
pass a parameter into one this should
 

00:09:39.079 --> 00:09:44.150 align:start position:0%
pass a parameter into one this should
read<00:09:39.839><c> uh</c><00:09:40.000><c> function</c><00:09:40.880><c> get</c><00:09:41.880><c> returns</c><00:09:42.839><c> uh</c><00:09:42.959><c> U</c><00:09:43.399><c> but</c>

00:09:44.150 --> 00:09:44.160 align:start position:0%
read uh function get returns uh U but
 

00:09:44.160 --> 00:09:46.110 align:start position:0%
read uh function get returns uh U but
the<00:09:44.279><c> other</c><00:09:44.560><c> the</c><00:09:44.640><c> other</c><00:09:44.800><c> slides</c><00:09:45.040><c> are</c>

00:09:46.110 --> 00:09:46.120 align:start position:0%
the other the other slides are
 

00:09:46.120 --> 00:09:48.790 align:start position:0%
the other the other slides are
correct

00:09:48.790 --> 00:09:48.800 align:start position:0%
correct
 

00:09:48.800 --> 00:09:51.470 align:start position:0%
correct
um<00:09:49.800><c> and</c><00:09:50.000><c> then</c><00:09:50.160><c> you</c><00:09:50.240><c> would</c><00:09:50.440><c> use</c><00:09:50.640><c> it</c><00:09:50.880><c> by</c><00:09:51.040><c> saying</c>

00:09:51.470 --> 00:09:51.480 align:start position:0%
um and then you would use it by saying
 

00:09:51.480 --> 00:09:54.750 align:start position:0%
um and then you would use it by saying
right<00:09:51.680><c> well</c><00:09:51.760><c> we've</c><00:09:51.920><c> got</c><00:09:52.040><c> an</c><00:09:52.160><c> instance</c><00:09:52.519><c> of</c><00:09:52.680><c> this</c>

00:09:54.750 --> 00:09:54.760 align:start position:0%
right well we've got an instance of this
 

00:09:54.760 --> 00:09:57.630 align:start position:0%
right well we've got an instance of this
contract<00:09:55.760><c> we</c><00:09:56.480><c> ignore</c><00:09:56.959><c> how</c><00:09:57.079><c> we</c><00:09:57.240><c> actually</c><00:09:57.480><c> get</c>

00:09:57.630 --> 00:09:57.640 align:start position:0%
contract we ignore how we actually get
 

00:09:57.640 --> 00:10:02.389 align:start position:0%
contract we ignore how we actually get
that<00:09:57.800><c> instance</c><00:09:58.160><c> for</c><00:09:58.320><c> now</c><00:09:59.160><c> um</c>

00:10:02.389 --> 00:10:02.399 align:start position:0%
 
 

00:10:02.399 --> 00:10:06.350 align:start position:0%
 
set<00:10:03.399><c> so</c><00:10:03.839><c> super</c><00:10:04.160><c> easy</c><00:10:04.560><c> o</c>

00:10:06.350 --> 00:10:06.360 align:start position:0%
set so super easy o
 

00:10:06.360 --> 00:10:22.990 align:start position:0%
set so super easy o
style<00:10:07.360><c> um</c>

00:10:22.990 --> 00:10:23.000 align:start position:0%
 
 

00:10:23.000 --> 00:10:26.230 align:start position:0%
 
interfacing<00:10:24.000><c> uh</c><00:10:24.480><c> I'll</c><00:10:24.760><c> answer</c><00:10:25.040><c> that</c>

00:10:26.230 --> 00:10:26.240 align:start position:0%
interfacing uh I'll answer that
 

00:10:26.240 --> 00:10:27.870 align:start position:0%
interfacing uh I'll answer that
later

00:10:27.870 --> 00:10:27.880 align:start position:0%
later
 

00:10:27.880 --> 00:10:31.670 align:start position:0%
later
so<00:10:28.880><c> um</c><00:10:29.800><c> if</c><00:10:30.000><c> we</c><00:10:30.680><c> uh</c><00:10:30.839><c> if</c><00:10:30.959><c> we</c><00:10:31.079><c> move</c><00:10:31.320><c> on</c><00:10:31.440><c> to</c><00:10:31.560><c> the</c>

00:10:31.670 --> 00:10:31.680 align:start position:0%
so um if we uh if we move on to the
 

00:10:31.680 --> 00:10:34.150 align:start position:0%
so um if we uh if we move on to the
storage<00:10:32.160><c> facilities</c><00:10:33.160><c> again</c><00:10:33.600><c> it</c><00:10:33.680><c> should</c><00:10:33.880><c> be</c>

00:10:34.150 --> 00:10:34.160 align:start position:0%
storage facilities again it should be
 

00:10:34.160 --> 00:10:37.269 align:start position:0%
storage facilities again it should be
relatively<00:10:34.720><c> easy</c><00:10:35.000><c> to</c><00:10:35.200><c> see</c><00:10:35.839><c> that</c><00:10:36.160><c> we</c><00:10:36.360><c> have</c><00:10:37.040><c> this</c>

00:10:37.269 --> 00:10:37.279 align:start position:0%
relatively easy to see that we have this
 

00:10:37.279 --> 00:10:40.350 align:start position:0%
relatively easy to see that we have this
notion<00:10:37.560><c> of</c><00:10:37.680><c> a</c><00:10:37.959><c> state</c><00:10:38.680><c> right</c><00:10:38.959><c> which</c><00:10:39.120><c> is</c><00:10:40.120><c> also</c>

00:10:40.350 --> 00:10:40.360 align:start position:0%
notion of a state right which is also
 

00:10:40.360 --> 00:10:42.110 align:start position:0%
notion of a state right which is also
known<00:10:40.600><c> as</c><00:10:40.760><c> you</c><00:10:40.880><c> know</c><00:10:41.000><c> the</c><00:10:41.160><c> field</c><00:10:41.639><c> the</c><00:10:41.800><c> members</c>

00:10:42.110 --> 00:10:42.120 align:start position:0%
known as you know the field the members
 

00:10:42.120 --> 00:10:45.509 align:start position:0%
known as you know the field the members
of<00:10:42.240><c> a</c><00:10:42.440><c> of</c><00:10:42.519><c> a</c><00:10:42.720><c> class</c><00:10:43.720><c> in</c><00:10:43.880><c> this</c><00:10:44.120><c> case</c><00:10:44.880><c> um</c><00:10:45.079><c> it's</c><00:10:45.279><c> a</c>

00:10:45.509 --> 00:10:45.519 align:start position:0%
of a of a class in this case um it's a
 

00:10:45.519 --> 00:10:48.190 align:start position:0%
of a of a class in this case um it's a
uint<00:10:46.519><c> and</c><00:10:46.639><c> then</c><00:10:46.800><c> we</c><00:10:46.920><c> can</c><00:10:47.160><c> Define</c><00:10:47.440><c> our</c><00:10:47.680><c> set</c><00:10:47.959><c> as</c>

00:10:48.190 --> 00:10:48.200 align:start position:0%
uint and then we can Define our set as
 

00:10:48.200 --> 00:10:51.550 align:start position:0%
uint and then we can Define our set as
just<00:10:48.800><c> you</c><00:10:48.959><c> know</c><00:10:49.240><c> setting</c><00:10:49.600><c> it</c><00:10:49.839><c> and</c><00:10:50.000><c> our</c><00:10:50.279><c> get</c><00:10:51.240><c> as</c>

00:10:51.550 --> 00:10:51.560 align:start position:0%
just you know setting it and our get as
 

00:10:51.560 --> 00:10:53.550 align:start position:0%
just you know setting it and our get as
as<00:10:51.720><c> returning</c><00:10:52.120><c> it</c>

00:10:53.550 --> 00:10:53.560 align:start position:0%
as returning it
 

00:10:53.560 --> 00:10:55.910 align:start position:0%
as returning it
so

00:10:55.910 --> 00:10:55.920 align:start position:0%
so
 

00:10:55.920 --> 00:10:59.949 align:start position:0%
so
this<00:10:56.920><c> this</c><00:10:57.079><c> to</c><00:10:57.279><c> a</c><00:10:57.600><c> C++</c><00:10:58.600><c> programmer</c><00:10:59.320><c> will</c><00:10:59.440><c> be</c>

00:10:59.949 --> 00:10:59.959 align:start position:0%
this this to a C++ programmer will be
 

00:10:59.959 --> 00:11:02.710 align:start position:0%
this this to a C++ programmer will be
super<00:11:00.440><c> super</c><00:11:00.680><c> simple</c><00:11:01.000><c> but</c><00:11:01.160><c> to</c><00:11:01.480><c> a</c><00:11:02.040><c> a</c><00:11:02.279><c> ja</c><00:11:02.600><c> a</c>

00:11:02.710 --> 00:11:02.720 align:start position:0%
super super simple but to a a ja a
 

00:11:02.720 --> 00:11:05.150 align:start position:0%
super super simple but to a a ja a
JavaScript<00:11:03.240><c> programmer</c><00:11:03.639><c> as</c><00:11:03.880><c> well</c><00:11:04.880><c> this</c>

00:11:05.150 --> 00:11:05.160 align:start position:0%
JavaScript programmer as well this
 

00:11:05.160 --> 00:11:09.710 align:start position:0%
JavaScript programmer as well this
portion<00:11:05.480><c> of</c><00:11:05.639><c> it</c><00:11:06.320><c> will</c><00:11:06.560><c> also</c><00:11:07.079><c> be</c><00:11:08.079><c> reasonably</c>

00:11:09.710 --> 00:11:09.720 align:start position:0%
portion of it will also be reasonably
 

00:11:09.720 --> 00:11:11.990 align:start position:0%
portion of it will also be reasonably
familiar<00:11:10.720><c> the</c><00:11:11.000><c> returns</c><00:11:11.360><c> bit</c><00:11:11.600><c> is</c><00:11:11.680><c> a</c><00:11:11.800><c> bit</c>

00:11:11.990 --> 00:11:12.000 align:start position:0%
familiar the returns bit is a bit
 

00:11:12.000 --> 00:11:14.350 align:start position:0%
familiar the returns bit is a bit
different<00:11:12.480><c> but</c><00:11:12.839><c> and</c><00:11:13.000><c> the</c><00:11:13.120><c> fact</c><00:11:13.320><c> it's</c><00:11:13.560><c> tight</c>

00:11:14.350 --> 00:11:14.360 align:start position:0%
different but and the fact it's tight
 

00:11:14.360 --> 00:11:18.470 align:start position:0%
different but and the fact it's tight
but<00:11:15.279><c> can't</c><00:11:15.519><c> really</c><00:11:15.680><c> get</c><00:11:15.839><c> around</c>

00:11:18.470 --> 00:11:18.480 align:start position:0%
 
 

00:11:18.480 --> 00:11:21.629 align:start position:0%
 
this<00:11:19.480><c> now</c><00:11:19.639><c> the</c><00:11:19.760><c> storage</c><00:11:20.160><c> facilities</c><00:11:20.920><c> extend</c>

00:11:21.629 --> 00:11:21.639 align:start position:0%
this now the storage facilities extend
 

00:11:21.639 --> 00:11:23.910 align:start position:0%
this now the storage facilities extend
so<00:11:21.839><c> what</c><00:11:22.000><c> we</c><00:11:22.120><c> also</c><00:11:22.320><c> are</c><00:11:22.440><c> able</c><00:11:22.639><c> to</c><00:11:22.760><c> do</c><00:11:22.920><c> is</c><00:11:23.120><c> map</c>

00:11:23.910 --> 00:11:23.920 align:start position:0%
so what we also are able to do is map
 

00:11:23.920 --> 00:11:26.990 align:start position:0%
so what we also are able to do is map
and<00:11:24.079><c> this</c><00:11:24.200><c> is</c><00:11:24.320><c> a</c><00:11:24.920><c> fundamental</c><00:11:25.920><c> um</c><00:11:26.560><c> construct</c>

00:11:26.990 --> 00:11:27.000 align:start position:0%
and this is a fundamental um construct
 

00:11:27.000 --> 00:11:30.990 align:start position:0%
and this is a fundamental um construct
in<00:11:27.160><c> this</c><00:11:27.320><c> language</c><00:11:28.000><c> we</c><00:11:28.120><c> can</c><00:11:28.360><c> provide</c><00:11:29.040><c> um</c><00:11:29.360><c> um</c><00:11:30.320><c> uh</c>

00:11:30.990 --> 00:11:31.000 align:start position:0%
in this language we can provide um um uh
 

00:11:31.000 --> 00:11:36.629 align:start position:0%
in this language we can provide um um uh
mapping<00:11:32.000><c> from</c><00:11:32.920><c> a</c><00:11:33.959><c> uh</c><00:11:34.959><c> from</c><00:11:35.160><c> an</c><00:11:35.639><c> original</c>

00:11:36.629 --> 00:11:36.639 align:start position:0%
mapping from a uh from an original
 

00:11:36.639 --> 00:11:40.509 align:start position:0%
mapping from a uh from an original
domain<00:11:37.800><c> range</c><00:11:38.800><c> range</c><00:11:39.760><c> from</c><00:11:39.920><c> an</c><00:11:40.079><c> original</c>

00:11:40.509 --> 00:11:40.519 align:start position:0%
domain range range from an original
 

00:11:40.519 --> 00:11:42.069 align:start position:0%
domain range range from an original
range<00:11:40.920><c> in</c><00:11:41.079><c> this</c><00:11:41.240><c> case</c><00:11:41.560><c> the</c><00:11:41.680><c> range</c><00:11:41.880><c> of</c>

00:11:42.069 --> 00:11:42.079 align:start position:0%
range in this case the range of
 

00:11:42.079 --> 00:11:45.069 align:start position:0%
range in this case the range of
addresses<00:11:42.920><c> so</c><00:11:43.120><c> this</c><00:11:43.240><c> is</c><00:11:43.959><c> the</c><00:11:44.160><c> type</c><00:11:44.360><c> of</c>

00:11:45.069 --> 00:11:45.079 align:start position:0%
addresses so this is the type of
 

00:11:45.079 --> 00:11:49.350 align:start position:0%
addresses so this is the type of
address<00:11:46.079><c> U</c><00:11:46.279><c> which</c><00:11:46.440><c> is</c><00:11:46.600><c> a</c><00:11:47.240><c> 160</c><00:11:47.600><c> bit</c>

00:11:49.350 --> 00:11:49.360 align:start position:0%
address U which is a 160 bit
 

00:11:49.360 --> 00:11:53.470 align:start position:0%
address U which is a 160 bit
integer<00:11:50.360><c> into</c><00:11:51.000><c> some</c><00:11:51.320><c> arbitrary</c><00:11:52.120><c> uh</c><00:11:52.279><c> domain</c><00:11:53.200><c> um</c>

00:11:53.470 --> 00:11:53.480 align:start position:0%
integer into some arbitrary uh domain um
 

00:11:53.480 --> 00:11:55.790 align:start position:0%
integer into some arbitrary uh domain um
in<00:11:53.600><c> this</c><00:11:53.720><c> case</c><00:11:53.959><c> end</c><00:11:54.240><c> points</c><00:11:54.920><c> and</c><00:11:55.120><c> we've</c><00:11:55.399><c> we've</c>

00:11:55.790 --> 00:11:55.800 align:start position:0%
in this case end points and we've we've
 

00:11:55.800 --> 00:11:58.629 align:start position:0%
in this case end points and we've we've
specified<00:11:56.240><c> an</c><00:11:56.360><c> endpoint</c><00:11:56.880><c> as</c><00:11:57.040><c> being</c><00:11:57.720><c> ipv4</c><00:11:58.320><c> and4</c>

00:11:58.629 --> 00:11:58.639 align:start position:0%
specified an endpoint as being ipv4 and4
 

00:11:58.639 --> 00:12:00.310 align:start position:0%
specified an endpoint as being ipv4 and4
this<00:11:58.720><c> is</c><00:11:58.800><c> a</c><00:11:58.880><c> bit</c>

00:12:00.310 --> 00:12:00.320 align:start position:0%
this is a bit
 

00:12:00.320 --> 00:12:04.230 align:start position:0%
this is a bit
see<00:12:01.320><c> the</c><00:12:01.480><c> syntax</c><00:12:01.880><c> is</c><00:12:02.040><c> still</c><00:12:02.240><c> up</c><00:12:02.399><c> for</c><00:12:03.120><c> up</c><00:12:03.279><c> for</c><00:12:03.839><c> uh</c>

00:12:04.230 --> 00:12:04.240 align:start position:0%
see the syntax is still up for up for uh
 

00:12:04.240 --> 00:12:07.629 align:start position:0%
see the syntax is still up for up for uh
um<00:12:04.800><c> alteration</c><00:12:05.519><c> if</c><00:12:05.720><c> you</c><00:12:06.120><c> uh</c><00:12:06.880><c> if</c><00:12:07.040><c> anybody</c><00:12:07.480><c> here</c>

00:12:07.629 --> 00:12:07.639 align:start position:0%
um alteration if you uh if anybody here
 

00:12:07.639 --> 00:12:10.269 align:start position:0%
um alteration if you uh if anybody here
has<00:12:07.800><c> some</c><00:12:08.000><c> ideas</c><00:12:08.440><c> and</c><00:12:09.360><c> to</c><00:12:09.600><c> make</c><00:12:09.720><c> it</c><00:12:09.880><c> slightly</c>

00:12:10.269 --> 00:12:10.279 align:start position:0%
has some ideas and to make it slightly
 

00:12:10.279 --> 00:12:11.949 align:start position:0%
has some ideas and to make it slightly
more<00:12:10.600><c> javascrip</c>

00:12:11.949 --> 00:12:11.959 align:start position:0%
more javascrip
 

00:12:11.959 --> 00:12:15.389 align:start position:0%
more javascrip
without<00:12:12.959><c> um</c><00:12:13.639><c> making</c><00:12:13.880><c> it</c><00:12:14.000><c> too</c><00:12:14.360><c> difficult</c><00:12:14.480><c> too</c>

00:12:15.389 --> 00:12:15.399 align:start position:0%
without um making it too difficult too
 

00:12:15.399 --> 00:12:17.750 align:start position:0%
without um making it too difficult too
cast

00:12:17.750 --> 00:12:17.760 align:start position:0%
cast
 

00:12:17.760 --> 00:12:20.150 align:start position:0%
cast
um<00:12:18.760><c> and</c><00:12:18.880><c> then</c><00:12:18.959><c> we</c><00:12:19.079><c> have</c><00:12:19.199><c> the</c><00:12:19.279><c> idea</c><00:12:19.519><c> of</c><00:12:19.639><c> setting</c>

00:12:20.150 --> 00:12:20.160 align:start position:0%
um and then we have the idea of setting
 

00:12:20.160 --> 00:12:22.310 align:start position:0%
um and then we have the idea of setting
and<00:12:20.320><c> we</c><00:12:20.399><c> can</c><00:12:20.639><c> make</c><00:12:20.800><c> a</c><00:12:20.959><c> new</c>

00:12:22.310 --> 00:12:22.320 align:start position:0%
and we can make a new
 

00:12:22.320 --> 00:12:27.030 align:start position:0%
and we can make a new
one<00:12:23.320><c> um</c><00:12:23.600><c> assign</c><00:12:23.959><c> it</c><00:12:24.959><c> super</c><00:12:25.279><c> easy</c><00:12:25.639><c> stuff</c><00:12:26.639><c> delete</c>

00:12:27.030 --> 00:12:27.040 align:start position:0%
one um assign it super easy stuff delete
 

00:12:27.040 --> 00:12:32.590 align:start position:0%
one um assign it super easy stuff delete
for<00:12:27.279><c> killing</c><00:12:27.720><c> it</c><00:12:28.720><c> um</c>

00:12:32.590 --> 00:12:32.600 align:start position:0%
 
 

00:12:32.600 --> 00:12:35.750 align:start position:0%
 
Vari<00:12:32.920><c> addict</c><00:12:33.320><c> returns</c><00:12:34.320><c> so</c><00:12:34.839><c> uh</c><00:12:35.160><c> if</c><00:12:35.240><c> you</c><00:12:35.360><c> want</c><00:12:35.519><c> to</c>

00:12:35.750 --> 00:12:35.760 align:start position:0%
Vari addict returns so uh if you want to
 

00:12:35.760 --> 00:12:38.629 align:start position:0%
Vari addict returns so uh if you want to
get<00:12:36.399><c> the</c><00:12:36.560><c> information</c><00:12:36.920><c> of</c><00:12:37.040><c> an</c><00:12:37.240><c> address</c><00:12:38.120><c> we</c><00:12:38.279><c> can</c>

00:12:38.629 --> 00:12:38.639 align:start position:0%
get the information of an address we can
 

00:12:38.639 --> 00:12:45.150 align:start position:0%
get the information of an address we can
just<00:12:38.839><c> specify</c><00:12:39.320><c> the</c><00:12:39.800><c> two</c><00:12:40.199><c> return</c><00:12:40.880><c> types</c><00:12:41.880><c> easy</c>

00:12:45.150 --> 00:12:45.160 align:start position:0%
 
 

00:12:45.160 --> 00:12:47.550 align:start position:0%
 
enough<00:12:46.160><c> now</c><00:12:46.320><c> the</c><00:12:46.440><c> formal</c><00:12:46.800><c> proofing</c><00:12:47.240><c> is</c>

00:12:47.550 --> 00:12:47.560 align:start position:0%
enough now the formal proofing is
 

00:12:47.560 --> 00:12:48.750 align:start position:0%
enough now the formal proofing is
probably<00:12:47.839><c> the</c><00:12:47.959><c> most</c><00:12:48.199><c> interesting</c><00:12:48.600><c> and</c>

00:12:48.750 --> 00:12:48.760 align:start position:0%
probably the most interesting and
 

00:12:48.760 --> 00:12:51.269 align:start position:0%
probably the most interesting and
challenging<00:12:49.240><c> part</c><00:12:49.399><c> of</c><00:12:49.760><c> this</c><00:12:50.760><c> uh</c><00:12:50.880><c> I</c><00:12:51.000><c> imagine</c>

00:12:51.269 --> 00:12:51.279 align:start position:0%
challenging part of this uh I imagine
 

00:12:51.279 --> 00:12:53.470 align:start position:0%
challenging part of this uh I imagine
Christian's<00:12:51.760><c> looking</c><00:12:51.959><c> forward</c><00:12:52.279><c> to</c><00:12:52.440><c> that</c><00:12:53.279><c> that</c>

00:12:53.470 --> 00:12:53.480 align:start position:0%
Christian's looking forward to that that
 

00:12:53.480 --> 00:12:55.350 align:start position:0%
Christian's looking forward to that that
particular<00:12:53.880><c> portion</c><00:12:54.160><c> of</c><00:12:54.279><c> the</c>

00:12:55.350 --> 00:12:55.360 align:start position:0%
particular portion of the
 

00:12:55.360 --> 00:12:56.949 align:start position:0%
particular portion of the
project

00:12:56.949 --> 00:12:56.959 align:start position:0%
project
 

00:12:56.959 --> 00:12:59.949 align:start position:0%
project
um<00:12:57.959><c> the</c><00:12:58.160><c> not</c><00:12:58.519><c> the</c><00:12:58.760><c> the</c><00:12:58.880><c> idea</c><00:12:59.360><c> behind</c><00:12:59.600><c> it</c><00:12:59.800><c> is</c>

00:12:59.949 --> 00:12:59.959 align:start position:0%
um the not the the idea behind it is
 

00:12:59.959 --> 00:13:02.430 align:start position:0%
um the not the the idea behind it is
that<00:13:00.120><c> we</c><00:13:00.320><c> have</c><00:13:00.839><c> uh</c><00:13:01.480><c> here's</c><00:13:01.680><c> an</c><00:13:01.880><c> example</c><00:13:02.199><c> of</c><00:13:02.279><c> a</c>

00:13:02.430 --> 00:13:02.440 align:start position:0%
that we have uh here's an example of a
 

00:13:02.440 --> 00:13:05.710 align:start position:0%
that we have uh here's an example of a
cash<00:13:02.720><c> contract</c><00:13:03.240><c> so</c><00:13:03.959><c> you</c><00:13:04.360><c> give</c><00:13:05.000><c> to</c><00:13:05.199><c> somebody</c>

00:13:05.710 --> 00:13:05.720 align:start position:0%
cash contract so you give to somebody
 

00:13:05.720 --> 00:13:07.110 align:start position:0%
cash contract so you give to somebody
some<00:13:06.000><c> amount</c><00:13:06.399><c> and</c><00:13:06.480><c> you</c><00:13:06.600><c> check</c><00:13:06.839><c> that</c><00:13:07.000><c> the</c>

00:13:07.110 --> 00:13:07.120 align:start position:0%
some amount and you check that the
 

00:13:07.120 --> 00:13:08.750 align:start position:0%
some amount and you check that the
amounts<00:13:07.480><c> greater</c><00:13:07.720><c> in</c><00:13:07.839><c> the</c><00:13:07.959><c> caller</c><00:13:08.399><c> balance</c>

00:13:08.750 --> 00:13:08.760 align:start position:0%
amounts greater in the caller balance
 

00:13:08.760 --> 00:13:10.590 align:start position:0%
amounts greater in the caller balance
then<00:13:08.920><c> you</c><00:13:09.079><c> subtract</c><00:13:09.519><c> it</c><00:13:09.720><c> and</c><00:13:09.920><c> add</c><00:13:10.079><c> it</c><00:13:10.240><c> to</c><00:13:10.399><c> the</c>

00:13:10.590 --> 00:13:10.600 align:start position:0%
then you subtract it and add it to the
 

00:13:10.600 --> 00:13:12.870 align:start position:0%
then you subtract it and add it to the
to<00:13:10.720><c> the</c><00:13:11.120><c> destination</c><00:13:12.120><c> check</c><00:13:12.360><c> the</c><00:13:12.519><c> balance</c>

00:13:12.870 --> 00:13:12.880 align:start position:0%
to the destination check the balance
 

00:13:12.880 --> 00:13:13.910 align:start position:0%
to the destination check the balance
that's<00:13:13.040><c> easy</c>

00:13:13.910 --> 00:13:13.920 align:start position:0%
that's easy
 

00:13:13.920 --> 00:13:16.750 align:start position:0%
that's easy
enough<00:13:14.920><c> we</c><00:13:15.040><c> can</c><00:13:15.199><c> to</c><00:13:15.360><c> do</c><00:13:15.440><c> a</c><00:13:15.600><c> mapping</c><00:13:16.040><c> so</c><00:13:16.320><c> map</c><00:13:16.560><c> our</c>

00:13:16.750 --> 00:13:16.760 align:start position:0%
enough we can to do a mapping so map our
 

00:13:16.760 --> 00:13:19.430 align:start position:0%
enough we can to do a mapping so map our
address<00:13:17.199><c> to</c><00:13:17.440><c> a</c><00:13:17.800><c> to</c><00:13:18.040><c> a</c><00:13:18.440><c> a</c><00:13:18.560><c> numeric</c><00:13:19.040><c> type</c><00:13:19.320><c> and</c>

00:13:19.430 --> 00:13:19.440 align:start position:0%
address to a to a a numeric type and
 

00:13:19.440 --> 00:13:23.389 align:start position:0%
address to a to a a numeric type and
that's<00:13:19.600><c> the</c><00:13:20.240><c> balances</c><00:13:21.240><c> again</c><00:13:21.600><c> easy</c>

00:13:23.389 --> 00:13:23.399 align:start position:0%
that's the balances again easy
 

00:13:23.399 --> 00:13:25.389 align:start position:0%
that's the balances again easy
enough<00:13:24.399><c> we</c><00:13:24.519><c> got</c><00:13:24.680><c> this</c>

00:13:25.389 --> 00:13:25.399 align:start position:0%
enough we got this
 

00:13:25.399 --> 00:13:27.949 align:start position:0%
enough we got this
construction<00:13:26.399><c> so</c><00:13:26.600><c> this</c><00:13:26.720><c> is</c><00:13:26.839><c> the</c><00:13:27.000><c> initializer</c>

00:13:27.949 --> 00:13:27.959 align:start position:0%
construction so this is the initializer
 

00:13:27.959 --> 00:13:29.710 align:start position:0%
construction so this is the initializer
so<00:13:28.079><c> we're</c><00:13:28.240><c> just</c><00:13:28.360><c> going</c><00:13:28.440><c> to</c><00:13:28.600><c> initialize</c><00:13:29.399><c> the</c><00:13:29.600><c> uh</c>

00:13:29.710 --> 00:13:29.720 align:start position:0%
so we're just going to initialize the uh
 

00:13:29.720 --> 00:13:31.750 align:start position:0%
so we're just going to initialize the uh
whoever<00:13:30.079><c> created</c><00:13:30.480><c> the</c><00:13:30.639><c> contract</c><00:13:31.040><c> to</c><00:13:31.480><c> you</c><00:13:31.600><c> know</c>

00:13:31.750 --> 00:13:31.760 align:start position:0%
whoever created the contract to you know
 

00:13:31.760 --> 00:13:34.350 align:start position:0%
whoever created the contract to you know
a<00:13:31.880><c> billion</c><00:13:32.199><c> or</c><00:13:32.360><c> whatever</c><00:13:33.120><c> some</c><00:13:33.440><c> pre-mined</c>

00:13:34.350 --> 00:13:34.360 align:start position:0%
a billion or whatever some pre-mined
 

00:13:34.360 --> 00:13:36.750 align:start position:0%
a billion or whatever some pre-mined
amount<00:13:35.240><c> and</c><00:13:35.360><c> then</c><00:13:35.440><c> we</c><00:13:35.560><c> have</c><00:13:35.639><c> an</c><00:13:35.760><c> invariant</c>

00:13:36.750 --> 00:13:36.760 align:start position:0%
amount and then we have an invariant
 

00:13:36.760 --> 00:13:38.350 align:start position:0%
amount and then we have an invariant
right<00:13:37.120><c> this</c><00:13:37.240><c> is</c><00:13:37.440><c> this</c><00:13:37.519><c> is</c><00:13:37.639><c> the</c><00:13:37.760><c> really</c><00:13:38.000><c> clever</c>

00:13:38.350 --> 00:13:38.360 align:start position:0%
right this is this is the really clever
 

00:13:38.360 --> 00:13:40.750 align:start position:0%
right this is this is the really clever
bit<00:13:38.639><c> so</c><00:13:38.800><c> this</c><00:13:38.880><c> is</c><00:13:39.000><c> the</c><00:13:39.120><c> bit</c><00:13:39.320><c> that</c><00:13:39.440><c> says</c><00:13:40.320><c> at</c><00:13:40.480><c> all</c>

00:13:40.750 --> 00:13:40.760 align:start position:0%
bit so this is the bit that says at all
 

00:13:40.760 --> 00:13:43.389 align:start position:0%
bit so this is the bit that says at all
times<00:13:41.240><c> no</c><00:13:41.399><c> matter</c><00:13:41.760><c> what</c><00:13:42.399><c> this</c><00:13:42.639><c> contract</c><00:13:43.120><c> must</c>

00:13:43.389 --> 00:13:43.399 align:start position:0%
times no matter what this contract must
 

00:13:43.399 --> 00:13:47.790 align:start position:0%
times no matter what this contract must
always<00:13:43.920><c> satisfy</c><00:13:44.920><c> this</c><00:13:45.800><c> piece</c><00:13:45.959><c> of</c><00:13:46.160><c> sort</c><00:13:46.360><c> of</c><00:13:46.839><c> uh</c>

00:13:47.790 --> 00:13:47.800 align:start position:0%
always satisfy this piece of sort of uh
 

00:13:47.800 --> 00:13:53.110 align:start position:0%
always satisfy this piece of sort of uh
uh<00:13:48.519><c> prototypical</c><00:13:49.519><c> set</c><00:13:50.040><c> theoretic</c><00:13:51.320><c> M</c><00:13:52.320><c> um</c><00:13:52.959><c> what</c>

00:13:53.110 --> 00:13:53.120 align:start position:0%
uh prototypical set theoretic M um what
 

00:13:53.120 --> 00:13:54.670 align:start position:0%
uh prototypical set theoretic M um what
we're<00:13:53.240><c> actually</c><00:13:53.440><c> doing</c><00:13:53.680><c> is</c><00:13:53.800><c> we're</c><00:13:54.079><c> reduce</c>

00:13:54.670 --> 00:13:54.680 align:start position:0%
we're actually doing is we're reduce
 

00:13:54.680 --> 00:13:55.949 align:start position:0%
we're actually doing is we're reduce
well<00:13:54.800><c> we're</c><00:13:54.920><c> going</c><00:13:55.040><c> to</c><00:13:55.480><c> um</c><00:13:55.600><c> we're</c><00:13:55.720><c> going</c><00:13:55.800><c> to</c>

00:13:55.949 --> 00:13:55.959 align:start position:0%
well we're going to um we're going to
 

00:13:55.959 --> 00:13:58.749 align:start position:0%
well we're going to um we're going to
map<00:13:56.440><c> the</c><00:13:56.600><c> idea</c><00:13:56.920><c> of</c><00:13:57.120><c> value</c><00:13:57.480><c> of</c><00:13:57.839><c> so</c><00:13:58.160><c> value</c><00:13:58.480><c> of</c>

00:13:58.749 --> 00:13:58.759 align:start position:0%
map the idea of value of so value of
 

00:13:58.759 --> 00:14:01.189 align:start position:0%
map the idea of value of so value of
just<00:13:59.279><c> in</c><00:13:59.399><c> this</c><00:13:59.600><c> case</c><00:13:59.800><c> is</c><00:13:59.959><c> the</c><00:14:00.160><c> idea</c><00:14:00.440><c> of</c><00:14:00.800><c> uh</c>

00:14:01.189 --> 00:14:01.199 align:start position:0%
just in this case is the idea of uh
 

00:14:01.199 --> 00:14:03.629 align:start position:0%
just in this case is the idea of uh
taking<00:14:01.920><c> each</c><00:14:02.320><c> item</c><00:14:02.600><c> in</c><00:14:02.720><c> the</c><00:14:02.880><c> balances</c><00:14:03.480><c> and</c>

00:14:03.629 --> 00:14:03.639 align:start position:0%
taking each item in the balances and
 

00:14:03.639 --> 00:14:05.189 align:start position:0%
taking each item in the balances and
just<00:14:03.800><c> taking</c><00:14:04.079><c> the</c><00:14:04.279><c> value</c><00:14:04.600><c> so</c><00:14:04.880><c> that</c><00:14:05.079><c> the</c>

00:14:05.189 --> 00:14:05.199 align:start position:0%
just taking the value so that the
 

00:14:05.199 --> 00:14:07.389 align:start position:0%
just taking the value so that the
balance<00:14:05.600><c> itself</c><00:14:06.040><c> rather</c><00:14:06.240><c> than</c><00:14:06.399><c> the</c><00:14:06.600><c> address</c>

00:14:07.389 --> 00:14:07.399 align:start position:0%
balance itself rather than the address
 

00:14:07.399 --> 00:14:08.910 align:start position:0%
balance itself rather than the address
so<00:14:07.519><c> we</c><00:14:07.639><c> going</c><00:14:07.720><c> to</c><00:14:07.800><c> map</c><00:14:08.000><c> that</c><00:14:08.079><c> to</c><00:14:08.199><c> balances</c><00:14:08.720><c> just</c>

00:14:08.910 --> 00:14:08.920 align:start position:0%
so we going to map that to balances just
 

00:14:08.920 --> 00:14:11.790 align:start position:0%
so we going to map that to balances just
get<00:14:09.160><c> a</c><00:14:09.519><c> a</c><00:14:09.720><c> set</c><00:14:09.880><c> of</c><00:14:10.480><c> addresses</c><00:14:11.480><c> and</c><00:14:11.600><c> we're</c><00:14:11.720><c> going</c>

00:14:11.790 --> 00:14:11.800 align:start position:0%
get a a set of addresses and we're going
 

00:14:11.800 --> 00:14:14.189 align:start position:0%
get a a set of addresses and we're going
to<00:14:12.040><c> reduce</c><00:14:12.440><c> that</c><00:14:12.600><c> set</c><00:14:12.759><c> of</c><00:14:12.880><c> addresses</c><00:14:13.759><c> with</c><00:14:13.880><c> a</c>

00:14:14.189 --> 00:14:14.199 align:start position:0%
to reduce that set of addresses with a
 

00:14:14.199 --> 00:14:16.269 align:start position:0%
to reduce that set of addresses with a
plus<00:14:14.480><c> operator</c><00:14:15.079><c> so</c><00:14:15.600><c> let's</c><00:14:15.839><c> to</c><00:14:16.000><c> say</c><00:14:16.160><c> we're</c>

00:14:16.269 --> 00:14:16.279 align:start position:0%
plus operator so let's to say we're
 

00:14:16.279 --> 00:14:18.910 align:start position:0%
plus operator so let's to say we're
going<00:14:16.360><c> to</c><00:14:16.519><c> sum</c><00:14:16.959><c> some</c><00:14:17.560><c> them</c><00:14:18.560><c> and</c><00:14:18.680><c> what</c><00:14:18.759><c> we're</c>

00:14:18.910 --> 00:14:18.920 align:start position:0%
going to sum some them and what we're
 

00:14:18.920 --> 00:14:21.310 align:start position:0%
going to sum some them and what we're
saying<00:14:19.160><c> is</c><00:14:19.320><c> that</c><00:14:19.440><c> should</c><00:14:19.839><c> that</c><00:14:20.000><c> sum</c><00:14:20.920><c> sum</c><00:14:21.160><c> of</c>

00:14:21.310 --> 00:14:21.320 align:start position:0%
saying is that should that sum sum of
 

00:14:21.320 --> 00:14:24.829 align:start position:0%
saying is that should that sum sum of
the<00:14:21.440><c> balances</c><00:14:22.279><c> should</c><00:14:22.519><c> always</c><00:14:22.880><c> equal</c><00:14:23.560><c> um</c><00:14:23.720><c> a</c>

00:14:24.829 --> 00:14:24.839 align:start position:0%
the balances should always equal um a
 

00:14:24.839 --> 00:14:28.710 align:start position:0%
the balances should always equal um a
billion<00:14:25.839><c> and</c><00:14:26.519><c> uh</c><00:14:27.279><c> what</c><00:14:27.519><c> the</c><00:14:27.839><c> compiler</c><00:14:28.399><c> is</c><00:14:28.519><c> able</c>

00:14:28.710 --> 00:14:28.720 align:start position:0%
billion and uh what the compiler is able
 

00:14:28.720 --> 00:14:30.110 align:start position:0%
billion and uh what the compiler is able
to<00:14:28.839><c> do</c>

00:14:30.110 --> 00:14:30.120 align:start position:0%
to do
 

00:14:30.120 --> 00:14:34.230 align:start position:0%
to do
is<00:14:30.639><c> go</c><00:14:30.880><c> through</c><00:14:31.720><c> the</c><00:14:32.079><c> only</c><00:14:33.079><c> um</c><00:14:33.279><c> non-const</c><00:14:34.120><c> the</c>

00:14:34.230 --> 00:14:34.240 align:start position:0%
is go through the only um non-const the
 

00:14:34.240 --> 00:14:36.030 align:start position:0%
is go through the only um non-const the
only<00:14:34.440><c> mutable</c><00:14:35.040><c> method</c><00:14:35.360><c> so</c><00:14:35.519><c> the</c><00:14:35.600><c> only</c><00:14:35.800><c> method</c>

00:14:36.030 --> 00:14:36.040 align:start position:0%
only mutable method so the only method
 

00:14:36.040 --> 00:14:37.470 align:start position:0%
only mutable method so the only method
that<00:14:36.160><c> actually</c><00:14:36.360><c> changes</c><00:14:36.720><c> the</c><00:14:36.839><c> state</c><00:14:37.199><c> which</c><00:14:37.279><c> is</c>

00:14:37.470 --> 00:14:37.480 align:start position:0%
that actually changes the state which is
 

00:14:37.480 --> 00:14:40.670 align:start position:0%
that actually changes the state which is
this<00:14:37.600><c> one</c><00:14:38.360><c> and</c><00:14:38.519><c> do</c><00:14:38.880><c> a</c><00:14:39.320><c> um</c><00:14:39.600><c> a</c><00:14:39.720><c> formal</c><00:14:40.160><c> proof</c><00:14:40.519><c> of</c>

00:14:40.670 --> 00:14:40.680 align:start position:0%
this one and do a um a formal proof of
 

00:14:40.680 --> 00:14:45.189 align:start position:0%
this one and do a um a formal proof of
this<00:14:40.880><c> code</c><00:14:41.880><c> to</c><00:14:42.120><c> check</c><00:14:42.560><c> that</c><00:14:43.160><c> uh</c><00:14:43.440><c> if</c><00:14:43.759><c> it's</c><00:14:44.759><c> uh</c><00:14:45.079><c> if</c>

00:14:45.189 --> 00:14:45.199 align:start position:0%
this code to check that uh if it's uh if
 

00:14:45.199 --> 00:14:47.550 align:start position:0%
this code to check that uh if it's uh if
it<00:14:45.440><c> satisfies</c><00:14:46.240><c> this</c><00:14:46.440><c> constraint</c><00:14:46.920><c> at</c><00:14:47.040><c> the</c>

00:14:47.550 --> 00:14:47.560 align:start position:0%
it satisfies this constraint at the
 

00:14:47.560 --> 00:14:51.069 align:start position:0%
it satisfies this constraint at the
beginning<00:14:48.560><c> and</c><00:14:48.839><c> this</c><00:14:49.000><c> code</c>

00:14:51.069 --> 00:14:51.079 align:start position:0%
beginning and this code
 

00:14:51.079 --> 00:14:53.629 align:start position:0%
beginning and this code
executes<00:14:52.079><c> um</c><00:14:52.399><c> it</c><00:14:52.519><c> will</c><00:14:52.720><c> always</c><00:14:53.160><c> satisfy</c><00:14:53.560><c> the</c>

00:14:53.629 --> 00:14:53.639 align:start position:0%
executes um it will always satisfy the
 

00:14:53.639 --> 00:14:55.670 align:start position:0%
executes um it will always satisfy the
constraint<00:14:54.040><c> at</c><00:14:54.160><c> the</c><00:14:54.240><c> end</c><00:14:54.920><c> and</c><00:14:55.360><c> in</c><00:14:55.519><c> this</c>

00:14:55.670 --> 00:14:55.680 align:start position:0%
constraint at the end and in this
 

00:14:55.680 --> 00:14:57.150 align:start position:0%
constraint at the end and in this
particular<00:14:56.079><c> case</c><00:14:56.279><c> it</c>

00:14:57.150 --> 00:14:57.160 align:start position:0%
particular case it
 

00:14:57.160 --> 00:14:59.550 align:start position:0%
particular case it
does<00:14:58.160><c> and</c><00:14:58.240><c> so</c><00:14:58.440><c> the</c><00:14:58.560><c> compiler</c><00:14:59.120><c> would</c><00:14:59.240><c> would</c><00:14:59.399><c> be</c>

00:14:59.550 --> 00:14:59.560 align:start position:0%
does and so the compiler would would be
 

00:14:59.560 --> 00:15:02.629 align:start position:0%
does and so the compiler would would be
happy<00:15:00.120><c> now</c><00:15:00.360><c> what</c><00:15:00.560><c> that</c><00:15:00.800><c> gets</c><00:15:01.240><c> the</c><00:15:01.680><c> the</c><00:15:02.199><c> um</c><00:15:02.440><c> the</c>

00:15:02.629 --> 00:15:02.639 align:start position:0%
happy now what that gets the the um the
 

00:15:02.639 --> 00:15:06.430 align:start position:0%
happy now what that gets the the um the
author<00:15:03.360><c> is</c><00:15:03.560><c> the</c><00:15:03.680><c> ability</c><00:15:04.079><c> to</c><00:15:04.320><c> state</c><00:15:05.320><c> in</c><00:15:05.440><c> the</c>

00:15:06.430 --> 00:15:06.440 align:start position:0%
author is the ability to state in the
 

00:15:06.440 --> 00:15:08.470 align:start position:0%
author is the ability to state in the
documentation<00:15:07.440><c> that</c>

00:15:08.470 --> 00:15:08.480 align:start position:0%
documentation that
 

00:15:08.480 --> 00:15:11.749 align:start position:0%
documentation that
this<00:15:09.480><c> for</c><00:15:09.759><c> this</c><00:15:09.959><c> line</c><00:15:10.199><c> of</c><00:15:10.399><c> code</c><00:15:11.000><c> it</c><00:15:11.120><c> says</c><00:15:11.600><c> at</c>

00:15:11.749 --> 00:15:11.759 align:start position:0%
this for this line of code it says at
 

00:15:11.759 --> 00:15:15.189 align:start position:0%
this for this line of code it says at
all<00:15:12.040><c> times</c><00:15:12.560><c> total</c><00:15:12.920><c> balances</c><00:15:13.480><c> will</c><00:15:13.680><c> be</c><00:15:14.120><c> a</c>

00:15:15.189 --> 00:15:15.199 align:start position:0%
all times total balances will be a
 

00:15:15.199 --> 00:15:18.509 align:start position:0%
all times total balances will be a
billion<00:15:16.199><c> now</c><00:15:16.720><c> someone</c><00:15:17.120><c> coming</c><00:15:17.399><c> to</c><00:15:17.680><c> this</c><00:15:18.120><c> uh</c>

00:15:18.509 --> 00:15:18.519 align:start position:0%
billion now someone coming to this uh
 

00:15:18.519 --> 00:15:20.069 align:start position:0%
billion now someone coming to this uh
this<00:15:18.680><c> contract</c><00:15:19.120><c> who</c><00:15:19.399><c> who</c><00:15:19.519><c> maybe</c><00:15:19.759><c> has</c><00:15:19.920><c> some</c>

00:15:20.069 --> 00:15:20.079 align:start position:0%
this contract who who maybe has some
 

00:15:20.079 --> 00:15:21.670 align:start position:0%
this contract who who maybe has some
reputation<00:15:20.639><c> it</c><00:15:20.759><c> could</c><00:15:20.880><c> be</c><00:15:21.000><c> like</c><00:15:21.120><c> the</c><00:15:21.240><c> ethereum</c>

00:15:21.670 --> 00:15:21.680 align:start position:0%
reputation it could be like the ethereum
 

00:15:21.680 --> 00:15:24.069 align:start position:0%
reputation it could be like the ethereum
foundation<00:15:22.240><c> or</c><00:15:22.440><c> the</c><00:15:22.560><c> eff</c><00:15:23.240><c> or</c><00:15:23.680><c> I</c><00:15:23.759><c> don't</c><00:15:23.880><c> know</c>

00:15:24.069 --> 00:15:24.079 align:start position:0%
foundation or the eff or I don't know
 

00:15:24.079 --> 00:15:26.670 align:start position:0%
foundation or the eff or I don't know
whoever<00:15:24.360><c> it</c><00:15:24.480><c> is</c><00:15:25.360><c> um</c><00:15:25.519><c> will</c><00:15:25.680><c> be</c><00:15:25.839><c> able</c><00:15:26.040><c> to</c><00:15:26.279><c> check</c>

00:15:26.670 --> 00:15:26.680 align:start position:0%
whoever it is um will be able to check
 

00:15:26.680 --> 00:15:30.670 align:start position:0%
whoever it is um will be able to check
that<00:15:27.120><c> that</c><00:15:27.320><c> that</c><00:15:27.480><c> line</c><00:15:27.680><c> of</c><00:15:27.880><c> code</c><00:15:28.480><c> in</c><00:15:28.720><c> the</c>

00:15:30.670 --> 00:15:30.680 align:start position:0%
that that that line of code in the
 

00:15:30.680 --> 00:15:33.350 align:start position:0%
that that that line of code in the
um<00:15:30.880><c> is</c><00:15:31.160><c> is</c><00:15:31.480><c> well</c><00:15:31.800><c> representative</c><00:15:32.680><c> of</c><00:15:33.000><c> the</c>

00:15:33.350 --> 00:15:33.360 align:start position:0%
um is is well representative of the
 

00:15:33.360 --> 00:15:35.550 align:start position:0%
um is is well representative of the
documentation<00:15:34.000><c> line</c><00:15:34.240><c> above</c><00:15:34.440><c> it</c><00:15:35.160><c> give</c><00:15:35.319><c> that</c><00:15:35.399><c> a</c>

00:15:35.550 --> 00:15:35.560 align:start position:0%
documentation line above it give that a
 

00:15:35.560 --> 00:15:38.150 align:start position:0%
documentation line above it give that a
tick<00:15:36.000><c> y</c><00:15:36.240><c> That's</c><00:15:36.480><c> valid</c><00:15:37.279><c> and</c><00:15:37.480><c> then</c><00:15:37.759><c> they</c><00:15:37.920><c> don't</c>

00:15:38.150 --> 00:15:38.160 align:start position:0%
tick y That's valid and then they don't
 

00:15:38.160 --> 00:15:39.910 align:start position:0%
tick y That's valid and then they don't
need<00:15:38.399><c> to</c><00:15:38.560><c> check</c><00:15:38.880><c> anything</c><00:15:39.160><c> else</c><00:15:39.519><c> because</c><00:15:39.759><c> the</c>

00:15:39.910 --> 00:15:39.920 align:start position:0%
need to check anything else because the
 

00:15:39.920 --> 00:15:41.990 align:start position:0%
need to check anything else because the
compiler<00:15:40.399><c> does</c><00:15:40.560><c> it</c><00:15:40.680><c> for</c><00:15:40.880><c> them</c><00:15:41.560><c> so</c><00:15:41.720><c> when</c><00:15:41.839><c> the</c>

00:15:41.990 --> 00:15:42.000 align:start position:0%
compiler does it for them so when the
 

00:15:42.000 --> 00:15:44.470 align:start position:0%
compiler does it for them so when the
user<00:15:42.319><c> comes</c><00:15:42.560><c> along</c><00:15:43.199><c> and</c><00:15:43.360><c> they</c><00:15:43.560><c> say</c><00:15:44.120><c> o</c><00:15:44.360><c> the</c>

00:15:44.470 --> 00:15:44.480 align:start position:0%
user comes along and they say o the
 

00:15:44.480 --> 00:15:47.389 align:start position:0%
user comes along and they say o the
foundation<00:15:45.079><c> made</c><00:15:45.360><c> this</c><00:15:46.279><c> uh</c><00:15:46.759><c> the</c><00:15:46.880><c> foundation</c>

00:15:47.389 --> 00:15:47.399 align:start position:0%
foundation made this uh the foundation
 

00:15:47.399 --> 00:15:50.110 align:start position:0%
foundation made this uh the foundation
ticked<00:15:47.800><c> this</c><00:15:47.959><c> line</c><00:15:48.240><c> that</c><00:15:48.440><c> says</c><00:15:49.440><c> cash</c><00:15:49.759><c> at</c><00:15:49.880><c> all</c>

00:15:50.110 --> 00:15:50.120 align:start position:0%
ticked this line that says cash at all
 

00:15:50.120 --> 00:15:52.790 align:start position:0%
ticked this line that says cash at all
times<00:15:50.360><c> in</c><00:15:50.519><c> this</c><00:15:50.680><c> contract</c><00:15:51.079><c> is</c><00:15:51.199><c> a</c><00:15:51.680><c> billion</c><00:15:52.680><c> they</c>

00:15:52.790 --> 00:15:52.800 align:start position:0%
times in this contract is a billion they
 

00:15:52.800 --> 00:15:54.670 align:start position:0%
times in this contract is a billion they
can<00:15:53.000><c> TR</c><00:15:53.279><c> it</c><00:15:53.480><c> they're</c><00:15:53.680><c> like</c>

00:15:54.670 --> 00:15:54.680 align:start position:0%
can TR it they're like
 

00:15:54.680 --> 00:15:57.550 align:start position:0%
can TR it they're like
great<00:15:55.680><c> and</c><00:15:56.079><c> in</c><00:15:56.240><c> none</c><00:15:56.440><c> of</c><00:15:56.639><c> that</c><00:15:56.839><c> did</c><00:15:57.040><c> we</c><00:15:57.199><c> have</c><00:15:57.319><c> to</c>

00:15:57.550 --> 00:15:57.560 align:start position:0%
great and in none of that did we have to
 

00:15:57.560 --> 00:16:03.230 align:start position:0%
great and in none of that did we have to
actually<00:15:57.920><c> look</c><00:15:58.079><c> at</c><00:15:58.240><c> this</c><00:15:58.440><c> code</c>

00:16:03.230 --> 00:16:03.240 align:start position:0%
 
 

00:16:03.240 --> 00:16:06.110 align:start position:0%
 
I'll<00:16:03.319><c> come</c><00:16:03.440><c> to</c><00:16:03.600><c> it</c><00:16:03.759><c> the</c>

00:16:06.110 --> 00:16:06.120 align:start position:0%
I'll come to it the
 

00:16:06.120 --> 00:16:09.189 align:start position:0%
I'll come to it the
Victor<00:16:07.120><c> so</c><00:16:08.000><c> um</c><00:16:08.199><c> the</c><00:16:08.360><c> final</c><00:16:08.639><c> thing</c><00:16:08.839><c> is</c><00:16:09.000><c> the</c>

00:16:09.189 --> 00:16:09.199 align:start position:0%
Victor so um the final thing is the
 

00:16:09.199 --> 00:16:11.350 align:start position:0%
Victor so um the final thing is the
inbuilt<00:16:09.639><c> docks</c><00:16:10.279><c> so</c><00:16:10.519><c> that's</c><00:16:10.839><c> kind</c><00:16:11.000><c> of</c><00:16:11.120><c> what</c><00:16:11.240><c> I</c>

00:16:11.350 --> 00:16:11.360 align:start position:0%
inbuilt docks so that's kind of what I
 

00:16:11.360 --> 00:16:13.670 align:start position:0%
inbuilt docks so that's kind of what I
was<00:16:11.480><c> saying</c><00:16:11.759><c> earlier</c><00:16:12.600><c> we</c><00:16:12.759><c> have</c><00:16:13.000><c> the</c><00:16:13.399><c> uh</c>

00:16:13.670 --> 00:16:13.680 align:start position:0%
was saying earlier we have the uh
 

00:16:13.680 --> 00:16:16.550 align:start position:0%
was saying earlier we have the uh
doxygen<00:16:14.319><c> style</c><00:16:14.560><c> at</c><00:16:14.639><c> the</c><00:16:14.720><c> moment</c><00:16:15.399><c> triple</c><00:16:16.399><c> uh</c>

00:16:16.550 --> 00:16:16.560 align:start position:0%
doxygen style at the moment triple uh
 

00:16:16.560 --> 00:16:18.110 align:start position:0%
doxygen style at the moment triple uh
triple<00:16:16.880><c> slash</c><00:16:17.319><c> which</c><00:16:17.480><c> I</c><00:16:17.560><c> guess</c><00:16:17.720><c> most</c><00:16:17.880><c> of</c><00:16:18.000><c> you</c>

00:16:18.110 --> 00:16:18.120 align:start position:0%
triple slash which I guess most of you
 

00:16:18.120 --> 00:16:21.590 align:start position:0%
triple slash which I guess most of you
are<00:16:18.279><c> probably</c><00:16:18.600><c> familiar</c><00:16:19.040><c> with</c><00:16:20.440><c> um</c><00:16:21.440><c> the</c>

00:16:21.590 --> 00:16:21.600 align:start position:0%
are probably familiar with um the
 

00:16:21.600 --> 00:16:24.230 align:start position:0%
are probably familiar with um the
interesting<00:16:22.079><c> thing</c><00:16:22.240><c> of</c><00:16:22.440><c> this</c><00:16:22.759><c> is</c><00:16:23.120><c> the</c><00:16:23.880><c> uh</c><00:16:24.079><c> the</c>

00:16:24.230 --> 00:16:24.240 align:start position:0%
interesting thing of this is the uh the
 

00:16:24.240 --> 00:16:26.110 align:start position:0%
interesting thing of this is the uh the
back<00:16:24.519><c> tick</c><00:16:24.800><c> so</c><00:16:24.920><c> the</c><00:16:25.040><c> back</c><00:16:25.240><c> tick</c><00:16:25.480><c> allows</c><00:16:25.759><c> us</c><00:16:25.880><c> to</c>

00:16:26.110 --> 00:16:26.120 align:start position:0%
back tick so the back tick allows us to
 

00:16:26.120 --> 00:16:29.269 align:start position:0%
back tick so the back tick allows us to
insert<00:16:27.000><c> um</c><00:16:27.279><c> arbitrary</c><00:16:28.279><c> uh</c><00:16:28.440><c> expressions</c>

00:16:29.269 --> 00:16:29.279 align:start position:0%
insert um arbitrary uh expressions
 

00:16:29.279 --> 00:16:33.430 align:start position:0%
insert um arbitrary uh expressions
JavaScript<00:16:29.920><c> Expressions</c><00:16:31.079><c> into</c><00:16:32.079><c> um</c><00:16:32.399><c> the</c>

00:16:33.430 --> 00:16:33.440 align:start position:0%
JavaScript Expressions into um the
 

00:16:33.440 --> 00:16:35.629 align:start position:0%
JavaScript Expressions into um the
documentation<00:16:34.440><c> so</c><00:16:34.759><c> what</c><00:16:34.959><c> this</c><00:16:35.160><c> does</c><00:16:35.319><c> is</c><00:16:35.440><c> it</c>

00:16:35.629 --> 00:16:35.639 align:start position:0%
documentation so what this does is it
 

00:16:35.639 --> 00:16:37.749 align:start position:0%
documentation so what this does is it
provides<00:16:36.079><c> a</c><00:16:36.319><c> notice</c><00:16:36.920><c> for</c><00:16:37.079><c> the</c><00:16:37.199><c> user</c><00:16:37.480><c> so</c><00:16:37.639><c> when</c>

00:16:37.749 --> 00:16:37.759 align:start position:0%
provides a notice for the user so when
 

00:16:37.759 --> 00:16:39.590 align:start position:0%
provides a notice for the user so when
the<00:16:37.880><c> user</c><00:16:38.240><c> sort</c><00:16:38.440><c> of</c><00:16:38.720><c> you</c><00:16:38.839><c> know</c><00:16:39.079><c> clicks</c><00:16:39.399><c> through</c>

00:16:39.590 --> 00:16:39.600 align:start position:0%
the user sort of you know clicks through
 

00:16:39.600 --> 00:16:41.629 align:start position:0%
the user sort of you know clicks through
on<00:16:39.720><c> some</c><00:16:39.959><c> dap</c><00:16:40.199><c> and</c><00:16:40.319><c> gets</c><00:16:40.480><c> a</c><00:16:40.639><c> transaction</c><00:16:41.519><c> the</c>

00:16:41.629 --> 00:16:41.639 align:start position:0%
on some dap and gets a transaction the
 

00:16:41.639 --> 00:16:43.430 align:start position:0%
on some dap and gets a transaction the
DAP<00:16:41.880><c> wants</c><00:16:42.079><c> to</c><00:16:42.279><c> submit</c><00:16:42.600><c> the</c><00:16:42.759><c> transaction</c><00:16:43.199><c> into</c>

00:16:43.430 --> 00:16:43.440 align:start position:0%
DAP wants to submit the transaction into
 

00:16:43.440 --> 00:16:44.629 align:start position:0%
DAP wants to submit the transaction into
the

00:16:44.629 --> 00:16:44.639 align:start position:0%
the
 

00:16:44.639 --> 00:16:47.710 align:start position:0%
the
network<00:16:45.639><c> um</c><00:16:45.920><c> this</c><00:16:46.079><c> is</c><00:16:46.279><c> the</c><00:16:46.519><c> message</c><00:16:47.519><c> that</c>

00:16:47.710 --> 00:16:47.720 align:start position:0%
network um this is the message that
 

00:16:47.720 --> 00:16:51.389 align:start position:0%
network um this is the message that
comes<00:16:48.040><c> up</c><00:16:48.759><c> in</c><00:16:48.920><c> the</c><00:16:49.079><c> browser</c><00:16:49.800><c> before</c><00:16:50.800><c> it</c><00:16:51.000><c> signs</c>

00:16:51.389 --> 00:16:51.399 align:start position:0%
comes up in the browser before it signs
 

00:16:51.399 --> 00:16:54.030 align:start position:0%
comes up in the browser before it signs
it<00:16:52.040><c> so</c><00:16:52.240><c> there's</c><00:16:52.480><c> like</c><00:16:52.639><c> a</c><00:16:52.800><c> a</c><00:16:52.959><c> sort</c><00:16:53.120><c> of</c><00:16:53.319><c> black</c><00:16:53.759><c> box</c>

00:16:54.030 --> 00:16:54.040 align:start position:0%
it so there's like a a sort of black box
 

00:16:54.040 --> 00:16:56.150 align:start position:0%
it so there's like a a sort of black box
in<00:16:54.160><c> the</c><00:16:54.319><c> browser</c><00:16:55.000><c> right</c><00:16:55.440><c> that</c><00:16:55.600><c> contains</c><00:16:56.000><c> all</c>

00:16:56.150 --> 00:16:56.160 align:start position:0%
in the browser right that contains all
 

00:16:56.160 --> 00:16:58.069 align:start position:0%
in the browser right that contains all
the<00:16:56.279><c> secret</c><00:16:56.639><c> keys</c><00:16:57.199><c> and</c><00:16:57.360><c> ultimately</c><00:16:57.920><c> this</c>

00:16:58.069 --> 00:16:58.079 align:start position:0%
the secret keys and ultimately this
 

00:16:58.079 --> 00:16:59.949 align:start position:0%
the secret keys and ultimately this
could<00:16:58.199><c> be</c><00:16:58.399><c> control</c><00:16:59.120><c> actually</c><00:16:59.399><c> not</c><00:16:59.680><c> in</c><00:16:59.839><c> the</c>

00:16:59.949 --> 00:16:59.959 align:start position:0%
could be control actually not in the
 

00:16:59.959 --> 00:17:00.990 align:start position:0%
could be control actually not in the
browser<00:17:00.279><c> itself</c><00:17:00.600><c> but</c><00:17:00.680><c> it</c><00:17:00.759><c> could</c><00:17:00.880><c> be</c>

00:17:00.990 --> 00:17:01.000 align:start position:0%
browser itself but it could be
 

00:17:01.000 --> 00:17:03.430 align:start position:0%
browser itself but it could be
controlled<00:17:01.519><c> by</c><00:17:01.800><c> a</c><00:17:02.000><c> trusted</c><00:17:02.440><c> Computing</c>

00:17:03.430 --> 00:17:03.440 align:start position:0%
controlled by a trusted Computing
 

00:17:03.440 --> 00:17:06.110 align:start position:0%
controlled by a trusted Computing
portion<00:17:03.720><c> of</c><00:17:03.839><c> the</c><00:17:04.079><c> hardware</c><00:17:05.079><c> so</c><00:17:05.600><c> something</c><00:17:05.919><c> for</c>

00:17:06.110 --> 00:17:06.120 align:start position:0%
portion of the hardware so something for
 

00:17:06.120 --> 00:17:07.549 align:start position:0%
portion of the hardware so something for
which<00:17:06.280><c> even</c><00:17:06.439><c> the</c><00:17:06.559><c> operating</c><00:17:07.000><c> system</c><00:17:07.280><c> doesn't</c>

00:17:07.549 --> 00:17:07.559 align:start position:0%
which even the operating system doesn't
 

00:17:07.559 --> 00:17:08.750 align:start position:0%
which even the operating system doesn't
have

00:17:08.750 --> 00:17:08.760 align:start position:0%
have
 

00:17:08.760 --> 00:17:11.870 align:start position:0%
have
access<00:17:09.760><c> and</c><00:17:10.280><c> what</c><00:17:10.559><c> this</c><00:17:11.240><c> this</c><00:17:11.520><c> this</c><00:17:11.720><c> would</c>

00:17:11.870 --> 00:17:11.880 align:start position:0%
access and what this this this would
 

00:17:11.880 --> 00:17:13.350 align:start position:0%
access and what this this this would
bring<00:17:12.079><c> up</c><00:17:12.199><c> a</c><00:17:12.319><c> message</c><00:17:12.600><c> it</c><00:17:12.720><c> would</c><00:17:12.880><c> say</c>

00:17:13.350 --> 00:17:13.360 align:start position:0%
bring up a message it would say
 

00:17:13.360 --> 00:17:15.069 align:start position:0%
bring up a message it would say
transfers<00:17:14.319><c> and</c><00:17:14.400><c> then</c><00:17:14.520><c> it</c><00:17:14.600><c> wouldn't</c><00:17:14.880><c> actually</c>

00:17:15.069 --> 00:17:15.079 align:start position:0%
transfers and then it wouldn't actually
 

00:17:15.079 --> 00:17:17.069 align:start position:0%
transfers and then it wouldn't actually
say<00:17:15.280><c> underscore</c><00:17:15.880><c> amount</c><00:17:16.520><c> right</c><00:17:16.640><c> it</c><00:17:16.720><c> would</c><00:17:16.880><c> say</c>

00:17:17.069 --> 00:17:17.079 align:start position:0%
say underscore amount right it would say
 

00:17:17.079 --> 00:17:18.429 align:start position:0%
say underscore amount right it would say
the<00:17:17.240><c> actual</c><00:17:17.520><c> amount</c><00:17:17.799><c> it</c><00:17:17.880><c> would</c><00:17:18.079><c> place</c><00:17:18.319><c> the</c>

00:17:18.429 --> 00:17:18.439 align:start position:0%
the actual amount it would place the
 

00:17:18.439 --> 00:17:20.029 align:start position:0%
the actual amount it would place the
amount<00:17:18.679><c> in</c><00:17:18.880><c> there</c><00:17:19.120><c> so</c><00:17:19.240><c> it</c><00:17:19.319><c> would</c><00:17:19.480><c> evaluate</c>

00:17:20.029 --> 00:17:20.039 align:start position:0%
amount in there so it would evaluate
 

00:17:20.039 --> 00:17:24.029 align:start position:0%
amount in there so it would evaluate
what<00:17:20.199><c> underscore</c><00:17:20.720><c> amount</c><00:17:21.120><c> is</c><00:17:22.120><c> and</c><00:17:22.280><c> then</c><00:17:23.079><c> um</c>

00:17:24.029 --> 00:17:24.039 align:start position:0%
what underscore amount is and then um
 

00:17:24.039 --> 00:17:26.110 align:start position:0%
what underscore amount is and then um
stream<00:17:24.400><c> it</c><00:17:24.559><c> into</c><00:17:24.839><c> this</c><00:17:25.079><c> into</c><00:17:25.319><c> this</c>

00:17:26.110 --> 00:17:26.120 align:start position:0%
stream it into this into this
 

00:17:26.120 --> 00:17:29.310 align:start position:0%
stream it into this into this
text<00:17:27.120><c> cash</c><00:17:27.360><c> from</c><00:17:27.520><c> your</c><00:17:27.799><c> account</c><00:17:28.520><c> message</c><00:17:29.080><c> call</c>

00:17:29.310 --> 00:17:29.320 align:start position:0%
text cash from your account message call
 

00:17:29.320 --> 00:17:30.830 align:start position:0%
text cash from your account message call
it<00:17:29.400><c> would</c><00:17:29.559><c> give</c><00:17:29.720><c> you</c><00:17:30.080><c> either</c><00:17:30.320><c> the</c><00:17:30.480><c> name</c><00:17:30.720><c> if</c>

00:17:30.830 --> 00:17:30.840 align:start position:0%
it would give you either the name if
 

00:17:30.840 --> 00:17:32.230 align:start position:0%
it would give you either the name if
you've<00:17:31.120><c> if</c><00:17:31.160><c> you've</c><00:17:31.280><c> got</c><00:17:31.400><c> a</c><00:17:31.559><c> name</c><00:17:31.799><c> attached</c><00:17:32.120><c> to</c>

00:17:32.230 --> 00:17:32.240 align:start position:0%
you've if you've got a name attached to
 

00:17:32.240 --> 00:17:33.870 align:start position:0%
you've if you've got a name attached to
it<00:17:32.320><c> if</c><00:17:32.520><c> name</c><00:17:32.679><c> rge</c><00:17:32.919><c> has</c><00:17:33.080><c> got</c><00:17:33.160><c> a</c><00:17:33.280><c> name</c><00:17:33.520><c> that</c><00:17:33.640><c> you</c>

00:17:33.870 --> 00:17:33.880 align:start position:0%
it if name rge has got a name that you
 

00:17:33.880 --> 00:17:36.470 align:start position:0%
it if name rge has got a name that you
that<00:17:33.960><c> you</c><00:17:34.080><c> trust</c><00:17:34.799><c> or</c><00:17:35.200><c> or</c><00:17:35.440><c> just</c><00:17:35.640><c> the</c><00:17:35.840><c> the</c><00:17:35.960><c> hex</c><00:17:36.280><c> or</c>

00:17:36.470 --> 00:17:36.480 align:start position:0%
that you trust or or just the the hex or
 

00:17:36.480 --> 00:17:39.110 align:start position:0%
that you trust or or just the the hex or
maybe<00:17:36.679><c> even</c><00:17:36.880><c> a</c><00:17:37.039><c> little</c><00:17:37.760><c> graphic</c><00:17:38.760><c> to</c><00:17:38.960><c> the</c>

00:17:39.110 --> 00:17:39.120 align:start position:0%
maybe even a little graphic to the
 

00:17:39.120 --> 00:17:41.350 align:start position:0%
maybe even a little graphic to the
account<00:17:39.400><c> controlled</c><00:17:39.960><c> by</c><00:17:40.400><c> and</c><00:17:40.600><c> then</c><00:17:40.960><c> again</c><00:17:41.200><c> the</c>

00:17:41.350 --> 00:17:41.360 align:start position:0%
account controlled by and then again the
 

00:17:41.360 --> 00:17:45.150 align:start position:0%
account controlled by and then again the
same<00:17:41.600><c> thing</c><00:17:42.240><c> but</c><00:17:42.760><c> but</c><00:17:43.000><c> the</c><00:17:43.320><c> um</c>

00:17:45.150 --> 00:17:45.160 align:start position:0%
same thing but but the um
 

00:17:45.160 --> 00:17:47.350 align:start position:0%
same thing but but the um
destination<00:17:46.160><c> returns</c><00:17:46.440><c> to</c><00:17:46.640><c> cash</c><00:17:47.000><c> don't</c><00:17:47.200><c> really</c>

00:17:47.350 --> 00:17:47.360 align:start position:0%
destination returns to cash don't really
 

00:17:47.360 --> 00:17:49.190 align:start position:0%
destination returns to cash don't really
care<00:17:47.520><c> about</c><00:17:47.720><c> that</c><00:17:48.240><c> and</c><00:17:48.360><c> then</c><00:17:48.480><c> You'</c><00:17:48.640><c> got</c><00:17:48.840><c> the</c><00:17:49.080><c> uh</c>

00:17:49.190 --> 00:17:49.200 align:start position:0%
care about that and then You' got the uh
 

00:17:49.200 --> 00:17:51.070 align:start position:0%
care about that and then You' got the uh
the<00:17:49.320><c> construction</c><00:17:50.039><c> creator</c><00:17:50.400><c> of</c><00:17:50.520><c> the</c><00:17:50.679><c> contract</c>

00:17:51.070 --> 00:17:51.080 align:start position:0%
the construction creator of the contract
 

00:17:51.080 --> 00:17:53.029 align:start position:0%
the construction creator of the contract
is<00:17:51.240><c> endowed</c><00:17:51.640><c> with</c><00:17:51.760><c> a</c><00:17:51.880><c> balance</c><00:17:52.120><c> of</c><00:17:52.280><c> a</c>

00:17:53.029 --> 00:17:53.039 align:start position:0%
is endowed with a balance of a
 

00:17:53.039 --> 00:17:56.470 align:start position:0%
is endowed with a balance of a
billion<00:17:54.039><c> that's</c><00:17:54.240><c> easy</c><00:17:54.640><c> enough</c><00:17:55.640><c> um</c><00:17:56.120><c> it</c><00:17:56.240><c> will</c>

00:17:56.470 --> 00:17:56.480 align:start position:0%
billion that's easy enough um it will
 

00:17:56.480 --> 00:17:59.510 align:start position:0%
billion that's easy enough um it will
probably<00:17:57.440><c> insert</c><00:17:57.919><c> m</c>

00:17:59.510 --> 00:17:59.520 align:start position:0%
probably insert m
 

00:17:59.520 --> 00:18:02.230 align:start position:0%
probably insert m
get<00:18:00.080><c> get</c><00:18:00.240><c> the</c><00:18:00.400><c> address</c><00:18:01.400><c> and</c><00:18:01.520><c> then</c><00:18:01.799><c> finally</c>

00:18:02.230 --> 00:18:02.240 align:start position:0%
get get the address and then finally
 

00:18:02.240 --> 00:18:05.070 align:start position:0%
get get the address and then finally
this<00:18:02.520><c> magic</c><00:18:03.000><c> line</c><00:18:04.000><c> total</c><00:18:04.400><c> cash</c><00:18:04.559><c> in</c><00:18:04.679><c> the</c><00:18:04.799><c> system</c>

00:18:05.070 --> 00:18:05.080 align:start position:0%
this magic line total cash in the system
 

00:18:05.080 --> 00:18:06.669 align:start position:0%
this magic line total cash in the system
is<00:18:05.200><c> always</c><00:18:05.440><c> a</c><00:18:05.640><c> billion</c><00:18:06.159><c> and</c><00:18:06.280><c> this</c><00:18:06.400><c> is</c><00:18:06.559><c> the</c>

00:18:06.669 --> 00:18:06.679 align:start position:0%
is always a billion and this is the
 

00:18:06.679 --> 00:18:10.149 align:start position:0%
is always a billion and this is the
thing<00:18:07.000><c> that</c><00:18:07.200><c> the</c><00:18:07.400><c> the</c><00:18:07.559><c> auditor</c><00:18:08.159><c> or</c><00:18:08.640><c> whoever</c><00:18:09.640><c> um</c>

00:18:10.149 --> 00:18:10.159 align:start position:0%
thing that the the auditor or whoever um
 

00:18:10.159 --> 00:18:12.310 align:start position:0%
thing that the the auditor or whoever um
whoever<00:18:10.679><c> is</c><00:18:11.679><c> it</c><00:18:11.760><c> could</c><00:18:11.880><c> be</c><00:18:12.000><c> that</c><00:18:12.080><c> there</c><00:18:12.200><c> are</c>

00:18:12.310 --> 00:18:12.320 align:start position:0%
whoever is it could be that there are
 

00:18:12.320 --> 00:18:14.149 align:start position:0%
whoever is it could be that there are
many<00:18:12.480><c> Auditors</c><00:18:12.919><c> I</c><00:18:12.960><c> mean</c><00:18:13.120><c> you</c><00:18:13.200><c> know</c><00:18:13.320><c> it's</c>

00:18:14.149 --> 00:18:14.159 align:start position:0%
many Auditors I mean you know it's
 

00:18:14.159 --> 00:18:17.789 align:start position:0%
many Auditors I mean you know it's
decentralized<00:18:15.159><c> um</c><00:18:15.360><c> checks</c><00:18:15.799><c> this</c><00:18:16.000><c> line</c><00:18:17.000><c> yeah</c>

00:18:17.789 --> 00:18:17.799 align:start position:0%
decentralized um checks this line yeah
 

00:18:17.799 --> 00:18:19.510 align:start position:0%
decentralized um checks this line yeah
yeah<00:18:18.039><c> that's</c><00:18:18.240><c> fine</c><00:18:18.559><c> that's</c><00:18:18.799><c> that</c><00:18:19.000><c> that</c><00:18:19.120><c> means</c>

00:18:19.510 --> 00:18:19.520 align:start position:0%
yeah that's fine that's that that means
 

00:18:19.520 --> 00:18:23.789 align:start position:0%
yeah that's fine that's that that means
this<00:18:20.720><c> and</c><00:18:21.720><c> that's</c><00:18:21.880><c> the</c><00:18:22.320><c> magic</c><00:18:23.320><c> when</c><00:18:23.480><c> the</c><00:18:23.559><c> user</c>

00:18:23.789 --> 00:18:23.799 align:start position:0%
this and that's the magic when the user
 

00:18:23.799 --> 00:18:26.470 align:start position:0%
this and that's the magic when the user
comes<00:18:24.000><c> to</c><00:18:24.120><c> look</c><00:18:24.240><c> at</c><00:18:24.360><c> it</c><00:18:25.240><c> there</c><00:18:25.520><c> get</c><00:18:26.200><c> an</c>

00:18:26.470 --> 00:18:26.480 align:start position:0%
comes to look at it there get an
 

00:18:26.480 --> 00:18:27.510 align:start position:0%
comes to look at it there get an
absolutely

00:18:27.510 --> 00:18:27.520 align:start position:0%
absolutely
 

00:18:27.520 --> 00:18:31.310 align:start position:0%
absolutely
trustable<00:18:28.520><c> uh</c>

00:18:31.310 --> 00:18:31.320 align:start position:0%
 
 

00:18:31.320 --> 00:18:35.270 align:start position:0%
 
statement<00:18:32.320><c> cool</c><00:18:32.880><c> so</c><00:18:33.200><c> those</c><00:18:33.360><c> are</c><00:18:33.559><c> the</c><00:18:34.200><c> uh</c><00:18:34.360><c> basic</c>

00:18:35.270 --> 00:18:35.280 align:start position:0%
statement cool so those are the uh basic
 

00:18:35.280 --> 00:18:38.870 align:start position:0%
statement cool so those are the uh basic
uh<00:18:36.200><c> driving</c><00:18:36.880><c> factors</c><00:18:37.559><c> and</c><00:18:38.039><c> rough</c><00:18:38.440><c> solutions</c>

00:18:38.870 --> 00:18:38.880 align:start position:0%
uh driving factors and rough solutions
 

00:18:38.880 --> 00:18:41.549 align:start position:0%
uh driving factors and rough solutions
to<00:18:39.080><c> them</c><00:18:39.840><c> um</c><00:18:40.080><c> Christian</c><00:18:40.559><c> is</c><00:18:40.720><c> now</c><00:18:40.960><c> going</c><00:18:41.159><c> to</c><00:18:41.360><c> go</c>

00:18:41.549 --> 00:18:41.559 align:start position:0%
to them um Christian is now going to go
 

00:18:41.559 --> 00:18:43.789 align:start position:0%
to them um Christian is now going to go
into<00:18:42.559><c> a</c><00:18:42.720><c> little</c><00:18:42.919><c> more</c><00:18:43.120><c> detail</c><00:18:43.440><c> then</c><00:18:43.559><c> we'll</c><00:18:43.679><c> do</c>

00:18:43.789 --> 00:18:43.799 align:start position:0%
into a little more detail then we'll do
 

00:18:43.799 --> 00:18:45.390 align:start position:0%
into a little more detail then we'll do
a<00:18:43.960><c> question</c><00:18:44.200><c> and</c><00:18:44.400><c> answer</c><00:18:44.640><c> session</c><00:18:44.919><c> at</c><00:18:45.039><c> the</c><00:18:45.159><c> end</c>

00:18:45.390 --> 00:18:45.400 align:start position:0%
a question and answer session at the end
 

00:18:45.400 --> 00:18:51.590 align:start position:0%
a question and answer session at the end
and<00:18:45.720><c> uh</c><00:18:45.799><c> you</c><00:18:45.880><c> can</c><00:18:46.000><c> bring</c><00:18:46.159><c> up</c><00:18:46.280><c> your</c><00:18:46.400><c> points</c>

00:18:51.590 --> 00:18:51.600 align:start position:0%
 
 

00:18:51.600 --> 00:18:53.030 align:start position:0%
 
there<00:18:52.600><c> okay</c>

00:18:53.030 --> 00:18:53.040 align:start position:0%
there okay
 

00:18:53.040 --> 00:18:56.430 align:start position:0%
there okay
[Music]

00:18:56.430 --> 00:18:56.440 align:start position:0%
 
 

00:18:56.440 --> 00:18:59.950 align:start position:0%
 
so<00:18:57.520><c> um</c><00:18:58.520><c> yeah</c>

00:18:59.950 --> 00:18:59.960 align:start position:0%
so um yeah
 

00:18:59.960 --> 00:19:03.110 align:start position:0%
so um yeah
now<00:19:00.960><c> let's</c><00:19:01.159><c> see</c><00:19:01.960><c> how</c><00:19:02.240><c> this</c><00:19:02.360><c> is</c><00:19:02.480><c> all</c>

00:19:03.110 --> 00:19:03.120 align:start position:0%
now let's see how this is all
 

00:19:03.120 --> 00:19:06.270 align:start position:0%
now let's see how this is all
implemented<00:19:04.120><c> um</c>

00:19:06.270 --> 00:19:06.280 align:start position:0%
implemented um
 

00:19:06.280 --> 00:19:08.470 align:start position:0%
implemented um
first<00:19:07.280><c> what</c><00:19:07.440><c> were</c><00:19:07.679><c> the</c><00:19:07.840><c> requirements</c><00:19:08.280><c> for</c>

00:19:08.470 --> 00:19:08.480 align:start position:0%
first what were the requirements for
 

00:19:08.480 --> 00:19:10.270 align:start position:0%
first what were the requirements for
solidity<00:19:09.080><c> Gavin</c><00:19:09.360><c> already</c><00:19:09.600><c> told</c><00:19:09.840><c> us</c><00:19:10.000><c> about</c>

00:19:10.270 --> 00:19:10.280 align:start position:0%
solidity Gavin already told us about
 

00:19:10.280 --> 00:19:11.710 align:start position:0%
solidity Gavin already told us about
that<00:19:10.400><c> so</c><00:19:10.559><c> it's</c><00:19:10.679><c> a</c><00:19:10.960><c> contract</c><00:19:11.280><c> oriented</c>

00:19:11.710 --> 00:19:11.720 align:start position:0%
that so it's a contract oriented
 

00:19:11.720 --> 00:19:15.669 align:start position:0%
that so it's a contract oriented
language<00:19:12.559><c> which</c><00:19:12.679><c> means</c><00:19:13.000><c> that</c><00:19:14.000><c> classes</c><00:19:15.000><c> are</c>

00:19:15.669 --> 00:19:15.679 align:start position:0%
language which means that classes are
 

00:19:15.679 --> 00:19:19.230 align:start position:0%
language which means that classes are
contracts<00:19:16.679><c> it</c><00:19:16.799><c> is</c><00:19:17.000><c> statically</c><00:19:17.799><c> typed</c><00:19:18.799><c> from</c>

00:19:19.230 --> 00:19:19.240 align:start position:0%
contracts it is statically typed from
 

00:19:19.240 --> 00:19:23.190 align:start position:0%
contracts it is statically typed from
the<00:19:19.400><c> syntax</c><00:19:20.240><c> uh</c><00:19:20.480><c> close</c><00:19:20.760><c> to</c><00:19:21.440><c> JavaScript</c><00:19:22.440><c> and</c>

00:19:23.190 --> 00:19:23.200 align:start position:0%
the syntax uh close to JavaScript and
 

00:19:23.200 --> 00:19:24.750 align:start position:0%
the syntax uh close to JavaScript and
when<00:19:23.320><c> you</c><00:19:23.640><c> types</c><00:19:23.919><c> to</c><00:19:24.039><c> JavaScript</c><00:19:24.520><c> you</c><00:19:24.600><c> get</c>

00:19:24.750 --> 00:19:24.760 align:start position:0%
when you types to JavaScript you get
 

00:19:24.760 --> 00:19:27.590 align:start position:0%
when you types to JavaScript you get
something<00:19:25.039><c> which</c><00:19:25.159><c> is</c><00:19:25.360><c> close</c><00:19:25.679><c> to</c><00:19:25.880><c> C</c><00:19:26.520><c> or</c>

00:19:27.590 --> 00:19:27.600 align:start position:0%
something which is close to C or
 

00:19:27.600 --> 00:19:29.789 align:start position:0%
something which is close to C or
C++<00:19:28.600><c> um</c><00:19:28.919><c> uh</c><00:19:29.080><c> the</c><00:19:29.159><c> built-in</c><00:19:29.520><c> language</c>

00:19:29.789 --> 00:19:29.799 align:start position:0%
C++ um uh the built-in language
 

00:19:29.799 --> 00:19:32.430 align:start position:0%
C++ um uh the built-in language
documentation<00:19:30.679><c> and</c><00:19:31.320><c> some</c><00:19:31.679><c> language</c><00:19:32.000><c> subset</c>

00:19:32.430 --> 00:19:32.440 align:start position:0%
documentation and some language subset
 

00:19:32.440 --> 00:19:34.630 align:start position:0%
documentation and some language subset
that<00:19:32.520><c> allows</c><00:19:33.159><c> formal</c><00:19:33.480><c> proofs</c><00:19:33.760><c> of</c>

00:19:34.630 --> 00:19:34.640 align:start position:0%
that allows formal proofs of
 

00:19:34.640 --> 00:19:38.070 align:start position:0%
that allows formal proofs of
correctness<00:19:35.640><c> and</c><00:19:36.039><c> yeah</c><00:19:36.240><c> so</c>

00:19:38.070 --> 00:19:38.080 align:start position:0%
correctness and yeah so
 

00:19:38.080 --> 00:19:40.510 align:start position:0%
correctness and yeah so
coincidentally<00:19:39.080><c> this</c><00:19:39.159><c> is</c><00:19:39.400><c> exactly</c><00:19:40.000><c> the</c>

00:19:40.510 --> 00:19:40.520 align:start position:0%
coincidentally this is exactly the
 

00:19:40.520 --> 00:19:43.029 align:start position:0%
coincidentally this is exactly the
contract<00:19:41.240><c> Gavin</c><00:19:41.720><c> also</c><00:19:41.960><c> showed</c><00:19:42.679><c> so</c><00:19:42.880><c> you</c>

00:19:43.029 --> 00:19:43.039 align:start position:0%
contract Gavin also showed so you
 

00:19:43.039 --> 00:19:48.830 align:start position:0%
contract Gavin also showed so you
already<00:19:43.240><c> know</c><00:19:43.880><c> that</c>

00:19:48.830 --> 00:19:48.840 align:start position:0%
 
 

00:19:48.840 --> 00:19:54.990 align:start position:0%
 
um<00:19:49.840><c> yeah</c><00:19:50.840><c> can</c><00:19:51.200><c> skip</c><00:19:52.159><c> then</c><00:19:52.720><c> the</c><00:19:53.039><c> uous</c><00:19:53.960><c> coin</c>

00:19:54.990 --> 00:19:55.000 align:start position:0%
um yeah can skip then the uous coin
 

00:19:55.000 --> 00:19:57.110 align:start position:0%
um yeah can skip then the uous coin
contract

00:19:57.110 --> 00:19:57.120 align:start position:0%
contract
 

00:19:57.120 --> 00:19:59.430 align:start position:0%
contract
um<00:19:58.120><c> there</c><00:19:58.240><c> we</c><00:19:58.360><c> see</c><00:19:58.480><c> some</c><00:19:58.799><c> thing</c><00:19:59.000><c> we've</c><00:19:59.280><c> not</c>

00:19:59.430 --> 00:19:59.440 align:start position:0%
um there we see some thing we've not
 

00:19:59.440 --> 00:20:03.350 align:start position:0%
um there we see some thing we've not
seen<00:19:59.799><c> in</c><00:20:00.120><c> Gavin's</c><00:20:00.559><c> talk</c><00:20:01.720><c> um</c><00:20:02.720><c> the</c><00:20:02.880><c> language</c><00:20:03.200><c> is</c>

00:20:03.350 --> 00:20:03.360 align:start position:0%
seen in Gavin's talk um the language is
 

00:20:03.360 --> 00:20:07.390 align:start position:0%
seen in Gavin's talk um the language is
statically<00:20:03.840><c> typed</c><00:20:04.240><c> but</c><00:20:04.520><c> still</c><00:20:05.880><c> um</c><00:20:06.880><c> it's</c><00:20:07.080><c> not</c>

00:20:07.390 --> 00:20:07.400 align:start position:0%
statically typed but still um it's not
 

00:20:07.400 --> 00:20:09.110 align:start position:0%
statically typed but still um it's not
necessary<00:20:07.799><c> to</c><00:20:07.960><c> always</c><00:20:08.280><c> specify</c><00:20:08.679><c> the</c><00:20:08.840><c> types</c>

00:20:09.110 --> 00:20:09.120 align:start position:0%
necessary to always specify the types
 

00:20:09.120 --> 00:20:12.470 align:start position:0%
necessary to always specify the types
you<00:20:09.240><c> have</c><00:20:09.440><c> this</c><00:20:10.039><c> keyword</c><00:20:11.000><c> V</c><00:20:12.000><c> uh</c><00:20:12.120><c> which</c><00:20:12.280><c> can</c><00:20:12.360><c> be</c>

00:20:12.470 --> 00:20:12.480 align:start position:0%
you have this keyword V uh which can be
 

00:20:12.480 --> 00:20:14.430 align:start position:0%
you have this keyword V uh which can be
used<00:20:12.679><c> for</c><00:20:12.840><c> local</c><00:20:13.159><c> variables</c><00:20:13.919><c> and</c><00:20:14.240><c> it's</c>

00:20:14.430 --> 00:20:14.440 align:start position:0%
used for local variables and it's
 

00:20:14.440 --> 00:20:17.750 align:start position:0%
used for local variables and it's
similar<00:20:14.840><c> to</c><00:20:15.039><c> C++</c><00:20:15.960><c> 11's</c><00:20:16.640><c> Auto</c><00:20:17.080><c> keyword</c><00:20:17.600><c> which</c>

00:20:17.750 --> 00:20:17.760 align:start position:0%
similar to C++ 11's Auto keyword which
 

00:20:17.760 --> 00:20:20.029 align:start position:0%
similar to C++ 11's Auto keyword which
means<00:20:18.200><c> the</c><00:20:18.400><c> type</c><00:20:18.600><c> is</c><00:20:18.799><c> just</c><00:20:18.960><c> taken</c><00:20:19.200><c> from</c><00:20:19.440><c> the</c>

00:20:20.029 --> 00:20:20.039 align:start position:0%
means the type is just taken from the
 

00:20:20.039 --> 00:20:22.510 align:start position:0%
means the type is just taken from the
type<00:20:20.240><c> of</c><00:20:20.440><c> the</c><00:20:20.840><c> first</c><00:20:21.280><c> assignment</c><00:20:22.039><c> to</c><00:20:22.240><c> this</c>

00:20:22.510 --> 00:20:22.520 align:start position:0%
type of the first assignment to this
 

00:20:22.520 --> 00:20:25.830 align:start position:0%
type of the first assignment to this
variable<00:20:23.520><c> so</c><00:20:23.640><c> I</c><00:20:23.760><c> think</c><00:20:23.919><c> that's</c><00:20:24.120><c> quite</c>

00:20:25.830 --> 00:20:25.840 align:start position:0%
variable so I think that's quite
 

00:20:25.840 --> 00:20:33.789 align:start position:0%
variable so I think that's quite
convenient<00:20:26.840><c> um</c>

00:20:33.789 --> 00:20:33.799 align:start position:0%
 
 

00:20:33.799 --> 00:20:37.230 align:start position:0%
 
yeah<00:20:34.799><c> okay</c><00:20:35.159><c> then</c><00:20:35.760><c> uh</c><00:20:35.919><c> we</c><00:20:36.080><c> see</c>

00:20:37.230 --> 00:20:37.240 align:start position:0%
yeah okay then uh we see
 

00:20:37.240 --> 00:20:39.029 align:start position:0%
yeah okay then uh we see
something

00:20:39.029 --> 00:20:39.039 align:start position:0%
something
 

00:20:39.039 --> 00:20:42.350 align:start position:0%
something
um<00:20:40.039><c> users</c><00:20:40.520><c> can</c><00:20:41.039><c> Define</c><00:20:41.360><c> their</c><00:20:41.520><c> own</c><00:20:41.799><c> types</c><00:20:42.120><c> so</c>

00:20:42.350 --> 00:20:42.360 align:start position:0%
um users can Define their own types so
 

00:20:42.360 --> 00:20:45.470 align:start position:0%
um users can Define their own types so
they<00:20:42.559><c> can</c><00:20:43.360><c> Define</c><00:20:43.640><c> structs</c><00:20:44.480><c> and</c><00:20:44.840><c> then</c>

00:20:45.470 --> 00:20:45.480 align:start position:0%
they can Define structs and then
 

00:20:45.480 --> 00:20:50.390 align:start position:0%
they can Define structs and then
mappings<00:20:46.159><c> can</c><00:20:46.720><c> map</c><00:20:47.720><c> basic</c><00:20:48.120><c> types</c><00:20:48.559><c> to</c><00:20:49.400><c> any</c><00:20:49.760><c> type</c>

00:20:50.390 --> 00:20:50.400 align:start position:0%
mappings can map basic types to any type
 

00:20:50.400 --> 00:20:53.669 align:start position:0%
mappings can map basic types to any type
so<00:20:50.720><c> we</c><00:20:50.840><c> can</c><00:20:51.039><c> have</c><00:20:51.280><c> a</c><00:20:51.400><c> struct</c><00:20:51.840><c> at</c><00:20:52.400><c> the</c><00:20:53.400><c> as</c><00:20:53.520><c> the</c>

00:20:53.669 --> 00:20:53.679 align:start position:0%
so we can have a struct at the as the
 

00:20:53.679 --> 00:20:55.549 align:start position:0%
so we can have a struct at the as the
value<00:20:54.000><c> type</c><00:20:54.240><c> we</c><00:20:54.320><c> can</c><00:20:54.480><c> also</c><00:20:54.720><c> have</c><00:20:55.039><c> mappings</c>

00:20:55.549 --> 00:20:55.559 align:start position:0%
value type we can also have mappings
 

00:20:55.559 --> 00:20:58.590 align:start position:0%
value type we can also have mappings
again<00:20:55.760><c> as</c><00:20:55.960><c> value</c><00:20:56.720><c> types</c><00:20:57.720><c> we</c><00:20:57.840><c> can</c><00:20:57.960><c> also</c><00:20:58.159><c> have</c>

00:20:58.590 --> 00:20:58.600 align:start position:0%
again as value types we can also have
 

00:20:58.600 --> 00:21:00.390 align:start position:0%
again as value types we can also have
contracts<00:20:58.960><c> as</c><00:20:59.159><c> value</c>

00:21:00.390 --> 00:21:00.400 align:start position:0%
contracts as value
 

00:21:00.400 --> 00:21:02.990 align:start position:0%
contracts as value
types

00:21:02.990 --> 00:21:03.000 align:start position:0%
types
 

00:21:03.000 --> 00:21:07.029 align:start position:0%
types
and<00:21:04.000><c> um</c><00:21:04.840><c> this</c><00:21:05.000><c> vote</c><00:21:05.480><c> is</c><00:21:05.799><c> the</c><00:21:06.159><c> the</c><00:21:06.280><c> struct</c><00:21:06.679><c> type</c>

00:21:07.029 --> 00:21:07.039 align:start position:0%
and um this vote is the the struct type
 

00:21:07.039 --> 00:21:08.590 align:start position:0%
and um this vote is the the struct type
here<00:21:07.320><c> so</c><00:21:07.640><c> you</c>

00:21:08.590 --> 00:21:08.600 align:start position:0%
here so you
 

00:21:08.600 --> 00:21:10.470 align:start position:0%
here so you
can

00:21:10.470 --> 00:21:10.480 align:start position:0%
can
 

00:21:10.480 --> 00:21:13.269 align:start position:0%
can
retrieve<00:21:11.480><c> from</c><00:21:11.720><c> the</c><00:21:11.880><c> storage</c><00:21:12.440><c> from</c><00:21:12.720><c> this</c><00:21:13.080><c> this</c>

00:21:13.269 --> 00:21:13.279 align:start position:0%
retrieve from the storage from this this
 

00:21:13.279 --> 00:21:15.390 align:start position:0%
retrieve from the storage from this this
mapping<00:21:13.720><c> here</c><00:21:14.440><c> uh</c><00:21:14.760><c> the</c><00:21:14.919><c> value</c><00:21:15.200><c> which</c><00:21:15.279><c> is</c>

00:21:15.390 --> 00:21:15.400 align:start position:0%
mapping here uh the value which is
 

00:21:15.400 --> 00:21:17.669 align:start position:0%
mapping here uh the value which is
stored<00:21:15.760><c> at</c><00:21:15.880><c> the</c><00:21:16.000><c> senders</c>

00:21:17.669 --> 00:21:17.679 align:start position:0%
stored at the senders
 

00:21:17.679 --> 00:21:22.909 align:start position:0%
stored at the senders
address<00:21:18.679><c> and</c><00:21:19.080><c> then</c><00:21:20.080><c> yeah</c><00:21:20.440><c> assign</c><00:21:21.440><c> values</c><00:21:21.960><c> to</c>

00:21:22.909 --> 00:21:22.919 align:start position:0%
address and then yeah assign values to
 

00:21:22.919 --> 00:21:24.230 align:start position:0%
address and then yeah assign values to
this<00:21:23.159><c> local</c>

00:21:24.230 --> 00:21:24.240 align:start position:0%
this local
 

00:21:24.240 --> 00:21:26.909 align:start position:0%
this local
variable<00:21:25.240><c> but</c><00:21:25.559><c> this</c><00:21:25.720><c> doesn't</c><00:21:26.039><c> really</c><00:21:26.360><c> so</c><00:21:26.720><c> this</c>

00:21:26.909 --> 00:21:26.919 align:start position:0%
variable but this doesn't really so this
 

00:21:26.919 --> 00:21:28.230 align:start position:0%
variable but this doesn't really so this
this<00:21:27.120><c> actually</c><00:21:27.360><c> assigns</c><00:21:27.679><c> it</c><00:21:27.840><c> directly</c><00:21:28.120><c> to</c>

00:21:28.230 --> 00:21:28.240 align:start position:0%
this actually assigns it directly to
 

00:21:28.240 --> 00:21:31.149 align:start position:0%
this actually assigns it directly to
stor<00:21:28.919><c> because</c><00:21:29.559><c> vote</c><00:21:29.880><c> is</c><00:21:30.120><c> not</c><00:21:30.720><c> a</c><00:21:30.880><c> local</c>

00:21:31.149 --> 00:21:31.159 align:start position:0%
stor because vote is not a local
 

00:21:31.159 --> 00:21:32.510 align:start position:0%
stor because vote is not a local
variable<00:21:31.520><c> that</c><00:21:31.600><c> is</c><00:21:31.720><c> stored</c><00:21:32.000><c> on</c><00:21:32.080><c> the</c><00:21:32.200><c> stack</c>

00:21:32.510 --> 00:21:32.520 align:start position:0%
variable that is stored on the stack
 

00:21:32.520 --> 00:21:35.110 align:start position:0%
variable that is stored on the stack
it's<00:21:32.679><c> just</c><00:21:32.799><c> a</c><00:21:32.960><c> reference</c><00:21:33.360><c> to</c><00:21:33.559><c> the</c><00:21:33.919><c> storage</c><00:21:34.919><c> so</c>

00:21:35.110 --> 00:21:35.120 align:start position:0%
it's just a reference to the storage so
 

00:21:35.120 --> 00:21:37.590 align:start position:0%
it's just a reference to the storage so
you<00:21:35.279><c> don't</c><00:21:35.720><c> you</c><00:21:35.880><c> can</c><00:21:36.279><c> yeah</c><00:21:36.840><c> directly</c><00:21:37.279><c> access</c>

00:21:37.590 --> 00:21:37.600 align:start position:0%
you don't you can yeah directly access
 

00:21:37.600 --> 00:21:42.190 align:start position:0%
you don't you can yeah directly access
storage

00:21:42.190 --> 00:21:42.200 align:start position:0%
 
 

00:21:42.200 --> 00:21:45.190 align:start position:0%
 
here<00:21:43.200><c> okay</c><00:21:43.640><c> um</c><00:21:43.919><c> some</c><00:21:44.120><c> details</c><00:21:44.440><c> about</c><00:21:44.840><c> the</c>

00:21:45.190 --> 00:21:45.200 align:start position:0%
here okay um some details about the
 

00:21:45.200 --> 00:21:47.390 align:start position:0%
here okay um some details about the
compilation

00:21:47.390 --> 00:21:47.400 align:start position:0%
compilation
 

00:21:47.400 --> 00:21:50.549 align:start position:0%
compilation
process<00:21:48.400><c> it</c><00:21:48.600><c> consists</c><00:21:48.919><c> of</c><00:21:49.080><c> six</c><00:21:49.320><c> stages</c><00:21:50.320><c> uh</c><00:21:50.440><c> the</c>

00:21:50.549 --> 00:21:50.559 align:start position:0%
process it consists of six stages uh the
 

00:21:50.559 --> 00:21:53.269 align:start position:0%
process it consists of six stages uh the
first<00:21:50.799><c> stage</c><00:21:51.120><c> is</c><00:21:51.520><c> just</c><00:21:51.960><c> parsing</c><00:21:52.960><c> after</c>

00:21:53.269 --> 00:21:53.279 align:start position:0%
first stage is just parsing after
 

00:21:53.279 --> 00:21:55.870 align:start position:0%
first stage is just parsing after
parsing<00:21:53.760><c> we</c><00:21:53.960><c> have</c><00:21:54.400><c> the</c><00:21:55.159><c> basic</c><00:21:55.520><c> abstract</c>

00:21:55.870 --> 00:21:55.880 align:start position:0%
parsing we have the basic abstract
 

00:21:55.880 --> 00:21:57.870 align:start position:0%
parsing we have the basic abstract
syntax<00:21:56.200><c> tree</c><00:21:56.919><c> so</c><00:21:57.080><c> we</c><00:21:57.200><c> know</c><00:21:57.360><c> the</c><00:21:57.480><c> structure</c><00:21:57.760><c> of</c>

00:21:57.870 --> 00:21:57.880 align:start position:0%
syntax tree so we know the structure of
 

00:21:57.880 --> 00:21:59.549 align:start position:0%
syntax tree so we know the structure of
the<00:21:58.039><c> program</c>

00:21:59.549 --> 00:21:59.559 align:start position:0%
the program
 

00:21:59.559 --> 00:22:01.269 align:start position:0%
the program
uh<00:21:59.720><c> the</c><00:21:59.840><c> next</c><00:22:00.039><c> step</c><00:22:00.360><c> is</c><00:22:00.720><c> resolving</c>

00:22:01.269 --> 00:22:01.279 align:start position:0%
uh the next step is resolving
 

00:22:01.279 --> 00:22:02.830 align:start position:0%
uh the next step is resolving
identifiers

00:22:02.830 --> 00:22:02.840 align:start position:0%
identifiers
 

00:22:02.840 --> 00:22:06.990 align:start position:0%
identifiers
so<00:22:03.840><c> words</c><00:22:04.799><c> identifiers</c><00:22:05.799><c> strings</c><00:22:06.400><c> can</c><00:22:06.640><c> mean</c>

00:22:06.990 --> 00:22:07.000 align:start position:0%
so words identifiers strings can mean
 

00:22:07.000 --> 00:22:09.510 align:start position:0%
so words identifiers strings can mean
can<00:22:07.159><c> refer</c><00:22:07.480><c> to</c><00:22:08.120><c> user</c><00:22:08.480><c> defined</c><00:22:08.799><c> type</c><00:22:09.039><c> names</c>

00:22:09.510 --> 00:22:09.520 align:start position:0%
can refer to user defined type names
 

00:22:09.520 --> 00:22:11.950 align:start position:0%
can refer to user defined type names
they<00:22:09.640><c> can</c><00:22:09.840><c> refer</c><00:22:10.159><c> to</c><00:22:10.679><c> function</c><00:22:11.080><c> names</c>

00:22:11.950 --> 00:22:11.960 align:start position:0%
they can refer to function names
 

00:22:11.960 --> 00:22:13.870 align:start position:0%
they can refer to function names
whatever<00:22:12.400><c> and</c><00:22:12.880><c> these</c><00:22:13.000><c> are</c>

00:22:13.870 --> 00:22:13.880 align:start position:0%
whatever and these are
 

00:22:13.880 --> 00:22:16.710 align:start position:0%
whatever and these are
all<00:22:14.880><c> resolved</c><00:22:15.400><c> in</c><00:22:15.600><c> their</c><00:22:15.799><c> respective</c><00:22:16.200><c> scope</c>

00:22:16.710 --> 00:22:16.720 align:start position:0%
all resolved in their respective scope
 

00:22:16.720 --> 00:22:19.750 align:start position:0%
all resolved in their respective scope
and<00:22:17.559><c> assigned</c><00:22:17.960><c> in</c><00:22:18.080><c> the</c><00:22:18.200><c> abstract</c><00:22:18.559><c> syntax</c>

00:22:19.750 --> 00:22:19.760 align:start position:0%
and assigned in the abstract syntax
 

00:22:19.760 --> 00:22:22.230 align:start position:0%
and assigned in the abstract syntax
stream<00:22:20.760><c> and</c><00:22:20.919><c> after</c><00:22:21.159><c> that</c><00:22:21.320><c> step</c><00:22:21.679><c> it's</c><00:22:21.880><c> possible</c>

00:22:22.230 --> 00:22:22.240 align:start position:0%
stream and after that step it's possible
 

00:22:22.240 --> 00:22:25.990 align:start position:0%
stream and after that step it's possible
to<00:22:23.000><c> infer</c><00:22:23.360><c> and</c><00:22:23.520><c> check</c><00:22:23.799><c> the</c><00:22:23.960><c> types</c><00:22:24.400><c> so</c><00:22:25.400><c> that</c>

00:22:25.990 --> 00:22:26.000 align:start position:0%
to infer and check the types so that
 

00:22:26.000 --> 00:22:30.350 align:start position:0%
to infer and check the types so that
assignments<00:22:27.000><c> do</c><00:22:27.159><c> not</c><00:22:27.360><c> conflict</c><00:22:27.760><c> in</c><00:22:27.919><c> types</c>

00:22:30.350 --> 00:22:30.360 align:start position:0%
assignments do not conflict in types
 

00:22:30.360 --> 00:22:32.590 align:start position:0%
assignments do not conflict in types
and<00:22:31.360><c> functions</c><00:22:31.720><c> are</c><00:22:31.880><c> called</c><00:22:32.320><c> with</c><00:22:32.480><c> the</c>

00:22:32.590 --> 00:22:32.600 align:start position:0%
and functions are called with the
 

00:22:32.600 --> 00:22:34.990 align:start position:0%
and functions are called with the
correct<00:22:32.880><c> number</c><00:22:33.039><c> of</c><00:22:33.200><c> arguments</c><00:22:33.760><c> and</c><00:22:34.520><c> and</c><00:22:34.640><c> so</c>

00:22:34.990 --> 00:22:35.000 align:start position:0%
correct number of arguments and and so
 

00:22:35.000 --> 00:22:38.549 align:start position:0%
correct number of arguments and and so
on<00:22:36.000><c> and</c><00:22:36.159><c> after</c><00:22:36.520><c> this</c><00:22:36.760><c> third</c><00:22:37.080><c> step</c><00:22:37.840><c> uh</c><00:22:38.360><c> it's</c>

00:22:38.549 --> 00:22:38.559 align:start position:0%
on and after this third step uh it's
 

00:22:38.559 --> 00:22:40.710 align:start position:0%
on and after this third step uh it's
possible<00:22:38.840><c> for</c><00:22:39.000><c> an</c><00:22:39.120><c> IDE</c><00:22:39.520><c> to</c><00:22:39.919><c> actually</c><00:22:40.200><c> use</c><00:22:40.559><c> the</c>

00:22:40.710 --> 00:22:40.720 align:start position:0%
possible for an IDE to actually use the
 

00:22:40.720 --> 00:22:43.990 align:start position:0%
possible for an IDE to actually use the
abstract<00:22:41.080><c> inex</c><00:22:41.400><c> stre</c><00:22:41.720><c> for</c><00:22:42.640><c> things</c><00:22:43.039><c> like</c><00:22:43.799><c> uh</c>

00:22:43.990 --> 00:22:44.000 align:start position:0%
abstract inex stre for things like uh
 

00:22:44.000 --> 00:22:47.110 align:start position:0%
abstract inex stre for things like uh
autoc<00:22:44.320><c> completion</c><00:22:44.840><c> or</c>

00:22:47.110 --> 00:22:47.120 align:start position:0%
autoc completion or
 

00:22:47.120 --> 00:22:50.830 align:start position:0%
autoc completion or
checking<00:22:48.120><c> where</c><00:22:48.320><c> a</c><00:22:48.520><c> variable</c><00:22:49.159><c> is</c><00:22:49.640><c> used</c><00:22:50.640><c> and</c>

00:22:50.830 --> 00:22:50.840 align:start position:0%
checking where a variable is used and
 

00:22:50.840 --> 00:22:52.870 align:start position:0%
checking where a variable is used and
all<00:22:51.039><c> this</c><00:22:51.400><c> nice</c><00:22:51.679><c> stuff</c><00:22:51.960><c> we</c><00:22:52.080><c> want</c><00:22:52.200><c> to</c>

00:22:52.870 --> 00:22:52.880 align:start position:0%
all this nice stuff we want to
 

00:22:52.880 --> 00:22:56.190 align:start position:0%
all this nice stuff we want to
have<00:22:53.880><c> and</c><00:22:54.279><c> the</c><00:22:54.400><c> fourth</c><00:22:54.760><c> step</c><00:22:55.640><c> uh</c><00:22:55.880><c> is</c>

00:22:56.190 --> 00:22:56.200 align:start position:0%
have and the fourth step uh is
 

00:22:56.200 --> 00:22:59.269 align:start position:0%
have and the fourth step uh is
compilation<00:22:56.679><c> to</c><00:22:56.960><c> an</c><00:22:57.279><c> assembly</c><00:22:57.720><c> language</c><00:22:58.720><c> then</c>

00:22:59.269 --> 00:22:59.279 align:start position:0%
compilation to an assembly language then
 

00:22:59.279 --> 00:23:01.470 align:start position:0%
compilation to an assembly language then
this<00:22:59.559><c> Assembly</c><00:22:59.919><c> Language</c><00:23:00.200><c> is</c><00:23:00.320><c> optimized</c><00:23:01.279><c> and</c>

00:23:01.470 --> 00:23:01.480 align:start position:0%
this Assembly Language is optimized and
 

00:23:01.480 --> 00:23:04.950 align:start position:0%
this Assembly Language is optimized and
finally<00:23:01.840><c> compil</c><00:23:02.200><c> to</c><00:23:02.320><c> BU</c>

00:23:04.950 --> 00:23:04.960 align:start position:0%
 
 

00:23:04.960 --> 00:23:09.029 align:start position:0%
 
code<00:23:05.960><c> okay</c><00:23:06.200><c> some</c><00:23:06.520><c> details</c><00:23:06.880><c> about</c><00:23:07.120><c> the</c><00:23:07.360><c> type</c>

00:23:09.029 --> 00:23:09.039 align:start position:0%
code okay some details about the type
 

00:23:09.039 --> 00:23:11.310 align:start position:0%
code okay some details about the type
system

00:23:11.310 --> 00:23:11.320 align:start position:0%
system
 

00:23:11.320 --> 00:23:15.549 align:start position:0%
system
um<00:23:12.320><c> statically</c><00:23:12.880><c> typed</c><00:23:13.320><c> means</c><00:23:14.279><c> uh</c><00:23:14.919><c> that</c><00:23:15.279><c> all</c>

00:23:15.549 --> 00:23:15.559 align:start position:0%
um statically typed means uh that all
 

00:23:15.559 --> 00:23:17.470 align:start position:0%
um statically typed means uh that all
expressions<00:23:16.159><c> in</c><00:23:16.320><c> this</c><00:23:16.520><c> language</c><00:23:17.120><c> have</c><00:23:17.320><c> a</c>

00:23:17.470 --> 00:23:17.480 align:start position:0%
expressions in this language have a
 

00:23:17.480 --> 00:23:19.909 align:start position:0%
expressions in this language have a
fixed<00:23:17.799><c> type</c><00:23:18.159><c> that</c><00:23:18.240><c> is</c><00:23:18.480><c> known</c><00:23:18.760><c> at</c><00:23:18.919><c> compile</c>

00:23:19.909 --> 00:23:19.919 align:start position:0%
fixed type that is known at compile
 

00:23:19.919 --> 00:23:22.830 align:start position:0%
fixed type that is known at compile
time<00:23:20.919><c> and</c><00:23:21.480><c> an</c><00:23:21.640><c> operation</c><00:23:22.320><c> so</c><00:23:22.520><c> it's</c><00:23:22.679><c> not</c>

00:23:22.830 --> 00:23:22.840 align:start position:0%
time and an operation so it's not
 

00:23:22.840 --> 00:23:24.789 align:start position:0%
time and an operation so it's not
possible<00:23:23.120><c> for</c><00:23:23.240><c> an</c><00:23:23.360><c> operation</c><00:23:23.799><c> to</c><00:23:24.240><c> involve</c><00:23:24.600><c> two</c>

00:23:24.789 --> 00:23:24.799 align:start position:0%
possible for an operation to involve two
 

00:23:24.799 --> 00:23:26.470 align:start position:0%
possible for an operation to involve two
different<00:23:25.120><c> types</c><00:23:25.559><c> so</c><00:23:25.679><c> you</c><00:23:25.840><c> cannot</c><00:23:26.200><c> add</c><00:23:26.360><c> a</c>

00:23:26.470 --> 00:23:26.480 align:start position:0%
different types so you cannot add a
 

00:23:26.480 --> 00:23:29.549 align:start position:0%
different types so you cannot add a
string<00:23:26.760><c> to</c><00:23:26.880><c> a</c><00:23:27.240><c> number</c><00:23:28.240><c> but</c><00:23:28.600><c> it</c><00:23:28.679><c> is</c><00:23:28.840><c> possible</c><00:23:29.159><c> to</c>

00:23:29.549 --> 00:23:29.559 align:start position:0%
string to a number but it is possible to
 

00:23:29.559 --> 00:23:32.470 align:start position:0%
string to a number but it is possible to
do<00:23:29.840><c> manual</c><00:23:30.240><c> type</c><00:23:30.480><c> conversions</c><00:23:31.000><c> so</c><00:23:31.240><c> if</c><00:23:31.480><c> you</c>

00:23:32.470 --> 00:23:32.480 align:start position:0%
do manual type conversions so if you
 

00:23:32.480 --> 00:23:34.789 align:start position:0%
do manual type conversions so if you
manually<00:23:33.360><c> explicitly</c><00:23:33.919><c> convert</c><00:23:34.320><c> the</c><00:23:34.440><c> integer</c>

00:23:34.789 --> 00:23:34.799 align:start position:0%
manually explicitly convert the integer
 

00:23:34.799 --> 00:23:38.110 align:start position:0%
manually explicitly convert the integer
to<00:23:35.039><c> string</c><00:23:35.360><c> then</c><00:23:35.480><c> you</c><00:23:35.559><c> can</c><00:23:35.760><c> add</c><00:23:36.240><c> them</c><00:23:37.240><c> and</c><00:23:37.960><c> at</c>

00:23:38.110 --> 00:23:38.120 align:start position:0%
to string then you can add them and at
 

00:23:38.120 --> 00:23:40.070 align:start position:0%
to string then you can add them and at
some<00:23:38.400><c> points</c><00:23:38.880><c> automatic</c><00:23:39.400><c> type</c><00:23:39.640><c> conversions</c>

00:23:40.070 --> 00:23:40.080 align:start position:0%
some points automatic type conversions
 

00:23:40.080 --> 00:23:44.310 align:start position:0%
some points automatic type conversions
are<00:23:40.279><c> done</c><00:23:40.880><c> if</c><00:23:41.880><c> it</c><00:23:42.440><c> makes</c><00:23:42.799><c> sense</c><00:23:43.400><c> and</c><00:23:43.840><c> if</c><00:23:44.080><c> no</c>

00:23:44.310 --> 00:23:44.320 align:start position:0%
are done if it makes sense and if no
 

00:23:44.320 --> 00:23:46.510 align:start position:0%
are done if it makes sense and if no
information<00:23:44.720><c> is</c><00:23:44.880><c> lost</c><00:23:45.159><c> so</c><00:23:45.320><c> we</c><00:23:45.400><c> will</c><00:23:45.679><c> see</c><00:23:45.880><c> that</c>

00:23:46.510 --> 00:23:46.520 align:start position:0%
information is lost so we will see that
 

00:23:46.520 --> 00:23:48.830 align:start position:0%
information is lost so we will see that
later<00:23:47.520><c> uh</c><00:23:47.679><c> the</c><00:23:47.880><c> types</c><00:23:48.200><c> that</c><00:23:48.320><c> are</c><00:23:48.440><c> currently</c>

00:23:48.830 --> 00:23:48.840 align:start position:0%
later uh the types that are currently
 

00:23:48.840 --> 00:23:53.950 align:start position:0%
later uh the types that are currently
implemented<00:23:49.840><c> are</c><00:23:51.000><c> uh</c><00:23:52.000><c> unsigned</c><00:23:52.960><c> integer</c>

00:23:53.950 --> 00:23:53.960 align:start position:0%
implemented are uh unsigned integer
 

00:23:53.960 --> 00:23:56.029 align:start position:0%
implemented are uh unsigned integer
signed<00:23:54.320><c> integers</c><00:23:54.840><c> and</c><00:23:55.080><c> hashes</c><00:23:55.480><c> of</c><00:23:55.679><c> various</c>

00:23:56.029 --> 00:23:56.039 align:start position:0%
signed integers and hashes of various
 

00:23:56.039 --> 00:23:59.029 align:start position:0%
signed integers and hashes of various
sizes<00:23:56.760><c> so</c><00:23:56.960><c> this</c><00:23:57.159><c> x</c><00:23:57.480><c> is</c><00:23:57.640><c> always</c><00:23:58.240><c> uh</c>

00:23:59.029 --> 00:23:59.039 align:start position:0%
sizes so this x is always uh
 

00:23:59.039 --> 00:24:02.149 align:start position:0%
sizes so this x is always uh
the<00:23:59.200><c> size</c><00:23:59.440><c> in</c><00:23:59.640><c> bits</c><00:23:59.960><c> from</c><00:24:00.159><c> 8</c><00:24:00.400><c> Bits</c><00:24:00.679><c> to</c><00:24:00.840><c> 256</c><00:24:01.840><c> bits</c>

00:24:02.149 --> 00:24:02.159 align:start position:0%
the size in bits from 8 Bits to 256 bits
 

00:24:02.159 --> 00:24:04.590 align:start position:0%
the size in bits from 8 Bits to 256 bits
in<00:24:02.480><c> 8</c><00:24:02.760><c> bit</c>

00:24:04.590 --> 00:24:04.600 align:start position:0%
in 8 bit
 

00:24:04.600 --> 00:24:07.549 align:start position:0%
in 8 bit
steps<00:24:05.600><c> and</c><00:24:06.159><c> the</c><00:24:06.320><c> difference</c><00:24:06.799><c> between</c>

00:24:07.549 --> 00:24:07.559 align:start position:0%
steps and the difference between
 

00:24:07.559 --> 00:24:10.789 align:start position:0%
steps and the difference between
integers<00:24:08.000><c> and</c><00:24:08.200><c> hashes</c><00:24:08.720><c> is</c><00:24:09.039><c> that</c><00:24:09.799><c> uh</c>

00:24:10.789 --> 00:24:10.799 align:start position:0%
integers and hashes is that uh
 

00:24:10.799 --> 00:24:12.110 align:start position:0%
integers and hashes is that uh
arithmetic<00:24:11.279><c> operations</c><00:24:11.640><c> are</c><00:24:11.760><c> not</c><00:24:11.880><c> allowed</c>

00:24:12.110 --> 00:24:12.120 align:start position:0%
arithmetic operations are not allowed
 

00:24:12.120 --> 00:24:14.630 align:start position:0%
arithmetic operations are not allowed
for<00:24:12.279><c> hashes</c><00:24:12.760><c> because</c><00:24:12.960><c> it</c><00:24:13.320><c> doesn't</c><00:24:13.559><c> make</c>

00:24:14.630 --> 00:24:14.640 align:start position:0%
for hashes because it doesn't make
 

00:24:14.640 --> 00:24:19.830 align:start position:0%
for hashes because it doesn't make
sense<00:24:15.640><c> and</c><00:24:15.880><c> a</c><00:24:16.039><c> special</c><00:24:16.440><c> case</c><00:24:16.799><c> of</c><00:24:17.799><c> 160</c><00:24:18.159><c> bit</c><00:24:18.919><c> hash</c>

00:24:19.830 --> 00:24:19.840 align:start position:0%
sense and a special case of 160 bit hash
 

00:24:19.840 --> 00:24:21.029 align:start position:0%
sense and a special case of 160 bit hash
is

00:24:21.029 --> 00:24:21.039 align:start position:0%
is
 

00:24:21.039 --> 00:24:24.990 align:start position:0%
is
address<00:24:22.120><c> where</c><00:24:23.120><c> so</c><00:24:23.320><c> and</c><00:24:23.480><c> for</c><00:24:23.600><c> an</c><00:24:23.720><c> address</c><00:24:24.400><c> uh</c>

00:24:24.990 --> 00:24:25.000 align:start position:0%
address where so and for an address uh
 

00:24:25.000 --> 00:24:25.990 align:start position:0%
address where so and for an address uh
not

00:24:25.990 --> 00:24:26.000 align:start position:0%
not
 

00:24:26.000 --> 00:24:29.510 align:start position:0%
not
even<00:24:27.000><c> bit</c><00:24:27.240><c> operations</c><00:24:27.640><c> are</c><00:24:27.840><c> allowed</c>

00:24:29.510 --> 00:24:29.520 align:start position:0%
even bit operations are allowed
 

00:24:29.520 --> 00:24:33.870 align:start position:0%
even bit operations are allowed
but<00:24:30.520><c> instead</c><00:24:30.960><c> you</c><00:24:31.279><c> can</c><00:24:32.279><c> yeah</c><00:24:32.520><c> want</c><00:24:32.840><c> you</c><00:24:33.000><c> can</c>

00:24:33.870 --> 00:24:33.880 align:start position:0%
but instead you can yeah want you can
 

00:24:33.880 --> 00:24:36.110 align:start position:0%
but instead you can yeah want you can
send<00:24:34.279><c> ether</c><00:24:34.640><c> to</c><00:24:34.799><c> that</c><00:24:35.000><c> address</c><00:24:35.320><c> or</c><00:24:35.559><c> query</c><00:24:36.039><c> the</c>

00:24:36.110 --> 00:24:36.120 align:start position:0%
send ether to that address or query the
 

00:24:36.120 --> 00:24:37.630 align:start position:0%
send ether to that address or query the
balance<00:24:36.440><c> at</c><00:24:36.600><c> the</c>

00:24:37.630 --> 00:24:37.640 align:start position:0%
balance at the
 

00:24:37.640 --> 00:24:40.870 align:start position:0%
balance at the
address<00:24:38.640><c> then</c><00:24:38.799><c> we</c><00:24:38.919><c> have</c><00:24:39.240><c> a</c><00:24:39.399><c> Boolean</c><00:24:39.840><c> type</c>

00:24:40.870 --> 00:24:40.880 align:start position:0%
address then we have a Boolean type
 

00:24:40.880 --> 00:24:45.630 align:start position:0%
address then we have a Boolean type
mapping<00:24:41.880><c> structs</c><00:24:42.480><c> and</c>

00:24:45.630 --> 00:24:45.640 align:start position:0%
 
 

00:24:45.640 --> 00:24:48.070 align:start position:0%
 
contracts<00:24:46.640><c> okay</c><00:24:46.880><c> later</c><00:24:47.399><c> we</c><00:24:47.480><c> will</c><00:24:47.640><c> also</c><00:24:47.919><c> have</c>

00:24:48.070 --> 00:24:48.080 align:start position:0%
contracts okay later we will also have
 

00:24:48.080 --> 00:24:51.750 align:start position:0%
contracts okay later we will also have
strings<00:24:48.760><c> and</c><00:24:49.159><c> but</c><00:24:49.279><c> that's</c><00:24:49.440><c> not</c><00:24:49.600><c> implemented</c>

00:24:51.750 --> 00:24:51.760 align:start position:0%
strings and but that's not implemented
 

00:24:51.760 --> 00:24:54.630 align:start position:0%
strings and but that's not implemented
yet<00:24:52.760><c> okay</c>

00:24:54.630 --> 00:24:54.640 align:start position:0%
yet okay
 

00:24:54.640 --> 00:24:59.310 align:start position:0%
yet okay
um<00:24:55.640><c> I</c><00:24:55.760><c> hope</c><00:24:55.960><c> you've</c><00:24:56.200><c> seen</c><00:24:56.559><c> this</c><00:24:56.919><c> already</c><00:24:57.520><c> so</c>

00:24:59.310 --> 00:24:59.320 align:start position:0%
um I hope you've seen this already so
 

00:24:59.320 --> 00:25:02.430 align:start position:0%
um I hope you've seen this already so
this<00:24:59.440><c> is</c><00:24:59.640><c> also</c><00:24:59.919><c> available</c><00:25:00.440><c> online</c><00:25:01.440><c> uh</c>

00:25:02.430 --> 00:25:02.440 align:start position:0%
this is also available online uh
 

00:25:02.440 --> 00:25:05.350 align:start position:0%
this is also available online uh
it's<00:25:03.440><c> the</c><00:25:03.559><c> solidity</c><00:25:04.039><c> compiler</c><00:25:04.760><c> compiled</c><00:25:05.200><c> to</c>

00:25:05.350 --> 00:25:05.360 align:start position:0%
it's the solidity compiler compiled to
 

00:25:05.360 --> 00:25:09.310 align:start position:0%
it's the solidity compiler compiled to
JavaScript<00:25:05.919><c> to</c><00:25:06.080><c> be</c><00:25:06.440><c> run</c><00:25:07.440><c> offline</c><00:25:07.840><c> in</c><00:25:07.960><c> a</c>

00:25:09.310 --> 00:25:09.320 align:start position:0%
JavaScript to be run offline in a
 

00:25:09.320 --> 00:25:12.789 align:start position:0%
JavaScript to be run offline in a
browser<00:25:10.559><c> so</c>

00:25:12.789 --> 00:25:12.799 align:start position:0%
browser so
 

00:25:12.799 --> 00:25:23.149 align:start position:0%
browser so
okay<00:25:13.799><c> sorry</c><00:25:14.399><c> that's</c><00:25:14.600><c> what</c><00:25:14.720><c> always</c>

00:25:23.149 --> 00:25:23.159 align:start position:0%
 
 

00:25:23.159 --> 00:25:25.789 align:start position:0%
 
happens<00:25:24.159><c> okay</c><00:25:24.360><c> so</c><00:25:24.600><c> this</c><00:25:24.720><c> is</c><00:25:24.799><c> a</c><00:25:25.120><c> basic</c><00:25:25.399><c> contract</c>

00:25:25.789 --> 00:25:25.799 align:start position:0%
happens okay so this is a basic contract
 

00:25:25.799 --> 00:25:28.310 align:start position:0%
happens okay so this is a basic contract
without<00:25:26.000><c> any</c><00:25:26.200><c> content</c><00:25:26.880><c> and</c><00:25:27.880><c> on</c><00:25:28.000><c> the</c><00:25:28.120><c> right</c>

00:25:28.310 --> 00:25:28.320 align:start position:0%
without any content and on the right
 

00:25:28.320 --> 00:25:30.990 align:start position:0%
without any content and on the right
right<00:25:28.480><c> hand</c><00:25:28.679><c> side</c><00:25:29.360><c> uh</c><00:25:29.600><c> we</c>

00:25:30.990 --> 00:25:31.000 align:start position:0%
right hand side uh we
 

00:25:31.000 --> 00:25:34.470 align:start position:0%
right hand side uh we
see<00:25:32.000><c> the</c><00:25:32.159><c> compiled</c><00:25:32.520><c> op</c><00:25:32.720><c> codes</c><00:25:33.520><c> the</c><00:25:33.720><c> compiled</c>

00:25:34.470 --> 00:25:34.480 align:start position:0%
see the compiled op codes the compiled
 

00:25:34.480 --> 00:25:36.590 align:start position:0%
see the compiled op codes the compiled
binary<00:25:34.880><c> or</c><00:25:35.279><c> hex</c><00:25:35.559><c> version</c><00:25:35.799><c> of</c><00:25:35.919><c> the</c>

00:25:36.590 --> 00:25:36.600 align:start position:0%
binary or hex version of the
 

00:25:36.600 --> 00:25:39.269 align:start position:0%
binary or hex version of the
binary<00:25:37.600><c> um</c><00:25:37.960><c> more</c><00:25:38.200><c> detailed</c>

00:25:39.269 --> 00:25:39.279 align:start position:0%
binary um more detailed
 

00:25:39.279 --> 00:25:41.750 align:start position:0%
binary um more detailed
assembly<00:25:40.279><c> and</c><00:25:40.440><c> at</c><00:25:40.600><c> the</c><00:25:40.720><c> bottom</c><00:25:41.200><c> we</c><00:25:41.360><c> have</c><00:25:41.600><c> the</c>

00:25:41.750 --> 00:25:41.760 align:start position:0%
assembly and at the bottom we have the
 

00:25:41.760 --> 00:25:44.430 align:start position:0%
assembly and at the bottom we have the
abstract<00:25:42.120><c> syntax</c>

00:25:44.430 --> 00:25:44.440 align:start position:0%
abstract syntax
 

00:25:44.440 --> 00:25:45.950 align:start position:0%
abstract syntax
stream

00:25:45.950 --> 00:25:45.960 align:start position:0%
stream
 

00:25:45.960 --> 00:25:49.950 align:start position:0%
stream
um<00:25:46.960><c> and</c><00:25:47.200><c> if</c><00:25:47.880><c> I</c><00:25:48.880><c> enter</c><00:25:49.200><c> something</c><00:25:49.440><c> in</c><00:25:49.559><c> the</c>

00:25:49.950 --> 00:25:49.960 align:start position:0%
um and if I enter something in the
 

00:25:49.960 --> 00:25:52.750 align:start position:0%
um and if I enter something in the
function<00:25:50.960><c> we</c><00:25:51.120><c> will</c><00:25:51.320><c> see</c><00:25:51.960><c> the</c><00:25:52.120><c> types</c><00:25:52.480><c> that</c><00:25:52.600><c> are</c>

00:25:52.750 --> 00:25:52.760 align:start position:0%
function we will see the types that are
 

00:25:52.760 --> 00:25:55.470 align:start position:0%
function we will see the types that are
inferred<00:25:53.520><c> from</c><00:25:53.880><c> these</c><00:25:54.480><c> uh</c><00:25:54.600><c> literal</c><00:25:55.159><c> so</c><00:25:55.360><c> it's</c>

00:25:55.470 --> 00:25:55.480 align:start position:0%
inferred from these uh literal so it's
 

00:25:55.480 --> 00:25:58.830 align:start position:0%
inferred from these uh literal so it's
an<00:25:56.440><c> so</c><00:25:57.440><c> the</c><00:25:57.559><c> type</c><00:25:57.720><c> of</c><00:25:57.880><c> literal</c><00:25:58.320><c> is</c><00:25:58.440><c> always</c><00:25:58.720><c> the</c>

00:25:58.830 --> 00:25:58.840 align:start position:0%
an so the type of literal is always the
 

00:25:58.840 --> 00:26:01.110 align:start position:0%
an so the type of literal is always the
smallest<00:25:59.279><c> type</c><00:25:59.480><c> where</c><00:25:59.600><c> it</c><00:25:59.760><c> fits</c><00:26:00.559><c> in</c><00:26:00.720><c> this</c><00:26:00.880><c> case</c>

00:26:01.110 --> 00:26:01.120 align:start position:0%
smallest type where it fits in this case
 

00:26:01.120 --> 00:26:05.149 align:start position:0%
smallest type where it fits in this case
it's<00:26:01.240><c> an</c><00:26:01.760><c> 8bit</c><00:26:02.320><c> unsigned</c><00:26:02.960><c> integer</c><00:26:03.960><c> and</c><00:26:04.159><c> if</c><00:26:04.360><c> we</c>

00:26:05.149 --> 00:26:05.159 align:start position:0%
it's an 8bit unsigned integer and if we
 

00:26:05.159 --> 00:26:07.350 align:start position:0%
it's an 8bit unsigned integer and if we
add<00:26:05.360><c> an</c><00:26:05.480><c> 8bit</c><00:26:06.279><c> unset</c><00:26:06.559><c> integer</c><00:26:06.840><c> to</c><00:26:06.960><c> an</c><00:26:07.039><c> 8bit</c>

00:26:07.350 --> 00:26:07.360 align:start position:0%
add an 8bit unset integer to an 8bit
 

00:26:07.360 --> 00:26:10.750 align:start position:0%
add an 8bit unset integer to an 8bit
unset<00:26:07.640><c> integer</c><00:26:08.039><c> we</c><00:26:08.279><c> again</c><00:26:08.520><c> get</c><00:26:08.640><c> an</c><00:26:08.760><c> 8bit</c><00:26:09.159><c> unset</c>

00:26:10.750 --> 00:26:10.760 align:start position:0%
unset integer we again get an 8bit unset
 

00:26:10.760 --> 00:26:14.830 align:start position:0%
unset integer we again get an 8bit unset
integer<00:26:12.080><c> nothing</c><00:26:13.080><c> too</c><00:26:13.360><c> fancy</c><00:26:14.320><c> so</c><00:26:14.520><c> it</c><00:26:14.640><c> gets</c>

00:26:14.830 --> 00:26:14.840 align:start position:0%
integer nothing too fancy so it gets
 

00:26:14.840 --> 00:26:17.750 align:start position:0%
integer nothing too fancy so it gets
interesting<00:26:15.279><c> when</c><00:26:15.600><c> we</c><00:26:16.600><c> use</c>

00:26:17.750 --> 00:26:17.760 align:start position:0%
interesting when we use
 

00:26:17.760 --> 00:26:22.590 align:start position:0%
interesting when we use
larger<00:26:18.760><c> values</c><00:26:19.279><c> so</c><00:26:20.240><c> 7,000</c><00:26:20.840><c> is</c><00:26:20.960><c> a</c><00:26:21.120><c> 16</c><00:26:21.440><c> bit</c><00:26:22.000><c> anide</c>

00:26:22.590 --> 00:26:22.600 align:start position:0%
larger values so 7,000 is a 16 bit anide
 

00:26:22.600 --> 00:26:25.310 align:start position:0%
larger values so 7,000 is a 16 bit anide
integer<00:26:22.960><c> and</c><00:26:23.080><c> we</c><00:26:23.399><c> add</c><00:26:24.399><c> an</c><00:26:24.520><c> 8</c><00:26:24.799><c> bit</c><00:26:24.960><c> onside</c>

00:26:25.310 --> 00:26:25.320 align:start position:0%
integer and we add an 8 bit onside
 

00:26:25.320 --> 00:26:28.710 align:start position:0%
integer and we add an 8 bit onside
integer<00:26:25.600><c> to</c><00:26:25.720><c> a</c><00:26:25.840><c> 16</c><00:26:26.159><c> bit</c><00:26:26.880><c> onside</c><00:26:27.320><c> integer</c><00:26:28.600><c> this</c>

00:26:28.710 --> 00:26:28.720 align:start position:0%
integer to a 16 bit onside integer this
 

00:26:28.720 --> 00:26:31.149 align:start position:0%
integer to a 16 bit onside integer this
8bit<00:26:29.480><c> integer</c><00:26:30.000><c> is</c><00:26:30.159><c> implicitly</c><00:26:30.640><c> converted</c><00:26:31.000><c> to</c>

00:26:31.149 --> 00:26:31.159 align:start position:0%
8bit integer is implicitly converted to
 

00:26:31.159 --> 00:26:34.269 align:start position:0%
8bit integer is implicitly converted to
a<00:26:31.240><c> 16bit</c><00:26:31.760><c> integer</c><00:26:32.480><c> and</c><00:26:33.399><c> and</c><00:26:33.640><c> what</c><00:26:33.760><c> if</c><00:26:33.880><c> you</c><00:26:34.039><c> add</c>

00:26:34.269 --> 00:26:34.279 align:start position:0%
a 16bit integer and and what if you add
 

00:26:34.279 --> 00:26:39.510 align:start position:0%
a 16bit integer and and what if you add
like<00:26:34.640><c> 200</c>

00:26:39.510 --> 00:26:39.520 align:start position:0%
 
 

00:26:39.520 --> 00:26:43.269 align:start position:0%
 
200<00:26:40.520><c> the</c><00:26:40.679><c> type</c><00:26:40.960><c> system</c><00:26:41.600><c> ignores</c><00:26:42.360><c> overflow</c><00:26:43.120><c> so</c>

00:26:43.269 --> 00:26:43.279 align:start position:0%
200 the type system ignores overflow so
 

00:26:43.279 --> 00:26:49.909 align:start position:0%
200 the type system ignores overflow so
it's<00:26:43.480><c> just</c><00:26:43.799><c> about</c><00:26:45.080><c> um</c><00:26:46.080><c> yeah</c><00:26:46.240><c> so</c><00:26:46.960><c> uh</c>

00:26:49.909 --> 00:26:49.919 align:start position:0%
 
 

00:26:49.919 --> 00:26:54.789 align:start position:0%
 
one<00:26:50.919><c> we</c><00:26:51.120><c> always</c><00:26:51.399><c> know</c><00:26:51.720><c> that</c><00:26:51.919><c> the</c><00:26:52.120><c> type</c><00:26:52.520><c> of</c><00:26:52.679><c> a</c><00:26:53.559><c> of</c>

00:26:54.789 --> 00:26:54.799 align:start position:0%
one we always know that the type of a of
 

00:26:54.799 --> 00:26:57.549 align:start position:0%
one we always know that the type of a of
uh<00:26:55.799><c> the</c><00:26:55.960><c> result</c><00:26:56.240><c> of</c><00:26:56.360><c> a</c><00:26:56.520><c> binary</c><00:26:56.880><c> operation</c><00:26:57.399><c> is</c>

00:26:57.549 --> 00:26:57.559 align:start position:0%
uh the result of a binary operation is
 

00:26:57.559 --> 00:27:01.230 align:start position:0%
uh the result of a binary operation is
one<00:26:57.720><c> of</c><00:26:57.840><c> the</c><00:26:58.000><c> types</c><00:26:58.240><c> typ</c><00:26:58.480><c> of</c><00:26:58.600><c> the</c>

00:27:01.230 --> 00:27:01.240 align:start position:0%
 
 

00:27:01.240 --> 00:27:07.029 align:start position:0%
 
operant<00:27:02.240><c> so</c><00:27:02.480><c> only</c><00:27:02.760><c> one</c><00:27:03.000><c> of</c><00:27:03.120><c> the</c><00:27:03.279><c> operant</c><00:27:03.919><c> is</c>

00:27:07.029 --> 00:27:07.039 align:start position:0%
 
 

00:27:07.039 --> 00:27:10.149 align:start position:0%
 
converted<00:27:08.039><c> and</c><00:27:08.919><c> so</c><00:27:09.200><c> we</c><00:27:09.320><c> can</c><00:27:09.480><c> now</c><00:27:09.720><c> assign</c><00:27:10.000><c> that</c>

00:27:10.149 --> 00:27:10.159 align:start position:0%
converted and so we can now assign that
 

00:27:10.159 --> 00:27:13.789 align:start position:0%
converted and so we can now assign that
to<00:27:10.279><c> a</c>

00:27:13.789 --> 00:27:13.799 align:start position:0%
 
 

00:27:13.799 --> 00:27:16.669 align:start position:0%
 
variable<00:27:14.799><c> and</c><00:27:14.960><c> we</c><00:27:15.080><c> will</c><00:27:15.240><c> see</c><00:27:15.480><c> that</c>

00:27:16.669 --> 00:27:16.679 align:start position:0%
variable and we will see that
 

00:27:16.679 --> 00:27:22.029 align:start position:0%
variable and we will see that
X<00:27:17.679><c> will</c><00:27:17.919><c> have</c><00:27:18.240><c> type</c><00:27:18.720><c> 16</c><00:27:19.120><c> bit</c>

00:27:22.029 --> 00:27:22.039 align:start position:0%
 
 

00:27:22.039 --> 00:27:25.389 align:start position:0%
 
uncen<00:27:23.039><c> okay</c><00:27:23.399><c> what</c><00:27:23.559><c> happens</c><00:27:23.880><c> if</c><00:27:24.080><c> we</c><00:27:24.799><c> if</c><00:27:24.919><c> we</c><00:27:25.120><c> want</c>

00:27:25.389 --> 00:27:25.399 align:start position:0%
uncen okay what happens if we if we want
 

00:27:25.399 --> 00:27:29.549 align:start position:0%
uncen okay what happens if we if we want
X<00:27:25.640><c> to</c><00:27:25.799><c> be</c><00:27:25.919><c> an</c><00:27:26.000><c> 8bit</c><00:27:26.480><c> integer</c>

00:27:29.549 --> 00:27:29.559 align:start position:0%
 
 

00:27:29.559 --> 00:27:32.110 align:start position:0%
 
we<00:27:29.760><c> get</c><00:27:29.919><c> the</c><00:27:30.080><c> error</c><00:27:30.600><c> that</c><00:27:31.200><c> the</c><00:27:31.360><c> 16bit</c><00:27:31.840><c> integer</c>

00:27:32.110 --> 00:27:32.120 align:start position:0%
we get the error that the 16bit integer
 

00:27:32.120 --> 00:27:33.269 align:start position:0%
we get the error that the 16bit integer
that<00:27:32.200><c> is</c><00:27:32.320><c> on</c><00:27:32.399><c> the</c><00:27:32.520><c> right</c><00:27:32.720><c> hand</c><00:27:32.880><c> side</c><00:27:33.039><c> is</c><00:27:33.120><c> not</c>

00:27:33.269 --> 00:27:33.279 align:start position:0%
that is on the right hand side is not
 

00:27:33.279 --> 00:27:34.950 align:start position:0%
that is on the right hand side is not
convertible<00:27:33.679><c> Tobit</c><00:27:34.200><c> integer</c><00:27:34.520><c> on</c><00:27:34.600><c> the</c><00:27:34.760><c> left</c>

00:27:34.950 --> 00:27:34.960 align:start position:0%
convertible Tobit integer on the left
 

00:27:34.960 --> 00:27:39.070 align:start position:0%
convertible Tobit integer on the left
hand

00:27:39.070 --> 00:27:39.080 align:start position:0%
 
 

00:27:39.080 --> 00:27:43.350 align:start position:0%
 
side<00:27:40.080><c> okay</c><00:27:40.480><c> something</c><00:27:41.480><c> that</c><00:27:41.720><c> is</c><00:27:42.720><c> perhaps</c><00:27:43.080><c> also</c>

00:27:43.350 --> 00:27:43.360 align:start position:0%
side okay something that is perhaps also
 

00:27:43.360 --> 00:27:47.149 align:start position:0%
side okay something that is perhaps also
interesting<00:27:43.880><c> is</c><00:27:44.760><c> what</c><00:27:44.960><c> happens</c><00:27:45.360><c> if</c><00:27:45.559><c> we</c>

00:27:47.149 --> 00:27:47.159 align:start position:0%
interesting is what happens if we
 

00:27:47.159 --> 00:27:52.990 align:start position:0%
interesting is what happens if we
add<00:27:48.159><c> a</c><00:27:48.320><c> negative</c><00:27:48.720><c> number</c><00:27:48.960><c> to</c><00:27:49.080><c> a</c><00:27:49.240><c> positive</c>

00:27:52.990 --> 00:27:53.000 align:start position:0%
 
 

00:27:53.000 --> 00:27:56.230 align:start position:0%
 
number<00:27:54.000><c> so</c><00:27:55.000><c> the</c><00:27:55.200><c> compiler</c><00:27:55.600><c> complains</c><00:27:56.039><c> that</c><00:27:56.120><c> it</c>

00:27:56.230 --> 00:27:56.240 align:start position:0%
number so the compiler complains that it
 

00:27:56.240 --> 00:27:58.990 align:start position:0%
number so the compiler complains that it
cannot<00:27:56.480><c> find</c><00:27:56.640><c> the</c><00:27:56.760><c> common</c><00:27:57.080><c> type</c>

00:27:58.990 --> 00:27:59.000 align:start position:0%
cannot find the common type
 

00:27:59.000 --> 00:28:03.789 align:start position:0%
cannot find the common type
and<00:28:00.360><c> so</c><00:28:01.360><c> the</c><00:28:01.559><c> type</c><00:28:01.760><c> of</c><00:28:01.919><c> minus</c><00:28:02.240><c> one</c><00:28:02.640><c> is</c><00:28:03.399><c> signed</c>

00:28:03.789 --> 00:28:03.799 align:start position:0%
and so the type of minus one is signed
 

00:28:03.799 --> 00:28:07.269 align:start position:0%
and so the type of minus one is signed
bit<00:28:04.159><c> integer</c><00:28:05.159><c> of</c><00:28:05.360><c> eight</c><00:28:05.600><c> bits</c><00:28:06.480><c> and</c><00:28:06.760><c> eight</c><00:28:07.120><c> is</c>

00:28:07.269 --> 00:28:07.279 align:start position:0%
bit integer of eight bits and eight is
 

00:28:07.279 --> 00:28:09.230 align:start position:0%
bit integer of eight bits and eight is
an<00:28:07.480><c> unsign</c><00:28:07.919><c> integer</c><00:28:08.200><c> of</c><00:28:08.320><c> eight</c>

00:28:09.230 --> 00:28:09.240 align:start position:0%
an unsign integer of eight
 

00:28:09.240 --> 00:28:12.710 align:start position:0%
an unsign integer of eight
bits<00:28:10.240><c> and</c><00:28:10.880><c> so</c><00:28:11.360><c> you</c><00:28:11.519><c> cannot</c><00:28:11.840><c> convert</c><00:28:12.240><c> one</c><00:28:12.480><c> into</c>

00:28:12.710 --> 00:28:12.720 align:start position:0%
bits and so you cannot convert one into
 

00:28:12.720 --> 00:28:15.310 align:start position:0%
bits and so you cannot convert one into
the<00:28:12.840><c> other</c><00:28:13.799><c> so</c><00:28:14.000><c> there's</c><00:28:14.240><c> no</c><00:28:14.360><c> common</c><00:28:14.679><c> type</c><00:28:15.200><c> of</c>

00:28:15.310 --> 00:28:15.320 align:start position:0%
the other so there's no common type of
 

00:28:15.320 --> 00:28:17.509 align:start position:0%
the other so there's no common type of
course<00:28:15.519><c> we</c><00:28:15.640><c> know</c><00:28:15.960><c> that</c><00:28:16.559><c> both</c><00:28:16.760><c> of</c><00:28:16.919><c> them</c><00:28:17.240><c> can</c><00:28:17.360><c> be</c>

00:28:17.509 --> 00:28:17.519 align:start position:0%
course we know that both of them can be
 

00:28:17.519 --> 00:28:20.509 align:start position:0%
course we know that both of them can be
converted<00:28:17.960><c> to</c><00:28:18.240><c> an</c><00:28:18.880><c> assigned</c><00:28:19.440><c> integer</c><00:28:19.919><c> of</c><00:28:20.080><c> 16</c>

00:28:20.509 --> 00:28:20.519 align:start position:0%
converted to an assigned integer of 16
 

00:28:20.519 --> 00:28:24.190 align:start position:0%
converted to an assigned integer of 16
bits<00:28:20.880><c> without</c><00:28:21.519><c> losing</c><00:28:21.880><c> any</c><00:28:22.480><c> information</c><00:28:23.480><c> but</c>

00:28:24.190 --> 00:28:24.200 align:start position:0%
bits without losing any information but
 

00:28:24.200 --> 00:28:26.830 align:start position:0%
bits without losing any information but
because<00:28:24.399><c> of</c><00:28:24.559><c> this</c><00:28:24.720><c> restriction</c><00:28:25.519><c> I</c><00:28:25.640><c> told</c><00:28:26.360><c> uh</c>

00:28:26.830 --> 00:28:26.840 align:start position:0%
because of this restriction I told uh
 

00:28:26.840 --> 00:28:28.750 align:start position:0%
because of this restriction I told uh
this<00:28:26.960><c> is</c><00:28:27.080><c> not</c><00:28:27.240><c> done</c><00:28:27.399><c> automatically</c><00:28:28.480><c> but</c><00:28:28.640><c> we</c>

00:28:28.750 --> 00:28:28.760 align:start position:0%
this is not done automatically but we
 

00:28:28.760 --> 00:28:30.669 align:start position:0%
this is not done automatically but we
can<00:28:28.960><c> of</c><00:28:29.080><c> course</c><00:28:29.279><c> force</c><00:28:29.640><c> that</c>

00:28:30.669 --> 00:28:30.679 align:start position:0%
can of course force that
 

00:28:30.679 --> 00:28:33.149 align:start position:0%
can of course force that
manually<00:28:31.679><c> and</c><00:28:31.880><c> convert</c><00:28:32.240><c> this</c><00:28:32.440><c> minus</c><00:28:32.760><c> one</c><00:28:32.960><c> to</c>

00:28:33.149 --> 00:28:33.159 align:start position:0%
manually and convert this minus one to
 

00:28:33.159 --> 00:28:35.870 align:start position:0%
manually and convert this minus one to
an<00:28:33.480><c> 16bit</c><00:28:34.399><c> side</c>

00:28:35.870 --> 00:28:35.880 align:start position:0%
an 16bit side
 

00:28:35.880 --> 00:28:40.990 align:start position:0%
an 16bit side
integer<00:28:36.880><c> and</c><00:28:37.080><c> then</c><00:28:37.880><c> it</c><00:28:38.080><c> works</c><00:28:38.960><c> and</c><00:28:39.960><c> X</c><00:28:40.279><c> is</c><00:28:40.480><c> also</c>

00:28:40.990 --> 00:28:41.000 align:start position:0%
integer and then it works and X is also
 

00:28:41.000 --> 00:28:45.230 align:start position:0%
integer and then it works and X is also
assigned<00:28:42.000><c> integer</c><00:28:42.399><c> of</c><00:28:42.559><c> 60</c>

00:28:45.230 --> 00:28:45.240 align:start position:0%
 
 

00:28:45.240 --> 00:28:49.149 align:start position:0%
 
minuts<00:28:46.240><c> okay</c><00:28:46.840><c> you</c><00:28:46.960><c> check</c><00:28:47.159><c> it</c><00:28:47.360><c> also</c><00:28:47.559><c> on</c><00:28:47.720><c> the</c>

00:28:49.149 --> 00:28:49.159 align:start position:0%
minuts okay you check it also on the
 

00:28:49.159 --> 00:28:51.990 align:start position:0%
minuts okay you check it also on the
variabl<00:28:50.159><c> what</c><00:28:50.240><c> do</c><00:28:50.320><c> you</c><00:28:50.480><c> mean</c><00:28:51.480><c> if</c><00:28:51.559><c> you</c><00:28:51.760><c> have</c>

00:28:51.990 --> 00:28:52.000 align:start position:0%
variabl what do you mean if you have
 

00:28:52.000 --> 00:28:58.509 align:start position:0%
variabl what do you mean if you have
varable

00:28:58.509 --> 00:28:58.519 align:start position:0%
 
 

00:28:58.519 --> 00:29:00.269 align:start position:0%
 
so<00:28:59.000><c> can</c><00:28:59.120><c> we</c><00:28:59.279><c> do</c><00:28:59.480><c> the</c>

00:29:00.269 --> 00:29:00.279 align:start position:0%
so can we do the
 

00:29:00.279 --> 00:29:06.830 align:start position:0%
so can we do the
question<00:29:01.279><c> it</c><00:29:01.399><c> works</c><00:29:01.600><c> on</c><00:29:01.919><c> arbitrary</c>

00:29:06.830 --> 00:29:06.840 align:start position:0%
 
 

00:29:06.840 --> 00:29:09.110 align:start position:0%
 
Expressions<00:29:07.840><c> okay</c>

00:29:09.110 --> 00:29:09.120 align:start position:0%
Expressions okay
 

00:29:09.120 --> 00:29:11.669 align:start position:0%
Expressions okay
um<00:29:10.120><c> the</c>

00:29:11.669 --> 00:29:11.679 align:start position:0%
um the
 

00:29:11.679 --> 00:29:15.070 align:start position:0%
um the
optimizer<00:29:12.720><c> um</c><00:29:13.720><c> so</c><00:29:14.120><c> solidity</c><00:29:14.679><c> does</c><00:29:14.880><c> not</c>

00:29:15.070 --> 00:29:15.080 align:start position:0%
optimizer um so solidity does not
 

00:29:15.080 --> 00:29:18.269 align:start position:0%
optimizer um so solidity does not
compile<00:29:15.480><c> to</c><00:29:15.760><c> lll</c><00:29:16.360><c> but</c><00:29:16.519><c> it</c><00:29:16.799><c> compiles</c><00:29:17.279><c> directly</c>

00:29:18.269 --> 00:29:18.279 align:start position:0%
compile to lll but it compiles directly
 

00:29:18.279 --> 00:29:22.549 align:start position:0%
compile to lll but it compiles directly
to<00:29:19.279><c> evm</c><00:29:19.720><c> assembly</c><00:29:20.279><c> and</c><00:29:20.399><c> it</c><00:29:20.559><c> uses</c><00:29:21.559><c> lll's</c>

00:29:22.549 --> 00:29:22.559 align:start position:0%
to evm assembly and it uses lll's
 

00:29:22.559 --> 00:29:25.310 align:start position:0%
to evm assembly and it uses lll's
assembly<00:29:23.279><c> class</c><00:29:24.279><c> which</c><00:29:24.480><c> also</c><00:29:24.679><c> includes</c><00:29:25.159><c> the</c>

00:29:25.310 --> 00:29:25.320 align:start position:0%
assembly class which also includes the
 

00:29:25.320 --> 00:29:29.310 align:start position:0%
assembly class which also includes the
optimizer<00:29:26.120><c> so</c><00:29:27.039><c> if</c><00:29:27.159><c> we</c><00:29:27.320><c> improve</c><00:29:28.120><c> the</c><00:29:28.320><c> optimizer</c>

00:29:29.310 --> 00:29:29.320 align:start position:0%
optimizer so if we improve the optimizer
 

00:29:29.320 --> 00:29:33.190 align:start position:0%
optimizer so if we improve the optimizer
then<00:29:30.000><c> uh</c><00:29:30.559><c> solidity</c><00:29:31.320><c> Serpent</c><00:29:31.880><c> and</c><00:29:32.039><c> lll</c><00:29:32.640><c> will</c>

00:29:33.190 --> 00:29:33.200 align:start position:0%
then uh solidity Serpent and lll will
 

00:29:33.200 --> 00:29:35.750 align:start position:0%
then uh solidity Serpent and lll will
benefit<00:29:33.559><c> from</c><00:29:33.720><c> these</c>

00:29:35.750 --> 00:29:35.760 align:start position:0%
benefit from these
 

00:29:35.760 --> 00:29:38.070 align:start position:0%
benefit from these
improvements<00:29:36.760><c> um</c><00:29:37.039><c> I</c><00:29:37.159><c> already</c><00:29:37.519><c> did</c><00:29:37.799><c> some</c>

00:29:38.070 --> 00:29:38.080 align:start position:0%
improvements um I already did some
 

00:29:38.080 --> 00:29:43.070 align:start position:0%
improvements um I already did some
improvements<00:29:38.600><c> so</c><00:29:39.600><c> the</c><00:29:39.960><c> lnl</c><00:29:40.880><c> optimizer</c><00:29:41.880><c> is</c><00:29:42.519><c> so</c>

00:29:43.070 --> 00:29:43.080 align:start position:0%
improvements so the lnl optimizer is so
 

00:29:43.080 --> 00:29:44.950 align:start position:0%
improvements so the lnl optimizer is so
most<00:29:43.279><c> of</c><00:29:43.399><c> the</c><00:29:43.519><c> steps</c><00:29:43.760><c> in</c><00:29:43.880><c> the</c><00:29:43.960><c> LL</c><00:29:44.279><c> Optimizer</c><00:29:44.760><c> is</c>

00:29:44.950 --> 00:29:44.960 align:start position:0%
most of the steps in the LL Optimizer is
 

00:29:44.960 --> 00:29:48.630 align:start position:0%
most of the steps in the LL Optimizer is
just<00:29:45.720><c> a</c><00:29:45.880><c> pattern</c><00:29:46.159><c> of</c><00:29:46.279><c> op</c><00:29:46.919><c> codes</c><00:29:47.919><c> is</c><00:29:48.120><c> mapped</c><00:29:48.440><c> to</c>

00:29:48.630 --> 00:29:48.640 align:start position:0%
just a pattern of op codes is mapped to
 

00:29:48.640 --> 00:29:51.669 align:start position:0%
just a pattern of op codes is mapped to
another<00:29:49.120><c> to</c><00:29:49.320><c> to</c><00:29:49.840><c> yeah</c><00:29:50.360><c> to</c><00:29:50.640><c> another</c><00:29:51.200><c> set</c><00:29:51.360><c> of</c><00:29:51.480><c> op</c>

00:29:51.669 --> 00:29:51.679 align:start position:0%
another to to yeah to another set of op
 

00:29:51.679 --> 00:29:53.750 align:start position:0%
another to to yeah to another set of op
codes<00:29:52.399><c> and</c><00:29:52.640><c> if</c><00:29:52.880><c> the</c><00:29:53.000><c> number</c><00:29:53.200><c> of</c><00:29:53.360><c> up</c><00:29:53.519><c> codes</c>

00:29:53.750 --> 00:29:53.760 align:start position:0%
codes and if the number of up codes
 

00:29:53.760 --> 00:29:55.750 align:start position:0%
codes and if the number of up codes
decreases<00:29:54.320><c> then</c><00:29:54.559><c> this</c><00:29:54.799><c> is</c>

00:29:55.750 --> 00:29:55.760 align:start position:0%
decreases then this is
 

00:29:55.760 --> 00:29:58.389 align:start position:0%
decreases then this is
applied<00:29:56.760><c> and</c><00:29:57.159><c> one</c><00:29:57.279><c> of</c><00:29:57.440><c> these</c><00:29:57.640><c> patterns</c><00:29:58.120><c> is</c>

00:29:58.389 --> 00:29:58.399 align:start position:0%
applied and one of these patterns is
 

00:29:58.399 --> 00:30:02.070 align:start position:0%
applied and one of these patterns is
constant<00:29:58.720><c> folding</c><00:29:59.200><c> so</c><00:29:59.440><c> if</c><00:29:59.559><c> you</c><00:30:00.039><c> write</c><00:30:00.440><c> 7</c><00:30:00.880><c> +</c><00:30:01.120><c> 8</c>

00:30:02.070 --> 00:30:02.080 align:start position:0%
constant folding so if you write 7 + 8
 

00:30:02.080 --> 00:30:04.430 align:start position:0%
constant folding so if you write 7 + 8
then<00:30:02.240><c> the</c><00:30:02.360><c> optimizer</c><00:30:02.919><c> will</c><00:30:03.080><c> not</c><00:30:04.000><c> do</c><00:30:04.240><c> this</c>

00:30:04.430 --> 00:30:04.440 align:start position:0%
then the optimizer will not do this
 

00:30:04.440 --> 00:30:07.350 align:start position:0%
then the optimizer will not do this
addition<00:30:05.240><c> at</c><00:30:06.039><c> runtime</c><00:30:06.519><c> but</c><00:30:06.640><c> it</c><00:30:06.720><c> will</c><00:30:06.919><c> do</c><00:30:07.080><c> it</c><00:30:07.200><c> at</c>

00:30:07.350 --> 00:30:07.360 align:start position:0%
addition at runtime but it will do it at
 

00:30:07.360 --> 00:30:10.389 align:start position:0%
addition at runtime but it will do it at
compile<00:30:07.679><c> time</c><00:30:07.840><c> and</c><00:30:08.000><c> just</c><00:30:08.240><c> push</c><00:30:08.760><c> directly</c><00:30:09.120><c> push</c>

00:30:10.389 --> 00:30:10.399 align:start position:0%
compile time and just push directly push
 

00:30:10.399 --> 00:30:13.710 align:start position:0%
compile time and just push directly push
15<00:30:11.399><c> and</c><00:30:11.600><c> I</c><00:30:11.760><c> added</c><00:30:12.360><c> some</c><00:30:12.559><c> other</c><00:30:12.760><c> operants</c><00:30:13.600><c> uh</c>

00:30:13.710 --> 00:30:13.720 align:start position:0%
15 and I added some other operants uh
 

00:30:13.720 --> 00:30:15.509 align:start position:0%
15 and I added some other operants uh
for<00:30:14.000><c> this</c><00:30:14.159><c> constant</c><00:30:14.440><c> folding</c><00:30:14.880><c> because</c><00:30:15.200><c> they</c>

00:30:15.509 --> 00:30:15.519 align:start position:0%
for this constant folding because they
 

00:30:15.519 --> 00:30:18.630 align:start position:0%
for this constant folding because they
were<00:30:15.960><c> more</c><00:30:16.200><c> widely</c><00:30:16.480><c> used</c><00:30:17.320><c> in</c>

00:30:18.630 --> 00:30:18.640 align:start position:0%
were more widely used in
 

00:30:18.640 --> 00:30:21.789 align:start position:0%
were more widely used in
solidity<00:30:19.640><c> and</c><00:30:19.799><c> another</c><00:30:20.039><c> optimization</c><00:30:21.039><c> is</c><00:30:21.440><c> uh</c>

00:30:21.789 --> 00:30:21.799 align:start position:0%
solidity and another optimization is uh
 

00:30:21.799 --> 00:30:25.350 align:start position:0%
solidity and another optimization is uh
pop<00:30:22.480><c> optimization</c><00:30:23.480><c> this</c><00:30:23.640><c> happens</c><00:30:24.039><c> if</c><00:30:24.240><c> you</c><00:30:25.240><c> if</c>

00:30:25.350 --> 00:30:25.360 align:start position:0%
pop optimization this happens if you if
 

00:30:25.360 --> 00:30:27.710 align:start position:0%
pop optimization this happens if you if
you<00:30:25.440><c> do</c><00:30:25.600><c> some</c><00:30:26.159><c> computation</c><00:30:27.159><c> and</c><00:30:27.279><c> it</c><00:30:27.399><c> does</c><00:30:27.559><c> not</c>

00:30:27.710 --> 00:30:27.720 align:start position:0%
you do some computation and it does not
 

00:30:27.720 --> 00:30:31.029 align:start position:0%
you do some computation and it does not
have<00:30:28.120><c> side</c><00:30:28.519><c> effects</c><00:30:29.519><c> and</c><00:30:29.799><c> you</c><00:30:30.279><c> just</c><00:30:30.559><c> discard</c>

00:30:31.029 --> 00:30:31.039 align:start position:0%
have side effects and you just discard
 

00:30:31.039 --> 00:30:32.750 align:start position:0%
have side effects and you just discard
the<00:30:31.159><c> result</c><00:30:31.399><c> of</c><00:30:31.559><c> the</c><00:30:31.799><c> of</c><00:30:31.919><c> the</c><00:30:32.039><c> computation</c>

00:30:32.750 --> 00:30:32.760 align:start position:0%
the result of the of the computation
 

00:30:32.760 --> 00:30:38.149 align:start position:0%
the result of the of the computation
then<00:30:33.000><c> the</c><00:30:33.159><c> optimizer</c><00:30:34.120><c> removes</c><00:30:34.559><c> the</c><00:30:34.679><c> whole</c>

00:30:38.149 --> 00:30:38.159 align:start position:0%
 
 

00:30:38.159 --> 00:30:49.830 align:start position:0%
 
computation<00:30:39.159><c> okay</c><00:30:39.360><c> let's</c><00:30:39.519><c> see</c><00:30:39.679><c> an</c>

00:30:49.830 --> 00:30:49.840 align:start position:0%
 
 

00:30:49.840 --> 00:31:04.350 align:start position:0%
 
example<00:30:50.840><c> okay</c><00:30:51.159><c> first</c><00:30:51.399><c> without</c><00:30:51.679><c> optimizer</c>

00:31:04.350 --> 00:31:04.360 align:start position:0%
 
 

00:31:04.360 --> 00:31:06.470 align:start position:0%
 
um<00:31:05.279><c> okay</c><00:31:05.559><c> so</c><00:31:05.760><c> we</c><00:31:05.880><c> have</c><00:31:06.039><c> to</c><00:31:06.120><c> look</c><00:31:06.240><c> at</c><00:31:06.360><c> the</c>

00:31:06.470 --> 00:31:06.480 align:start position:0%
um okay so we have to look at the
 

00:31:06.480 --> 00:31:09.950 align:start position:0%
um okay so we have to look at the
assembly<00:31:06.919><c> now</c><00:31:07.559><c> um</c><00:31:08.559><c> from</c><00:31:08.760><c> tag</c><00:31:09.080><c> zero</c><00:31:09.440><c> to</c><00:31:09.760><c> this</c>

00:31:09.950 --> 00:31:09.960 align:start position:0%
assembly now um from tag zero to this
 

00:31:09.960 --> 00:31:11.629 align:start position:0%
assembly now um from tag zero to this
tag<00:31:10.200><c> three</c><00:31:10.519><c> that's</c><00:31:10.799><c> the</c><00:31:11.000><c> the</c><00:31:11.120><c> body</c><00:31:11.360><c> of</c><00:31:11.480><c> the</c>

00:31:11.629 --> 00:31:11.639 align:start position:0%
tag three that's the the body of the
 

00:31:11.639 --> 00:31:15.590 align:start position:0%
tag three that's the the body of the
function<00:31:12.639><c> and</c><00:31:12.799><c> we</c><00:31:12.919><c> see</c><00:31:13.200><c> it</c><00:31:13.480><c> it</c><00:31:13.600><c> does</c><00:31:14.360><c> push</c><00:31:14.679><c> zero</c>

00:31:15.590 --> 00:31:15.600 align:start position:0%
function and we see it it does push zero
 

00:31:15.600 --> 00:31:18.509 align:start position:0%
function and we see it it does push zero
that<00:31:15.840><c> is</c><00:31:16.399><c> it</c><00:31:16.600><c> initial</c><00:31:17.600><c> it</c><00:31:17.799><c> initializes</c><00:31:18.360><c> the</c>

00:31:18.509 --> 00:31:18.519 align:start position:0%
that is it initial it initializes the
 

00:31:18.519 --> 00:31:21.110 align:start position:0%
that is it initial it initializes the
local<00:31:18.840><c> variable</c><00:31:19.200><c> to</c><00:31:19.519><c> zero</c><00:31:20.480><c> then</c><00:31:20.639><c> it</c><00:31:20.760><c> pushes</c>

00:31:21.110 --> 00:31:21.120 align:start position:0%
local variable to zero then it pushes
 

00:31:21.120 --> 00:31:24.149 align:start position:0%
local variable to zero then it pushes
the<00:31:21.200><c> two</c><00:31:21.399><c> operant</c><00:31:21.799><c> 8</c><00:31:22.000><c> and</c><00:31:22.159><c> seven</c><00:31:22.519><c> adds</c><00:31:23.159><c> them</c>

00:31:24.149 --> 00:31:24.159 align:start position:0%
the two operant 8 and seven adds them
 

00:31:24.159 --> 00:31:28.509 align:start position:0%
the two operant 8 and seven adds them
and<00:31:24.559><c> this</c><00:31:25.200><c> uh</c><00:31:25.559><c> swap</c><00:31:26.559><c> stores</c><00:31:27.000><c> it</c><00:31:28.200><c> at</c><00:31:28.360><c> the</c>

00:31:28.509 --> 00:31:28.519 align:start position:0%
and this uh swap stores it at the
 

00:31:28.519 --> 00:31:32.070 align:start position:0%
and this uh swap stores it at the
location<00:31:28.799><c> of</c><00:31:29.000><c> X</c><00:31:29.519><c> and</c><00:31:30.480><c> pop</c><00:31:31.279><c> removes</c><00:31:31.720><c> the</c><00:31:31.799><c> old</c>

00:31:32.070 --> 00:31:32.080 align:start position:0%
location of X and pop removes the old
 

00:31:32.080 --> 00:31:34.029 align:start position:0%
location of X and pop removes the old
value<00:31:32.320><c> of</c>

00:31:34.029 --> 00:31:34.039 align:start position:0%
value of
 

00:31:34.039 --> 00:31:39.789 align:start position:0%
value of
x<00:31:35.039><c> and</c><00:31:35.240><c> if</c><00:31:35.440><c> we</c><00:31:35.960><c> activate</c><00:31:36.320><c> the</c>

00:31:39.789 --> 00:31:39.799 align:start position:0%
 
 

00:31:39.799 --> 00:31:42.789 align:start position:0%
 
optimizer<00:31:40.799><c> so</c><00:31:41.080><c> it</c><00:31:41.320><c> pushes</c><00:31:42.000><c> zero</c><00:31:42.399><c> and</c><00:31:42.519><c> then</c><00:31:42.639><c> it</c>

00:31:42.789 --> 00:31:42.799 align:start position:0%
optimizer so it pushes zero and then it
 

00:31:42.799 --> 00:31:45.269 align:start position:0%
optimizer so it pushes zero and then it
pushes<00:31:43.320><c> F</c><00:31:43.600><c> which</c><00:31:43.720><c> is</c>

00:31:45.269 --> 00:31:45.279 align:start position:0%
pushes F which is
 

00:31:45.279 --> 00:31:47.870 align:start position:0%
pushes F which is
15<00:31:46.279><c> swaps</c><00:31:46.679><c> it</c><00:31:46.840><c> stores</c><00:31:47.200><c> it</c><00:31:47.320><c> and</c><00:31:47.440><c> removes</c><00:31:47.760><c> the</c>

00:31:47.870 --> 00:31:47.880 align:start position:0%
15 swaps it stores it and removes the
 

00:31:47.880 --> 00:31:50.629 align:start position:0%
15 swaps it stores it and removes the
old<00:31:48.120><c> value</c><00:31:48.880><c> so</c><00:31:49.080><c> this</c><00:31:49.200><c> is</c><00:31:49.519><c> not</c><00:31:49.760><c> yet</c><00:31:49.960><c> optimal</c>

00:31:50.629 --> 00:31:50.639 align:start position:0%
old value so this is not yet optimal
 

00:31:50.639 --> 00:31:53.509 align:start position:0%
old value so this is not yet optimal
because<00:31:51.519><c> we</c><00:31:51.639><c> know</c><00:31:52.519><c> it's</c><00:31:52.679><c> not</c><00:31:52.880><c> necessary</c><00:31:53.240><c> to</c>

00:31:53.509 --> 00:31:53.519 align:start position:0%
because we know it's not necessary to
 

00:31:53.519 --> 00:31:56.909 align:start position:0%
because we know it's not necessary to
initialize<00:31:54.000><c> X</c><00:31:54.159><c> to</c><00:31:54.399><c> Zero</c><00:31:55.039><c> when</c><00:31:55.279><c> we</c><00:31:56.279><c> change</c><00:31:56.600><c> it</c>

00:31:56.909 --> 00:31:56.919 align:start position:0%
initialize X to Zero when we change it
 

00:31:56.919 --> 00:31:58.350 align:start position:0%
initialize X to Zero when we change it
its<00:31:57.159><c> value</c><00:31:57.480><c> afterward</c>

00:31:58.350 --> 00:31:58.360 align:start position:0%
its value afterward
 

00:31:58.360 --> 00:32:01.509 align:start position:0%
its value afterward
but<00:31:59.080><c> yeah</c><00:32:00.080><c> Optimizer</c><00:32:00.559><c> is</c><00:32:00.720><c> not</c><00:32:00.880><c> finished</c><00:32:01.240><c> yet</c><00:32:01.399><c> I</c>

00:32:01.509 --> 00:32:01.519 align:start position:0%
but yeah Optimizer is not finished yet I
 

00:32:01.519 --> 00:32:05.789 align:start position:0%
but yeah Optimizer is not finished yet I
would<00:32:01.799><c> say</c><00:32:02.960><c> um</c><00:32:03.960><c> to</c><00:32:04.080><c> see</c><00:32:04.360><c> Pop</c><00:32:04.559><c> optimization</c><00:32:05.480><c> we</c>

00:32:05.789 --> 00:32:05.799 align:start position:0%
would say um to see Pop optimization we
 

00:32:05.799 --> 00:32:08.789 align:start position:0%
would say um to see Pop optimization we
have<00:32:05.960><c> to</c><00:32:06.120><c> remove</c><00:32:06.480><c> this</c>

00:32:08.789 --> 00:32:08.799 align:start position:0%
 
 

00:32:08.799 --> 00:32:13.789 align:start position:0%
 
x<00:32:09.799><c> let's</c>

00:32:13.789 --> 00:32:13.799 align:start position:0%
 
 

00:32:13.799 --> 00:32:15.750 align:start position:0%
 
see

00:32:15.750 --> 00:32:15.760 align:start position:0%
see
 

00:32:15.760 --> 00:32:20.590 align:start position:0%
see
no<00:32:16.760><c> we</c><00:32:16.960><c> also</c><00:32:17.159><c> have</c><00:32:17.279><c> to</c><00:32:17.399><c> remove</c><00:32:17.639><c> the</c><00:32:17.760><c> local</c>

00:32:20.590 --> 00:32:20.600 align:start position:0%
 
 

00:32:20.600 --> 00:32:23.789 align:start position:0%
 
variable<00:32:21.600><c> so</c><00:32:22.440><c> yeah</c><00:32:22.600><c> what</c><00:32:22.720><c> happens</c><00:32:23.080><c> here</c><00:32:23.360><c> now</c>

00:32:23.789 --> 00:32:23.799 align:start position:0%
variable so yeah what happens here now
 

00:32:23.799 --> 00:32:26.269 align:start position:0%
variable so yeah what happens here now
is<00:32:24.760><c> okay</c><00:32:24.960><c> yeah</c><00:32:25.320><c> Tex</c><00:32:25.679><c> zero</c><00:32:26.039><c> that's</c><00:32:26.159><c> the</c>

00:32:26.269 --> 00:32:26.279 align:start position:0%
is okay yeah Tex zero that's the
 

00:32:26.279 --> 00:32:30.710 align:start position:0%
is okay yeah Tex zero that's the
function<00:32:26.600><c> body</c><00:32:27.039><c> and</c><00:32:27.440><c> nothing</c><00:32:27.679><c> Happ</c>

00:32:30.710 --> 00:32:30.720 align:start position:0%
 
 

00:32:30.720 --> 00:32:35.669 align:start position:0%
 
happens

00:32:35.669 --> 00:32:35.679 align:start position:0%
 
 

00:32:35.679 --> 00:32:39.269 align:start position:0%
 
okay<00:32:36.679><c> um</c><00:32:37.320><c> how</c><00:32:37.480><c> does</c><00:32:37.760><c> c</c><00:32:38.159><c> to</c><00:32:38.320><c> use</c><00:32:38.720><c> memory</c><00:32:39.039><c> and</c>

00:32:39.269 --> 00:32:39.279 align:start position:0%
okay um how does c to use memory and
 

00:32:39.279 --> 00:32:42.389 align:start position:0%
okay um how does c to use memory and
storage<00:32:40.480><c> um</c><00:32:41.480><c> we've</c><00:32:41.639><c> already</c><00:32:41.840><c> seen</c><00:32:42.159><c> everything</c>

00:32:42.389 --> 00:32:42.399 align:start position:0%
storage um we've already seen everything
 

00:32:42.399 --> 00:32:47.310 align:start position:0%
storage um we've already seen everything
is<00:32:42.519><c> zero</c><00:32:43.159><c> initialized</c><00:32:44.159><c> we</c><00:32:44.320><c> can</c><00:32:44.760><c> trust</c><00:32:45.639><c> on</c><00:32:46.039><c> that</c>

00:32:47.310 --> 00:32:47.320 align:start position:0%
is zero initialized we can trust on that
 

00:32:47.320 --> 00:32:50.350 align:start position:0%
is zero initialized we can trust on that
and<00:32:48.320><c> Locker</c><00:32:48.760><c> variables</c><00:32:49.159><c> are</c><00:32:49.320><c> currently</c><00:32:49.919><c> used</c>

00:32:50.350 --> 00:32:50.360 align:start position:0%
and Locker variables are currently used
 

00:32:50.360 --> 00:32:52.430 align:start position:0%
and Locker variables are currently used
only<00:32:50.639><c> on</c><00:32:50.760><c> the</c><00:32:50.919><c> stack</c><00:32:51.360><c> so</c><00:32:51.519><c> it</c><00:32:51.639><c> doesn't</c><00:32:52.320><c> it</c>

00:32:52.430 --> 00:32:52.440 align:start position:0%
only on the stack so it doesn't it
 

00:32:52.440 --> 00:32:54.149 align:start position:0%
only on the stack so it doesn't it
doesn't<00:32:52.960><c> actually</c><00:32:53.240><c> use</c><00:32:53.480><c> memory</c><00:32:53.799><c> it</c><00:32:53.919><c> uses</c>

00:32:54.149 --> 00:32:54.159 align:start position:0%
doesn't actually use memory it uses
 

00:32:54.159 --> 00:32:57.430 align:start position:0%
doesn't actually use memory it uses
memory<00:32:54.480><c> only</c><00:32:54.880><c> for</c><00:32:55.880><c> op</c><00:32:56.159><c> codes</c><00:32:56.760><c> for</c><00:32:57.000><c> operations</c>

00:32:57.430 --> 00:32:57.440 align:start position:0%
memory only for op codes for operations
 

00:32:57.440 --> 00:32:59.070 align:start position:0%
memory only for op codes for operations
where<00:32:57.559><c> it's</c><00:32:58.120><c> really</c>

00:32:59.070 --> 00:32:59.080 align:start position:0%
where it's really
 

00:32:59.080 --> 00:33:03.070 align:start position:0%
where it's really
necessary<00:33:00.080><c> um</c><00:33:00.840><c> this</c><00:33:01.399><c> might</c><00:33:01.639><c> change</c><00:33:02.000><c> later</c>

00:33:03.070 --> 00:33:03.080 align:start position:0%
necessary um this might change later
 

00:33:03.080 --> 00:33:06.190 align:start position:0%
necessary um this might change later
because<00:33:04.080><c> the</c><00:33:04.200><c> evm</c><00:33:04.720><c> can</c><00:33:04.880><c> only</c><00:33:05.200><c> look</c>

00:33:06.190 --> 00:33:06.200 align:start position:0%
because the evm can only look
 

00:33:06.200 --> 00:33:10.549 align:start position:0%
because the evm can only look
at<00:33:07.200><c> at</c><00:33:07.360><c> the</c><00:33:08.000><c> stack</c><00:33:09.000><c> at</c><00:33:09.200><c> the</c><00:33:09.600><c> 16</c><00:33:10.080><c> topmost</c>

00:33:10.549 --> 00:33:10.559 align:start position:0%
at at the stack at the 16 topmost
 

00:33:10.559 --> 00:33:12.710 align:start position:0%
at at the stack at the 16 topmost
position<00:33:10.840><c> in</c><00:33:10.960><c> the</c><00:33:11.080><c> stack</c><00:33:11.399><c> so</c><00:33:11.760><c> if</c><00:33:12.240><c> we</c><00:33:12.360><c> have</c><00:33:12.519><c> many</c>

00:33:12.710 --> 00:33:12.720 align:start position:0%
position in the stack so if we have many
 

00:33:12.720 --> 00:33:14.629 align:start position:0%
position in the stack so if we have many
local<00:33:13.000><c> variables</c><00:33:13.519><c> or</c><00:33:13.880><c> very</c><00:33:14.080><c> complex</c>

00:33:14.629 --> 00:33:14.639 align:start position:0%
local variables or very complex
 

00:33:14.639 --> 00:33:17.070 align:start position:0%
local variables or very complex
expressions<00:33:15.639><c> and</c><00:33:15.760><c> we</c><00:33:15.919><c> want</c><00:33:16.039><c> to</c><00:33:16.679><c> store</c>

00:33:17.070 --> 00:33:17.080 align:start position:0%
expressions and we want to store
 

00:33:17.080 --> 00:33:19.230 align:start position:0%
expressions and we want to store
something<00:33:17.360><c> in</c><00:33:17.440><c> the</c><00:33:17.639><c> first</c><00:33:18.279><c> local</c><00:33:18.639><c> variable</c><00:33:19.120><c> we</c>

00:33:19.230 --> 00:33:19.240 align:start position:0%
something in the first local variable we
 

00:33:19.240 --> 00:33:20.710 align:start position:0%
something in the first local variable we
might<00:33:19.440><c> have</c><00:33:19.559><c> to</c><00:33:19.720><c> look</c><00:33:19.919><c> too</c><00:33:20.159><c> deep</c><00:33:20.360><c> into</c><00:33:20.559><c> the</c>

00:33:20.710 --> 00:33:20.720 align:start position:0%
might have to look too deep into the
 

00:33:20.720 --> 00:33:23.549 align:start position:0%
might have to look too deep into the
stack<00:33:21.519><c> so</c><00:33:22.080><c> we</c><00:33:22.240><c> have</c><00:33:22.360><c> to</c><00:33:22.720><c> copy</c><00:33:22.960><c> it</c><00:33:23.039><c> to</c><00:33:23.200><c> memory</c>

00:33:23.549 --> 00:33:23.559 align:start position:0%
stack so we have to copy it to memory
 

00:33:23.559 --> 00:33:26.470 align:start position:0%
stack so we have to copy it to memory
first<00:33:23.880><c> and</c><00:33:24.080><c> then</c><00:33:25.080><c> yeah</c><00:33:25.240><c> unwind</c><00:33:25.679><c> the</c><00:33:25.799><c> stack</c><00:33:26.159><c> and</c>

00:33:26.470 --> 00:33:26.480 align:start position:0%
first and then yeah unwind the stack and
 

00:33:26.480 --> 00:33:30.269 align:start position:0%
first and then yeah unwind the stack and
save<00:33:26.720><c> it</c><00:33:26.880><c> later</c><00:33:27.200><c> again</c>

00:33:30.269 --> 00:33:30.279 align:start position:0%
 
 

00:33:30.279 --> 00:33:33.230 align:start position:0%
 
um<00:33:31.279><c> the</c><00:33:31.519><c> storage</c><00:33:32.159><c> is</c><00:33:32.639><c> allocated</c><00:33:33.039><c> in</c><00:33:33.120><c> a</c>

00:33:33.230 --> 00:33:33.240 align:start position:0%
um the storage is allocated in a
 

00:33:33.240 --> 00:33:36.710 align:start position:0%
um the storage is allocated in a
continuous<00:33:33.799><c> way</c><00:33:34.200><c> so</c><00:33:34.799><c> uh</c><00:33:34.919><c> if</c><00:33:35.039><c> you</c><00:33:35.559><c> have</c><00:33:36.559><c> one</c>

00:33:36.710 --> 00:33:36.720 align:start position:0%
continuous way so uh if you have one
 

00:33:36.720 --> 00:33:39.070 align:start position:0%
continuous way so uh if you have one
struct<00:33:37.120><c> and</c><00:33:37.240><c> then</c><00:33:37.399><c> another</c><00:33:37.639><c> struct</c><00:33:38.120><c> then</c><00:33:38.919><c> they</c>

00:33:39.070 --> 00:33:39.080 align:start position:0%
struct and then another struct then they
 

00:33:39.080 --> 00:33:41.269 align:start position:0%
struct and then another struct then they
will<00:33:39.440><c> sit</c><00:33:39.799><c> direct</c><00:33:40.279><c> directly</c><00:33:40.679><c> next</c><00:33:40.919><c> to</c><00:33:41.080><c> each</c>

00:33:41.269 --> 00:33:41.279 align:start position:0%
will sit direct directly next to each
 

00:33:41.279 --> 00:33:42.950 align:start position:0%
will sit direct directly next to each
other<00:33:42.000><c> in</c>

00:33:42.950 --> 00:33:42.960 align:start position:0%
other in
 

00:33:42.960 --> 00:33:46.070 align:start position:0%
other in
storage<00:33:43.960><c> where</c><00:33:44.399><c> mappings</c><00:33:44.919><c> are</c><00:33:45.240><c> an</c><00:33:45.440><c> exception</c>

00:33:46.070 --> 00:33:46.080 align:start position:0%
storage where mappings are an exception
 

00:33:46.080 --> 00:33:50.710 align:start position:0%
storage where mappings are an exception
because<00:33:47.080><c> mappings</c><00:33:47.480><c> don't</c><00:33:47.679><c> have</c><00:33:47.760><c> a</c><00:33:48.240><c> size</c><00:33:49.240><c> so</c><00:33:50.120><c> uh</c>

00:33:50.710 --> 00:33:50.720 align:start position:0%
because mappings don't have a size so uh
 

00:33:50.720 --> 00:33:54.509 align:start position:0%
because mappings don't have a size so uh
to<00:33:50.919><c> compute</c><00:33:51.399><c> the</c><00:33:52.320><c> offset</c><00:33:53.039><c> of</c><00:33:53.159><c> a</c><00:33:53.320><c> mapping</c><00:33:54.279><c> you</c>

00:33:54.509 --> 00:33:54.519 align:start position:0%
to compute the offset of a mapping you
 

00:33:54.519 --> 00:33:57.870 align:start position:0%
to compute the offset of a mapping you
take<00:33:54.919><c> the</c><00:33:55.840><c> or</c><00:33:56.240><c> to</c><00:33:56.440><c> compute</c><00:33:56.799><c> the</c><00:33:57.200><c> offset</c><00:33:57.559><c> of</c><00:33:57.799><c> of</c>

00:33:57.870 --> 00:33:57.880 align:start position:0%
take the or to compute the offset of of
 

00:33:57.880 --> 00:34:00.590 align:start position:0%
take the or to compute the offset of of
a<00:33:58.080><c> value</c><00:33:58.639><c> in</c><00:33:58.760><c> the</c><00:33:58.919><c> mapping</c><00:33:59.760><c> you</c><00:33:59.960><c> take</c><00:34:00.200><c> the</c>

00:34:00.590 --> 00:34:00.600 align:start position:0%
a value in the mapping you take the
 

00:34:00.600 --> 00:34:04.269 align:start position:0%
a value in the mapping you take the
offset<00:34:01.039><c> of</c><00:34:01.159><c> the</c><00:34:01.480><c> mapping</c><00:34:02.480><c> concatenate</c><00:34:03.480><c> the</c>

00:34:04.269 --> 00:34:04.279 align:start position:0%
offset of the mapping concatenate the
 

00:34:04.279 --> 00:34:06.990 align:start position:0%
offset of the mapping concatenate the
key<00:34:05.279><c> compute</c><00:34:05.760><c> sha</c><00:34:06.120><c> three</c><00:34:06.320><c> of</c><00:34:06.480><c> that</c><00:34:06.600><c> and</c><00:34:06.760><c> that's</c>

00:34:06.990 --> 00:34:07.000 align:start position:0%
key compute sha three of that and that's
 

00:34:07.000 --> 00:34:09.710 align:start position:0%
key compute sha three of that and that's
the<00:34:07.200><c> the</c><00:34:07.320><c> offset</c><00:34:07.639><c> of</c><00:34:07.760><c> the</c><00:34:07.960><c> value</c><00:34:08.960><c> I</c><00:34:09.320><c> think</c>

00:34:09.710 --> 00:34:09.720 align:start position:0%
the the offset of the value I think
 

00:34:09.720 --> 00:34:11.310 align:start position:0%
the the offset of the value I think
that's<00:34:10.159><c> more</c><00:34:10.280><c> or</c><00:34:10.440><c> less</c><00:34:10.639><c> exactly</c><00:34:11.000><c> how</c><00:34:11.119><c> it's</c>

00:34:11.310 --> 00:34:11.320 align:start position:0%
that's more or less exactly how it's
 

00:34:11.320 --> 00:34:13.990 align:start position:0%
that's more or less exactly how it's
done<00:34:11.639><c> in</c><00:34:12.440><c> serpent</c><00:34:13.079><c> with</c><00:34:13.200><c> the</c><00:34:13.280><c> introduction</c><00:34:13.879><c> in</c>

00:34:13.990 --> 00:34:14.000 align:start position:0%
done in serpent with the introduction in
 

00:34:14.000 --> 00:34:14.869 align:start position:0%
done in serpent with the introduction in
serpent

00:34:14.869 --> 00:34:14.879 align:start position:0%
serpent
 

00:34:14.879 --> 00:34:22.710 align:start position:0%
serpent
Cho<00:34:15.879><c> so</c><00:34:16.760><c> yeah</c><00:34:17.760><c> the</c><00:34:17.879><c> obvious</c><00:34:18.240><c> way</c><00:34:18.399><c> I</c><00:34:18.480><c> would</c><00:34:19.000><c> say</c>

00:34:22.710 --> 00:34:22.720 align:start position:0%
 
 

00:34:22.720 --> 00:34:26.230 align:start position:0%
 
um<00:34:23.720><c> okay</c><00:34:24.040><c> reference</c><00:34:24.399><c> to</c><00:34:24.560><c> other</c><00:34:24.800><c> contracts</c>

00:34:26.230 --> 00:34:26.240 align:start position:0%
um okay reference to other contracts
 

00:34:26.240 --> 00:34:29.109 align:start position:0%
um okay reference to other contracts
um<00:34:27.240><c> gav</c><00:34:27.480><c> already</c><00:34:27.879><c> gave</c><00:34:28.119><c> gave</c><00:34:28.240><c> an</c><00:34:28.399><c> example</c><00:34:28.879><c> for</c>

00:34:29.109 --> 00:34:29.119 align:start position:0%
um gav already gave gave an example for
 

00:34:29.119 --> 00:34:32.349 align:start position:0%
um gav already gave gave an example for
that<00:34:30.040><c> um</c><00:34:30.639><c> a</c><00:34:30.760><c> bit</c><00:34:30.919><c> more</c>

00:34:32.349 --> 00:34:32.359 align:start position:0%
that um a bit more
 

00:34:32.359 --> 00:34:36.069 align:start position:0%
that um a bit more
detailed<00:34:33.359><c> we</c><00:34:33.720><c> can</c><00:34:34.720><c> include</c><00:34:35.159><c> other</c><00:34:35.399><c> contract</c>

00:34:36.069 --> 00:34:36.079 align:start position:0%
detailed we can include other contract
 

00:34:36.079 --> 00:34:40.230 align:start position:0%
detailed we can include other contract
files<00:34:37.079><c> contract</c><00:34:37.399><c> source</c><00:34:37.720><c> files</c><00:34:38.679><c> and</c><00:34:39.679><c> yeah</c><00:34:39.919><c> use</c>

00:34:40.230 --> 00:34:40.240 align:start position:0%
files contract source files and yeah use
 

00:34:40.240 --> 00:34:43.030 align:start position:0%
files contract source files and yeah use
contracts<00:34:40.679><c> also</c><00:34:40.879><c> as</c><00:34:41.040><c> values</c><00:34:41.399><c> for</c><00:34:41.679><c> mappings</c><00:34:42.679><c> or</c>

00:34:43.030 --> 00:34:43.040 align:start position:0%
contracts also as values for mappings or
 

00:34:43.040 --> 00:34:45.389 align:start position:0%
contracts also as values for mappings or
directly<00:34:43.399><c> in</c>

00:34:45.389 --> 00:34:45.399 align:start position:0%
directly in
 

00:34:45.399 --> 00:34:50.550 align:start position:0%
directly in
storage<00:34:46.839><c> and</c><00:34:47.839><c> we</c><00:34:48.040><c> can</c><00:34:48.480><c> so</c><00:34:49.159><c> name</c><00:34:49.440><c> r</c><00:34:49.679><c> Adder</c><00:34:50.040><c> is</c><00:34:50.159><c> an</c>

00:34:50.550 --> 00:34:50.560 align:start position:0%
storage and we can so name r Adder is an
 

00:34:50.560 --> 00:34:53.030 align:start position:0%
storage and we can so name r Adder is an
address<00:34:51.560><c> we</c>

00:34:53.030 --> 00:34:53.040 align:start position:0%
address we
 

00:34:53.040 --> 00:34:55.550 align:start position:0%
address we
can<00:34:54.040><c> so</c><00:34:54.240><c> if</c><00:34:54.320><c> you</c><00:34:54.440><c> write</c><00:34:54.639><c> it</c><00:34:54.800><c> like</c><00:34:54.960><c> that</c><00:34:55.119><c> name</c><00:34:55.359><c> r</c>

00:34:55.550 --> 00:34:55.560 align:start position:0%
can so if you write it like that name r
 

00:34:55.560 --> 00:34:58.670 align:start position:0%
can so if you write it like that name r
is<00:34:55.800><c> is</c><00:34:55.960><c> a</c><00:34:56.240><c> is</c><00:34:56.359><c> a</c><00:34:56.480><c> contract</c><00:34:56.879><c> type</c><00:34:57.920><c> this</c><00:34:58.040><c> is</c><00:34:58.280><c> just</c>

00:34:58.670 --> 00:34:58.680 align:start position:0%
is is a is a contract type this is just
 

00:34:58.680 --> 00:35:02.349 align:start position:0%
is is a is a contract type this is just
uh<00:34:59.320><c> usual</c><00:34:59.800><c> type</c><00:35:00.040><c> conversion</c><00:35:00.839><c> so</c><00:35:01.839><c> address</c><00:35:02.240><c> can</c>

00:35:02.349 --> 00:35:02.359 align:start position:0%
uh usual type conversion so address can
 

00:35:02.359 --> 00:35:04.829 align:start position:0%
uh usual type conversion so address can
be<00:35:02.480><c> converted</c><00:35:02.839><c> to</c><00:35:02.960><c> a</c><00:35:03.079><c> contract</c><00:35:03.599><c> type</c><00:35:04.599><c> and</c><00:35:04.720><c> then</c>

00:35:04.829 --> 00:35:04.839 align:start position:0%
be converted to a contract type and then
 

00:35:04.839 --> 00:35:07.349 align:start position:0%
be converted to a contract type and then
we<00:35:05.000><c> store</c><00:35:05.200><c> it</c><00:35:05.320><c> in</c>

00:35:07.349 --> 00:35:07.359 align:start position:0%
we store it in
 

00:35:07.359 --> 00:35:10.829 align:start position:0%
we store it in
storage<00:35:08.560><c> um</c><00:35:09.560><c> we</c><00:35:09.720><c> can</c><00:35:10.040><c> from</c><00:35:10.240><c> this</c><00:35:10.400><c> point</c><00:35:10.560><c> on</c><00:35:10.760><c> we</c>

00:35:10.829 --> 00:35:10.839 align:start position:0%
storage um we can from this point on we
 

00:35:10.839 --> 00:35:12.550 align:start position:0%
storage um we can from this point on we
can<00:35:11.079><c> use</c><00:35:11.320><c> name</c><00:35:11.599><c> r</c><00:35:11.760><c> and</c><00:35:11.839><c> call</c><00:35:12.040><c> functions</c><00:35:12.359><c> on</c>

00:35:12.550 --> 00:35:12.560 align:start position:0%
can use name r and call functions on
 

00:35:12.560 --> 00:35:16.950 align:start position:0%
can use name r and call functions on
that<00:35:13.359><c> and</c><00:35:13.760><c> for</c><00:35:14.000><c> that</c><00:35:14.160><c> we</c><00:35:14.280><c> don't</c><00:35:14.560><c> need</c><00:35:15.000><c> the</c><00:35:16.000><c> full</c>

00:35:16.950 --> 00:35:16.960 align:start position:0%
that and for that we don't need the full
 

00:35:16.960 --> 00:35:19.030 align:start position:0%
that and for that we don't need the full
definition<00:35:17.400><c> of</c><00:35:17.520><c> the</c><00:35:17.640><c> name</c><00:35:18.040><c> contract</c><00:35:18.480><c> we</c><00:35:18.839><c> only</c>

00:35:19.030 --> 00:35:19.040 align:start position:0%
definition of the name contract we only
 

00:35:19.040 --> 00:35:21.030 align:start position:0%
definition of the name contract we only
need<00:35:19.160><c> to</c><00:35:19.280><c> know</c><00:35:19.440><c> its</c><00:35:19.599><c> interface</c><00:35:20.320><c> so</c><00:35:20.599><c> this</c><00:35:20.920><c> this</c>

00:35:21.030 --> 00:35:21.040 align:start position:0%
need to know its interface so this this
 

00:35:21.040 --> 00:35:23.630 align:start position:0%
need to know its interface so this this
name<00:35:21.520><c> s</c><00:35:22.079><c> file</c><00:35:22.800><c> can</c>

00:35:23.630 --> 00:35:23.640 align:start position:0%
name s file can
 

00:35:23.640 --> 00:35:26.829 align:start position:0%
name s file can
be<00:35:24.640><c> yeah</c><00:35:24.880><c> a</c><00:35:25.040><c> simple</c><00:35:25.480><c> file</c><00:35:25.880><c> which</c><00:35:26.440><c> has</c><00:35:26.599><c> all</c>

00:35:26.829 --> 00:35:26.839 align:start position:0%
be yeah a simple file which has all
 

00:35:26.839 --> 00:35:29.030 align:start position:0%
be yeah a simple file which has all
functions<00:35:27.359><c> but</c><00:35:27.760><c> not</c><00:35:27.920><c> the</c><00:35:28.040><c> function</c>

00:35:29.030 --> 00:35:29.040 align:start position:0%
functions but not the function
 

00:35:29.040 --> 00:35:32.750 align:start position:0%
functions but not the function
bodies<00:35:30.040><c> and</c><00:35:30.839><c> it's</c><00:35:31.040><c> different</c><00:35:31.440><c> for</c><00:35:32.200><c> this</c><00:35:32.440><c> line</c>

00:35:32.750 --> 00:35:32.760 align:start position:0%
bodies and it's different for this line
 

00:35:32.760 --> 00:35:35.829 align:start position:0%
bodies and it's different for this line
here<00:35:33.079><c> where</c><00:35:33.320><c> we</c><00:35:34.280><c> create</c><00:35:34.680><c> a</c><00:35:34.880><c> new</c><00:35:35.160><c> contract</c><00:35:35.680><c> and</c>

00:35:35.829 --> 00:35:35.839 align:start position:0%
here where we create a new contract and
 

00:35:35.839 --> 00:35:38.990 align:start position:0%
here where we create a new contract and
store<00:35:36.160><c> it</c><00:35:36.359><c> at</c><00:35:36.560><c> this</c><00:35:37.160><c> point</c><00:35:37.400><c> in</c><00:35:37.680><c> storage</c><00:35:38.680><c> so</c>

00:35:38.990 --> 00:35:39.000 align:start position:0%
store it at this point in storage so
 

00:35:39.000 --> 00:35:41.109 align:start position:0%
store it at this point in storage so
here<00:35:39.240><c> we</c><00:35:39.520><c> actually</c><00:35:39.839><c> need</c><00:35:40.320><c> the</c><00:35:40.599><c> the</c><00:35:40.760><c> full</c>

00:35:41.109 --> 00:35:41.119 align:start position:0%
here we actually need the the full
 

00:35:41.119 --> 00:35:44.870 align:start position:0%
here we actually need the the full
definition<00:35:41.520><c> of</c><00:35:41.640><c> the</c><00:35:41.760><c> coin</c><00:35:42.119><c> contract</c><00:35:43.119><c> to</c>

00:35:44.870 --> 00:35:44.880 align:start position:0%
definition of the coin contract to
 

00:35:44.880 --> 00:35:47.670 align:start position:0%
definition of the coin contract to
create<00:35:45.880><c> and</c><00:35:46.480><c> when</c><00:35:46.640><c> it's</c><00:35:46.800><c> stored</c><00:35:47.240><c> we</c><00:35:47.320><c> can</c><00:35:47.480><c> use</c>

00:35:47.670 --> 00:35:47.680 align:start position:0%
create and when it's stored we can use
 

00:35:47.680 --> 00:35:52.150 align:start position:0%
create and when it's stored we can use
it<00:35:47.839><c> to</c><00:35:48.359><c> call</c><00:35:48.599><c> a</c><00:35:48.760><c> function</c><00:35:49.560><c> send</c><00:35:50.480><c> amount</c><00:35:50.880><c> to</c><00:35:51.880><c> so</c>

00:35:52.150 --> 00:35:52.160 align:start position:0%
it to call a function send amount to so
 

00:35:52.160 --> 00:35:53.589 align:start position:0%
it to call a function send amount to so
that's<00:35:52.720><c> yeah</c><00:35:52.960><c> that's</c><00:35:53.079><c> the</c><00:35:53.200><c> function</c><00:35:53.440><c> we've</c>

00:35:53.589 --> 00:35:53.599 align:start position:0%
that's yeah that's the function we've
 

00:35:53.599 --> 00:35:59.270 align:start position:0%
that's yeah that's the function we've
seen<00:35:53.800><c> in</c><00:35:53.960><c> the</c><00:35:54.720><c> the</c><00:35:54.839><c> second</c><00:35:55.160><c> example</c>

00:35:59.270 --> 00:35:59.280 align:start position:0%
 
 

00:35:59.280 --> 00:36:01.630 align:start position:0%
 
okay<00:36:00.280><c> um</c>

00:36:01.630 --> 00:36:01.640 align:start position:0%
okay um
 

00:36:01.640 --> 00:36:05.950 align:start position:0%
okay um
yeah<00:36:02.640><c> what</c><00:36:02.880><c> are</c><00:36:03.200><c> the</c><00:36:03.440><c> plans</c><00:36:03.839><c> for</c><00:36:04.040><c> the</c><00:36:04.160><c> future</c>

00:36:05.950 --> 00:36:05.960 align:start position:0%
yeah what are the plans for the future
 

00:36:05.960 --> 00:36:09.829 align:start position:0%
yeah what are the plans for the future
um<00:36:06.960><c> I</c><00:36:07.079><c> think</c><00:36:07.280><c> we</c><00:36:07.400><c> will</c><00:36:07.640><c> have</c><00:36:07.920><c> a</c><00:36:08.680><c> complete</c><00:36:09.520><c> first</c>

00:36:09.829 --> 00:36:09.839 align:start position:0%
um I think we will have a complete first
 

00:36:09.839 --> 00:36:11.910 align:start position:0%
um I think we will have a complete first
usable<00:36:10.319><c> version</c><00:36:11.240><c> by</c><00:36:11.400><c> the</c><00:36:11.480><c> beginning</c><00:36:11.760><c> of</c>

00:36:11.910 --> 00:36:11.920 align:start position:0%
usable version by the beginning of
 

00:36:11.920 --> 00:36:14.710 align:start position:0%
usable version by the beginning of
December

00:36:14.710 --> 00:36:14.720 align:start position:0%
December
 

00:36:14.720 --> 00:36:17.670 align:start position:0%
December
so<00:36:15.720><c> yeah</c><00:36:16.160><c> after</c><00:36:16.480><c> def</c><00:36:16.680><c> con</c>

00:36:17.670 --> 00:36:17.680 align:start position:0%
so yeah after def con
 

00:36:17.680 --> 00:36:21.069 align:start position:0%
so yeah after def con
zero<00:36:18.680><c> uh</c><00:36:18.960><c> the</c><00:36:19.119><c> current</c><00:36:19.520><c> state</c><00:36:19.920><c> is</c>

00:36:21.069 --> 00:36:21.079 align:start position:0%
zero uh the current state is
 

00:36:21.079 --> 00:36:23.270 align:start position:0%
zero uh the current state is
that<00:36:22.079><c> most</c><00:36:22.240><c> of</c><00:36:22.359><c> the</c><00:36:22.480><c> basic</c><00:36:22.720><c> features</c><00:36:23.040><c> are</c>

00:36:23.270 --> 00:36:23.280 align:start position:0%
that most of the basic features are
 

00:36:23.280 --> 00:36:26.390 align:start position:0%
that most of the basic features are
there<00:36:23.599><c> what</c><00:36:23.720><c> is</c><00:36:23.880><c> missing</c><00:36:24.599><c> is</c><00:36:25.599><c> actual</c><00:36:26.040><c> access</c>

00:36:26.390 --> 00:36:26.400 align:start position:0%
there what is missing is actual access
 

00:36:26.400 --> 00:36:30.630 align:start position:0%
there what is missing is actual access
to<00:36:26.760><c> the</c><00:36:26.920><c> blockchains</c><00:36:27.599><c> so</c><00:36:28.319><c> query</c><00:36:28.720><c> balances</c><00:36:29.640><c> and</c>

00:36:30.630 --> 00:36:30.640 align:start position:0%
to the blockchains so query balances and
 

00:36:30.640 --> 00:36:33.670 align:start position:0%
to the blockchains so query balances and
send<00:36:31.440><c> funds</c><00:36:32.440><c> and</c><00:36:32.720><c> references</c><00:36:33.280><c> to</c><00:36:33.480><c> other</c>

00:36:33.670 --> 00:36:33.680 align:start position:0%
send funds and references to other
 

00:36:33.680 --> 00:36:35.990 align:start position:0%
send funds and references to other
contracts<00:36:34.240><c> but</c><00:36:34.800><c> that's</c><00:36:35.200><c> not</c><00:36:35.480><c> much</c><00:36:35.720><c> work</c><00:36:35.920><c> I</c>

00:36:35.990 --> 00:36:36.000 align:start position:0%
contracts but that's not much work I
 

00:36:36.000 --> 00:36:38.829 align:start position:0%
contracts but that's not much work I
would<00:36:36.200><c> say</c>

00:36:38.829 --> 00:36:38.839 align:start position:0%
 
 

00:36:38.839 --> 00:36:42.910 align:start position:0%
 
so<00:36:39.839><c> future</c><00:36:40.200><c> areas</c><00:36:40.480><c> of</c><00:36:40.680><c> work</c><00:36:41.000><c> are</c><00:36:41.520><c> yeah</c><00:36:41.800><c> I</c><00:36:42.520><c> shall</c>

00:36:42.910 --> 00:36:42.920 align:start position:0%
so future areas of work are yeah I shall
 

00:36:42.920 --> 00:36:45.589 align:start position:0%
so future areas of work are yeah I shall
write<00:36:43.119><c> some</c><00:36:43.280><c> tutorials</c><00:36:44.000><c> or</c><00:36:44.359><c> actually</c><00:36:45.359><c> create</c>

00:36:45.589 --> 00:36:45.599 align:start position:0%
write some tutorials or actually create
 

00:36:45.599 --> 00:36:47.589 align:start position:0%
write some tutorials or actually create
a<00:36:45.760><c> specification</c><00:36:46.240><c> of</c><00:36:46.319><c> the</c><00:36:46.440><c> language</c><00:36:46.839><c> I</c>

00:36:47.589 --> 00:36:47.599 align:start position:0%
a specification of the language I
 

00:36:47.599 --> 00:36:49.910 align:start position:0%
a specification of the language I
think

00:36:49.910 --> 00:36:49.920 align:start position:0%
think
 

00:36:49.920 --> 00:36:54.670 align:start position:0%
think
um<00:36:50.920><c> then</c><00:36:51.520><c> uh</c><00:36:52.359><c> depending</c><00:36:53.040><c> on</c><00:36:54.040><c> feedback</c><00:36:54.440><c> from</c>

00:36:54.670 --> 00:36:54.680 align:start position:0%
um then uh depending on feedback from
 

00:36:54.680 --> 00:36:57.630 align:start position:0%
um then uh depending on feedback from
users<00:36:55.680><c> we</c><00:36:55.880><c> might</c><00:36:56.160><c> add</c><00:36:56.319><c> some</c><00:36:56.560><c> new</c><00:36:56.960><c> features</c><00:36:57.319><c> to</c>

00:36:57.630 --> 00:36:57.640 align:start position:0%
users we might add some new features to
 

00:36:57.640 --> 00:36:58.270 align:start position:0%
users we might add some new features to
the

00:36:58.270 --> 00:36:58.280 align:start position:0%
the
 

00:36:58.280 --> 00:37:00.550 align:start position:0%
the
language<00:36:59.280><c> we</c><00:36:59.520><c> might</c><00:36:59.760><c> need</c><00:36:59.920><c> to</c><00:37:00.079><c> improve</c><00:37:00.400><c> the</c>

00:37:00.550 --> 00:37:00.560 align:start position:0%
language we might need to improve the
 

00:37:00.560 --> 00:37:05.349 align:start position:0%
language we might need to improve the
optimizer<00:37:01.319><c> but</c><00:37:01.680><c> that</c><00:37:02.160><c> yeah</c><00:37:02.400><c> depends</c>

00:37:05.349 --> 00:37:05.359 align:start position:0%
 
 

00:37:05.359 --> 00:37:08.470 align:start position:0%
 
on<00:37:06.359><c> how</c><00:37:06.599><c> the</c><00:37:06.760><c> language</c><00:37:07.040><c> is</c><00:37:07.200><c> actually</c><00:37:07.480><c> used</c><00:37:08.160><c> so</c>

00:37:08.470 --> 00:37:08.480 align:start position:0%
on how the language is actually used so
 

00:37:08.480 --> 00:37:10.069 align:start position:0%
on how the language is actually used so
we<00:37:08.560><c> will</c><00:37:08.720><c> have</c><00:37:08.839><c> to</c><00:37:09.079><c> look</c><00:37:09.240><c> at</c><00:37:09.400><c> some</c><00:37:09.560><c> real</c><00:37:09.800><c> world</c>

00:37:10.069 --> 00:37:10.079 align:start position:0%
we will have to look at some real world
 

00:37:10.079 --> 00:37:11.069 align:start position:0%
we will have to look at some real world
example

00:37:11.069 --> 00:37:11.079 align:start position:0%
example
 

00:37:11.079 --> 00:37:14.950 align:start position:0%
example
contracts<00:37:12.079><c> then</c><00:37:12.599><c> work</c><00:37:12.800><c> on</c><00:37:13.319><c> documentation</c><00:37:14.319><c> so</c>

00:37:14.950 --> 00:37:14.960 align:start position:0%
contracts then work on documentation so
 

00:37:14.960 --> 00:37:18.150 align:start position:0%
contracts then work on documentation so
this<00:37:15.960><c> netpc</c><00:37:16.560><c> documentation</c><00:37:17.160><c> where</c><00:37:17.319><c> the</c><00:37:17.440><c> next</c>

00:37:18.150 --> 00:37:18.160 align:start position:0%
this netpc documentation where the next
 

00:37:18.160 --> 00:37:19.470 align:start position:0%
this netpc documentation where the next
we'll<00:37:18.319><c> see</c><00:37:18.480><c> that</c><00:37:18.560><c> in</c><00:37:18.640><c> the</c><00:37:18.760><c> next</c>

00:37:19.470 --> 00:37:19.480 align:start position:0%
we'll see that in the next
 

00:37:19.480 --> 00:37:21.230 align:start position:0%
we'll see that in the next
talk

00:37:21.230 --> 00:37:21.240 align:start position:0%
talk
 

00:37:21.240 --> 00:37:24.109 align:start position:0%
talk
and<00:37:22.240><c> actually</c><00:37:22.480><c> creating</c><00:37:22.960><c> the</c><00:37:23.240><c> the</c>

00:37:24.109 --> 00:37:24.119 align:start position:0%
and actually creating the the
 

00:37:24.119 --> 00:37:27.470 align:start position:0%
and actually creating the the
IDE<00:37:25.119><c> and</c><00:37:25.319><c> then</c><00:37:25.680><c> work</c><00:37:25.960><c> on</c><00:37:26.240><c> static</c><00:37:26.560><c> analysis</c><00:37:27.200><c> and</c>

00:37:27.470 --> 00:37:27.480 align:start position:0%
IDE and then work on static analysis and
 

00:37:27.480 --> 00:37:29.589 align:start position:0%
IDE and then work on static analysis and
formal<00:37:27.920><c> verification</c><00:37:28.920><c> and</c><00:37:29.079><c> of</c><00:37:29.200><c> course</c><00:37:29.400><c> bu</c>

00:37:29.589 --> 00:37:29.599 align:start position:0%
formal verification and of course bu
 

00:37:29.599 --> 00:37:30.630 align:start position:0%
formal verification and of course bu
fixes<00:37:29.880><c> and</c>

00:37:30.630 --> 00:37:30.640 align:start position:0%
fixes and
 

00:37:30.640 --> 00:37:34.950 align:start position:0%
fixes and
refactoring<00:37:31.640><c> that</c><00:37:31.760><c> can</c><00:37:31.960><c> always</c><00:37:32.160><c> be</c><00:37:32.560><c> done</c><00:37:33.960><c> um</c>

00:37:34.950 --> 00:37:34.960 align:start position:0%
refactoring that can always be done um
 

00:37:34.960 --> 00:37:38.109 align:start position:0%
refactoring that can always be done um
how<00:37:35.200><c> how</c><00:37:35.319><c> is</c><00:37:35.560><c> that</c><00:37:36.560><c> am</c><00:37:36.680><c> I</c><00:37:36.839><c> on</c><00:37:37.040><c> time</c>

00:37:38.109 --> 00:37:38.119 align:start position:0%
how how is that am I on time
 

00:37:38.119 --> 00:37:42.670 align:start position:0%
how how is that am I on time
or<00:37:39.200><c> okay</c><00:37:40.440><c> so</c><00:37:41.440><c> yeah</c><00:37:41.640><c> one</c><00:37:41.960><c> plan</c><00:37:42.319><c> language</c>

00:37:42.670 --> 00:37:42.680 align:start position:0%
or okay so yeah one plan language
 

00:37:42.680 --> 00:37:45.150 align:start position:0%
or okay so yeah one plan language
feature<00:37:43.240><c> I</c><00:37:43.319><c> don't</c><00:37:43.480><c> know</c><00:37:43.599><c> if</c><00:37:44.160><c> that's</c>

00:37:45.150 --> 00:37:45.160 align:start position:0%
feature I don't know if that's
 

00:37:45.160 --> 00:37:47.349 align:start position:0%
feature I don't know if that's
interesting<00:37:46.079><c> uh</c><00:37:46.240><c> Anonymous</c>

00:37:47.349 --> 00:37:47.359 align:start position:0%
interesting uh Anonymous
 

00:37:47.359 --> 00:37:50.109 align:start position:0%
interesting uh Anonymous
structs<00:37:48.359><c> so</c><00:37:48.720><c> you</c><00:37:48.839><c> can</c>

00:37:50.109 --> 00:37:50.119 align:start position:0%
structs so you can
 

00:37:50.119 --> 00:37:53.390 align:start position:0%
structs so you can
do<00:37:51.119><c> mappings</c><00:37:51.760><c> from</c><00:37:51.920><c> a</c><00:37:52.079><c> struct</c><00:37:52.520><c> type</c><00:37:52.960><c> without</c>

00:37:53.390 --> 00:37:53.400 align:start position:0%
do mappings from a struct type without
 

00:37:53.400 --> 00:37:57.950 align:start position:0%
do mappings from a struct type without
actually<00:37:54.160><c> creating</c><00:37:54.520><c> a</c><00:37:54.640><c> name</c><00:37:54.880><c> for</c><00:37:55.079><c> it</c><00:37:56.000><c> you</c><00:37:56.200><c> can</c>

00:37:57.950 --> 00:37:57.960 align:start position:0%
actually creating a name for it you can
 

00:37:57.960 --> 00:38:00.510 align:start position:0%
actually creating a name for it you can
so<00:37:58.359><c> functions</c><00:37:58.760><c> that</c><00:37:59.040><c> return</c><00:37:59.280><c> multiple</c><00:38:00.079><c> values</c>

00:38:00.510 --> 00:38:00.520 align:start position:0%
so functions that return multiple values
 

00:38:00.520 --> 00:38:01.829 align:start position:0%
so functions that return multiple values
you<00:38:00.599><c> can</c><00:38:00.760><c> just</c><00:38:00.880><c> store</c><00:38:01.200><c> them</c><00:38:01.359><c> in</c><00:38:01.560><c> local</c>

00:38:01.829 --> 00:38:01.839 align:start position:0%
you can just store them in local
 

00:38:01.839 --> 00:38:03.870 align:start position:0%
you can just store them in local
variables

00:38:03.870 --> 00:38:03.880 align:start position:0%
variables
 

00:38:03.880 --> 00:38:06.990 align:start position:0%
variables
directly<00:38:04.880><c> and</c><00:38:05.079><c> also</c><00:38:05.400><c> return</c><00:38:05.640><c> them</c><00:38:05.839><c> like</c><00:38:06.040><c> that</c>

00:38:06.990 --> 00:38:07.000 align:start position:0%
directly and also return them like that
 

00:38:07.000 --> 00:38:08.550 align:start position:0%
directly and also return them like that
so<00:38:07.119><c> I</c><00:38:07.240><c> think</c><00:38:07.400><c> that's</c><00:38:07.560><c> something</c><00:38:08.040><c> we</c><00:38:08.200><c> want</c><00:38:08.440><c> but</c>

00:38:08.550 --> 00:38:08.560 align:start position:0%
so I think that's something we want but
 

00:38:08.560 --> 00:38:09.990 align:start position:0%
so I think that's something we want but
that's<00:38:08.680><c> not</c><00:38:08.839><c> implemented</c>

00:38:09.990 --> 00:38:10.000 align:start position:0%
that's not implemented
 

00:38:10.000 --> 00:38:14.230 align:start position:0%
that's not implemented
yet<00:38:11.400><c> um</c><00:38:12.400><c> some</c><00:38:12.599><c> ideas</c><00:38:12.880><c> for</c><00:38:13.040><c> the</c>

00:38:14.230 --> 00:38:14.240 align:start position:0%
yet um some ideas for the
 

00:38:14.240 --> 00:38:18.230 align:start position:0%
yet um some ideas for the
optimizer<00:38:15.240><c> I</c><00:38:15.359><c> think</c><00:38:15.640><c> it's</c><00:38:17.000><c> uh</c><00:38:18.000><c> really</c>

00:38:18.230 --> 00:38:18.240 align:start position:0%
optimizer I think it's uh really
 

00:38:18.240 --> 00:38:21.990 align:start position:0%
optimizer I think it's uh really
important<00:38:18.880><c> to</c><00:38:19.880><c> be</c><00:38:20.079><c> able</c><00:38:20.359><c> to</c><00:38:21.240><c> use</c><00:38:21.760><c> other</c>

00:38:21.990 --> 00:38:22.000 align:start position:0%
important to be able to use other
 

00:38:22.000 --> 00:38:25.390 align:start position:0%
important to be able to use other
contracts<00:38:22.680><c> as</c><00:38:23.200><c> Library</c><00:38:23.680><c> contracts</c><00:38:24.400><c> somehow</c>

00:38:25.390 --> 00:38:25.400 align:start position:0%
contracts as Library contracts somehow
 

00:38:25.400 --> 00:38:27.750 align:start position:0%
contracts as Library contracts somehow
at<00:38:25.520><c> least</c><00:38:25.760><c> for</c><00:38:26.599><c> simple</c><00:38:26.920><c> functions</c><00:38:27.280><c> like</c><00:38:27.560><c> like</c>

00:38:27.750 --> 00:38:27.760 align:start position:0%
at least for simple functions like like
 

00:38:27.760 --> 00:38:29.710 align:start position:0%
at least for simple functions like like
Computing<00:38:28.119><c> the</c><00:38:28.200><c> minimum</c><00:38:28.800><c> or</c><00:38:29.359><c> finding</c>

00:38:29.710 --> 00:38:29.720 align:start position:0%
Computing the minimum or finding
 

00:38:29.720 --> 00:38:33.349 align:start position:0%
Computing the minimum or finding
something<00:38:30.000><c> in</c><00:38:30.079><c> a</c><00:38:30.520><c> list</c><00:38:31.520><c> and</c><00:38:32.280><c> for</c><00:38:32.560><c> this</c><00:38:32.839><c> it's</c>

00:38:33.349 --> 00:38:33.359 align:start position:0%
something in a list and for this it's
 

00:38:33.359 --> 00:38:36.230 align:start position:0%
something in a list and for this it's
important<00:38:33.800><c> to</c><00:38:34.359><c> so</c><00:38:35.119><c> calls</c><00:38:35.480><c> to</c><00:38:35.640><c> other</c><00:38:35.800><c> functions</c>

00:38:36.230 --> 00:38:36.240 align:start position:0%
important to so calls to other functions
 

00:38:36.240 --> 00:38:38.309 align:start position:0%
important to so calls to other functions
are<00:38:36.720><c> quite</c><00:38:36.960><c> expensive</c><00:38:37.520><c> because</c><00:38:37.760><c> you</c><00:38:37.880><c> have</c><00:38:38.040><c> to</c>

00:38:38.309 --> 00:38:38.319 align:start position:0%
are quite expensive because you have to
 

00:38:38.319 --> 00:38:42.230 align:start position:0%
are quite expensive because you have to
move<00:38:38.599><c> all</c><00:38:38.839><c> arguments</c><00:38:39.240><c> to</c><00:38:39.760><c> memory</c><00:38:40.760><c> create</c><00:38:41.560><c> so</c>

00:38:42.230 --> 00:38:42.240 align:start position:0%
move all arguments to memory create so
 

00:38:42.240 --> 00:38:44.470 align:start position:0%
move all arguments to memory create so
run<00:38:42.560><c> this</c><00:38:42.760><c> this</c><00:38:42.920><c> call</c><00:38:43.160><c> up</c><00:38:43.319><c> code</c><00:38:43.760><c> and</c><00:38:43.960><c> then</c>

00:38:44.470 --> 00:38:44.480 align:start position:0%
run this this call up code and then
 

00:38:44.480 --> 00:38:47.910 align:start position:0%
run this this call up code and then
retrieve<00:38:44.880><c> them</c><00:38:45.000><c> from</c><00:38:45.200><c> memory</c><00:38:45.720><c> again</c><00:38:46.760><c> and</c><00:38:47.760><c> if</c>

00:38:47.910 --> 00:38:47.920 align:start position:0%
retrieve them from memory again and if
 

00:38:47.920 --> 00:38:49.790 align:start position:0%
retrieve them from memory again and if
the<00:38:48.040><c> function</c><00:38:48.359><c> is</c><00:38:48.640><c> small</c><00:38:49.079><c> then</c><00:38:49.240><c> it's</c><00:38:49.599><c> much</c>

00:38:49.790 --> 00:38:49.800 align:start position:0%
the function is small then it's much
 

00:38:49.800 --> 00:38:52.470 align:start position:0%
the function is small then it's much
more<00:38:50.119><c> efficient</c><00:38:50.480><c> to</c><00:38:50.720><c> just</c><00:38:51.280><c> copy</c><00:38:51.640><c> the</c><00:38:51.800><c> code</c><00:38:52.280><c> to</c>

00:38:52.470 --> 00:38:52.480 align:start position:0%
more efficient to just copy the code to
 

00:38:52.480 --> 00:38:54.309 align:start position:0%
more efficient to just copy the code to
the<00:38:52.640><c> to</c><00:38:52.800><c> that</c>

00:38:54.309 --> 00:38:54.319 align:start position:0%
the to that
 

00:38:54.319 --> 00:38:57.910 align:start position:0%
the to that
location<00:38:55.599><c> and</c><00:38:56.599><c> and</c><00:38:56.880><c> another</c><00:38:57.119><c> benefit</c><00:38:57.720><c> of</c>

00:38:57.910 --> 00:38:57.920 align:start position:0%
location and and another benefit of
 

00:38:57.920 --> 00:38:59.550 align:start position:0%
location and and another benefit of
inlining<00:38:58.319><c> function</c><00:38:58.560><c> causes</c><00:38:58.920><c> also</c><00:38:59.200><c> that</c><00:38:59.440><c> the</c>

00:38:59.550 --> 00:38:59.560 align:start position:0%
inlining function causes also that the
 

00:38:59.560 --> 00:39:00.990 align:start position:0%
inlining function causes also that the
the<00:38:59.680><c> optimizer</c><00:39:00.160><c> can</c><00:39:00.319><c> actually</c><00:39:00.560><c> optimize</c>

00:39:00.990 --> 00:39:01.000 align:start position:0%
the optimizer can actually optimize
 

00:39:01.000 --> 00:39:02.109 align:start position:0%
the optimizer can actually optimize
something

00:39:02.109 --> 00:39:02.119 align:start position:0%
something
 

00:39:02.119 --> 00:39:05.470 align:start position:0%
something
there<00:39:03.119><c> then</c><00:39:03.440><c> it's</c><00:39:03.760><c> perhaps</c><00:39:04.040><c> necessary</c><00:39:04.400><c> to</c><00:39:04.880><c> to</c>

00:39:05.470 --> 00:39:05.480 align:start position:0%
there then it's perhaps necessary to to
 

00:39:05.480 --> 00:39:07.349 align:start position:0%
there then it's perhaps necessary to to
reorganize<00:39:06.040><c> the</c><00:39:06.160><c> local</c><00:39:06.359><c> Stacks</c><00:39:06.720><c> so</c><00:39:06.880><c> for</c>

00:39:07.349 --> 00:39:07.359 align:start position:0%
reorganize the local Stacks so for
 

00:39:07.359 --> 00:39:10.470 align:start position:0%
reorganize the local Stacks so for
example<00:39:08.359><c> if</c><00:39:08.880><c> two</c><00:39:09.160><c> V</c><00:39:09.400><c> two</c><00:39:09.560><c> local</c><00:39:09.880><c> variables</c><00:39:10.319><c> do</c>

00:39:10.470 --> 00:39:10.480 align:start position:0%
example if two V two local variables do
 

00:39:10.480 --> 00:39:12.190 align:start position:0%
example if two V two local variables do
not<00:39:10.680><c> really</c><00:39:10.920><c> overlap</c><00:39:11.480><c> in</c><00:39:11.599><c> a</c><00:39:11.720><c> function</c><00:39:12.079><c> they</c>

00:39:12.190 --> 00:39:12.200 align:start position:0%
not really overlap in a function they
 

00:39:12.200 --> 00:39:15.230 align:start position:0%
not really overlap in a function they
can<00:39:12.319><c> use</c><00:39:12.599><c> the</c><00:39:12.800><c> same</c><00:39:13.400><c> stack</c>

00:39:15.230 --> 00:39:15.240 align:start position:0%
can use the same stack
 

00:39:15.240 --> 00:39:19.309 align:start position:0%
can use the same stack
slot<00:39:16.400><c> and</c><00:39:17.400><c> if</c><00:39:17.880><c> the</c><00:39:18.000><c> feedback</c><00:39:18.480><c> results</c><00:39:18.960><c> in</c>

00:39:19.309 --> 00:39:19.319 align:start position:0%
slot and if the feedback results in
 

00:39:19.319 --> 00:39:21.790 align:start position:0%
slot and if the feedback results in
really<00:39:19.560><c> really</c><00:39:19.800><c> bad</c><00:39:20.440><c> performance</c><00:39:20.880><c> for</c><00:39:21.599><c> the</c>

00:39:21.790 --> 00:39:21.800 align:start position:0%
really really bad performance for the
 

00:39:21.800 --> 00:39:24.069 align:start position:0%
really really bad performance for the
compiler<00:39:22.800><c> then</c><00:39:22.960><c> it's</c><00:39:23.200><c> perhaps</c><00:39:23.520><c> necessary</c><00:39:23.880><c> to</c>

00:39:24.069 --> 00:39:24.079 align:start position:0%
compiler then it's perhaps necessary to
 

00:39:24.079 --> 00:39:26.309 align:start position:0%
compiler then it's perhaps necessary to
consider<00:39:24.440><c> some</c><00:39:25.240><c> yeah</c><00:39:25.400><c> simple</c><00:39:25.760><c> Intermediate</c>

00:39:26.309 --> 00:39:26.319 align:start position:0%
consider some yeah simple Intermediate
 

00:39:26.319 --> 00:39:27.990 align:start position:0%
consider some yeah simple Intermediate
Language<00:39:26.960><c> where</c>

00:39:27.990 --> 00:39:28.000 align:start position:0%
Language where
 

00:39:28.000 --> 00:39:29.829 align:start position:0%
Language where
more<00:39:28.240><c> optimizations</c><00:39:28.880><c> are</c><00:39:29.079><c> possible</c><00:39:29.440><c> than</c><00:39:29.599><c> on</c>

00:39:29.829 --> 00:39:29.839 align:start position:0%
more optimizations are possible than on
 

00:39:29.839 --> 00:39:34.630 align:start position:0%
more optimizations are possible than on
this<00:39:30.240><c> on</c><00:39:30.359><c> the</c><00:39:30.520><c> stack</c><00:39:30.760><c> based</c><00:39:31.040><c> evm</c>

00:39:34.630 --> 00:39:34.640 align:start position:0%
 
 

00:39:34.640 --> 00:39:38.790 align:start position:0%
 
code<00:39:35.880><c> um</c><00:39:36.920><c> so</c><00:39:37.920><c> some</c><00:39:38.119><c> ideas</c><00:39:38.359><c> for</c><00:39:38.520><c> static</c>

00:39:38.790 --> 00:39:38.800 align:start position:0%
code um so some ideas for static
 

00:39:38.800 --> 00:39:41.150 align:start position:0%
code um so some ideas for static
analysis

00:39:41.150 --> 00:39:41.160 align:start position:0%
analysis
 

00:39:41.160 --> 00:39:43.430 align:start position:0%
analysis
um<00:39:42.160><c> con</c><00:39:42.480><c> functions</c><00:39:42.720><c> are</c><00:39:42.839><c> not</c><00:39:42.960><c> enforced</c>

00:39:43.430 --> 00:39:43.440 align:start position:0%
um con functions are not enforced
 

00:39:43.440 --> 00:39:46.870 align:start position:0%
um con functions are not enforced
currently<00:39:43.839><c> that</c><00:39:43.960><c> should</c><00:39:44.119><c> be</c><00:39:44.319><c> done</c><00:39:45.319><c> then</c><00:39:46.160><c> um</c>

00:39:46.870 --> 00:39:46.880 align:start position:0%
currently that should be done then um
 

00:39:46.880 --> 00:39:49.069 align:start position:0%
currently that should be done then um
what<00:39:47.000><c> is</c><00:39:47.200><c> also</c><00:39:47.680><c> quite</c><00:39:48.000><c> easy</c><00:39:48.319><c> I</c><00:39:48.440><c> think</c><00:39:48.720><c> without</c>

00:39:49.069 --> 00:39:49.079 align:start position:0%
what is also quite easy I think without
 

00:39:49.079 --> 00:39:51.870 align:start position:0%
what is also quite easy I think without
doing<00:39:49.440><c> the</c><00:39:49.599><c> whole</c><00:39:50.079><c> process</c><00:39:50.359><c> of</c><00:39:50.480><c> form</c><00:39:50.880><c> proofing</c>

00:39:51.870 --> 00:39:51.880 align:start position:0%
doing the whole process of form proofing
 

00:39:51.880 --> 00:39:54.510 align:start position:0%
doing the whole process of form proofing
is<00:39:52.079><c> to</c><00:39:52.880><c> determine</c><00:39:53.440><c> the</c><00:39:53.720><c> value</c><00:39:54.000><c> ranges</c><00:39:54.359><c> of</c>

00:39:54.510 --> 00:39:54.520 align:start position:0%
is to determine the value ranges of
 

00:39:54.520 --> 00:39:57.950 align:start position:0%
is to determine the value ranges of
local<00:39:55.200><c> variables</c><00:39:56.200><c> and</c><00:39:56.800><c> check</c><00:39:57.079><c> whether</c><00:39:57.760><c> some</c>

00:39:57.950 --> 00:39:57.960 align:start position:0%
local variables and check whether some
 

00:39:57.960 --> 00:40:01.390 align:start position:0%
local variables and check whether some
overflows<00:39:58.480><c> can</c><00:39:58.680><c> happen</c><00:39:59.160><c> so</c><00:40:00.160><c> if</c><00:40:00.440><c> some</c><00:40:00.960><c> addition</c>

00:40:01.390 --> 00:40:01.400 align:start position:0%
overflows can happen so if some addition
 

00:40:01.400 --> 00:40:04.109 align:start position:0%
overflows can happen so if some addition
was<00:40:01.599><c> protected</c><00:40:02.240><c> by</c><00:40:02.920><c> prior</c><00:40:03.520><c> prior</c><00:40:03.800><c> to</c><00:40:03.960><c> that</c>

00:40:04.109 --> 00:40:04.119 align:start position:0%
was protected by prior prior to that
 

00:40:04.119 --> 00:40:07.150 align:start position:0%
was protected by prior prior to that
checking<00:40:04.520><c> that</c><00:40:04.760><c> an</c><00:40:04.920><c> overflow</c><00:40:05.400><c> can</c><00:40:05.920><c> happen</c><00:40:06.920><c> and</c>

00:40:07.150 --> 00:40:07.160 align:start position:0%
checking that an overflow can happen and
 

00:40:07.160 --> 00:40:11.430 align:start position:0%
checking that an overflow can happen and
perhaps<00:40:07.920><c> also</c><00:40:08.920><c> checking</c><00:40:09.400><c> that</c><00:40:09.680><c> from</c><00:40:10.440><c> the</c>

00:40:11.430 --> 00:40:11.440 align:start position:0%
perhaps also checking that from the
 

00:40:11.440 --> 00:40:14.710 align:start position:0%
perhaps also checking that from the
value<00:40:11.880><c> range</c><00:40:12.880><c> some</c><00:40:13.720><c> equality</c><00:40:14.280><c> compar</c>

00:40:14.710 --> 00:40:14.720 align:start position:0%
value range some equality compar
 

00:40:14.720 --> 00:40:16.950 align:start position:0%
value range some equality compar
comparison<00:40:15.280><c> or</c><00:40:15.480><c> inequality</c><00:40:16.040><c> comparison</c><00:40:16.560><c> can</c>

00:40:16.950 --> 00:40:16.960 align:start position:0%
comparison or inequality comparison can
 

00:40:16.960 --> 00:40:21.150 align:start position:0%
comparison or inequality comparison can
never<00:40:17.240><c> be</c><00:40:17.400><c> true</c><00:40:17.839><c> and</c><00:40:18.079><c> then</c><00:40:19.079><c> we</c><00:40:19.480><c> see</c><00:40:19.880><c> that</c><00:40:20.880><c> the</c>

00:40:21.150 --> 00:40:21.160 align:start position:0%
never be true and then we see that the
 

00:40:21.160 --> 00:40:23.270 align:start position:0%
never be true and then we see that the
developer<00:40:21.599><c> did</c><00:40:21.760><c> some</c><00:40:21.880><c> error</c><00:40:22.240><c> there</c><00:40:22.440><c> so</c><00:40:23.040><c> some</c>

00:40:23.270 --> 00:40:23.280 align:start position:0%
developer did some error there so some
 

00:40:23.280 --> 00:40:25.630 align:start position:0%
developer did some error there so some
code<00:40:23.520><c> is</c><00:40:23.680><c> is</c><00:40:23.800><c> not</c><00:40:23.920><c> reachable</c><00:40:24.319><c> at</c>

00:40:25.630 --> 00:40:25.640 align:start position:0%
code is is not reachable at
 

00:40:25.640 --> 00:40:28.550 align:start position:0%
code is is not reachable at
all<00:40:26.640><c> um</c>

00:40:28.550 --> 00:40:28.560 align:start position:0%
all um
 

00:40:28.560 --> 00:40:30.510 align:start position:0%
all um
what<00:40:28.680><c> is</c><00:40:28.800><c> also</c><00:40:29.000><c> useful</c><00:40:29.359><c> I</c><00:40:29.480><c> think</c><00:40:29.720><c> is</c><00:40:30.000><c> to</c>

00:40:30.510 --> 00:40:30.520 align:start position:0%
what is also useful I think is to
 

00:40:30.520 --> 00:40:33.470 align:start position:0%
what is also useful I think is to
estimate<00:40:30.920><c> the</c><00:40:31.079><c> gas</c><00:40:31.319><c> usage</c><00:40:31.800><c> of</c><00:40:32.599><c> of</c><00:40:32.839><c> of</c><00:40:33.160><c> at</c><00:40:33.280><c> some</c>

00:40:33.470 --> 00:40:33.480 align:start position:0%
estimate the gas usage of of of at some
 

00:40:33.480 --> 00:40:36.270 align:start position:0%
estimate the gas usage of of of at some
Source<00:40:33.800><c> line</c><00:40:34.160><c> so</c><00:40:35.079><c> that</c><00:40:35.440><c> while</c><00:40:35.760><c> writing</c><00:40:36.079><c> a</c>

00:40:36.270 --> 00:40:36.280 align:start position:0%
Source line so that while writing a
 

00:40:36.280 --> 00:40:38.829 align:start position:0%
Source line so that while writing a
contract<00:40:37.280><c> you</c><00:40:37.520><c> actually</c><00:40:37.800><c> see</c><00:40:38.240><c> how</c><00:40:38.440><c> expensive</c>

00:40:38.829 --> 00:40:38.839 align:start position:0%
contract you actually see how expensive
 

00:40:38.839 --> 00:40:41.190 align:start position:0%
contract you actually see how expensive
the<00:40:39.000><c> line</c><00:40:39.280><c> is</c><00:40:39.599><c> and</c><00:40:39.880><c> you</c><00:40:40.160><c> can</c><00:40:40.720><c> perhaps</c><00:40:41.000><c> change</c>

00:40:41.190 --> 00:40:41.200 align:start position:0%
the line is and you can perhaps change
 

00:40:41.200 --> 00:40:43.630 align:start position:0%
the line is and you can perhaps change
it<00:40:41.319><c> to</c><00:40:41.480><c> be</c><00:40:42.119><c> less</c>

00:40:43.630 --> 00:40:43.640 align:start position:0%
it to be less
 

00:40:43.640 --> 00:40:45.670 align:start position:0%
it to be less
expensive

00:40:45.670 --> 00:40:45.680 align:start position:0%
expensive
 

00:40:45.680 --> 00:40:50.750 align:start position:0%
expensive
and<00:40:46.680><c> what</c><00:40:47.200><c> we</c><00:40:47.400><c> probably</c><00:40:47.760><c> also</c><00:40:47.960><c> want</c><00:40:48.359><c> is</c><00:40:49.160><c> uh</c><00:40:49.400><c> if</c>

00:40:50.750 --> 00:40:50.760 align:start position:0%
and what we probably also want is uh if
 

00:40:50.760 --> 00:40:53.230 align:start position:0%
and what we probably also want is uh if
you<00:40:51.760><c> issue</c><00:40:52.040><c> a</c>

00:40:53.230 --> 00:40:53.240 align:start position:0%
you issue a
 

00:40:53.240 --> 00:40:56.430 align:start position:0%
you issue a
transaction<00:40:54.240><c> you</c><00:40:54.440><c> have</c><00:40:54.599><c> to</c><00:40:55.200><c> set</c><00:40:55.960><c> the</c><00:40:56.119><c> gas</c>

00:40:56.430 --> 00:40:56.440 align:start position:0%
transaction you have to set the gas
 

00:40:56.440 --> 00:40:59.270 align:start position:0%
transaction you have to set the gas
value<00:40:57.079><c> and</c><00:40:57.400><c> and</c><00:40:58.160><c> you</c><00:40:58.400><c> probably</c><00:40:58.720><c> want</c><00:40:58.839><c> to</c><00:40:59.079><c> have</c>

00:40:59.270 --> 00:40:59.280 align:start position:0%
value and and you probably want to have
 

00:40:59.280 --> 00:41:01.910 align:start position:0%
value and and you probably want to have
some<00:40:59.560><c> estimate</c><00:41:00.079><c> on</c><00:41:00.640><c> how</c><00:41:00.880><c> expensive</c><00:41:01.280><c> it</c><00:41:01.440><c> is</c>

00:41:01.910 --> 00:41:01.920 align:start position:0%
some estimate on how expensive it is
 

00:41:01.920 --> 00:41:03.670 align:start position:0%
some estimate on how expensive it is
some<00:41:02.480><c> lower</c><00:41:02.800><c> and</c><00:41:02.920><c> upper</c>

00:41:03.670 --> 00:41:03.680 align:start position:0%
some lower and upper
 

00:41:03.680 --> 00:41:08.390 align:start position:0%
some lower and upper
bound<00:41:04.960><c> um</c><00:41:05.960><c> this</c><00:41:06.160><c> of</c><00:41:06.599><c> course</c><00:41:07.599><c> will</c><00:41:07.839><c> in</c><00:41:07.960><c> the</c><00:41:08.079><c> end</c>

00:41:08.390 --> 00:41:08.400 align:start position:0%
bound um this of course will in the end
 

00:41:08.400 --> 00:41:10.430 align:start position:0%
bound um this of course will in the end
so<00:41:08.599><c> the</c><00:41:08.720><c> actual</c><00:41:09.040><c> gas</c><00:41:09.359><c> cost</c><00:41:09.680><c> will</c><00:41:09.880><c> in</c><00:41:10.000><c> the</c><00:41:10.119><c> end</c>

00:41:10.430 --> 00:41:10.440 align:start position:0%
so the actual gas cost will in the end
 

00:41:10.440 --> 00:41:12.950 align:start position:0%
so the actual gas cost will in the end
depend<00:41:10.720><c> on</c><00:41:10.960><c> the</c><00:41:11.119><c> order</c><00:41:11.720><c> transactions</c><00:41:12.280><c> are</c>

00:41:12.950 --> 00:41:12.960 align:start position:0%
depend on the order transactions are
 

00:41:12.960 --> 00:41:14.829 align:start position:0%
depend on the order transactions are
introduced<00:41:13.440><c> into</c><00:41:13.599><c> the</c><00:41:13.720><c> blockchain</c>

00:41:14.829 --> 00:41:14.839 align:start position:0%
introduced into the blockchain
 

00:41:14.839 --> 00:41:17.670 align:start position:0%
introduced into the blockchain
so<00:41:15.839><c> yeah</c><00:41:16.119><c> will</c><00:41:16.319><c> not</c>

00:41:17.670 --> 00:41:17.680 align:start position:0%
so yeah will not
 

00:41:17.680 --> 00:41:20.670 align:start position:0%
so yeah will not
be<00:41:18.680><c> uh</c><00:41:18.839><c> absolutely</c><00:41:19.319><c> correct</c><00:41:19.760><c> but</c><00:41:20.079><c> I</c><00:41:20.200><c> think</c>

00:41:20.670 --> 00:41:20.680 align:start position:0%
be uh absolutely correct but I think
 

00:41:20.680 --> 00:41:23.349 align:start position:0%
be uh absolutely correct but I think
it's<00:41:20.920><c> it's</c><00:41:21.480><c> so</c><00:41:21.760><c> we</c><00:41:21.880><c> can</c><00:41:22.119><c> provide</c><00:41:22.480><c> good</c><00:41:23.119><c> uh</c>

00:41:23.349 --> 00:41:23.359 align:start position:0%
it's it's so we can provide good uh
 

00:41:23.359 --> 00:41:27.710 align:start position:0%
it's it's so we can provide good uh
lower<00:41:23.640><c> and</c><00:41:23.760><c> upper</c><00:41:24.000><c> bonds</c><00:41:24.599><c> for</c><00:41:24.800><c> the</c><00:41:24.960><c> gas</c><00:41:25.160><c> usage</c>

00:41:27.710 --> 00:41:27.720 align:start position:0%
lower and upper bonds for the gas usage
 

00:41:27.720 --> 00:41:31.450 align:start position:0%
lower and upper bonds for the gas usage
okay<00:41:28.599><c> that's</c><00:41:28.839><c> it</c>

00:41:31.450 --> 00:41:31.460 align:start position:0%
okay that's it
 

00:41:31.460 --> 00:41:38.039 align:start position:0%
okay that's it
[Applause]

