►
From YouTube: .NET Design Review: GitHub Quick Reviews
Description
00:-52:-10 - Approved: Evolving EventCounter API https://github.com/dotnet/corefx/issues/36129#issuecomment-479128603
01:10:58 - Approved: SSLStream Allow Configuration of CipherSuites https://github.com/dotnet/corefx/issues/33809#issuecomment-479132747
01:24:49 - Approved: Simpler way to specify leaveOpen in StreamWriter constructor https://github.com/dotnet/corefx/issues/8173#issuecomment-479149933
B
B
You
know
support,
so
they
have
a
new
different.
They
have
a
different
kind
of
ID
than
the
one
we
were
using
previously
and
we
wanted
to
basically
add
the
capability
of
supporting
different
IDs
in
system
dot
activities,
so
I
system
dot
activity
is
the
thing
that
you
know
allows
us
to
flow.
You
know
what
you're
doing
through
the
system,
and
not
surprisingly,
when
a
request
comes
in
or
requests
leave.
B
You
want
information
to
come
in
via
those
requests
and
sort
of
flow
through
the
system
and
then
also
be
propagated
to
any
request
that
you
make
to
other
machines,
and
so
people
like
a
peon
sites
are
very
interested
in
making
this
stuff
work
and
that's
the
partner,
that's
being
blocked.
If
we
don't
do
this,
so
we
did.
The
first
round
was
just
enough.
B
So
that
they
could
support
the
new
style
of
ID,
but
then
the
next
thing
that
we
knew
that
we
also
wanted
to
do
in
300
was
to
do
sampling
because
they
wanted
it
on
all
the
time.
But
you
can't
have
it
on
all
the
time
unless
you
sample,
because
it's
just
too
expensive
otherwise-
and
it
turns
out
also
that
the
w3c
ID
has
support
for
a
sampling
bit.
So
the
idea
is
along
with
the
ID
there's
this
Flags
field.
B
There
are
eight
bits
in
the
flags
field,
but
only
one
of
them
is
defined
so
far
and
that
bit
basically
says
this
is
a
request
that
that
I
think
you
should
log.
It's
actually
only
were
cool
a
desire
that
it
be
because
if
you
send
too
many
of
these,
the
guy
has
the
right
to
say.
You
are
sending
me
way
too
many
requests
for
recording
I'm
only
going
to
do
some
of
them,
but
Phil
the
idea
bility
to
propagate
that.
That
desire
is
valuable.
So
that's
what
the
first,
the
first
part
of
this.
B
There
are
two
parts
of
the
API
change
and
the
first
part
is
basically
activity
needs
to
have
these
flags
as
one
as
part
of
its
state
in
the
same
way,
that
is,
it
have
the
ID.
We
also
wanted
to
have
the
flags
you
should
be
when
you
are
bringing
activities
in.
So
you
have
a
your
parent
ID.
You
should
be
able
to
pass
in
the
flags.
B
We
also
allow
you
to
set
them
just
because
they're
these
flags
don't
well
it's
quite
possible
that
you
want
to
turn
the
recording
a
bit
on
halfway
through
you've
decided
that
you
know
what,
for
whatever
reason,
I've
determined
that
this
activity
is
important
and
so
I
want
to
turn
on
the
recording,
because
otherwise
no
one
can
turn
off
a
recording
bit.
There
has
to
be
some
mechanism
to
turn
on
the
recording
bit,
so
we
allow
so
we
create
this
new
Flags
property.
B
So
that's
so
we
may
eat
up
any
noon
which
has
a
1-bit
defined
so
far,
and
then
we
created
this
W
CID
Flags,
which
is
pretty
much
just
a
getter
setter,
and
then
we
added
a
recording
bit
and
a
recording
property,
and
all
that
does
is
mask
off
the
recording
bit
of
the
flags.
So
it's
it's
a
complete
convenience.
We
could
get
rid
of
it,
but
it's
also
the
main
thing
that
you
do
with
these
flags,
and
so
it
was
valuable
to
have
that
and
that's
pretty
much
it.
B
C
B
You
know
well
strongly
tight
versions,
because
people
prefer
strongly
tied
versions,
it's
less
error-prone
and
it's
and
can
be
more
efficient.
So
that's
the
first
half
and
I.
Don't
think,
there's
a
whole
lot
on
there.
Okay,
can
you
slide
down
a
little
bit
more?
If
money
does
it'll
get
my
own
screen.
B
You
know
a
diagnostic
source
already
has
a
is
enabled
and
write
event,
and
we
basically
are
having
two
more
on
activity
import
and
on
activity
export,
and
then
there
needs
to
be
a
way
that
the
client
of
these
things
can
inject.
Those
like
say
these
are
the
ones
I
want,
and
that's
so
we
already
had
subscribed
methods
that
took
you
know
the
is
enabled
and
the
observer.
You
know
the
yeah,
the
observer,
but
and
so
now
we
also
allow
you
to
provide
an
on
activity,
import
and
export.
B
If
you
don't
need
to
do
sampling,
if
you,
if
somebody
else
is
doing
that,
for
you
probably
don't
need
these,
the
other
nice
thing
that
these
things
do
is
that
it
gives
them
a
hook
at
a
very
nice
place,
so
that
if
we
have
forgotten
anything
or
they
want
to
change
the
semantics
or
whatever
they
actually
have
a
quite
a
bit
of
flexibility
to
basically
hack
and
and
beat
us
into
submission,
because
they
have
a
hook
at
the
right
spot.
So
they
might
even
use
that.
B
But
the
goal
of
this
really
is
for
them
to
do
small
amounts
of
policy
and
pretty
much
what
that
means
is
setting
the
recording
bit
and
that's
about
it.
So
again,
these
things
as
far
as
what's
inside
activity
does
very
little.
The
SUBSCRIBE
remembers
the
delegates
that
you
pass
to
it
and
then,
if
someone
actually
calls
one
of
these
things,
it
forwards
it
on
to
every
client
in
turn,
to
get
his
chance
to
do
something
at
that
point
in
time
to
use
the
hook.
D
D
B
The
so
on
activity,
exporting
import
are
things
that
an
instrumentation
site
will
do
so,
for
example,
when
when
HTTP
is
reading
in
a
request,
we
will
modify
the
HTTP
code
site
to
not
only
do
it
is
enable
check
and
to
write,
maybe
a
something,
but
we
will
also
in
this
case,
do
it
all
an
activity
import
now.
What
will
happen
is
if
any
subscriber
to
a
you
know
to
a
diagnostic
listener
for
the.
What
does
that
do
when
I
called
that
function?
B
B
You
know
that
we
just
call
it
object
and
that
that
object
will
change
depending
on
the
code
site
so
for
an
HTTP
request
coming
in
it's,
it's
gonna,
be
whatever
holds
the
state
coming
in
and
if
there
isn't
one
conveniently
exists,
you
kind
of
have
to
make
one.
Someone
will
have
to
make
one,
and
that
would
be
unfortunate
because
it's
another
object
that
has
to
be
allocated.
But
right
now
the
only
instance
that
we
know
of
is
HTTP
request
and
it
already
exists,
and
so
it's
fine
did
I
answer
your
question.
D
B
Okay,
so
in
diagnostic
listener
his
implementation
is
I
have
a
it's
already
the
case
that
diagnostic
listener
had
this
list
of
subscribers.
That
list
of
subscribers
had
the
right
event
and
he
is
enabled
for
each
subscriber.
Each
subscriber
now
also
has
a
on
activity
import
and
on
activity,
export
delegate,
and
so
what
the
diagnostic
listeners
implementation
of
on
activity
import
does
is
just
spin
through
all
of
those
subscribers
giving
them
a
chance
to
to
you
know,
have
the
cold
got
it
so.
B
Where
we've
all
cited
doing
so,
you
are
they're
very
much.
They
feel
in
some
ways
like
right
object,
but
the
difference,
and
we,
if
you
squint
properly
and
you
you
can-
you
can
actually
try
to
make
this
work
by
saying.
I
have
special
right
events
or
something
that
you
call
a
particular
point.
So
these
are
your
call-outs,
but
we,
you
know
after
thinking
about
that,
for
a
little
bit,
we
decided
that
was
a
hack,
because
the
the
point
of
these
is
the
modify
state.
The
point
of
right
is
not
to
modify.
B
State
is
only
to
sort
of
log
in
to
sort
of
sent
them
something
down
the
pike
and,
moreover,
as
we
expect
right
to
be
very
common,
we
expect
any
client
to
override
right.
You
do
stuff
with
we
expect
point.
Oh
one
percent
of
the
people
who
are
subscribers
to
care
about
this.
If
they
don't
care
about
sampling
and
really
sort
of
advanced
mutation
of
stage
and
wanting
the
hooks,
then
they
don't
need
to
do
any
of
this,
which
is
another
advantage
of
not
burying
it
in
the
existing
API.
B
B
Trying
to
follow
the
eye
observable
pattern,
but
then
you
need
more
callbacks
besides
just
next,
and
so
these
are
sort
of
those,
and
it
is,
it
definitely
does
have
like
things
that
you
don't
like,
like
you
know,
subscribe
is
starting
to
get
painful
like
it's
already
got
four
things:
what
if
we
needed
another
one,
why
go
now?
It's
five
and
yeah
and
the
the
value
is?
Is
that
or
the
you
know
the
mitigation
to
that
is
that
very
very
few
people
will
ever
care
about
this.
B
B
Well,
making
it
my
observer,
makes
it
even
more
complicated.
Like
my
observers
are
having
implemented
than
myself.
I
observers
I
have
it,
have
a
non-trivial
overhead
like
I
never
did
yeah,
and
so
I
did
not
want
to
make
it
more
complicated
than
it
needed
to
be.
Is
why
I
did
it?
You
could
have
imagined
them
being
observers.
B
D
B
B
Oh
that
already
existed,
and
so
a
diagnostic
listener
has
to
or
diagnostic
source
as
two
fundamental
api's.
One
is
right,
yeah
and
the
only
reason
why
right
isn't
enough
is
because
what,
in
order
to
write,
you
need
to
create
a
payload
object,
and
so
you
don't
want
to
do
that
when
it's
off,
and
so
we
have
is
enabled
and
right
is
they
is
the
ones
that
existed
already
so
there's
already
others
subscribe
overloads
that
went
this
far
and
in
fact
all
I
did
was,
you
know,
make
two.
D
B
B
B
And
I
think
that's
pretty
much
it.
That's
the
the
name
of
the
thing.
I,
don't
know
if
you
care
about
the
on
or
but
it
feels
reasonable.
It
really
is
when
you're
importing
or
exporting
activity
when
it's
coming
from
the
outside
world
or
coming
in
from
the
outside
world
or
leaving
to
go
to
the
outside
world,
and
there
is
at
least
a
little
bit
of
documentation
on
how
it's
supposed
to
be
used.
F
B
B
F
F
B
A
D
D
B
H
G
G
B
Is
it
is
a
fairly
likely
situation
in
which
all
you
wanted
to
do
was
fiddle
with
the
activity
Oh
like
we've
already
got
the
we
put
the
payload
object
there,
because
you
you
some
things
will
have
been
transferred
to
the
activity
by
us
and
if
that's
enough
to
do
what
you
needed
to
do
is
for,
and
in
particular
recording
is
likely
to
be
that
we've
already
transferred
the
recording
bits.
So
then
all
you
have
to
do
is
like
decide
to
turn
it
on
or
decide
to
turn
it
off.
B
D
That's
called
very
very
very
frequently
once
we
subscribe,
it's
the
most
frequently
called
API,
so
there
is,
there
is
a
another
work
item
that
we
should
probably
open
up
as
a
result
of
this,
which
is
the
ability
to
proactively
get
a
delegate.
I
know
we
have
a
ton
dynamic
method,
but
right
now,
what
will
happen
is
if
you
create
a
delegate
to
in
this
enable
function
and
it
hasn't
been
jetted.
D
Yet
the
delegate
will
always
always
always
point
to
the
priest
on
even
after
the
methods
in
general,
which
means
you
have
several
indirection
before
the
method
even
gets
invoked,
always
for
the
remainder
of
the
application.
If
we
had
the
ability
to
create
the
delegate,
we
can
make
that
better.
I
mean
it's
not
it's
not
necessary
for
this.
Obviously,
it's
just
something
we
could
do
to
make
this
even
better
right,
but
that
can
be
done
when
I'm
gonna.
D
B
B
A
F
F
A
J
B
F
B
A
B
C
C
A
K
K
B
A
K
So
the
proposal
is
to
add
three
new
classes
that
are
similar
to
have
encountered,
but
are
heaps
lucky
differently,
because
you've
encountered
me
not
behave,
not
so
well
for
certain
kinds
of
counters
or
metrics
so
and
also
extending
event
counter
the
current,
even
counter
API
to
add
to
new
public
surfaces.
So
the
property
disappointing
is
there
so
that
you
can
add
the
gun
counters.
This,
like
literally
like
a
name
for
this
point
purposes.
K
So
as
of
now,
you
can
create
an
event
counter
with
a
name,
but
let
the
thing
you
want
to
display
it
in
some
kind
of
like
long
viewer
that
wants
to
like
be
used
on
a
CLI
setting
and
if
you
want
to
enable
it,
with
the
mean
that
it
was
provided
with.
But
one
of
this
boy
with,
like
the
nice
like
with
spaces
and
things
like
that
them
may
not
work
in
work
very
nicely
in
like
a
CLI
settings.
So
property
was
added
there
so
that
they
can
that,
if,
if
needed
so.
A
B
A
A
Only
reason
I'm
asking
is
because
if
you
say,
if
you
call
something
display
name
and
then
you
say,
is
used
in
the
Condors
of
the
CLI,
that
I'm
gonna
be
hearing,
is
that
you
end
up
with
scripts
that
refer
to
them
right,
in
which
case
it's
no
longer
a
display
name,
but
it's
actually
like
programmatic
name.
But
if
you
don't
expect
that
to
be
the
case
and
I
think
the
name
is
explained
in
this
one
yeah,
that's
more
like
a
fertility
thing.
A
K
And
the
next
one
was
metadata,
so
this
is
mainly
because
so
initialization
may
be
about
something
that
even
with
better
data,
so
it's
basically
an
arbitrary
key
value
pair
that
can
be
added
optionally
again
and
that
gets
reported
with
the
payload
of
the
encounter.
K
B
The
units
of
retinol
units
prefer
units
and
anything
with
anything
that
be
equal.
No,
the
site
the
instrumentation
site
knows
that
would
be
useful
for
the
viewer
to
know
you
can
pipe
through
this.
That's
the
idea
and
we've
already
had
it
several
instances
of
this
kind
of
data
that
would
be
handy
formatting
if
I
prefer
the
number
to
be
an
X
or
something
I.
Don't
know.
K
And
then
there's
a
new
class
called
hole
encounter,
which
is
a
variation
of
the
event
counter
if
yeah,
but
this
is
this
gets
created
with
a
delegate
that
they
can
use
to
get
the
metrics
out
of
instead
of
explicitly
having
to
call
right
on
it.
So.
B
So
the
original
event
counter
was
designed
for
a
particular
kind
of
instrumentation
case,
which
is
I,
have
a
lot
of
things
that
are
firing
many
times
a
lot.
So,
every
time
a
request
comes
in,
you
want
to
be
able
to
just
say
to
the
event
counter:
ok,
log-log
that,
but
don't
actually
like
send
an
event.
That's
too
expensive.
So
that's
what
it
does,
and
so
it's
expecting
right
right,
right,
right
right,
every
time
that
thing
changes,
you
tell
me
that
something's
that
the
counter
has
changed.
B
It
turns
out
that
in
many
of
the
cases
we
have
a
different
thing,
for
whatever
reason
someone
has
already
got
a
number:
it
goes
up
and
down
it's
the
amount
of
memory
in
the
process,
its
fee.
It's
the
working
set,
it's
something
else.
Somebody
else
has
done
that
for
me
and
so
I
don't
actually
have
something
that
says:
write,
write,
write
or
well
I'm
changing,
and
so
we
want
and
that
we
want
to
plug
into
those
kind
of
scenarios
and
that's
what
this
is
for.
B
You
can
see
that
it
doesn't.
It
has
a
very
impoverished
API.
You
just
basically
give
it
this
function
that
equal
call
when
it
wants
the
pole
when,
when
the
client
wants,
you
know
once
a
second
or
whatever
it
told
it
to
do,
it
will
call
this
function
and
then
will
ask
whatever
thing
was
already
accumulating:
that
piece
of
data
to
give
it
back
to
it
and
so
I
it
really
just
pulling
counter,
doesn't
do
much
except
link
the
two
things
together.
B
Like
so
Venkanna
already
has
this
notion
that
the
controller
of
the
camera
and
other
end
can
give
it
commands
and
in
particular
decide
what
the
polling
interval
is
or
I
want
a
poll.
Now,
please
give
it
to
me
now.
This
is
sort
of
what
you
need
on
the
instrumentation
side,
I'm
at
an
intimate
station
site.
What
do
I
need
to
do
and
pretty
much
I
just
need
to
provide
the
delegate,
pull
back
the
whole
wasn't
sold
before
disclose.
We
didn't
do
it
never.
B
N
N
B
B
F
A
K
A
All
this
has
been
fermentation,
I
think
it's
easier
for
customers
if
they
have
a
hierarchy
where
you
have
related
things
together,
because
we're
Hawks,
they
show
you.
If
you
already
have
strike,
you
see
the
derive
times,
alright,
okay
and
I
think
it
makes
a
little
bit
easier,
especially
like
things
like.
Oh,
we
should
always
have
a
display.
Name
should
always
have
a
name.
Well,
you
just
prescribed
it
on
the
base
and
cities.
I
have
striking
you
better,
have
them,
and
then
all
you
pass
them
and
nominations
for.
A
C
F
J
G
K
That
was
yeah
I
just.
F
B
B
There
was
a
new
variant
that
we
were
trying
to
preserve.
Then
it
makes
more
sense
to
sort
of
say,
hey.
You
said
it
once
and
then
we'll
validate
it.
Why
flow
being
returned
can
get
metric
function
rather
than
double
that
looks
like
it's.
What
he
that
kind
of
takes
a
Guzman,
yeah.
Okay,
we
were
kind
of
following
suit.
There.
C
G
D
A
B
B
B
B
B
B
Q
E
R
B
E
A
A
F
Does
it
make
sense
for
the
since
the
event
I
mentioned
the
name?
Does
it
make
sense
for
the
event
counter
to
have
a
get
exposing
the
event
source
off
of
it
again?
This
is
good.
We'll
get
him
to
get
me.
What
did
we
just
usually,
if
something
is
given
the
instructor
parameter,
we
had
a
good
only
proper
time.
B
The
other
one
that
has
value
in
the
sense
that
you
might
want
to
send
events
to
the
same
place
you
were
sending
the
counters
to,
and
so
knowing
what
that
was
after
the
fact.
Otherwise,
you
would
have
to
somehow
get
a
contract
with
whoever
created
it
to
sort
of
give
it
to
you
as
well,
so
they
all
taken
events
worth
right.
Yes,.
J
B
B
B
This
is
about
different
instrumentation
scenarios,
and
so
the
back
end
still
looks
the
same,
which
is
that
somebody
subscribes
either
through
etw
or
an
event
listener
and
says.
I
would
like
to
get
the
information
out
of
these
things
and
says.
I
would
like
to
get
this
information
every
10
seconds
or
whatever
or
I'd
like
the
information
right
now,
and
then
the
counter
gives
you
back
a
payload
that
just
it
actually
keeps
statistics.
It
keeps
the
man
in
the
max
and
the
average,
so
is
expectation.
B
A
C
A
R
It
the
the
pattern
that
we
established
is
that
all
of
these
counters
are
fields
in
some
event
source.
So,
if
you
imagine
that
you
are
the
library
author
or
you
know,
whoever
who
decides
to
create
an
event
source,
because
you
want
to
provide
telemetry
to
somebody
nice
and
then
you
decide
that
you
want
to
have
a
particular
counter.
The
pattern
that
we
set
is
you
just
declare
a
field
of
this
type
in
your
event
source
and
you
new
up
one
of
these
objects
and
for
the
case
of
pole
encounter
that's
it.
R
A
R
B
So
this
incrementing
event
counter
and
I
mean
it's
very
similar
to
event
counter.
It's
just
that
the
meaning
of
what
gets
done
with
the
data
is
different
and,
and
initially
we
sort
of
say
wow.
You
could
do
that
with
metadata
or
other
things,
and
then
effectively.
We
decided
that
it
was
a
big
enough
difference
that
it
was
worth
having
the
different
name.
You
know
and
forcing
someone
to.
B
So
effectively
there
are
counters
that
accumulate
over
time
and
what
you
usually
want
under
those
circumstances,
is
you
want
to
create
rates?
You
want
to
say
I've
exceptions
and
I
would
like
exceptions
per
minute
or
exceptions
per
hour,
but
the
idea
is
that
we
I
don't
really
want
exceptions
because
that's
an
ever-increasing
number
or
you
have
something
like
total
working
set.
That's
a
number
and
it
like
doesn't
always
increase
monotonically
forever
and
those
are
two
different
scenarios
and
you
do.
We
should
highlight
the
fact
that
those
are
sort
of
different.
B
B
B
This
is
sort
of
a
default
that
that
gets
piped
or
as
metadata
to
the
viewer
is,
and
so
you
kind
of
don't
expect
it
to
change
over
time.
You
expect
it
to
you
know
it's
an
attribute
of
the
deed
of
metric,
like
what
I'm
doing
exceptions.
How
many
you
know
do
I,
do
I
want
to
permit
him
or
do
our
and
it's
sort
of
a
guess
by
the
the
guy
who's
in
surveying
the
site.
But
you
know
I
would
rather
have
this
probably
per
minute
than
per
second,
but
it's
a
guess
and
it'll.
B
R
F
Every
counter
said
it
so
should
it
be
a
constructor
parameter
as
well
as
a
set
of
all
property,
but
you
would
anyone
create
one
of
these?
In
never
said
it
yeah.
B
F
F
I
feel
that
Windows
has
this
notion
of,
like
you
had
to
had
one
of
you
bumped
by
one
that
he
used
as
a
step
function
of
like
oh
I
need
to
go.
We
calculate
the
rate
from
hell.
B
R
F
R
F
B
So
it
poles,
but
it
also
isn't
a
number
that
is
bounded.
It's
a
number
that
monotonically
increases
so
effectively.
There
is
a
grid
here,
you
know,
does
the
value
monotonically
increase
and
really
what
you
want
our
rates
and
or
is
it
a
value
that
sort
of
hovers
and-
and
you
know,
moves
up
and
down
on
its
own
and
stays
in
bounds?
B
A
R
Forgotten
are
we
yeah?
We
did.
We
did
discuss
accumulating.
The
concern
was
that
accumulating
is
a
slightly
more
generic
term,
which
arguably
all
of
these
things
do
as
in
all
of
them.
You
have
data,
that's
coming
in
in
little
packets
and
you're
accumulating
it
and
summarizing
it
and
then
sending
out
a
summary.
So
incrementing
sounded
more
specific
as
in
it
is
a
number
that
increases
I.
F
Mean
incrementing
on
the
previous
one
made
sense,
because
you
had
a
method
called
increments
that
defaulted
to
one,
which
is
the
thing
that
one's
usually
increments
body.
Yes,
this
one
is
assuming
based
on
the
previous
name,
I
assume
that
you
hold
this
function.
You
add
it
to
your
accumulator
the
function,
ideally,
if
you
called
it
immediately
again,
should
return
zero
and
it
can
sensibly
return
negative,
maybe-
and
so
there's
this
isn't
an
increment,
because
there's
never
a
notion
of
one
of
the
expected
stack
so.
R
S
R
I'm
gonna
have
to
run
here
in
just
a
second,
but
actually
so
the
get
count
function.
It's
expected
that
that
number
it's
returning,
you
is
some
monotonically
increasing
number
over
time.
So
we're
actually
so
the
get
go
ahead.
The
get
count
function
doesn't
have
to
reset
the
counter
that
it
retrieved
for
you.
It's
just
you
know,
there's
some
number
of
exceptions,
that's
just
forever
increasing
and
you
call
get
count
to
ask
what
that
current
number
is.
B
C
B
Off
bye,
guys
see
ya,
you
don't
want
to
see
an
ever
monotonically
increasing
number.
Even
though
that's
what's
being
returned
by
this
function,
you
want
it
broken
up
into
some
interval.
The
this
display
rate
time
scale
figure
out
what
it
was
at
the
beginning
of
that
figure
out
what
it
was
at
the
end
subtracted
to
get
that
Delta
create
a
rate
and
display
that
number
I
know
what.
P
P
B
Be
the
goal
of
these
four
classes
were
a
belief
that,
by
trying
to
make
one
thing
that
tries
to
do
everything,
you
actually
confuse
people
that
it's
hard
to
do
the
right
thing,
because
they
actually
are
different
scenarios
and,
and
so
what
we
preferred
was
each
one
smaller
things.
That
only
did
one
scenario
once
you
picked
it.
You
know
it
becomes
very
obvious
what
to
do,
and
you
don't
have
to
sort
of
think
too
hard.
F
B
B
F
Within
I
can
gloss
over
the
type
name
and
say
that
you
have
an
intimate
encounter,
you
had
a
whole
encounter
and
this
is
the
incrementing
pol
encounter,
and
it
makes
sense
that
you
want
to
use
it
and
then
I
would
call
the
metric.
The
one
we
had
before
for
polling
I
would
call
a
metric
provider
and
I
would
call
this
one.
You
know
you
totally
meant
drop
by
total
yeah.
So
then
it's
it
says
in
the
name.
What
it
provides
us
that
totally
you
get
any
answer.
I
mean.
B
B
K
B
B
B
B
We
definitely
talked
about
raid,
the
danger
I
believe
the
reason
I
think
I'm,
remembering
one
thing,
which
is
that
the
rate
is
is
related
to
how
it
did
gets
displayed,
and
it's
completely
true,
but
we
felt
like
the
class
name,
should
reflect
how
it
was
collected.
You
know
what
I
mean
like
because
anyway,
because
that's
what
you
care
about
when
you're
using
these
api's
right.
Ultimately,
someone
will
display
a
rate,
but
you
don't
really
care
about
that
at
this
point.
B
A
F
Fine,
with
incremental
encounter
that
link
to
the
suggestion
I
would
have
is
this:
what's
currently
called
get
fountain
function?
I
would
call
something
like
total
value
provider
and
I
would
go
back
to
the
previous
BOE
encounter
and
I
would
call
it
metric
provider
or
value
provider
or
something
the
way
the
two
of
them
look
like.
They
were
designed
at
the
same
time,
and
you
know,
and
then
and
now
it
gives
a
much
better
sense
of
how
you
would
write
this
one.
So.
F
B
F
A
B
B
In
in
retrospect,
had
we
not
called
the
other
thing
event
counter?
We
would
have
preferred
that
we
called
it
like
him.
We
were
to
do
it
over
again.
We
wouldn't
call
it
event
counter.
We
call
it
metric
or
you
know
we
wouldn't
have
called
the
counter.
We
agree.
The
counter
is
a
bad
name
but
consistent.
You
know
there's
this
question
now
of
the
okay.
Is
this
one
completely
mean
differently
than
the
others
and
so
forth?
So
we
everything
is
counter,
but.
B
F
J
F
B
B
J
Know
cell
is
the
same
aren't
round
so
the
other
thing
I
generally
don't
like
about
doubles
and
floats,
is
that
half
of
all
representable
values
are
between
negative
one
and
positive
one.
So
you
end
up
with
most
states
being
there,
but
most
people
don't
like
working
with
values
that
are
normalized,
though
between
zero
and
one.
So.
A
B
So
you
should,
you
should
like
modify
a
little
bit
like
and
update
this,
so
that
it
has
all
the
modifications
and
then
send
out
another
round
saying
this
is
what
I'm
doing
you
know.
I
mean
here's.
What
I
think
is
now
is,
and
then
they
can
decide
to
turn
China
in
one
more
time
as
plain
yeah
feel
like
it
wasn't,
or
they
thought
about
it.
Me
I
really
hate
it.
You
know
it
might
be
fostering
well,
I,
don't
think
we
need
to
meet
for
that
right.
This
isn't.
B
I
S
R
P
There's
a
couple
of
reasons:
actually,
so
one
reason
is
like
8
implementations,
so
example
open
SSL,
the
NT
does
not
let
you
set
the
explicit
list
of
the
psychosis,
which
means
if
we
make
the
unit
above
object,
it
would
have
to
be
constructed
every
single
time
on
every
person.
But
that's
one
reason
and
the
other
reason
is
in
case
in
the
future.
We
had
some
more
options
in
here
like
filtering
other
things,
still
much
easier
to
handle
the
maternal
object.
D
F
So
I
know
the
reason
for
the
building
of
policy
is
that
Windows
needs
to
turn
the
allow
list
into
a
denialist
after
intersecting
over
the
system.
Opening
cell
needs
to
turn
the
allow
us
to
bring
configurator
an
apple.
It's
actually
convenient
work,
but
if,
if
we're
in
the
end
resulting
in
a
list
of
Cypress
Suites,
it
seems
like
the
policy
could
allow
the
discoverability
of
that
VM.
E
F
A
F
D
D
C
F
F
F
N
F
If
there
was
any
I
mean
I
know
that
we
have
the
SDL,
but
it's
a
point
in
time
thing:
that's
constantly
evolving
if
there
was
any
spending
ever
that
mentioned
like
these
are
the
recommended
cipher
suites.
As
of
gain
or
chasm
that
you
know
by
2010,
he
doesn't
like
painted
value,
then
we
could
reference.
I
like
this
is
this:
is
the
this
person
set
of
stuff.
F
G
D
A
F
F
You
get
back
the
exception
that
says
the
cypress
we
could
not
meet
ago.
She
ate
it.
If
you
look
at
the,
if
you
can
get
back
the
input
state
that
went
into
it
and
be
like,
oh
because
you
only
enabled
things
that
have
been
disabled
on
every
computer
in
the
world
for
the
last
ten
years,
then
that
would
help
you
up
what
understand
one,
what
weapons
of
some
learning
system
over
this.
D
Right
and
so
now,
I
based
on
that
scenario,
I'm,
not
understanding
what
this
caches
and
where
so.
This
is
gonna
have
to
do
something
with
the
underlying
implementations
to
transform
this
list
into
something
else.
If
I
was
implementing
my
own
thing
instead
of
a
should
be
client
that
took
one
of
these
who's
doing
what
and
when
well.
F
F
Because
this
is
building
itself
so
that
it
couldn't
work
for
SSL
stream,
because
that's
the
cell
stream
is
gonna,
be
it'll,
have
an
opaque
value.
That
is
the
right
answer
for
X
channel
on
Windows.
That
will
have
an
opaque
value.
That's
the
right
answer
for
open
SSL
on
Linux
and
it'll
have
a
right
answer:
they're,
opaque
value.
That
is
the
right
answer,
or
Apple's,
secure
transport
right.
D
F
D
F
F
F
F
G
G
F
I
might
be
going
up
where
we're
adding
it
to
the
client,
the
server
options
and
the
two
properties
that
take
it
and
putting
under
their
brows
will
never
on
them.
Like
that's
I'm
perfectly
fine
with
that,
because
we
really
want
literally
no
one
to
ever
call
this.
This
is
an
escape
valve,
so
they
stop
yelling
at
okay.
F
A
P
N
D
But
sending
editor
browsable
seems
like
a
really
big
stick:
I
mean
it
how
it
makes
it
entirely:
undiscoverable,
even
people
that
know
what
they're
doing
that
people
who
know
what
they're
doing
first
now
scoffs
yeah
that,
basically
that
this
is
being
implemented
for
very
specific
people
who
have
very
specific
scenarios
and
they
remain
in
contact
with
the
product
team
or
us
to
tell
them.
Please
don't
do
this,
but
if
you
really
need
to
do
it,
here's
how
you
do
it
and.
A
A
Right
but
I
think
the
question
is
like
you
know
it's
too
discoverable
in
dogs
right,
so
people
will
just
copy
and
paste
source
code.
They
will
just
work
like
I've
been
Nikki
the
typical
scenario
where
somebody
goes
on
Stack
Overflow
and
they
call
X
didn't
work,
but
copy
and
paste
is
Costa,
but
that
would
still
work
if.
A
On
Stack
Overflow
we
are
we're
screwed
because
yeah
and
that's
kind
of
the
the
thing
where
I
don't
know,
like
maybe
there's
better
options
to
that
I,
don't
know
what
they
are,
but
I.
Think
in
general,
like
you
know,
documentation
helps
obsoleting
api's
can
help
there's
various
ways
you
can
do
it
I
think
hiding.
It
is
generally
problematic
because
hiding
doesn't
give
you
any
sort
of
information
right.
It's
just
it's
just
not
there.
It
doesn't.
N
E
D
N
The
project
overflow,
like
you,
know
bad
guidance
or
one
post
or
something
like
that,
but
I'm
afraid
exactly
about
what
you
Steve
said.
Because
people
say
like
you
know
what
else
can
I
you
know
I
want
to
be
in
fully
in
charge.
What
should
I
set
like?
It
did
not
read
documentation
it
just
like
start
doing
dog
and
they
see
all
ciphers.
It's
oh
I
know
what
what
kind
of
cipher
suites
I
want.
I
know
what
kind
of
you
know.
Tls
versions
I
want,
and
you
know
preventing
something
that
is
useful.
Okay,.
A
O
A
I
think
honestly,
editor
brawls,
with
the
reason
I'm
not
a
fan,
is
that
it's
the
same
guidelines.
You
know
I,
think
I
told
the
story
before
but
like
office.
Try
this
at
some
point
like
making
office
more
discoverable
by
de-emphasizing,
really
use
functions
right
and
as
soon
as
you
have
to
hide
for
things
once
you
go
into
the
tool
options
and
save.
For
this
always
show
me
everything
which
kind
of
defeats
the
point
and
I
think
like
this
is
the
same
here
like
I
mean
there's
double
options.
A
A
I
would
say
the
reason
I
say
that
getting
any
was
able
to
follow.
Matic
is
if
what
you
said
earlier
is
true
right,
there's
some
customer
who
actually
talks
to
us
and
has
to
use
it
yeah.
If
they
actually
have
to
touch
the
code,
it
just
becomes
shitty
right
because
not
every
day
they
get,
they
don't
see
this.
They
will
talk
to
you
again
said
what
doesn't
show
up
and
until
he
sends
you
like.
No
it's
there
just
copy
and
paste
trading.
D
A
Q
A
P
N
Hold
people
to
be
on
or
as
defaults,
right
or
TLS
for
cipher
suites.
There
is
just
extreme
scenarios
versus
like
medical
devices,
whatnot
IOT,
where
they
really
want
full
control
because
they
know
better.
They
have
VPNs
on
top
of
that
and
whatnot
these
people
and
set
that
and
they
have
to
kind
of
review
and
maintain
their
code
very
carefully
yeah.
But
it's
kind
of
orderly
security
super
have.
D
Our
people,
your
that's,
what
it
is
you're
signing
yourself
up
for
ongoing
maintenance
abuse
of
this
right.
It's
not
something
you
can
just
sudden
for
get.
You
actually
have
to
be
willing
to
patch
your
application.
There
were
a
few
months
we
just
we
just
put
like
some
really
scary
language
and
the
summary
tag
and
the
intellisense.
E
A
Observation
has
several
topics,
but
I
think
so
the
one.
So
the
reason
I'm
asking
is
so
that
so
the
question
is
really.
What
are
you
protecting
yourself
from
right?
Because
if
what
Levi
said
is
true,
like
somebody
pushes
down
bad
guidance
whatever
morning,
we
give
people
they're
like
yeah
I,
know
I'm
not
supposed
to,
but
I
have
warning,
so
they
will
just
immediately
turn
it
off.
So
these
are
the
so
like
if
you
think
you
know
what
you're
doing
whatever
obstacle
we
put
in
your
way.
You're
like
yeah
but
I,
know
better.
A
You
override
it
anyways
right.
So
the
only
thing
you
need
to
do
is
to
protect
yourself
from
with
somebody
thinking
that
there
might
have
to
do
something
but
I.
Think
honestly,
like
cryptic
names
or
just
you
know
how
to
use
api's
like
this
one
here
I
plan
to
protection
like
you're,
not
accidentally
doing
this,
because
you
think
you're
getting
something
you're,
not
gay
I
think
this
is
like
I
think
this
is
most
applicable
for
AP.
Is
that
sound
very
attractive,
but
they
really
are
backward?
So
they
really
don't.
Do
we
busy?
A
N
A
That's
the
other
thing:
if
you,
if
you
publish
bad
guidance,
I
tell
people
to
set
it,
then
yes,
you're
screwing
yourself
right
like
there's
nothing!
You
can
do
about
that.
At
that
point,
you're,
better
off
sticking
the
API
and
say
yeah
I
mean
I
know
we
told
you
to
do
it,
but
it's
really
wrong
to
set
it
in
here.
That's
why
right,
but
I
think
this
goes
more
to
education
right
like
if
you
have
a.
If
you
have
a
problem
of
guidance.
A
D
A
M
D
Q
A
A
D
B
D
D
Q
D
P
A
L
N
Q
A
M
M
Pretty
old
one
so,
but
this
is
a
pain
point
that
people
been
asking
us
to
fix
and
it's
roughly
there,
but
there's
no
way
to
fix
it
perfectly.
But
the
whole
thing
where
you
want
to
leave.
You
want
to
leave
the
stream
open
when
you
create
a
stream
writer
or
stream
reader,
so
pain
at
the,
but
because
we
don't
actually
document
what
the
default
encoding
is
or
the
bumpy
fell
buffer
size.
A
The
exact
discussion
on
this
slide
like
how
does
this
actually
work
at
all,
because
the
thing
is,
if
you
use
a
stream
writer
over
a
stream
and
you
call
I
guess
the
rider
might
actually
make
more
sense.
But
the
problem
of
the
reader,
for
example,
was
that
it
would
buffer
itself
and
whether
the
rider
buffers
but
basically
well
you
can
get
into
these
weird
states
where
the
reader
buddy
could
shoot
more
from
the
streams.
You
can
then
reliably
use
the
stream
afterwards,
because
you
have
like
read
too
much
data
already
from
it.
D
Stream
reader,
the
leave
open,
is
useful
for
something
like
memories
stream,
where
you're
gonna,
you're,
gonna
rewind
it
or
you
know,
you're
reading
them
from
a
file
stream.
You're
gonna
read
it
multiple
times,
so
you
you
wrap
the
screen
reader
around
it,
you
leave
it
open
and
then,
after
you
close
the
reader,
you
say:
I'm
gonna,
reset
the
position
of
my
file
stream,
you're
right
that
you
wouldn't
say
new
stream
reader
file
stream
and
then
without
changing
the
position
on
the
file
stream.
Try
and
read
from
it
because
it
may
have
progressed
past
where
you.
M
Were
yeah
positioning
and
whenever
L,
so
this
this
is
about
reutilizing,
the
same
stream
with
different
with
reader
writer
or
resetting
it
or
whatever.
So
it's
just
when
you
do
want
to
use
it,
it's
a
pain
in
the
butt,
because,
basically,
you
end
up
good
looking
at
the
looking
at
the
source
code
and
trying
to
replicate
what
encode
and
buffer
size
are.
If
you
haven't
set
them.
Unfortunately,
our
existing
constructors
don't
make
it
easy
to
add
an
additional
constructor,
because
it
would
like
butt
heads
with
stream.
Reader
takes
a
true,
etc.
M
So,
like
the
recommendation,
is
down
at
the
bottom
after
we
discussed
this
for
a
few
years,
this
has
been
open
for
almost
three
but
like
down
at
the
bottom.
The
the
simplest
answer
to
let
people
do
this
is
to
basically
expose
our
existing
there's,
there's
already
an
internal
property
for
leave
open.
M
D
Q
D
A
You
would
have
to
compile
against
the.
However,
you
can
see
the
vehicles
to
begin
to
move,
so
you
cannot
retroactively
Li
make
that
work
with
net
seven
anyway,
you
would
have
to
make
that
these
changes
income.
Basically,
at
the
same
time,
yeah
they'd
have
to
go
over
Center,
which
still
seems
like
we
could
do
it.
A
I
mean
honestly.
I
would
prefer
that
over
anything
else
because
they're
these
scales
right.
So
if
you
have
to
add
in
force
argument
or
you
had
a
negative
force-
overload,
make
everything
default
there
and
remove
the
default
from
this
one,
and
then
you
just
have
a
sane
way.
Otherwise
it
becomes
this
never-ending
problem.
I,
don't
want
to
add
another
overload
at
all.
Well,
that's
I'm,
saying
imagine
we
would
have
to
expose
a
fourth
option
right
way.
We
would
do
it
would
just
add
another
overload.
You.
D
M
M
I
mean
I,
there's
other
options
that
we
want
to
be
adding
the
future
that
people
when
asked
asking
for
for
these
things,
you
know
and
I'd
much
rather
in
like
a
des
and
options
flags,
don't
really
work
because
the
buffer,
size
and
stuff,
like
that,
you
know,
you
know
doing
something
akin
to
the
enumerator
and
adding
a
leader,
or
you
know,
actions
or
something
like
that.
That
requires
a
lot
more
thought.
A
A
I
mean
I'm
gonna
post
over
to
leave
open
here,
but
I
got
may
take
five
stream,
but
it's
the
same
problem.
It's
like
six
overloads
and
what's
going
on
people
wanna
said
is:
is
a
single.
It's
true
acing
that
you
probably
can't
change
after
you
constructed
it
so
like
in
general,
like
I,
would
be
in
favor
of
saying.
Would
we
be
okay
with
this.
M
A
Pattern
based,
so
the
reason
they
haven't
done
them
in
the
past
is
because
we
couldn't
figure
out
how
to
make
them
serviceable,
and
then
we
talk
of
the
roles
and
team.
We
came
up
with
the
servicing
pattern
or
I
shouldn't,
say
servicing
and
with
a
pattern
on
how
we
can
safely
add
more
overloads
without
getting
into
States
where
he
causes
ambiguities
and
the
pattern
is
as
what
I
said
earlier,
that
if
you
have
to
add
a
fourth
argument,
what
we
would
do
is
you've
had
another
overload
on
the
new
one.
A
A
The
longer
one
correct
and
then
you
can
always
the
source
will
compile
you
know.
Binaries
will
just
work
fine
and
then
you
can
always
set
any
argument
in
any
order,
and
things
will
just
compose
nicely
I
think
that's
a
better
way
of
gulab
order,
because
otherwise,
if
you
add
a
fourth
one
that
we
cannot,
you
know
change
after
the
constructor
was
run.
Then
the
property
pattern
doesn't
work
right
and
then
you
are
back
to
square
one.
Although.
M
A
U
A
Have
who
maybe
have
changed
internal
buffer
sizes
of
streams
based
on
pro-french
marks?
I
mean
you're
right.
You
can
break
people
with
that
if
they
happen
to
rely
on
the
exact
things,
but
there's
even
none
in
forever
I
mean
we
change
the
internal
buffers
for
I
want
to
say,
file
stream
from
like
I
want
to
say
one
cage
for
K
or
something
based
on.
U
A
That's
fine
but
I
think
in
general,
like
it's,
the
sentinel
value
is
not
ideal
but
I.
Think
for
buffer
sizes.
It's
okay,
it's
more
problematic,
usually
wear
now
also
has
a
meaning.
That's
like
what
what
I'm
gonna
give
you
one
day,
I'd
like
this
to
be
allow
people
passing
in
zero
for
this
API
today,
I
probably
know
maybe
I
mean
it
would
just
mean
no
buffering
right.
D
M
K
A
M
A
M
J
I
think
negative
ones
a
sane
or
default
just
because
you
can't
conceivably
have
negative
one
for
the
buffer
size.
But
you
could
say
zero
means
no
buffering
sure.
J
D
So
so
two
things,
but
first,
if
maybe
maybe
there's
a
scenario
where
people
are
passing
an
actual
encoding
value
into
the
constructor
here
and
if
they
pass
and
all
they
actually
want
a
an
argument
exception
because
it's
like,
oh,
like
clearly
I,
have
a
bug
in
my
own
code.
Alternatively,
what
I
mentioned
earlier
about
about,
for
whatever
reason,
you're
on
a
new
references
and
leave
it
on
an
old
one
time,
and
now
you
get
weird
exceptions.
I
thought
that
religious.
A
D
You
think
everything
is
undefined
yeah.
So
then
the
only-
and
this
is
argument
like
does
the
API
surface
as
it
currently
exists-
allow
people
to
find
things
that
would
otherwise
be
bugs
in
their
code,
because
it
does
parameter
checking
right
where,
if
we
switch
this
to
a
default
now
it
does
the
incorrect
thing
at
one
time
that.
D
V
D
As
it
seems,
pretty
unlikely
to
be
using
a
new
represent
that
contains
this,
an
old
runtime,
yeah,
yeah,
I'm,
willing,
I'm
willing
to
say
we
shouldn't
worry
about
that,
just
as
you
all
so,
at
which
point
if
we
could
do
with
the
existing
constructors.
That
seems
fine,
I'd,
be
fine,
having
a
leave
open
property
as
well.
That
doesn't
seem
problematic.
It
even
has
some
advantages
so.