All right. Welcome everyone to day 20 of the Advertisement of Code in Haskell. We blazed through 18 and 19 yesterday after explaining our solution for day 18, no day 17, which took us a while. Now we're streaming early today, but we're gonna do day 20. See if we can blaze through it, but this is gonna be my last stream for this season, I think, because I actually had to start packing. Preparing Christmas. That's what we're here for. So what's the problem today? It's about flip-flop modules. Okay, conjunction. Okay, so we are connecting cable and they have modules and they communicate using pulses. So they have higher or lower pulses. Destination modules. Okay, so flip-flop modules are either on or off and they're initially off. And it flips. If it receives a high pulse, it is ignored. If it receives a low pulse, it flips. Conjunction modules, they remember the type of the most recent pulse. We see it from each other connected input modules. They initially default to remembering a low pulse for each input. When a pulse is received, the conjunction module first updates in memory for that input. Then if it remembers high pulses for all inputs, it sends a low pulse. Otherwise, it sends a high pulse. There's one broadcast module and it receives the same pulse. And you have the button module that you press and sends a low pulse. Okay, so they're always processing the order that you send. Okay.  Okay, we can look at this later. What the end goal here is, we press a button. Basically, what's going to happen is that we have this state. We're going to say, oh, Merry Christmas. Thank you for tuning in. So what's going to happen is we're going to... Right, so let's see. We send signals again and again and again.  And then all the modules are in the original state. So we push the button a thousand times, okay? And then we calculate how many low pulses and how many high pulses are sent. So we are going to just remember the state and then find the length of the cycle. And then figure out how many pulses... How many button presses it takes for one cycle. Let's get to it. So here is our first input. We write this CD. Day 20. Make dear day 20. Day 20. G-C-O-G-S. G-C-D-20.HS-O-D-20. O-3-D-20. We're going to time it. Okay. Start language, G-C-21. Module main, where? Main. Main equals return. Okay, so now we are going to say... Do read file example... print.parts. So what is the state? So a module... Dear module equals... So we have a... So flip-flop module. Flip-flop. And this is going to be... On-off is a pull. So whether it's... is on. So this is going to be a pull. So it's on. They're initially off. And in order nothing happens. Parts of flip-flop is resettled off of flips between on-off. If it was off, it turns on and sends a high pulse. Okay. So I think... And now we're going to say... So this is a... There are cables between the... between the modules. As you can see here, connections... It's going to be a list of... I'm going to use an IntMap here. Okay, so this is one kind of module. We're using some types and... road types. I think they're called... Anyway, a conjunction module. Conjunction. Is... So they don't have this is on thing. Mm-hmm. Conjunction. Remember the most recent impulse. Received from each of their connected input modules. They initially default to remembering low impulses. When a pulse is received. So it's going to be a memory. A conjunction memory is going to be... IntMap pull. Let me import... data.intmap. IntMap... Qualified.intmap. So they have a memory. And they also have... connections. Mm-hmm. Okay. Then if it... There's a single broadcast module. When it receives a pulse, it sends the same pulse to all of its destination modules. Mm-hmm. Broadcast connections. Int. Mm-hmm. Mm-hmm. Let me see. So I think the... Broadcaster is always going to be first. Oh no. Okay. Mm-hmm. Broadcaster is not always first. But I can actually... I can just move it around. Mm-hmm. So we have connections and there are ints. Mm-hmm. Let me actually... Mm-hmm. Okay. Anyway, let's say here... Broadcaster. Okay, so instance... show module. Where? Show... flip... flop. Is he... is equal to... Let's have it remember the... Okay, I'm just not going to show them. I'm just going to do a deriving show, okay? Deriving... show... EQ. And we are going to say... parse module. Taking one line and... we are going to say a... give it a module. So parse module. String. Let's look at the first character. Mm-hmm. So if the first character is B, then we are defining a broadcaster. What does a broadcaster look like? We... we say a... we say a... mods. Okay, we're going to need to split on also. Mm-hmm. Mm-hmm. So we're going to say a drop... length... HDR. A drop length... broadcaster... string. And then we are going to say a... mod list... is equal to... um... split on... um... comma... of mods. Mm-hmm. Mm-hmm. Okay, now these are going to be... let me see. I'll just throw out the spaces. Filter... not equal to space. And then we are going to say... um... Mm-hmm. Mm-hmm. Is there like a hash function? It's... string to int. Mm-hmm. Let me just write the hash function here. Um... We can use the ORD function. Mm-hmm. Then add an ORD... string to int... hash equals a... hash prime. And let's start at zero. Mm-hmm. Um... where... and then the multiplier, so this is the... power of... okay, so hash... so this is cur... and this is a power... empty is c... hash prime... a c... p... uh... let's say cur... cur... c... r... is equal to a hash prime... um... cur plus... or c... times... 10... because I think they're all... to the power... of 2p times p. I think we can do it like this. Mm-hmm. Let's just do it like this. Increase p by 2 and then r. Do that at char ord. Let's see... um... map hash... a... to z. Mm-hmm. Let's see... let's create all the combinations. a... b... a... b... Mm-hmm. Let's see, and then I think we have to do... Okay. So it seems like it does go... longer. Let's make this 3. Mm-hmm. Mm-hmm. Mm-hmm. Okay. We made a hash. So set is 122. Okay. And now there's no collisions. In the hash... of the names. I don't know why we... necessarily went this way, but... we did. Let me see... and they are all two letter names. It would also work, actually, for inf... Okay. Okay. So parse module... this is gonna be... broadcaster... um... hash... a... modelist. Let me just... do... do... Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. Okay. So this is for the broadcaster. If it starts with... string... it starts with a... percentage thing. Then we are defining a flip-flop. Then we're gonna say... um... we're gonna say here, NM is... span... not equal to space... of string. Okay. And then... we drop... this... split on... filter... not equal to space... of... uh... drop length... space... narrow... space... of string. Now, this is rest. Okay. And... this is equal to flip-flop... Mm-hmm. Uh... fall, so it's off... map hash... modelist. Mm-hmm. Mm-hmm. Mm-hmm. And exactly the same for the... conjunction, except here we have the... N sign. And then we're gonna have the... conjunction. Mm-hmm. It's gonna have an am.empty as the initial memory. Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. Read file, example print par is a... let's say print. And also in the input, like, yeah, nothing is connected to the broadcast. It's just on the left-hand side. Dot... map par's module... dot lines. Mm-hmm. I forgot to save it. Okay. Let me see. And let's say... map and print. So we got the... broadcaster connects to A, B and C. And then... B connects to... B... B connects to 9. And C connects to... Mm-hmm. Mm-hmm. Let's actually have the... let's have the ID here also, just so we have it. Uh... MIT is an int. Mm-hmm. Mm-hmm. MIT int. Okay. And then we're gonna say here this is gonna be a module ID zero. It's gonna be hash of NM. And this is gonna be... hash... NM as well. Mm-hmm. Mm-hmm. Okay. I wanna make it look a bit different. Mm-hmm. Mm-hmm. Mm-hmm. Ding-ding-ding-ding. Buddy. Okay. Now let me... drive show. Let me say here. Okay. Um... instance show... module where... show... broadcaster. I don't care about the ID here. Cons is equal to... Mm-hmm. Mm-hmm. And that's just then print broadcaster. Mm-hmm. And then I'm just gonna show the connections. I'm not gonna... I'm not gonna recover the name. I'm just gonna use the digit. Okay. This is a... and... show... and the same here with... laptop. But we are gonna have the... center sign here. Nice. Okay. We've done the parsing. Now... Mm-hmm. Mm-hmm. Now let's create the state. Uh... which is just gonna be... let's say part one... takes any of these strings and... okay. We're not gonna say that either yet. Part one... is equal to... Mm-hmm. Where... modules is equal to... mapParsModule.Lines... Stairs. Part one. And now let's just print it. Mm-hmm. As though I am... not from... the list. Um... map... we have here a module. We just wanna go... we just wanna go... m... Okay. And now we have all the modules in the list. Mm-hmm. Mm-hmm. And now... I would like to initialize the conjunctive memory so that we don't have like a map.empty. Mm-hmm. Mm-hmm. See, for... do we even need... Remember the type of the most recent files received from each other connected. So they remember low pulse. When a pulse is received, the conjugal first update is memory for that input. Then if it remembers a high pulse before... remembers high pulses for all inputs. Okay, so we need to know all the inputs to that... to that module. Okay, so let me see. Mm-hmm. Mm-hmm. Mm-hmm. So we have the... we just... we have the modules here. Mm-hmm. Mm-hmm. And now I wanna say... Mm-hmm. So first I wanna know the IDs of all the conjunctive modules. So then I'm gonna say is... conjun... conjun... conjun... iscon... conjunction... through... um... iscon is equal to false. Let's say then con IDs is equal to um... mapMID dot... uh, MID on filter iscon modules. Mm-hmm. Mm-hmm. Okay. Now for each of these con IDs I want to say um... connected con input takes in a con ID and we get all the inputs. So you say um... let me see. So it also it also sends to all of them in order. It finishes sending all of them, right? So I think these connections should actually be a set. Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. Mm-hmm. So we do here IS dot from list IS dot from list IS dot from list um... import qualified data.inset inset as IS import data.inset inset What happened there? 964 So con input con ID is equal to um... filter and then we have for each module and we have, we're going to say connections um... and we have IS dot member key inset uh... con ID dot connections and then we just want the map map the NID of those mm-hmm mm-hmm. Okay, so now I'm going to say I'm going to say map con input so then I can tell which ones So now I'm going to say um... add inputs um... for any module it's not a conjunction we just return the thing add inputs a conjunction let's see let's forget how things are defined so add inputs conjunction um... mm ID and we don't care about the current memory we want we don't care about the con we have to keep the cons around IS equal to conjunction um... mm ID and then I want to initialize um... I'm just going to say IS dot from I am dot from list uh... zip con input mm ID with repeat false cons okay, now modules let me see here when I show conjunctions I want to show just in between this arrow here show not between the arrow let me show this show mm ID and I want to do this and I want to do uh... show let's also show the state here okay, now let's see modules add inputs map and now this is initialize the false initialize the false and and now we have the memory here that 99 the last signal was low mm okay, conjunction models they initially reach input when a pulse is received the conjunction module first updates its memory for that input then if it remembers high pulses for all inputs it sends a low pulse otherwise it sends a high pulse mm mm mm mm mm mm mm mm mm okay, so this is the current state except we are also gonna have the IAM dot from list um we're gonna map we want all the okay, so this is the state init state is equal to now I want to say go and so I'm gonna have the current state, current state and I am going to say we're gonna have the accounts of high high pulses high low pulses low pulses is equal to mm mm mm mm mm mm mm the two I have to memorize this also at some point let me see so then I can basically have like a scene of the current state scene st so if I don't have any pulses I just return high pulses low pulses mm mm mm mm mm so a scene st uh it needs to be scene st curr st chp, clp I don't care um no, so here I should actually loop this is where I should loop should loop okay let me see here so I'm gonna say case curr state scene st curr state of nothing then it's go I am map.insert curr state high pulses low pulses um curr state high pulses low pulses and the initial one is a pulse to zero I need map here also import data.map import qualified data.map smap mm mm so go is a takes a map uh of intmap module to int comma int this is the memory the memorization to an intmap of module oh my god this is really bad module uh and int comma int a list of int comma int so a list of pulses uh and I need they need to be I think yeah so they need to be higher low oh and they return uh return a string map.insert curr state scene st let me import qualified data.map. strict actually and I think it's actually mm mm okay and I also wanna okay now if I've seen it before just bhp plp plp I want to uh I want to say let's do here just cp just r just wanna show r comma cp okay now this is the loop with the scene and then we just figure out whether we I mean we're gonna look at the numbers as we see the example this again the figure of the so it will take a while to so it might not get into the initial state but it might get into a repeating state right so let's see go hplp okay and then here we have a lost pid and p level if it's higher or low it's equal to mm mm and then we have the rest of the pulses they should actually be a sequence because we're gonna be adding to the end of it okay and so now we're gonna say we're gonna look up the what it is let me see where mm mm so cp prime is equal to mm if p level it's high then hp plus 1 lp else hp lp plus 1 equal so we're gonna say case case and then we're gonna say a ker im.bang pid let me see hogo data.sequence mm mm let me see so for now or not and let me see empty and then we say here okay now it's a sequence case, ker state of imp pid of so if we if we hit the broadcaster mm when you see the pulse it sends the same pulse to all of its destination modules PID of broadcaster I don't care about the connections cons so the logic from here is a is.from to list cons and how can I mm mm mm mm mm mm mm let me see I can just append is to list and seek I'm gonna map a comma p level to this okay and seek.from list so then I'm gonna just let n6 equal this in a go scene st car st cp prime a pulse is impended with n6 that was quite nice okay now let's see what we do for flip-flop flip-flop rather on or off if a flip-flop module receives a high pulse it is ignored and nothing happens it flips between or off if it was off it turns on so let's see a flip-flop mid so if it's st s cons so um if s if not s then it is simply a go scene st car st cp prime pulses so then we just ignore the pulse okay we just ignore the pulse it is ignored and nothing happens if a flip-flop module receives a low pulse let's see so p level and not so let me see okay so so flip-flop modules are either on or off they are initially off okay it receives a high pulse it is ignored and nothing happens okay so however if a if not p level then if s so if it's on then they are either on or off they are initially off if a flip-flop module receives a high pulse flip-flop module receives a low pulse if it was off if it was off um then let nfl is equal to a flip-flop made not as cons I'm realizing now that this is going to be uh this is going to be like expensive it would just be nicer we could just track the flip-flop in a boolean array or like boolean thing directly and not have to look it up every time anyway car st is equal to im.insert mid nfl nsig is equal to if it was off so this is going to be map not below not as so if it was off it should send a high pulse it was on or off turns off and sends a low pulse okay and let me write this nsig in go scene state car st prime cp prime pulses im nfl okay this is for the flip-flop now for the conjunction so first of all let nc equal flip-flop we're not going to change the flip-flop we're going to take a conjunction mid man prime cons now man prime and i need to remember who sent the pulse pid sender id let's just say that the button sends from itself that's okay a c c, mid c, mid, p level so here it just does this here again c to c, cid, not need to have the sender id as well okay so man prime remember they have the most recent pulse received from each of their connected modules so it first updates its memory mem is im dot insert sender id p level mem in undefined i just want to get the nc i forgot to update the type here mm-hmm man prime is a new, okay we update the mami, we update the module mm we're going to positively update its memory and then if it remembers a high pulse for all inputs mm and then let's update the current state nc and a pulse is equal to mm dot lm mem prime so the new pulse, so if if it remembers high pulse for all inputs it sends a low pulse otherwise so let's see not and and then nc nc nc always mm nc i could probably do this in a nicer way but mm-hmm let me see let nc comma 6 comma r prime equal and then i don't have to do as much repetition then n6 in so here i don't do anything here i also don't do anything and here we are gonna say also n6 rst prime and then in go scene st ker sd prime sdp prime pulse is n6 mm-hmm and let's see they're always sending the same signal to all of them mm-hmm mm-hmm mm-hmm mm-hmm mm-hmm now this should be mid actually mid so what i wanna say here is i want to say let m equal m ker sd i am prime eid and then i wanna say i wanna say here that cons is equal to cons is equal to connections m and center id is equal to mid m and then n6 is equal to seek dot from list of map c c cid p eid p is dot to list cons mm-hmm mm-hmm okay and so i just want to send the updated state and the p level and the signal that it sends and see this should be gsp level because sometimes they don't send a signal okay a n6 nothing is equal to seek dot empty gsp okay nothing and the signal here is not s it's just not s mm-hmm the signal here is just okay in m p mm-hmm we can actually put these all in the where clause as well i'm just gonna make this code nice and simple okay so we update the state um let me see here we can say we can just make this a cart also mm-hmm mm-hmm flip flop a is on equals s mm-hmm mm-hmm conjunction memory equals mm-hmm mm-hmm mm-hmm mm-hmm mm-hmm okay so now we've updated let's see unit state now let's see what you guys go and map dot empty unit state and a 0.0 and c dot single 10 0, 0, we send a low 44.8 816 mm-hmm mm-hmm so pressing the button once sends 4 and 8 we'll see let's make this return int we're gonna say r-hp p-h-p a-l-p mm-hmm c-h-p c-l-p and we are just gonna say c-h-p minus p-h-p comma p-p-l-p and we have to multiply these together and see let's seen st prime equals button press equals this in button press mm-hmm mm-hmm and I need to save also here current hypothesis alright previous hypothesis I think I need to do like this probably so 32 times button press so after pushing the button 1000 times okay so it's not a thousand here I have to multiply by 2000 times twice times 2 2 2 2 2 which is a million actually mm-hmm-hmm mm-hmm-hmm mm-hmm mm-hmm mm-hmm-hmm mm-hmm-hmm let's create a new file example 2 winky mm-hmm fitting multi okay this module a multi but connection con if it both on sends a low pulse to the output module well it was sent to output however now both of them are on and gone an untimed module output okay so okay so I guess if is the seems to be also the pulse pulse level is case not cst im. im.member pit go st cst mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm seen st curr st prime curr st cp prime pit and curr st in the second example I've pushed the button 1000 times for 250 low pulses and 270-50 high pulses are sent okay so this one is not working let's say for the second example ding ding ding ding ding doesn't work so let's see cpp okay so this is a bit more difficult so the thing here is that pp so per cycle mm-hmm-hmm mm-hmm-hmm I just want to see also what it does for the input if it's slower I have the input here mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm certainly taking a lot of time because the cables warmed up we also pushed the button 1000 times including the pulses sent by the button itself yes we also count that actually mm-hmm-hmm mm-hmm-hmm let's see but for the second one it took 4 pushes I think I need to remember how many times I've gone through the loop let me add that here LP and uh num num puruses num let's have it there mm-hmm-hmm we're gonna start this off with zero and then here we're gonna say num ps plus one num ps mm num ps plus one okay it's not doing the thing let's see num ps add it here mm-hmm-hmm this is what we are tracking anyway mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm I was pressing too often so this should be okay so after one press so uh-huh so after one press it returns to the initial state and maybe what happens for the input is that it's it's always growing mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm mm-hmm-hmm okay so let's figure out the difference here um so php minus chp and clp minus um plp and um num and pp minus no num ps minus and pp this should be plp and clp now um so pp was the previous one yes so clp, cp pp so for every one press um we get okay so then we have to take um-hmm-hmm the length of the cycle is cl a is equal to num ps a low per cycle is equal to this number high per cycle is equal to this number aim and then we're going to say um mm-hmm p per c is equal to um 1000 mod cl so we're going to say here a lpc lpc times perk times a hpc times perk mm-hmm so this was num ps minus and pp right? I need to divide I think 11687500 okay so it's hpc plus um so and these are the ones so so then we do 100 mod cl plus off times a let me wait with this off thing and just see okay at least it works for the examples but it is too slow for the inputs mm-hmm mm-hmm and that's probably because we are mm-hmm it's probably because we are constantly updating this map mm-hmm mm-hmm ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding ding m s c is equal to flip flop m m not s c so then we don't do this curve as the prime we just define the function that modifies the modifies the current the current stage okay so here we update the current one let okay and then per sd prime is equal to i m dot modify alter let me see modify uh int map we should have a adjust adjust f m i d change adjust modify m i d change m i d curve sd okay so here the modification is actually going to be um um f conjunction mid-mem m c is equal to um conjunction m m prime c m prime is equal to i m dot insert sit p level mid-mem prime here also okay it's definitely not working for the input so now we just do the adjustment so we've kind of um we freed ourselves from like so now this function does not need to know about um they don't need to know about the way you store it okay now i want to change how the current state it was an awesome int map of modules let me just customize the hash function here hash broad cluster zero hash output i think i should let the common things be first oh i need to take a quick quick break now actually and oh sorry of course this changes as well let me just finish this change here all right i'm gonna take a break now uh help out with some stuff i'll be back later for finishing this but at least you know it works on the example and uh i'm gonna run it on the input be what happens but it's not looking good for now anyway see you in a bit bye bye all right i'm back need to help out a bit at the house but as we see this is clearly not fast enough it takes too long time so let me see here let me trace show oh num ps import let's see how it's doing on the button presses let's see case num ps it's larger than equal to 1000 then we do chp times clp case now let's just like this let me copy paste this we don't do it twice so if it hasn't been seen before then we can just do like this okay actually let's just see what happens if we just do the loop if it actually just does it correctly for the examples no it doesn't get them right i think it's because i should start at one so there is one button press right okay so this is part one let's just paste that in this is not the best way to do it because now they're gonna push it a million times okay continue to part two the final machine responsible women sent down the to island island has the module attached named rx the machine turns on when a single low pulse is sent to rx where is it all modules for their to their default states waiting for all pulses to be fully handled after each button press what is the fewest number of button presses required to deliver a single low pulse to the module named rx okay so it's just not at all um let me see rx h is equal to hash rx nothing i can still do this but just to make it faster but if in case there's a loop i can't do it what happens otherwise is that it doesn't never never resets right the state keeps changing which is okay so we had part one done we were just trying to we were it was premature optimization let me see a case pid is equal to rx h and p not p level is equal to stop at thousand one and two stop thousand so we have falls to falls stop at thousand part one and two throw falls okay it's taking a long time okay let's just abandon maybe the caching let's first git commit um day 20 part one at day 20 dot hs log for example two inputs git commit i should have okay so let's see uh rx so for rx to get a signal all of the inputs to lg need to patrol let me see now we're gonna abandon this scene state thing it doesn't actually work um okay now this needs some different kind of analysis okay now there's no in its state let me see how as does it do all of them now quite fast let me see um just be level in so the pulse let me see let's just change this to just be part one it'd be nice if we had some tests for this right so we're gonna say part two here now um and i'm gonna remove all these no let's see these are in its state okay so rxh is equal to hash rx map dot bang xh right in my module map dot bang hash rx part two there's a string to a module okay 120114 is not a member of the map uh okay no wonder the other one didn't work a hash rx signal sent to rx right okay mm-hmm because rx is not in the map um okay let me see it is equal to hash rx uh but mm-hmm that's the 1000 let's see let's just copy paste this and let's not stop at 1000 part two now here i'm also not gonna be counting the pulses i'm just gonna say non ps mm-hmm oh and here we're not even pushing the button so it's just np mm-hmm i don't need this ratio here anymore i think i don't need to do this either uh except in fp level then make it slightly faster but not enough to do much i assume mm-hmm what did i say if it was output hash output is one we just make hash rx is equal to two so if so we can check it for the so let me see two pit does it pit pit equals one or pit equals two and then we can do it with the example too right so since the a since the n went to con right and i need to and con let me see we have conjunctions so if you remember high pulses for all inputs it sends a low pulse mm-hmm np current state current st ts i just want to see what we get for the current state in the q the thing was that it never never looped in the state so it sends a lot of the bar caster but then low to a high to con high to con and then it sends low to a and then con to sideway or then b sends um high to con and then con sends low to output however now that both flip flops are on mm-hmm hit map this is output where skip equals go current st np pulses you see here then oh now i'm just looping an example too great okay so this will eventually work but it might take a lot of button presses hey what is the question of today hey if you like three question of the day is day 20 we have these circuit stuff described like this so you'll send signals higher low to any of these and um part one was to figure out how many high and low signals are sent in total if you press a press a button it sends the signal to the broadcaster in the broadcaster sends you know to its destinations and then these are either conjunctions or flip flops so you send um you send um you send um signals that are high and low so flip flops only activate if they're on and then they flip off and they have con structures which can combine signals so now i'm trying to so that was the third part i'll just count the signals second part is figure out when um when you send a signal to a specific one so okay i think what i have to do is i have to figure out a so in the input i have to figure out when when does lg activate so our rx will activate rx will activate when lg sends when all of lg's inputs are high right so low pulse so then if it had remembers high impulses for all inputs it sends a low pulse okay so we're gonna do this differently and we're gonna run it on example too as well okay so this is the in its state this is not fast enough um so the in its state let me see so activation of a given gate so str so mod mod id is equal to um so these are the con input actually let me see so so con input hash rx so for uh rx to activate i need lg to activate uh lg to be active let's see so con input hash rx so these are the inputs too con input rx so um i think so activates mm-hmm okay so con input then map curr s so a modules map let's see in its t i am dropping in its state partly to go for a meeting soon okay so for so for rx to activate we need a high from all of these at the same time right i think that we need to kind of figure out the modules right when will all of them be at the same time in the high state mm-hmm okay and let so 2x rx is equal to 2x rx okay okay then 2x rx is equal to map in its state i am dot bang dot a memory i am dot keys dot memory 2x rx 2x rx 2x rx is at least modules mm module now for this is going to be a map m i don't see all of these okay so we have again the case that it's a list of conjuncts 2akak 2ak rx okay let me see 2akak uh so we have a 2ak rx we have 2akak 2ak rx and then we're going to say map 2ak 2akak 2ak rx mm-hmm let me see i'm we're gonna say a map m we're gonna print l this is just the first one map m print l then uh put stir okay two map m map m print hello map m hey mad flash what's up again they are all and they're all conjunctivists okay to activate rx i need to activate this one to activate this one i need to to activate all of these okay to activate all of these i need to activate all of these at the same time let's keep going map i don't see when do i get to something that's okay these are all flip flops all right now i need to map m so all of these flip flops are send a message at the same time then it activates okay why do you not write types it's just like funk and tint uh i mean i do it sometimes right but the power of haskell is that it can actually infer a lot of it for me okay we are almost there we're gonna keep looking at this in a bit i'm gonna take a break now i have a meeting but so what we have to figure out is a how many button presses will it take for all of these to be on at the same time i think that's a trick all right thank you for today we saw part one at least and yeah i'll be back later today but i have to take a quick meeting see you in a bit okay all right we're back okay we're still working on it um while i was hacking i hacked a bit more and we see that on the third layer it's all flip flops let me see so i just started concatenating so let me see here so it's two act rx let's let's see a let's just say a so t a a is two act act two act act module to module and we're gonna do concat map okay and so we are gonna say here iterate two act act take one iterate two act act two act rx and then for the input we are just going to say um do l so uh map map m l m's do map m print m s what's the l n dot part two dot lines so we iterate it then we were just basically getting the same so then we get um so take two take three take four and all of these have to be um sort so all of these have to be active at the same time so i think we're doing the gcm again here let me see and so now let's copy this one again so the go again from this one mm-hmm okay and so now let's no matching or electric or selector memory yeah maybe i need to do three right okay and so now i'm just gonna say here okay and now i'm gonna just map map m id and all of these um so we have here blop is equal to all of these now go is in here we're not gonna stop here we are just gonna loop right away in mm-hmm you put this button press down into the where okay here we are gonna so we're not gonna say rxh let's see and we want this skip so so you're not gonna do anything here but let me np i'm gonna write this as and then we're just gonna say here skip and otherwise i'm not gonna need these 121 something's wrong okay so now i'm going to say here a um flop on on and the flop goes on and the flop goes on when it receives a yeah so flop okay so ph p8 did pit is equal to flop okay so this is a let's make this like this a flop mm-hmm it's two given vibes okay so i'm gonna now map a map go in its date um and then one i can actually put this button press i actually have to put it here one a button press over um flops and so this is the number of button press is required for each flop to be on and i think i take the greatest common multiple here mm-hmm i think that was from day three or something get grab gzm which day was it not day two day three day two maybe nope was it day four maybe it was day five almanac transform all seats nope day six nope let me say kid grab folder a kid grab folder one lcm okay it was day eight yeah okay so let me see here um boulder one lcm day 20 so saying after 2048 presses maybe i need to take the product your answer is too high okay it's not the product maybe i did too many concats let's see and maybe i shouldn't do flops here okay so this is the first level okay and now we're gonna map to ag-ag maybe i'm missing the map map to ag-ag okay map map map m-i-d map go one is equal to go unit state one button press now let's um map map map so our 2048 cycles this one will be active and every 2048 cycles this one will be active flops let me see bf flops and we remove one level here and we remove one level here i think so bf flops this is right before the flops let me see so then is map map map go one bf flops took two number presses before they were all pressed and see bf flops uh but that one needs to be high it's not enough to go one a hl hl hl p levels equal to hl and then we just need to add hl here and hl here and hl should be here also mm-hmm map go go one here needs to be false okay i need to so hl and flop oh hl flop hl flop map map go one true button press hl okay yeah i need to swap it here also so here we want a low activation here we want a true okay so flip flops if so the flip if it was off turns on and sends a high pulse okay if it was off it turns on and sends a high pulse if it was on it turns off and sends a low pulse so for flops we want them to receive a low pulse okay so if it's bf flops we're waiting for them to send a high pulse to all of their um so in one round they all send mm-hmm i'm not quite buying this let me see bff then if it's similar because here it is and okay so how long does it take for it to send a high flop that is the question okay this is how long it takes for it to send a high flop so before the flops how long does it take for it to send a low low flop because then all of them have to be active okay that is surprising let me see is it just some here nice it's just a sum okay and i think it's just some here also conkat map a conkat map some conkat map let me see here conkat map okay it doesn't want that i think this might be the answer seems so low though but that's too low okay and let's abandon this do we have the sum here again so that's the answer to that one maybe for these ones it's actually the product so i want all of these to send a high signal so that mm-hmm bff map mid bff flops map go on holds bff i think it's probably then the product of those mm-hmm all right we got day 20 part two whoop whoop took some guess work but let me see okay so this is a sum and then this was a product it's actually a product of all of these so the idea is okay so this is the number of so for the flops you have to check and because they flip on and off right so then every 3851 cycles they've all they're all flipped flip on at once right and now they all have to do this at the same time so then it is the product of these numbers good still is get it because you commit um day 20 finished because there is never getting something example um get add dot dot day 70 example um you commit and forgot um um did you do did push okay uh so we did day 20 part one we did day 20 part two takes a while we have now 40 stars on the effort of code and but sadly this is the last episode for now because tomorrow i am traveling and i have to pack i have to get ready then at christmas is happening um what i might do though is i might a i might solve the things if i have time it's unlikely and then go over the solutions or otherwise you know if i'm up for it do something in january but anyway it's been super nice to uh it's been fun to do the editor code it's been nice to have some company for the editor code and uh yeah thanks for tuning in this year and uh hope to see you all in the comment section uh tell me what you think about the solutions and uh yeah hope you had as much fun as i did all right thank you and bye bye


The pool at Mount Holyoke to me means community, it means strength, and it means perseverance. So my name is Olivia, I'm a senior. I'm majoring in politics and economics. The pool at Kendall is really important to me because I think it encompasses a lot of the things that I've learned at Mount Holyoke. A lot of that being the physical, mental, and emotional strength that it takes to be on a team. I think I'm going to really miss the community from the teachers and faculty to, you know, the residents in my dorm. There's something so special about Mount Holyoke and the way that we communicate and interact with each other, the way that we're always supportive and always friendly that I will absolutely 100% miss. My time at Mount Holyoke has really just taught me to embrace who I am as a person and to not be scared of that.


Long before the single currency, the potential for a single market in European banking was created by the second banking directive in 1989, a bank license anywhere in the European Union could thereby provide services throughout the entire union, the most basic legislative ingredient for what is now thought of as a banking union was created. Curiously, this powerful piece of legislation did not have the impact that one might have expected. Pan-European banking supermarkets didn't rapidly emerge. Instead, the stronger forces of financial integration were global ones. An Australian bank bought one of the six full-service Irish banks. Expanding Irish banks bought into Poland, then not in the EU and the US more than into continental Europe. So it's not always easy to predict where the future of banking lies, whether for Europe or for Ireland. More dependent for financial services on banks than on markets in debt and equity, Europe has had to work harder to repair its financial system following the banking collapse of 2008, and this task is complicated by the subsequent widespread debt overhang. Much of this conference has been devoted to the question of banking supervision and resolution, matters of official policy in the proposed banking union, but I would like to look further ahead to ask what type of banking system we may see or wish to see in Ireland within the banking union. Let's recall that banks have to perform a multi-dimensional set of functions in the economy, ensuring that payments are reliably made for the transactions that underpin all economic activity, providing safety for the liquid assets of the general public, households and firms, evaluating creditworthiness of borrowers, monitoring their financial condition and ensuring that loans are repaid, and acting as broker for a range of other financial services. All this we expect banks to do, and that's part of why it's so difficult to resolve a crisis which to a greater or lesser extent all over Europe has weakened both the bank's financial strength and their operational capacity to deliver satisfactorily on all these functions. So what might change in Europe? As the banking systems of Europe are repaired, how will their organisation differ? What position will they hold in European finance? Well, two types of indicator of what might be in store could be sought by, first of all, comparing the current situation with that in other advanced economies in order to assess whether the gaps between the systems might tend to be closed, and secondly extrapolating recent trends and technological innovations. So just let me say a few words about those without trying to look too far into the crystal ball for Europe. As far as structural differences today between the EU and US financial systems are concerned, two striking differences are in integration and in the relative importance of bank and market finance. The US banking market is along several dimensions more integrated than that of Europe, and the trend has been continuing. Just to give one related indicator, concentration is not quite the same as integration, but it just noticed an interesting figure in recent study. The share of the top 50 banks in the US grew by 10 percentage points during the first decade of the new millennium and continuing a long trend in the United States, whereas the share of large banks in the EU shrank by 5 percentage points between 2007 and 2013. More to the point, geographic segmentation along country lines has also increased in recent years in Europe, whereas the traditional segmentation along state lines, at least for retail banking in the US, has progressively weakened. Now perhaps the increasing segmentation in Europe is an immediate post-crisis tendency, given, for example, by EU competition law requirements in relation to state aid granted to failing banks, as well as by the pressures in the Eurozone, and if so, maybe it would be reversed, help close that gap. I hope so. The US has long had a larger non-bank financial sector, including organised securities markets, which provide a useful spare tyre for SME finance. In Europe, non-bank market finance has a much smaller share, so there's another gap. Even if this gap partly reflects the wider range of financing activities traditionally undertaken in the universal banking model, which has long characterised continental banking systems, it's surely possible that with the weakening of European banks, the time may be right for this gap to be closed. So what would that look like with the growth of non-bank finance in Europe to close the gap? It might be flavoured and facilitated by some recent financial technological trends already observed in the US and elsewhere. For example, what is the long-term potential of innovations such as internet-based equity crowdfunding and peer-to-peer lending? How much evolutionary growth would there be in lending by collective investment schemes, trusts and unincorporated financial vehicles? And how will that impact the role of banks? I suppose one cannot mention technological change without at least alluding to Bitcoin. Well, some nascent developments will surely fizzle out, but others may not all raise controversial and complex regulatory issues, which need further study, but these and other trends could serve to shrink the share of banks in European finance. Nonetheless, universal banking can be a very profitable business, not least because when banks fail, their creditors are often bailed out by government. Antisabating this, investors require a smaller premium to fund the bank, and the value of this implicit government guarantee can be significant, especially during market turbulence. In Ireland for the past five years, banking has not been profitable. This is largely because of the difficulty, and it hardly tells you, that banks have had in coping with the legacy assets on their books. A large proportion of these assets yields little by way of interest because of the low euro area money market rates to which their yield is contractually set. A large, and at least until very recently growing, share of the assets is also not fully performing. The Irish banks have set aside, and will still need to set aside, sizeable provisions to enable them to absorb the inevitable credit losses on some of this portfolio, as it becomes more evident what part of the loans cannot be paid in full, and since the property-related collateral has backed the loans at the outset no longer suffice as a backstop. Faced with these problems, some foreign-owned banks, whose parents are also weakened by the crisis, have decided to withdraw from the Irish market, either altogether or from large segments of it. Two significant Irish-controlled banks, Anglo and INBS, have been liquidated. Two others, AIB and EBS, have been merged, and aside from the group of export-oriented banking firms operating in the IFSC context, the banking landscape is now much sparser than it was. The ability of Irish banks to make their full contribution to the financial services needed for the recovery and into the longer term depends on their being fully repaired after the far-reaching damage reeked in the boom and its aftermath, much as being done here already in terms of recapitalisation, deleveraging and reduction in the cost base. But the case-by-case resolution of impaired loans, both for the SME sector and the household sector, still has a long way to go. At last, there are clear indications that the operational processes put in place to accomplish this goal are gaining traction and that the problem can finally be brought under control. What will Irish banking look like at the end of the decade? What would we like it to look like? For the sake of argument, I would assume that the legacy issues will by then have been put behind us. Official policies and the mandates and operational imperatives of the surviving banks are focused on ensuring this. Banking in 2020 then will have to be composed of entities that are financially solid and profitable, delivering the services needed for strong performance of the non-financial economy. The prospective organisational shape of the banking system can be considered along a number of dimensions. Few are many, big or small, specialised or full service, internationally diversified or locally focused, regional or national, commercial or mutualist, under multinational corporation or local control, public or private ownership. Let me discuss these aspects one by one, recognising of course that they are not fully independent but raise overlapping issues. Start with few are many. Question here is about ensuring a sufficient degree of competition and there is an increasing focus on this. Making sure that banks compete is not just a question of numbers, however, or the preventing of formalised collusion. It may not be necessary to have more than a handful of banks to ensure that they will have the incentive to compete for business and offer keen pricing without sacrificing prudence. Many writers have cautioned against excessive competition for market share in banking and there have even in recent years been distinguished advocates of, for example, ceilings on deposit interest rates to inhibit reckless competition for funds. In the run up to the crash in Ireland, banks had unlimited access to funds in the global money market and so they had less need to drive up deposit rates. They sourced funds not from reckless foreign speculators. Well, there were such but they didn't buy low yielding Irish bank bonds but they sourced the funds in a highly liquid international market for what were considered safe bank bonds and deposits. Instead, the destructive competition was for market share in loans, the property developers and to those who would buy what the property developers and construction firms would build. Unless they sold out before the crash, shareholders of the banks lost out because of this seemingly reckless competition as did the holders of subordinated bank debt. Of course, senior bank manager did a lot better on average given their sizeable earnings during the boom but it was the government that picked up the tab for the remaining creditors. Excessive competition can mean excessive risk taking and the losses are often socialised, though less so under the proposed resolution directive. At present some interest rates and other charges are much higher than would happen in a healthy and fully competitive banking market but some are below, especially the legacy tracker mortgages whose interest tracks ECB policy rate and that is four percentage points lower now than before the crash. Still, it's too easy to attribute all of the much higher spreads on standard variable rate mortgages to the banks need to cross subsidised trackers and to cover loan losses on the backbook. The rising spread on UK standard rate mortgages also since the crisis suggests that some of the rise should be attributed to belated recognition by the banks of the true risks and costs of mortgage lending. So a fully competitive bank market would not need so much a plethora of many banks but a sufficient number of sound banks free of crippling legacy issues. If weakness of their parents and concern about the prospects of banking profitability have discouraged some foreign owners, new foreign entrants and re-engagement by those now hibernating our marking time will eventually shave spreads down to new equilibrium. The domestic banks will certainly need to be fully repaired by then. Next question is big or small. Globally the question of optimal banking size has been a matter of considerable dispute. Are there economies of scale and scope in banking? Are two bigger banks have the possibility to make greater profits because their creditors are reassured by the implicit government guarantee provided by their having grown too big to fail? Some policy makers have argued for breaking up global mega banks until this implicit guarantee no longer has much force. Others have tended to the alternative approach of simplifying the business of big banks and modularising them so that if part of the whole gets into trouble it can be isolated and the remainder resolved without the need to call on government support to keep essential parts going. None of the Irish banks ever got to the 3 trillion Euro scale of the largest European mega banks, but even a 200 billion in total assets for each of the top two, well in excess of national GDP and 100 billion for the third, each of the largest nationally controlled Irish banks was on a scale that could and did create problems that threatened the solvency of the state itself. Since then these figures have shrunk by more than a quarter, though the total assets of the two largest remain comparable to GDP in size. Can we risk having banks of this size for the long run? Against this concern there are of course economies of scale to be considered. A full service bank needs to have IT systems of a sophistication that undoubtedly needs a degree of scale to achieve acceptable unit costs. Personally my reading of the evidence is that a 100 billion bank is not much larger than is needed to deliver the full range of banking services at the lowest unit cost. Foreign are domestically controlled. Well one way of achieving low unit costs is of course to rely on multinational corporations in banking as we do to a large extent in the manufacturing and internationally traded non-financial services sector already here in Ireland. Having foreign ownership can also help absorb some problems. Even if some of the entrants of the early 2000s, Danska, Halifax, Bank of Scotland, Rabot and earlier, Royal Bank of Scotland and Credit Bank all coming from within the European Union, even if they stoked up the overheated credit competition in the boom they certainly also absorbed a size of a chunk of the losses in the bust. And foreign shareholders owned well over half of AIB in Bank of Ireland when the crisis broke. Actually present foreign shareholders own more than 70% of the equity in Bank of Ireland. Well what about normal times? To what degree is it safe to rely on foreign controlled entities for delivering the full range of banking services? The international literature notes the tendency for foreign owned banks to serve mainly large companies and wealthy individuals when they enter a banking market. But it also emphasises that their entry can drive the incumbent banks to refocusing on SMEs and middle income households with a beneficial effect on availability and pricing of services to this clientele. Perhaps then the best mix is to rely on foreign owned concerns for those services that require large scale while not neglecting the importance of the local relationship banking that is necessary for supporting the SME sector. Internationally oriented or domestically oriented. So does that mean that those banks that are in the future locally controlled should not be looking to export business? This is a question to which one would tend to give a different answer after the crisis than before. Though maybe the centralisation of banking supervision and resolution in the Euro area will change it again. Looking at the experience of the Icelandic banks, whose export orientation had got to the point where over 70% of their net income was said to be generated from international business, but which then spectacularly blew up destroying a sizeable segment of the Icelandic economy even though their foreign creditors were not bailed out by the Icelandic government, it would appear that the potential for future international expansion of banks had quartered in small countries may be doomed. Irish banks, too, became quite internationalised in the boom, not just through their foreign subsidiaries or through their traditional financial bank operations in Northern Ireland and Britain, but also through the financing of Irish developers' international property portfolios. Outside of the UK, substantially all of that has been divested. Should or could it be recreated? In principle, one could say that the creation of the SSM and the common resolution mechanism offers the potential for some future Irish controlled bank to become pan-European without implying a threat to the Irish sovereign, at least if its funding and lending is effectively ring-fenced from the national economy. After all, that is consistent with the logic of the single market, but I feel that such a prospect lacks the ring of authenticity. This is probably not a path to seek out in the immediate future. While recognising the UK links, the main focus of Irish banks should now be on Ireland. Regional or sectoral should one go further and imagine a banking system that is regionally specialised within Ireland. For a country of Ireland's size and economic homogeneity, even if a distinction can be made between the greater Dublin area and the rest, there seems little reason to press for a downsizing and specialising of national banks to a regional focus. Even less case, I would think, to promote the idea of sectorally specialised banks for agriculture, commerce, etc. After all, specialisation in property-related lending was the downfall of all the banks. The demise of both of the former state-owned sectoral banks, ACC and ICC, when they were turned by their acquirers into predominantly property lenders, only adds an ironic twist to this conclusion. A degree of sectoral diversification not only insulates a bank from the risks of concentration, but helps build a more comprehensive information base on which to rebuild relationship lending. Besides, the sectoral mix of banking business is already changing, with service sectors looming much larger than before, their evolving financial product needs are quite different from those of manufacturing construction or the primary industries. A bank that merely focuses on one sector misses the cross-sectoral interactions and business opportunities that require financial services. A community banking, to say that national banks need not be pressed to downsize or split into regionally or sectorally specialised subunits, is not to dispute the value of the community bank. A community bank may be able to offer the range of retail services that lower middle-income households and small and micro enterprises require, even if operating on a scale well below, let's say, a billion, and to do it professionally and efficiently and with sensitivity to local conditions. Though we don't use the term, already in Ireland we have a large involvement in community banking with an astonishingly deep credit union sector. It has greater penetration measured by the ratio of accounts to population than in any other country, apart from tiny islands in the West Indies. Its governance is mutualist rather than capitalist, and this strengthens the bonds between the members while limiting the potential for expansion. Though quite large in aggregate, reporting almost 14 billion in assets in Ireland, the sector is very fragmented with almost 400 separate credit unions around the country. It's not to be wondered that the credit union sector was weakened by the crisis, though not to the same extent as the mainstream banking sector. The damage was limited by the conservative liquidity requirements that have long been imposed on the sector, supplemented by regulatory restrictions on new lending by weaker credit unions when the crisis broke. The government has established and provided cash for two funds, a resolution fund for dealing with credit unions that are failing, but for which an assisted transfer to another institution is warranted. For example, such transfers may work out cheaper to the resolution fund than liquidation would to the deposit guarantee fund, and a restructuring fund designed to strengthen credit unions not in danger of failing. This framework and the cash offers the opportunity now to ensure that community banking can be put back on a solid basis. My own view, which is shared by some, though not all, experts and insiders, is that a degree of consolidation of the credit union sector is essential if it is to perform effectively for its members in the future. This would mean some dilution of the very local control enjoyed by the members of some very small town-based credit unions, but it would be more than compensated by greater operational efficiency, range of services and solidity. Operating a modern credit union requires a greater degree of organisational skill than in the past, and the inevitable intensification of regulatory burden has also contributed to the need to reduce overall operational costs by consolidation while still retaining a sufficient local presence. That is the way community banking has trended all over the world, especially where it is still thriving. Let me turn now to public ownership. If I have conveyed a picture in which a handful of large multinational players actively caters to the larger firms and to those requiring more sophisticated financial services, alongside a handful of nationally controlled banks focusing mainly on delivering to the needs of the middle market, while several dozen mutually owned community banks are operating at county or large enterprise level, then this was my intention. It's subtly different from the present situation, where the two big players are nationally controlled, with a handful of other banks, one national, the other multinational corporation subsidiaries, but nationally supervised. Yes, they're subsidiaries of MNCs, but they're nationally supervised. They're present, but they're somewhat resistant and a very fragmented credit union movement. So it's different, quite a different picture. Currently two of the banks are wholly state owned, though the government is operating under relationship agreements with the banks, agreed with the Troika, which limit the extent to which the government intervenes in day to day operations of these entities. What role will state ownership have in the future? Most likely, government will have no long term interest in holding a controlling stake in any of the existing banks. Indeed, it is likely to want to reduce its debt by disposing of the bank shares as quickly as is realistic. Ideally, the capital needed to keep these banks going would come from a wider European fund, but that is a politically debated European level to which I can make little useful contribution at this point. But what about the vision of a government sponsored business or development bank, which has recently come back into vogue? There is a long and checkered history of such entities, and a sizeable literature evaluating their successes and failures. Before the crisis, the failures seem to outweigh the successes by so much that few observers saw much value in reintroducing national development banks. I already mentioned our own two, ACC and ICC, which were sold off to foreign concerns at the turn of the millennium. But the crisis and the sweeping failure of privately owned banks has reignited the debate. One of the success stories around the world is the German government's KFW. Perhaps through the current interaction between the Irish government and KFW, we will learn in a hands on way more of what it takes to make a government owned development bank a success. Was there a golden age of Irish banking that we should hanker after? Probably not. Yes, there was a century and a quarter after the Munster Bank episode of 1885 with scarcely a failure. But though the banks were safe, they were even less adventurous than those in Britain and lent mainly to commerce in the church and later to agriculture, depositing the rest in the London money market for much of that interval. I've pointed out elsewhere that the convergence of Ireland to the frontier of European living standards in the last decade of the old millennium owed little to financing from the Irish banks. And perhaps this reflection means that our ambitions should be modest. If the banks can manage to accelerate their processing of the large backlog of troubled legacy debt into sustainable solutions, much of what is needed to restore their health will have been achieved. If in addition the funding of their low yielding tracker portfolio could be enhanced, something for which technical solutions have been devised but require wider official European agreement than that does not seem likely to be coming in the short run, then when combined with the credit union restructuring framework being implemented by the credit union restructuring board, it's called REBO, the foundations would be well laid for the long term rehabilitation and repositioning of the banking sector along the lines I've been describing. Technological changes will of course influence the operations and image of banking in the future. I've only spoken briefly about such aspects. Such factors may not be as strong in a period of reconstruction as they were in the run up to the crisis where over reliance was placed on risk management models and automated credit approval processes. But anyway, that was not the flaw that caused the Irish banking collapse. Its converse, traditional relationship banking based on the lender understanding, both the needs and the credit worthiness of its customers is in effect what was mishandled in Ireland during the exuberant years and is inevitably what we have to relearn to ensure the recovery of the Irish economy. So that's what I had prepared to say and I'm being very interested to answer a few questions.


Yn ymdw i'n gwybod, Alexandra. Yn ymdweud yw Lizzie Craig Atkins, mae'n gweithio ar y projeg yw'r cyllid yn gyfnodol gyda Colleig Genny Crangle, Paul Barnwell a Dawn Hadley, ychydig yn ymdweud.  Ond dwi'n rhaid i'n meddwl i'r cyfrwyng iawn, o'r cyfrwyng iawn i'r cyfrwyng iawn. Fodd y papurau ar y cyfrwyng iawn o'r ffordd y Charnol Charnol Chacol, yn cyd-fodd, argyllideb, argyllideb, ac yn cyfrwyng iawn, gyda'r gynllun o'r honno o'r hynod gyda'r ddechrau i ddweud o'r meddwl mewn gweld o'ch cyfnod bryd yn ymddangos o'r ddweud. Mae hyn yn gwneud, yw ddweud, hayd yn gweithio'r cyfrifiadau'r cyfrifiadau hyn ymddangos o'r roedd ymddangos o'r cyfrifiadau'r cyfrifiadau sy'n gweld ar gyfer hynny, a ddyn nhw'n ddweud ymddangos oherwydd Ni'n ddau'r ystafell yn ymlaen. Rwyf am Yrwythbeth ar Rathwell yn y llweol yn y ffrindio'r dros ymlaen yng Nghyrch, yn Yrwythbeth, Northamptonshire, yn y same y llweol cyntaf hynny'n ddweud am y bydd ymlaen'r ymlaen, felly y gallai gynnigau yng Nghyrch. Efallai ymlaen ymlaen, 9 m x 4 m, yn ystafell yma yma yn 2 ymlaen y cyntaf, yn y cymryd yn y ddefnydd yma ar y ddechrau'r ysgrifennu yng nghyrch. a'w'r wneud yn ardal am gweithio ar gyfer. The earliest descriptions of the channel, which date to the mid 19th century, and some photographs as shown here behind me, which probably date to the early 20th century, show the human remains were once stacked around the edges of the room. The lowermost layers are regularly arranged with crania in dispersed with long bones. And actually, other skeletal remains were tucked in behind, so we're not looking at a right here, which is just crania at the long bones. that's kind of what you can see though looking at it from the outside. Now this layout accords very nicely with one excavated example of a medieval charnall house in England with In situ bones, this is St. Peter's in Leicester. Here the charnall room was demolished in the 16th century leaving the bones in situ. So we have clear evidence of a medieval arrangement of charnall here at Leicester which rather nicely accords with what was suspect the medieval arrangement but Rothwell originally was. Y Llywodraeth Cymru yn ffasiliaid o'r rhaid i gynhyrchu'r bwysigol yma yn ymlaen i unrhyw ffasiliaid yma yn rhaid i bach am y bwysigol. Rydym yn wneud i'r bwysigol ar gyfer cymryd, yn ei dynnu'r bwysigol ar gyfer cymryd yng Nghymru, ac rwy'n oes i'r bwysigol sut yna'r proedd o'r byw i gyd-dwy'n bwysigol i'r bwysigol i'r bwysigol i'r bwysigol i gyd-dwy'n bwysigol i gyd-dwy'n bwysigol. Ond oedd y clywed bautiau sydd wedi gyreiladau yn ymwybodol gwell busin gyda'n mynd o unrhyw ar defnyddio gyda'r rai gefnodol, wymwnol yn ysbytyn ardal y defnyddiau. Mae'r Ysbyty되aeth yn olybu'r gyda'r llwyfodol, gallu yn llawer o'r rhain yma. Ychydig yn enghraifft iawn o ddiweddol, roedd ei cael ei ddweud o'ch gweithio gyda'r arddangos. Roedd y gydag yw yn fath o gynghori. Mae'r rôl ieddemu i gyd yn cyflym iawn i'n gwybod i dda i'r llunio yn yr unig. Felly, y pryshwn i chi'n gwybod i chi'n gwybod i'r llunio, felly, rydym yn cael ei gyd yn cyfrifiad, mae'n cyflwyno'n cymryd. Yn ymgyrch chi'n gwybod i chi'n gwybod i chi'n cymryd. Mae'r llunio wedi'u cyfryd ar y ddweud, ac yn gweithio, a'r fforddau ar y 90, felly'n gwybod i chi'n gwybod i chi'n gwybod i chi'n gwybod, Mae'n fath arlaedd o'r ffordd yma o'r ffordd o'ch cyflawn cyffredinol. Y Fath, mae'n Fath, roedd y rydyn ni'n cyfrifio'r cyflawn cyflawn cyffredinol, yn ei gael yn cyflawn cyffredinol. Mae'n toruniaethau ar y 18-19 yma yn cyflawn cyffredinol, ac mae'n gwneud yn mynd i ddod, mae gennym ni'n dod oes ychydig yn bobl, ond mae'n gwneud mewn gweld i'r ysgol, yn y 1912 mae'n yn ysgrifio'r Fath, ac yn ddysgrifio'r chyfnod o'r chyfnod a'r llai. Rydyn ni'n ddod o'r llai yn gynnwys a'r llai. Mae'n ddod o'r chyfnod, ond mae'n ddiddordeb o'r llai, ddweud o'r amser yn ychydig o'r llai a'r llai a'r llai ar gyfer y cyfrifio'r cyfrifio. Mae'r amser o'r amser o'r amser o'r ardalau, y teimlo yn ymddiol iawn, yn ymddiol iawn. Mae'n ddod o'r amser o'r llai, ac ddurdodd yn elu'r lygar maen nhw'n ddiddordeb y byddai'r llaw geisill. Rydyn mor dweud pethau am cael i yn cael ei ffordd ar eu cyffredin iawn. Mae Llyfr Whylawolaeth sy'n ddweud o gwneud i gfaselio cyffredin iawn ar arfer y ballach a lleoedd â'u llwythio ar bobl yng Nghymru. O'r Llyfr Whylaw wonderwyr yma, plefydlu sy'n ddiddordeb yw yng Nghymru, a'y gyfisig y Llyfr Whylawolaeth. Roedd y bryd ddwy nhw'r cyllid yn ysgrifetiddol, a'r gyllidion iail yn ynnig o ddweud 13-14. Ond aethau, rydyn ni'n ardal y cwmdeithasol. Rhyngomolon i'n gwahanol i chi'n cymhwynt maen nhw yn fawr, ac yn ddweud yn fawr iail. A'r teimlo Llywodraeth i'r bwysig, oedd yn golygu i'r sefydlu iail yn y cwmdeithasol, i'r bobl yn ddweud o bwysig o fawr iail. Felly, wrth gwrs, mae'n gweithio'r Llyfrgell Cymru, mae'n holl ffyrdd yw'r llwyddoedd, mae'n ffrindio'r saksynau a'r aelodau. Mae'n fydd eich plio'r wych o'r ddreifatiau yn ymhyddiadau ar y cwmraes o'r 18-19 ymgyrch. Ond wrth gwrs, ar y cyfnod ysgrifennu, rwy'n gallu'n ei ddweud a'r oes eu bod ni'n meddwl yma. Wrth gwrs, ymddai'n arweithio'r ddweud a'r oes yn cael ei ddweud, ychydig ymlaen nhw'n ymlaen nhw'n gwybodaeth ychydig yn ychydig i ymlaen nhw'n ei gael. Mae'n gweithio'n gweithio'n gweithio'n gyntaf llwyddocheth gyda'r Ysgolionol Cymru ar gyfer Ysgolionol Cymru'r Gweithio ar gyfer y Prosesent Cymru ar gyfer y 16th roedd. Yn ymlaen nhw'n ei gael o'r Prosesent Cymru, elwododd yn ei gael o'r ffabri ac yn ei gael o'r gweithio o'r grwp llwyddoch llwyddoch ymlaen nhw'n gweithio'n ei gael, ac felly yn unig iawn i llwyr iawn i'r lleol, ac amddai'r llwyddiadau o bwrdd i'w bwysigol. Rwy'n gweithio o ddiweddolion o gyfwyllwch ar gyfer y llwyr iawn ymlaen, oedd credu ar y rhannu oedd oedd yn cael eu chyfrin. Mae St Paul's Cathedor mae'r ddadlion. John Snow, 1549 yng Nghymru, rhai o London, yn ychydig iawn ar gŷ i'r llwyddiad. Yr unrhywb o'r cyfnodau i'r llwyddiadau i'r llwyr iawn, were conveyed then from Findsbury Field and amounted to more than a thousand cartloads. So they got a huge amount ofkan material being removed from a medieval channel site and re-buried on waste ground, essentially. The buildings were then demolished. At Ruffwell it has argued that the channel house was not cleared but it was shut-up in its entirety. It was simply forgotten then by local people. One of the first things we did to try to resolve some of these aspects of institution was to undertake a small programme of radiocarbon dating on the human remains. We were hoping to refine some of these ambiguous aspects, but of course radiocarbon dating is not necessarily going to help us to work out when the bones were moved in to the channel chapel. It tells us when the people lived. Three cranio provided dates within the 13th and 15th centuries. One of these mediocrania is the only example that shows sharp force trauma, so we're not looking at a group of people who died violent death, but this one individual who apparently did is medieval in date. Two cranio provided dates from the 18th and 19th centuries, and could be as little as a century old. One of these we dated specifically because it showed evidence of a natalisation, so we already had the slight hint that we're probably not looking at someone of medieval date. However, one other individual was comparable in terms of their chronology, so that two of these five samples, albeit a very small sample size, provided such recent dates, was rather unexpected for us. The previous assumption across the whole of England is that channel practices ceased, and these sites were cleared and simply not touched in the intervening centuries. The radiocarbon data also does a few jobs for us to bolster up some of our interpretations of the wider chronologies. It doesn't support any kind of single dramatic event being responsible for the deaths of these individuals, and it makes it seem very plausible that what we're looking at is a cross-section of the population of Rothwell, who derived from the cemetery nearby. The later addition of human remains is an original finding, something we weren't expected, and I will turn my attention back to that at the end of the paper, but for now I'm going to focus primarily on the medieval context of channeling. Primary documentary sources concerning the medieval channel houses in England are very scarce and heavily biased toward freestanding structures and cemeteries of high-stasis ecclesiastical complexes, where bones could be stored either beneath the chapel or underneath the main church. These include foundation records and church wardens accounts of the medieval period, for example at Berris Edmonds, which is the Latin that's part of the quote I have in Latin upon the slide. The foundation charter of the 11th of September 1300 records the abbot's concerns at the disorderly state of the cemetery. His response is directions to provide for a chapel to be constructed in stone, under the cavity of which the buried bones may be laid up reverentially and properly in the future. So it seems here the chapel was constructed explicitly to deal with the situation of disturbed human remains, with the idea it could serve that purpose in future. Antiquarian records form some of the most plentiful sources for channel chapels in England, however they are widely problematic. Not only are the interpretations sometimes rather outlandish, but we also have a few Antiquarians who were honest enough to point out that they couldn't find evidence where they were looking. To take one example, Brown writing about Hyde in Kent in 1697 records how, all by what means the bones were brought to this place, the townsmen are ignorant and can give no account. It seems genuinely the case that some of these sites were forgotten even within a century of their supposed use. So to end I'd like to reflect on how the evidence we've collected for Rothwell might aid a better interpretation of the significance of channeling in the medieval period in England. Many scholars within this framework take a very pragmatic approach to explaining channel practice. There is a practical need for the storage of human remains and therefore space was found to stack them up. This was a sort of process that was conducted by Sexton's essentially as a way of managing cemetery space. But we think the archaeological and architectural evidence give us a bit more of an opportunity to illuminate the surgical context of channeling, how it might fit more broadly into practices within the church. Now the obvious context for the late medieval construction of semi-subterranean rooms in which to store channel is the maturation during the middle of the 13th century of ideas surrounding purgatory. Most souls having neither lived good enough life to go straight to heaven or bad enough life to go straight to hell went to purgatory, where their souls were cleansed by fire and they could move on to heaven in time. Masses for these people offered by the living could offer essentially a bit of a boost to the souls into heaven and be counter balanced by providing the living with a certain kind of getting rid of the debt they had and allowing their souls to pass through faster when they finally died. A light of these beliefs about the fate of the soul are beliefs about the fate of the body. Because the body remained on earth to be reunited with the soul of the last judgment, the dead were in some way still present. If the dead were still so tangibly embodied in their remains, it follows the location of the bones with respect to the liturgical architecture that was significant. So if you look at this pathway diagram showing the location of the channel house at Rockwell, there's a few things that really rendered more compelling the liturgical significance of this space and what might have been going on. Now finish very briefly because I've had the stop sign as well. So you can see the channel tackle is positioned underneath a medieval chapel at which the full accoutrements of the performance of mass were in place. Not only could the bones semi-present in that channel house hear the mass and be associated with its presence but by a looking slot in the architecture up here you have an actual direct communication between the two spaces. Mass could have been louder but light could have shone down from the space in which these liturgical activities were taking place into the channel chapel. There's a clear architectural link between the two here. I haven't got time to go on to talk a little bit about the instituing centuries but suffice it to say, Rockwell has survived for the reason of being just interesting. We have people coming on cycle tours in the 1930s to visit the site. We have many scientific articles and we also have a rather interesting link with Tutankhamun, people stealing bones and then being afflicted by curses having to bring them back. To draw everything together I hope I've shown you how some new evidence drawn together from the Rockwell Channel Chapel project has enabled us to shed a little bit of a light on the more ambiguous aspects of the liturgical context of channel practice in England where for the most part it's bullying that channel houses serve predominantly a practical process and did not carry on in use beyond the Reformation. Thank you very much.


On Plus Politics today, we talk civic education as we take a look at the advocacy and increased voter participation ahead of 2023's elections. And we'll be looking at the 2023 elections and the challenges ahead for the APC. This is Plus Politics. I am Mary Annacol. People's active participation in elections is one of the key measures of electoral democracy. The lack of interest or apathy in elections tend to undervalue the democratic process and gender mistrust in political institutions and throne on accountable leadership. This is why voter turnout is crucial and an aspect of electoral studies. Nigeria has successfully undergone two decades of uninterrupted democracy. Nevertheless, recent years have shown a trend of civilian engagement in the electoral process declining. There has been conspicuous decline in voter turnout in general elections since 2003, particularly presidential and gubernatorial elections. One of the ways to improve the quality of elections in Nigeria is to increase voter turnout and boost the participation of Nigerian citizens in their own vibrant democracy. The more voters there are, the harder it is for bad actors to taint the democratic process. Joining us live to discuss this is James Ugochuku, the co-convener of Nigeria's civil society situation room and Eugene Abel's executive director, the extra step initiative. Thank you so much, gentlemen, for joining us. Thanks for joining us, Ugo. We're in the main tech before having me in Plus TV. Great. Let's talk about the engagement that's out there. We know that when it's close to campaign season and of course elections, we see more rhetoric, more mudslinging. We see a lot of propaganda, disinformation and misinformation and pressure on all sides, both on political parties and even the voters. But then we hardly really see conversations that should encourage voter turnout and discourage apathy. But let me start by asking, why do you think there's so much voter apathy in Nigeria even now in 2022? Well, thank you for having me once more. When we are looking at voter support, I think we need to look back to where we are coming from, which is the military, the security personnel interrupting our democratic process. If you can recall, we have a very long period of military regime. What military regime gives you is the exclusion of the citizens from the governance process. Nigeria citizens are still yet to come to terms that they are stakeholders in the governance process or that they even have the power to make decisions that affect them with respect to governance and all that. Now, after the transition to democracy in 1999, we have a political class that still have that military mentality and we still have the citizens that still have that military mentality. Now, let me look at the political class for instance now. The political class, because they have military mentality, don't see any reason for an inclusive and participatory democracy with the people. So they tend to do things the way they like, force themselves to power and carry out the governance process the way they didn't fit. And we have the people that still believe that we are still living in the democratic era, so they don't understand what the constitutional rights they have and the question they should be asking the people in governance. So when you bring all this together, you see that the voter party is there. Then if you now look at our electioneering process, it's official now that you started having something that has the semblance of an electoral management body. An electoral management body that has very few, very limited or very few external influence in its dealing.  To the point that even the president elects them, leads president Umar Musa Yadda during his ceremony. He admitted that the election that brought him to power was grossly flawed. And that's how he set up the popular waste committee. So you see that because the citizens believe that they are vote don't count or they don't have a say in the democratic process, they decide to sit back, take the back seat and watch how the whole thing is going. But I want to change your perspective with respect to citizens participation. Their party is reducing actually based on what you observe in the last couple of elections starting from Mandelberg election in November 2000 and the 21 last year and the FCT election 2023 that happened in February and of course equity and the ocean election. The enthusiasm is increasing. And of course if you're not capital, if you're not capital with the political consciousness that is giving momentum now, citizens are now beginning to see that they have the power to make change the way it is. And that is brought about by the kind of election management we are having now. Normally the use of technology that is now making it very difficult for politicians to manipulate election the way they like. So citizens are now having a glimmer of hope that yes, if I vote, my vote will count. And if I choose a particular candidate, that candidate will be sworn in just as we saw in the ocean and the equity election. And based on that, I think that's what is propelling the citizen to have active interest in what is going on. And I think come 2023 and based on the surge for registration for the PVC and the alignment they are doing behind different political parties and politicians and all that, I think we're going to have a very tremendous turn out when it comes to 2023 general election. Eugene Ables is joining us. He's the director of Extra Step Initiative. Eugene, we're talking about voter enthusiasm here and of course pushing for more voter participation. But we can't also have this conversation without bringing in civil society. We also see that the civic space is saturated with all kinds of civil society organizations but there has been that question mark around how apoliticised or apolitical I beg your pardon, these civil society organizations are because we have also seen and heard civil society organizations declaring support for politicians. How can the rest of society want to get involved in politics if even the guys who are supposed to speak up for the common man seems to be leaning to different kinds of political parties? Yes, thanks for having me and one will say everybody is a political animal whether it be in the family or because politics basically has to do with the allocation of resources. Now, and this is one of the issues where it is one of the reasons why those who are campaigning for a regulator of civil society and non-governmental organizations, one of the reasons that one of the justifications they're putting forward for that regulation I expect that for me I will advise that I think there has to be some form of regulation because in the last six years for economic interest there was an abuse which led to the proliferation of a lot of non-governmental organizations so anything that is not regulated is likely to be abused but the question is now to what extent do you want to regulate before the fear that everybody is concerned about begins to play whereby let government know that it's an opportunity to begin to stifle this platform that enables the ordinary man's voice to be heard and also put regulators in check. So I think it's an issue of the egg or the chicken which came first but like we say that even in the face of a lot of fake borderline system it doesn't mean that they are not competent or original currencies so it is left for we as informed individuals to naturalize the disarm those organizations that are go for, that are apolitical that are doing that just as expected of them at the moment as non-governmental organizations for the benefit of the society. I want to push you father, now Gautrupa made a case that we're seeing more and more active civil civic participation in the space being that more people are getting their PVCs, more people are registering to get involved in the electoral process but I always like to, you know, I was in Annambra, I covered that election the percentage of voter turnout was still nothing close to the number of people who registered for that election and this can be said for several other elections across the country before the end of the year or even the most recent which was Oshun state, there was a great voter turnout but the percentage in itself still was nothing close to the number of registered people now let's talk about the PVC situation INEC did extend the time for the registration to a particular date as soon as that date was announced we saw a lax a lot of people just relaxed and then when it was close to the final day we saw a surge of people to those registration centers and that's one step, INEC has several millions in fact voters cards that people are yet to pick up so again it makes me question how enthusiastic we are about the selection well I mean campaigns are starting on the 28th are we really serious about taking over this civic space and making sure that we're part of the electioneering process are we doing enough and I really don't want you to say Abel that the NOA has its job cut out for it because I do not know if it still exists well concerning the enthusiasm that you have probably felt from social media normally we like it, we like the buzz but it's beyond the thing, how many people can put this to fire I did the piece just like you observed in the last election which you managed to buy what was the non-total number of votes that brought President Buhari to power less than 40% if you come to reverse the 3 million voters which they brag about we only see less than 600,000 people that voted that brought the President Buhari into office now the average excited, enthusiastic provoter who is talking about PVC you ask him do you understand what the Electoral Act is saying he probably does not and he's not interested to do that even though now we have the benefit of Google and information all around us in our hands as you wake up beyond the Bible the first thing you reach is your force now a lot of people are not willing to go beyond that extent and a lot of people are also not willing to pay that price of going to pick up their cards and don't forget before the amendments because they don't know what the rules are saying some people are still doing double registrations and all of those are plain steps and some people believe that they will be able to cause an extension not knowing that the Electoral Act is getting tighter and tighter and if certain things are not done within the timeframe who pay for them they can never be done again it's just like the typical conversation here in the public space where people are saying I let them amend the Electoral Act so that this can happen and you need to remove some we have to go out of our way to remind them that irrespective of the amendments that are made to the Act today it is time bound it is time bad meaning that it cannot take effect onto the next set of elections we like the bust, we like the Jesus but thank God you brought this up we use the opportunity to appeal to them for those who have not already got their cards to go and collect them an opinion poll that was carried out by a newspaper premium times about elections and why people don't really show up to polling units even when they have received their voter's card even when they are eligible to vote let's start with the one from Leigh Goss State we're going to put it up on the screen now apparently people gave all kinds of reasons some said that their votes don't count some says no candidate that I trust or want to vote for some said that the country and the governance in the country the form of governance is bad some said insecurity and violence during election some said they don't even have a PVC and some others said they have no interest in politics and some people said it's stressful but the highest percentage of about 20 something percent went to my vote does not count how do we change this narrative and do you think or rather what role do you think that the leadership and governance trajectory in this country has played in this response by some of these voters I have two people if your father would be pleased oh this question was for Gojuku oh sorry okay you can go ahead okay it's fine if we look back to what I said earlier the long military regime which I call military regime hangover is still on us and that is where government is operated in opacity so a lot of people still don't have that sense of belonging as citizens that they are part of this process and that is what is making them to think that their vote don't count and another reason is the issue of my practices during election proud to know we have ballot boxes being snatched in election which comes to the other respondents that say that they don't go to polluting because of insecurity then we look at politicians manipulating the election from the coalition process in fact in situation of 2011 we released a statement saying that the weakest link in our electoral process is the coalition process and then now that we have IMEC introducing the technology to fill in that gap I think that has been removed and if we check the last election we had you know SHU and KTA states we have more people turning out than before although even if we check the internet based on your previous election the internet is not the same percentage but in terms of number is more because when you are talking about percentage is a function of how many percentage or which number you are calculating so now when it comes to 2023 yes that's a fair is okay and that is where all the rational stick would need to come into play you say that yes we talk something about anyway of course it's not only anyway that will be the direct beneficiary of electoral process the media will be direct beneficiary the civil society will be direct beneficiary the church, the mosques and all that stick with us are part of the people that are going to benefit so it behooves all of us to take this message of galvanizing people to come out and vote to the cities to the deepest grassroots communities for them to come out and vote given that IMEC has made it almost impossible now for elections to be manipulated because we have a system the bimodal voter's accreditation system the pivus machine is being used from accreditation to the coalition process and the transmission of result electronically to IRF voters so with this now we discover that there is a little room for much practices you can't rule out my practices entirely but there is little room for my practices and this is where citizens vigilance comes into play citizens understand exactly what they need to do what they need to watch out for and how to respond to certain scenarios during election I think that will help us in having the credible election that we are expecting so yes the statistics came out the way it is and the good thing is that we have close to four months also to disabuse demands of all these young people that the game have already changed and of course it can be a serious part of this process as we are moving on finally Eugene before we wrap up because we are out of time for the case of eradicating my practice or bringing it down to a bare minimum on the path of INEC and the electoral act there has been a story making rounds about the fact that some of the people who have been nominated by Mr. President to be commissioners in INEC might be people who have been appointed by the APC or people who have run for office already within the APC now this is also a cost for consent how do we also make sure that this does not put a dampener on the boss that you have been talking about in closing yeah first of all let us thank those who have brought this to public attention and why we are making the agitation on social media I think it is time for people to carry a class action delegate once gather evidence against these people and approach the courts immediately there is no time for us unless at 20 days time the campaigns will begin yes immediately we just get an order of mandemars ordering our courts to secure relief for them to be excused from but they should not even go for cleric so we don't waste time with them it is a straight forward thing the Executive Director the Executive Director the Executive Director is the Co-Combina Nigeria Civil Society Situation Room I want to thank you gentlemen for being part of this conversation thank you for having us thank you all for staying with us we will take a quick break when we return we will be discussing the 2023 elections and the challenges ahead of the APC we will be right back