Okay, okay. Thank you for introduction. So I'm Koji Nishimura from the JJ Inc. So I'm in the Japan startup company. So my presentation title is Estimation of hyperparameters on Ising model with constraint So in this talk, so I propose a parameter search algorithm of the coefficient of the constraint term So namely, so we focus on the cubo model with constraint And the aim of the parameter search is searching your global minimum or cost function with constraint satisfied both equality and inequality And moreover, so by-product, so our method can estimate the real ability of the solution So namely Okay, so let us begin with a cubo with constraint So as you know, so when you deal with some kind of unneeding algorithm via quantum unneeding So we often use the cubo model and as you know, the cubo consists are stands for quadratic unconstrained binary optimization And the aim to deal with cubo is finding the combination of qi So which is both takes value both zero or one that minimize the Hamiltonian aspect depicted below the quantum unneeding in general use this format to start the optimal state by applying the transverse field and Make the schedule like that to this optimal state Now actually the almost all practical models have constraint So for example in the industrial problem such as logistics telecommunication and the so traffic problem has a constraint problem So one of the typical example of the constraint in cubo model is traveling salesman problem So the aim of the traveling salesman problem is so find the minimum path that the traveling salesman can So travel all over the city only one time but in this example the cost function is the Cost function is depicted as the so this one so distance But actually so there is a constraint namely one hot constraint the two types of constraint and then So we represent so previously how to deal with this constraint with cubo model So let us so into let me introduce the previous approaches So first method is quite naive method applying the penalty method So we're adding is a penalty term So this consists of the square term of the so constraint so with a coefficient. So name you lambda This approach adding just only the penalty terms to the original Hamiltonian to make the constraint satisfied So if the so the right solution Is the so constraint violated the penalty term going through increase so which increase the cost function to However, so this problem is needs exhaustive fine-tuning of the parameter lambda So in general in this case in this case the number of parameter is only one So this is not problem, but in the case so we have to deal with a multiple constraint So this kind of the problem and also, so if we increase the lambda so the So you can derive the solution with the constraint satisfied But the cost function is increasing and it should decrease the lambda so So we can decrease the cost function, but we derive the solution which are by ways the constraint So we have to so exhaustive fine-tuning to find the this parameter and also this approach is not trivial in the case of inequality constraint and The possible approach to deal with inequality constraint by this penalty method That's for example using slack variables, but Slack variables to so convert the inequality problem to the equality constraint But in general so this requires additional beats and Then from now so we going to introduce the two kind of approaches So one approach is a kind of established method argumented Lagrangian method. So we go we call this method ALM So this is a established method for solving optimization problem Not only are needing but also the numerical optimization. So to solving optimization problem with constraint so in the original formulations as a Solution variable X is a continuous variable So so supports us so we have we have to minimize the cost function So subject to this kind of equal constraint The steps of the argumented Lagrangian method is straightforward first So minimize argumented Lagrangian function first So who a where the so introducing the linear term and the quadratic term and Then so updated coefficient of linear terms. So this depends to the low i the coefficient of the square term Then Then so we are going to update coefficient of quadratic term is necessary So namely the one with the naive up naive approach is so multiply of some kind of ratio alpha Also this method is so doing by continuous value a continuous variable Recently so Tanahashi and Tanaka introduced a method to apply this argument of Lagrangian method to Cuba so also the Cuba consists of the so discrete variable and The argument of Lagrangian problem is not is not trivial But actually so they show the applying the argument of Lagrangian method improves the Finding the solution so compared to the naive penalty method So their approach is just minimize argument of Lagrangian Hamiltonian depicted as so this linear term and quadratic term And then update coefficient of linear terms and then so update coefficient of quadratic terms But actually so this problem is so we have to need parameter tuning for initial mu and initial alpha And also this method is not guaranteed to reach the global minima since the argumented Lagrangian method find the solution That satisfies the necessary condition of the global minima under constraint And another approach is using Lagrangian draw problem plus sub gradient method So suppose that we want to so I deal with the original problem So minimizing the f of x subject to the this kind of constraint so we can formulate the Lagrangian draw problem and The Lagrangian draw problem consists of the so linear term adding with the constraint term The one with a feature of the Lagrangian draw problem is so derived solution from the original problem The cost function is of course the bigger than the optimal solution So whereas so Lagrangian draw problem the derived solution is it is it can be proved that the derived Solution is lower than the optimal solution because this is a relaxation problem So our aim to first so minimizing this Cos fun this Lagrangian draw problem function and then so maximize this function in respect to the UI So that's so we can reach the optimal Optimal energy from the bottom to top and also the method as an advantage of this method is so by Repeating these two methods So we can drive the upper bound of the optimal solution and the lower bound of the optimal solution So because the original problem always finds the solution which is bigger than optimal the Lagrangian draw problem Find the solution which is smaller than optimal So then we can estimate a duality gap and if we so decrease the duality gap so we can We can derive the solution quality and actually so this problem is applied by the so Or the key So his approach is minimizing Lagrangian verification problem and the updated cohesion to linear terms And so in fact, so this method is not to aim it for the Subversion method originally so he originally introduced the method for eliminating quadratic penalty time from DB machine But actually that this as a problem of this method is Parameter search process is quite unstable. So because there is no quadratic time. So if we Know what no quadratic penalty time So in this for this reason, so we have to need quite fine tuning of step size either and then so we are going to So my idea. So this is a method. So idea is combine some sub-gradient method to so augment the Lagrangian method so also the sub-gradient method is so seems to be so reasonable so because we find the Upper bound or lower bound but actually so this is unstable So if we apply if we can apply the quadratic time to the sub-gradient a sub-gradient method So we may remain can stabilize the parameter such and also the update rule or augment the Lagrangian method And sub-gradient method is quite similar. So is there my some kind of correspondence between low i and eta So this is my algorithm So we so setting the problem first so minimizing a function of f of x so subject to is also equality constraint So gi equals to zero so note that so also we don't so present in this in this moment But we can easily extend it to inequality constant a constant constraint so without adding so any kind of stock variables The first our approach is minimize augmented Lagrangian function. So this consists of the linear time and the quadratic time and then We get the upper bound and lower bound. So after so we get the Solution by using for example quantum annealer for example, and so we drive the we can drive the lower bound of the this point And also in case of upper bound So we can use for example, non-feasible solution where the constraint is satisfied or if non-feasible solution So we can set the sufficiently large value Not that the initial valuable of the Initial valuable or the ui and low i is set to zero and Then we are going to linear time update. So which correspond to the sub-gradient update So if constant is not satisfied and So this step size is so proportional to so upper bound minus lower bound. So which is equivalent to duality gap Then so we are going to so quadratic term updates for which correspond to so the argument regression method kind of update so the So we update the argument regression method by using so this this valuable eta So which is inspired by the correspondence between the low i and the eta and then so we repeat Repeat repeat this method until the solution converges So let us introduce the numerical experiment to how it works our algorithm. So we present the traveling salesman problem We which has a so equality constraint The we Compairs of all kind of method. So one method is argument regression method with the Coefficient or quadruple meter increasing so based on this alpha We set alpha equal one point one The second is the argument regression method with the so coefficient of coefficient coefficient of quadratic parameter fits and also we apply the Naive Lagrangian dual problem plus sub-gradient method and then so we apply our method so we compare this four method and We use the anneal method as a simulated annealing but not that so our algorithm the annealing method is Not relevant So that's our rhythm can be applicable to some kind of annealer for example derive quantum annealer straightforwardly and So this shows how the algorithm behaves So for example in the case of the argument regression problem with the quadratic size increased So this is a cost function So where the so x axis shows a parameter update iteration and the cost at the right axis shows a cost function and the black dashed line shows the so optimal solution For the argument regression method with quadratic time increased so cannot leave the feasible solution in 50 steps and Organic language with quadratic time fix so it depends on the initial variable of the quadratic time Coefficient so with small for example with small coefficient so we cannot we cannot derive some kind of feasible solution But as we increase the solution so we get the optimal solution but actually so So also so if we change the parameters of a low zero so we can so derive the solution But this is nothing but the extensive search and Also nice sub-gradient method fails so completely so this cost functions so always so takes a value zero and no feasible solution and Our algorithm so the so initial Initial iteration so behaves like the sub-gradient method and jumps near the optimal solution and fluctuate in the fluctuate on this optimal solution and also so we can Experiment with a more larger instance and give the same result Should try to conclude And also so we can Do the numerical explainer on the inequality constraint and it works very well and Our algorithm as a as a by-product result So remember that so we are we are going to calculate in the course of this iteration of the upper bound and lower bound So that so the most so Interesting feature is our method calculate the upper bound and lower bound during parameter search So which is enable us to get information of the reliability of the solution obtained by an editing method So because in general so quantum annealing is even if we get the solution.  So we formulate the editing model with constraint So which needs exhaustive parameters as for penalty method so we introduce our method to combine some a gradient method and element and so So gives a nice performance compared to the previous approach algorithm and more over so we can obtain love up and lower bound information So that's all for my presentation. Thank you very much Quick questions. I have a question. It's in the chat. Do you have a paper about this work that you could share? Actually, so as a paper is preparing right now Okay, thank you. Okay Nice talk I have a quick question about your method. How do you choose the eta parameter that you used to update? So is the question is so how to choose the element parameter? Yes, your parameter eta. How do you choose it? You mean the wait a second. Yes, this data. Yes. Yes. This 80 is proportional to so upper bound minus lower bound So actually as a so that's so in the initial state so upper Difference between upper bound lower bound and quite large. So which gives sir so quite large step size but if we iterate the algorithm and if we can so decrease the Difference of the upper bound or lower bound so the number as a step size will lower and lower and then we go into this so optimal solution so the answer is We choose so a eta so which is proportional to upper bound minus lower bound So we so calculate in the course of the iteration so upper bound the lower bound and from that we calculate the eta Okay, so Yes, so let's thank you


Hi. Hey. Hear me? Yep. Right. Right, take it away. All right, let me share my screen. Thank you everyone for joining my session. And thank you so much to the speaker before covering how to contribute to open source communities. I absolutely loved your talk and loved all of your enthusiasm around contributing and especially your advice to stay humble. I feel like that is such a actually really big part of it. So I am the community manager for opensource.com which is a publication supported and sponsored by Red Hat. So I am a Red Hat employee. Opensource.com is part of the Red Hat marketing team. But it's kind of an arms length away in terms of like we really try to focus on the open source community at large. Out in the world, global, anyone's welcome. And we've been around for 11 years. So we've learned a lot in that time about working with the community. And really the way that we do that is we encourage our readers, the readers of opensource.com to become writers. And of course you don't have to. Reading is great. That's a great way to participate and learn and be a part of our community. But we're focused on getting user generated content. So people who are actually using the technology in one way or another do not have to be an expert but just using the technology, getting to know different tools is really our focus. So our community internally or our team internally, our editorial team is really focused on connecting with the community. So we've learned a lot of things about that over the years. So to the point of the talk before, I would be happy to talk about that at some point or answer questions about things we've learned. But the point of this talk is about something a little bit different, which is what stories we are seeing really resonate with our readers. So current stories about software development today. So I'm gonna talk to you about what we see as really popular on opensource.com today. And hopefully this will give you some insight into just what's interesting to people, what developers and sysadmins and other open source enthusiasts are into these days. And if you feel inspired at any point to talk to us about writing for us or pitching an idea, please do. So I think it's about learning, but it's also about if you see ways that you could participate, we'd love for you to do that. So let me start with a couple of things. We're gonna talk about what's popular, Linux, Kubernetes, Raspberry Pi, and I'll dig in a little bit to get a little bit more specific about what around those topics is popular. And again, these stories are published on opensource.com. We've been publishing for 11 years. We publish two to three articles every single day, one or two on the weekend, and we've been doing that for a while. So we really have an amazing body of work, a lot of fantastic articles, and we do kind of see what does better with readers and we rank that and we look back at that and we say, okay, let's write more about this because this is really interesting to people right now or these are the problems that people have right now. Let's focus on that. And again, the people who are writing this are users of the technology, people out in the community, this is about corporate, I mean, this is about community, not about corporate topics in terms of the main focus for our contributors and then we have a key group of contributors that we call the correspondence. So a couple of quick stats at a glance for opensource.com is that in 2021 so far, we've had around 200 authors, so people who have contributed an article, around 500 articles, so you'll see that some of those authors are repeats and around two million reads a month of those articles. So this is a look at the, if you applied where the people are reading on the map, so you're seeing a heavy influence in the United States, India, Europe, Australia, in some other places, Canada, and then you can see, you can kind of dive into the different locations there, but it is a global audience. So let's look at our most popular topics. Two categories to focus on here is most covered and most read. So most covered means these are the topics that people write about the most often and most read meaning these are the most popular from in terms of page views and unique visitors and they overlap, right? So Linux is number one. There's no question in anyone's mind on opensource.com that we have a very heavy Linux audience. So anything from how to use commands to a Linux tool to celebrating Linux, the Linux 30th anniversary, which we did recently on the site with some Linux modules. So we really have kind of run the gamut of different Linux type of topics and they're all really popular. We focus on programming. So that can go into frameworks, that can go into languages, that can go into my programming story. We really actually like to write about people's experiences and we try to use that as a tool to share what people have gone through to figure out what to learn first. So great resources for getting started, what programming languages people like to start with, or just experiences that they've had learning those tools and learning those languages. Yeah, you'll see, so you'll see Python in here, Java. JavaScript is another great one, not on this list, but another one that's kind of up and coming in our list. Another thing you'll see here is Raspberry Pi. We have a really large Raspberry Pi audience. Not all open hardware is a great, is popular, although it is definitely a topic that we love to cover. There's a lot of really neat at home projects, weekend projects, that kind of thing that people do with the open hardware. We cover Kubernetes extensively, so that's a great angle for us. And we're focused on the open options, the open source options here, of course, opensource.com. So we say focused in that lane. We also do things around careers. This kind of falls into the what's been your experience category. So we like to hear how people got started, what their journey has been, where they are now, advice they might have. We often do a five, top five questions that you might get asked in an interview if you're interviewing for blank, whether that's to be a sysadmin or a developer or lots of different options in that space. So we also have a great category here for open source alternatives. People use proprietary tools, and that's great. We're not trying to pretend like that is not reality, but we do like to present our readers with options. If you're an open source enthusiast, you're looking for open source options, open source tools. It could be an alternative to other things that you're using. So that's a really fun one. People will write in with like, hey, I started using this new tool. It's an alternative to Evernote. It's alternative to Trello. So that's a fun one. And if you have any ideas on that, we'd love to hear it. So you can peruse this list, lots of great stuff there. And then this third column is around our most wanted. So these are things that we're looking for people to write, ideas that we have. And again, you're gonna see a lot of overlap, but the top two bullets here wanna focus on, bite-sized tutorials and Linux commands and tools. So we often have people say, I could write a tutorial about how to use this tool or how to use this Linux command, but it's been written before or I'm not the expert, but the truth is, is that every time somebody new writes about how to use something, they bring something new, usually, right? Not all the time, but usually true, is that they bring something new in terms of they have some insight into how to use it or some idea about how to get creative using the tool or they use it in a way that no other tutorial has ever talked about using it. Or they just share something about their experience using it. So we really love to share those and they do very well. Google does not care that it's been written about before as long as it is well-written, quality, and on a reputable site, which opensource.com is. And the other great thing is that our editors are here to help you. We have an editorial team that is available to help you write, so we'll take your draft, we'll review it, we'll give you some feedback if we think that it can be improved and we'll try to be as specific as possible so that you can improve it easily. And if it's just something that we can't publish, we try to give you feedback on why it's not publishable, but the great thing is that we do have that editorial team to really help you out. So if you've never written before or you're just not sure, how do I write a tutorial or what does that look like? We're here to help you. We have lots and lots of really good examples that you can use as templates as well. So this is diving a little bit deeper into what exactly are the articles? So those are the topics. These are some of our most read articles and we have the original publish date on the right-hand side. So you'll see that even some articles written in 2017, 2018 are still very popular today. And so these are great articles if you're looking for templates and you're looking for, okay, if I wanted to write something similar to an introduction to Bash Arrays, here's one that I could look at for what makes this a quality article? What did they do with the introduction? What did they do with the format and the structure of the article and what did they do with the conclusion? And I don't think that these are clickable to you all that you can bring them up, although you could copy paste or type it into Google and find it, but I'd be happy to share any of these with you as well if you're interested and you wanna reach out and I'll have contact information at the end here. So we're covering things from how to use Git, how to use Python, again, how to use Linux, Bash is a great topic. You'll see lots of Linux in here. We have GitHub, which is related to Git and more Linux. And then this is a list of top articles written by our correspondents. So our correspondents is a key contributor group. It's about 20 people from all over the globe and they write 10 articles a year for us and they're in a special program and we meet with them once a week. We talk about article ideas with them and we share stats with them. We have a discourse where we talk and hang out and it's really like a special kind of writers group where if you're interested in writing that much, 10 articles in 12 months is definitely doable, especially with our editorial teams help but it's not a simple task either. It's close to one a month. So it's quite a bit of writing but we try to nurture those relationships and those groups as much as possible. So they've written some really interesting stuff. 10 Raspberry Pi projects. Raspberry Pi is in here. Let's see, at least three times. Lots more Linux. Home Assistant. So we started writing about home automation a few years ago and it kind of did okay. Kind of saw some interest in it but not a ton. Recently we have seen a lot of interest in home automation articles. This is anything from how I use Home Assistant. This was a whole series on how Steve Evans used Home Assistant for his home automation. So that was a really neat series and he showed the different ways, he had some pictures and some details there. So what's really interesting with our readers is how you take a tool, a command, a project and you use it in your daily life or just in your life doesn't have to be daily but just in your own way. So there's a lot of great things there too. And so this is a list of the most downloaded content that we've published lately. So we have our articles that come out on a certain day and they live on as long as they live on depending on how popular they are with readers. And then we also have these downloads. Some of them are e-books, some of them are cheat sheets and these are really great for kind of a different format for sharing your expertise. So we have Linux commands, we have Python, we have Raspberry Pi, this curl cheat sheet is fairly new that's done very well, some get in here. And again, our audience is very focused on developers, sysadmins, Linux enthusiasts, open source enthusiasts. And so that can, it's kind of specific and then it gets more broad. So there's a lot of different people that can fall into those buckets. But we find that those are the folks that are mainly using our downloads as well. So I wanted to leave some time if there was any Q and A here or in the chat, but I'll end on, write for us, learn with us. Learn with us through reading, through connecting with us in other ways. We are on Twitter and Facebook. But then also if you're interested in writing for us we're here to talk through ideas to help you write, to help edit, to revise, just to really be a guide. So you can email me directly, you can email our editorial team. And then I also wrote an article that's on the source page about why it's important to write and how to get started. And that's really focused on, well, what's the whole point of writing? And I really like to share with people that if you are interested in meeting other like-minded people who are interested in the things that you're interested in, if you want to become kind of known for a topic in the community, writing about it is a really great way to let everybody know that you're into that thing. And then another great thing is if you're interested in or looking for ways to get a promotion or move into a certain job or change tracks, that kind of thing, then writing about the things that you know and the things that you're trying to move to, if you know about a subject, but you're not working on that topic right now, but you'd like to, let's say you wanna work on Kubernetes in your next phase of your career.  So writing could be good for a lot of different reasons and a lot of different things. And again, our team is here to help with editing. And so hopefully you got a good idea of what is popular on opensource.com. And again, we get close to 2 million page views a month. And so that should give you, like to me, it's not just what does well on opensource.com, but that's a good reflection of what is popular in the community globally at large in the world right now. So let me know if I can help in any way or share any of these direct URLs with you if you're interested in diving deeper into the actual article itself. Yes, I will share the link for the article on the source. And if anyone has any questions for Jen, feel free to leave them in the Q and A chat. And it looks like we have one question in the Q and A, it's from Oleg, I don't know who that is, but it looks like they asked, how did you start writing? How did I personally start writing? Okay, sure. Like, how did I start writing? I don't have to think about that for a second. Well, I mean, I've always kind of been a writer, so I don't really know a time when I wasn't writing, but I would say in terms of writing about skills, so if you wanna share expertise that you have, skills that you have, experiences that you have, I've really first started doing that when I started my own blog. I live in Raleigh, North Carolina, and used to go to the Red Hat Tower before everything got shut down. And I was really into going to different places in downtown Raleigh, because downtown Raleigh was changing a lot and growing a lot. And so I, and this is before I had kids, so I had a lot more free time on my hands. And I started writing about things, places that I would go and things that I would do, and that was kind of my outlet for practicing writing, like really practicing and doing it consistently over time. I was a team of one, so I didn't have an editor, and I didn't have a lot of feedback, except for kind of how many reads I would get on the site. But that led me to the career that I have now. That connected with me with some people at Red Hat. And again, kind of to the point of writing to advance your career, I had a body of work. So when I came to the interview for working on a publication, I had a body of work to say, I can write, I can edit, I can produce content on a consistent basis. And I think most people that would join this talk are not gonna be applying to a job at a publication. But the point is, is that if you have something to show that shows your expertise, that is getting you towards a goal, then that's huge. I mean, you're not just talking about it in their interview, you have a portfolio, you have something to show. So that's how I got started and still here today. Oh, I think you're muted. Oh, okay, yeah, I was. I was gonna ask, do you still face WritersBlog? Do I still have my own blog?  Oh, WritersBlog, yes, for sure. Yes, I love that question. Yes, I do. I think that that's just part of being human. And if you're a writer, then it's just kind of part of the deal. I don't write nearly as much as I used to. You know, so much of my job now is related to nurturing the community of contributors. So helping them get unstuck, helping them find topics to write about and focus their work. But they go through WritersBlog, our key contributor group of people who write 10 articles in 12 months. I mean, I think part of the pressure of that is, okay, what if I go through WritersBlog and I have this commitment to write 10 articles in 12 months? And so that's why our editorial team is, I think so critical, you know, to really have a team that can spend time with the contributors and help them get unstuck and talk them through things and constantly be throwing ideas out there. I mean, we have a writer's list of over 500 people and I try to send out writing prompts and ideas once a week. So I think kind of keeping that flow going is important for helping people kind of stay in the flow and get it back in the flow when they need to, but also taking breaks. I mean, WritersBlog is maybe a sign of needing to take a break, so that's okay too. Yeah, and I think it's very human to not always wanna be writing 24 seven. Yeah, for sure. All right, do you think that there are any skills that someone can learn that aren't exactly writing but kind of go hand in hand with it? Yeah, that's a good point. Like I definitely, I don't wanna say public speaking and make anybody feel like they need to do that, but I do think that it is similar in terms of part of the challenge obstacles with writing is getting your thoughts together. And so you're like, okay, well, how do I do what I do?  So I feel like getting organized is huge and I like to, I do have some, I should have linked this, but I do have some, first of all, I have a worksheet for helping you think through what you could write about and getting granular about writing about it. And then I have a, yeah, the worksheet is related to like sort of how you would map it out. And so using some sort of document to, I use Google Docs for most things. And so some sort of document where you start to do an outline and break it down into pieces so that you can say, okay, well, I'm gonna, this is how I'm gonna organize what I do and my thoughts and then write it out. Because I mean, I think even people who do public speaking write it out, right? You have a presentation and you're writing it out and getting it organized. So public speaking does help with that. And we actually reach out to speakers at conferences and say, hey, you know, you did the work of turning what was in your head into something you could speak about. The next easy step is to write about it. You've already probably written about it. You just need to put it in article form. Yeah, just making it accessible for other people to read. Yeah. Yeah, and that article that you were talking, the worksheet, that sounds super useful. If you wouldn't mind linking that, I would personally find that really useful. Okay, great, yeah, it's on GitHub. So I just need to, I think I just need to log in there and grab the link. I know that like for most people, probably writing is something that, I think it's a skill that kind of goes neglected because when we go through school, like you're kind of forced to write and then once you get to college, it's no longer a requirement, maybe for a couple of classes, but it's very easy to forget that. And I think lately I've just been feeling like, wow, I really need to improve my skills because it's not something that I practice every day. So whenever I'm writing stuff, like maybe to friends or putting together ideas, going through that process of saying, okay, well, what is the thing I'm actually trying to think through and actually like forming that outline, that really helps. And I think it's more than just writing, it's like a thought process and it's the thought pattern of materializing what's in your head. It is, and I think it can even, have a positive feedback loop to the work that you do. It's not just about getting it out for other people to see whether it's for their benefit or your benefit, but it also like, oh, I thought through that. Now I'm like sitting down to go do that thing and I just feel more clear. Yeah, yeah, you can really go into things with confidence because you've extracted it out.


This is Brett with Summit Automotive in Fond du Lac Wisconsin and Beaver Dam Wisconsin. Today we are at or I'm at the 2019 Chicago Auto Show and just came across this car here. Thought I'd do a quick video on it. This is a 2019 Dodge Charger with the scat pack. That means that it has the 6.4 liter 392 Hemi which pumps out 485 horsepower. Bruiser Gray is the color. Just do a quick walk around here. You got the Super B badge on the back there. Decklid spoiler with the kind of matte finish to it. Really a good looking car.  You got the Super B stitched into the backrest. Auto headlamps. They all come with the 7-inch well most of them come with the 7-inch TFT display. It has the leather wrapped steering wheel. The 8.4 touchscreen radio. So this one has heated seats, heated steering wheel. You also have I believe this one has the Android Auto and Apple CarPlay capabilities as well. 8 speed automatic transmission, dual climate control. Just a nicely appointed car here. Bluetooth audio controls, cruise controls. Up here you have the home link buttons, the SOS buttons as well. SOS and assist. We'll check out the back seats and everything. Decent room in the back here.  There's two USB chargers back here for charging cell phone devices and such. Lots of room in the trunk. This is actually where your battery is located. They got it locked on me so I can't open it up but that your batteries underneath here. What I like about the chargers is it's racetracked tail lamps here as well. The other thing that's got a button right here that you can open the trunk without actually having to go inside the car, hit the key fob and there's a good look at that Super B badge. There's some air dispersion there, 20 inch rims, Pirelli P0 tires, the Brembo, four piston brakes and I'd like to thank you for checking out the video LED lights. That's got the really cool matte finish black hood, call induction there, LED running lights, projector lamp headlamps, LED fog lamps. Just a really good looking car so I thought I'd do a video quick and if you'd like to check out more HD videos you can go to youtube.com slash summit auto. Remember to like, subscribe and share on this video and all the videos that you see there will be at the Auto Show the rest of the day doing videos and we'll be uploading them, uploading them later today so check them all out. Thanks again for checking this video out and remember to like, subscribe and share and keep watching. Thanks again.


Hello everybody, my name is Giovanni Deligios, I'm a PhD student at ETH in Zurich and it's a pleasure for me today to be presenting joint work that was carried out with Martin Hirt and Chandli Uzzang, while at ETH. The title of the work is Round Efficient Synchronous Byzantine Agreement and Multi-Party Computation with A Synchronous Fallback. I'll begin by providing some motivation for our work and then I'll dive into some more detail into the main results. We deal with two prominent problems in distributed computing and cryptography, namely the problem of Byzantine Agreement and the problem of multi-party computation. A quick reminder, in Byzantine Agreement a set of N parties, each holding an input VI in 0 or 1, want to agree on a common output in 0 or 1, despite the fact that a fraction of the parties might be corrupted by an adversary and actively misbehaving and deviating from the protocol. In multi-party computation, which is a more general problem which includes Byzantine Agreement as a special case, a set of N parties, each holding an input in 0 or 1, want to compute a common function of their inputs without revealing anything about their inputs that could not be inferred by looking directly at the output of the computation. When designing protocols to solve these problems, one needs to make assumptions about the network infrastructure that is available to the parties performing these protocols. And typically in the literature, two of the most prominent models that are considered are the synchronous model in which parties are assumed to have synchronized clocks and furthermore it's assumed that each message sent by a party is delivered within a certain and known delay delta which is known to all parties and can be used in the design of protocols or another prominent model that is also assumed is the asynchronous model in which both of these assumptions are dropped and we assume that the adversary has the power of arbitrarily delivering the messages that are sent by honest parties and parties do not have access to synchronized clocks and the only assumption that we keep in this case is that all messages sent by honest parties are eventually delivered by the adversary. It is not uncommon in both of these scenarios to assume that parties have access to authenticated channels and we're gonna keep this assumption as well. The security guarantees that can be achieved in these two different models are different and in the synchronous models both BA and MPC protocols can be achieved which are secure up to n-half score options but the problem is that as soon as the synchrony assumptions on the network are violated then all security guarantees tend to be lost pretty quickly and in the asynchronous model on the other hand the protocols that are designed are robust even in unpredictable networks but on the other hand the security guarantees that can be achieved are significantly weaker for example BA and MPC protocols can only be achieved up to n-third corruptions so when deploying protocols in real-life networks which can be typically fast but experience occasional congestures or failures or delays then one is faced with a dilemma or whether modeling this network as a synchronous network and deploying protocols that are designed in the synchronous model therefore risking catastrophic security failures when the network experiences delays or whether to model this network as an asynchronous network and deploy the more robust protocols that are designed in the asynchronous model and then do not exploit the extra security guarantees that one could achieve by the fact that the network is usually fast so it's quite natural to ask the question of whether one could be able to design BA and MPC protocols that are secure for the maximum threshold corruptions in both the synchronous model and the asynchronous model a recent line of work starting in 2019 with the work of bloom cuts and loss and that was carried on in 2020 by the work of bloom Liu Zhang and loss answered both of these questions affirmatively under some proven to be optimal threshold assumption and that is that the number of corruptions when the network is asynchronous plus two times the number of corruptions when the network is synchronous must be smaller than n and that the number of corruptions when the network is asynchronous must be smaller or equal than the number of corruption when the network is synchronous when the network is asynchronous we refer to around as a time interval of length delta and since parties have access to synchronized clocks then they also have agreement on the current round they're currently in round complexity that is the number of rounds required by a protocol to terminate is often used as a measure of efficiency of protocols and our goal in this project is to improve on the round efficiency of known BA and MPC protocols known in the hybrid realm so super quick I would like to give an overview of where the room for improvement in these protocols is let's start talking about Byzantine agreement protocols so purely synchronous Byzantine protocols achieving constant rounds are divided into two main categories there are Monte Carlo type protocols which run in a fixed number of rounds and achieve security up to a small error probability so this type of protocol as a round complexity which is constant in a security parameter and then there's Las Vegas type protocols and these are protocols that whenever they terminate they achieve security but they only terminate with probability one and in this case they run with an expected constant number of rounds on the contrast protocols for BA that function in this hybrid realm that we've introduced they have a round complexity which is linear in the number of party participating in the protocol so this is one of the places where there's room for improvement and now if we have a look at MPC protocols whose round complexity is typically calculated in terms of all to all broadcast rounds in the literature purely synchronous MPC protocols typically require a constant number of all 12 broadcast rounds while the known MPC protocols in the hybrid realm require a number of broadcast rounds that is linear in the depth multiplicative depth of the circuit to evaluate so this is the second place where there is room for improvement and in both cases we provide positive results meaning that we show the first known BA protocol which is secure when run over a synchronous network and is also secure when run over an asynchronous network and that requires a constant number of rounds when the network is a synchronous and we provide both flavor of these BA protocols that is a version with probabilistic termination and a version running in a fixed number of rounds and for MPC we provide the first known MPC protocol which is secure when run over a synchronous network and remain secure when run over an asynchronous network and at the same time as a number of all to all broadcast rounds which is not depend on the depth of the circuit to evaluate I will now dive into a little bit more depth in our constructions for Byzantine agreement protocols but before I do that I think it's useful if we briefly recall the main properties that are desirable from a Byzantine agreement protocol as you recall a Byzantine agreement protocol is run between n parties of which each party holds an input in zero one and each party produces an output upon terminating the protocol and that output is going to be either a bit zero one and we allow for an extra symbol called top that is going to have the function of basically signaling when parties detect then the network they are running the protocol in is indeed asynchronous typically there are two main properties we require the validity property and the consistency property the validity property guarantees that if parties honest parties at least have pre-agreement on a certain bit before executing a BA protocol then they're going to preserve this agreement and they're all going to output this bit at the end of the protocol while the consistency property guarantees that even if parties are not in agreement before executing a protocol they will be upon terminating the protocol so it guarantees that each honest party outputs the same bit and in our case also we allow for parties to all output the same top symbol since we're going to allow in our protocols for this unusual output behavior we introduce the liveness property which guarantees that under certain conditions parties do not output this extra symbol top and that is they really output a bit in zero one and we're going to see that we require protocols to have this liveness property only when the network is synchronous so that when the network is synchronous in the in the BA protocols achieve the same guarantees that are usually achieved by synchronous protocols in the literature another kind of validity property that we can require from BA protocols is a weak validity and that means that if parties do have agreement on a bit before executing a protocol then they either output this bit or they output this top symbol and we're going to see that we require this weaker form of validity from protocols when the network is asynchronous to achieve a BA protocol that is secure up to TS corruption when the network is synchronous and that is also secure up to TA corruption when the network is asynchronous and I recall that by security mean that it achieves the validity and consistency guarantees the main idea is to run two BA protocols in succession and this idea is due to bloom cuts and loss and it was first published in 2019 and from the synchronous BA protocol we require security when the network is synchronous up to TS corruptions and from the asynchronous protocol we require security when the network is asynchronous up to TA corruptions but also from these two protocols we require some extra security guarantees that protocols would not typically achieve and that is that from the synchronous protocol we require that when the network is asynchronous it also achieves this form of weak validity that we discussed before and from the asynchronous protocol we require that when the network is synchronous it achieves validity and termination up to TS corruptions and please recall that TS is generally larger than TA so this is not a trivial property to achieve for an asynchronous protocol if indeed we have protocols with these extra properties then we can do a quick analysis to show that indeed this construction actually achieves security so if parties do have pre-agreement on a bit and the network is synchronous then this pre-agreement is going to be maintained so the parties will all output a bit and then we'll run the asynchronous protocol again with pre-agreement and thanks to the validity plus termination property they're going to output the same bit on the other hand if the network is synchronous and parties do not have agreement on a bit then they will have agreement on a bit by the end of the synchronous protocol because his protocol is secure and then this agreement is going to be preserved by the asynchronous protocol and its validity property when the network is asynchronous on the other hand basically all the security guarantees fall on the asynchronous protocol and the only thing that the synchronous protocol guarantees is that indeed if parties do have pre-agreement on a bit then this agreement is not broken by running the synchronous protocol because this protocol achieves weak validity in an asynchronous network that means that if parties output the symbol top from this protocol then they're going to go back and use their previous input vi as input to the second asynchronous protocol so they're still going to have pre-agreement upon entering the asynchronous protocol and then the security of the asynchronous protocol is going to guarantee that indeed the security is achieved for the whole construction and now that we have introduced this high level idea we're going to observe that in the original construction by bloom cuts and loss these two ba protocols with extra properties were actually instantiated through some construction and the synchronous one in particular was achieved by a slight modification of the original Dulev strong protocol which requires a linear number of rounds in the number of parties participating in the protocol on the other hand the asynchronous protocol that they use already achieves a constant number of rounds when the network is synchronous so the focus of our work is going to be of actually providing a construction for the synchronous portion of this compiler that runs in constant rounds and we're going to have to show a ba protocol that is securing asynchronous networks up to ts corruptions and that achieves ta weak validity also when the network is asynchronous so this is what i'm going to do next but to discuss our construction I first have to introduce a different type of agreement primitive which is sometimes known in the literature as crusaders agreement but that has mostly been called lately weak consensus and weak consensus primitives they are very similar to Byzantine agreement primitives but they have a relaxed consistency property so instead of asking for all honest parties to output the same the same output at the end of the protocol we're going to relax this property and we're only going to require that parties do not output contradicting bits at the end of the protocol now if the output set was only zero and one this would be the same as asking the traditional consistency property but if we enlarge the output set to include other values and in particular we allow the top value from before and now also a new value bottom then this property is a strictly weaker than requiring normal consistency I now introduce our construction which is an adaptation of an idea originally due to Feldman and Michali in the purely synchronous setting the idea is the following parties run in succession many iterations each iteration consists of an execution of a weak consensus protocol followed by a common coin toss in vocation a common coin toss is simply a functionality that outputs a uniformly common random bit and that can only invoke if at least one honest party wishes to do so this kind of functionalities can easily be implemented through distributed protocols but in our paper we assume an ideal functionality with these properties in the purely synchronous setting the idea behind this construction is that if parties output a bit from the weak consensus protocol then they keep this bit as output of the whole iteration on the other hand if parties output the bottom symbol as output of the weak consensus protocol then they're gonna take the common coin value as output of the whole iteration instead now since weak consensus preserves pre-agreement if parties do have pre-agreement on a common bit then this pre-agreement is never gonna be broken because they will just ignore the value of the common coin on the other hand if parties do not have pre-agreement on a bit then in each iterations they will reach agreement with probability at least one half that is the probability that the common coin value matches the output of the parties that did output a bit from the weak consensus protocol and remember that parties never output contradicting bits from a weak consensus protocol so all parties output the same bit or the bottom symbol so the problem is that when trying to transport this construction in the setting where you don't know what the network conditions are before executing the protocol you have no way of knowing whether if you don't receive a message you didn't receive this message because the network is asynchronous and the adversary drops this message or if the network is synchronous and simply the party sending the message was corrupted and he never sent the message in the first place so the way we circumvent this problem is as follows instead of just allowing parties to have one abort behavior in the weak consensus protocol that is by outputting the bottom symbol we allow honest parties to have two different abort behaviors in the weak consensus protocol that is either output the bottom symbol or outputting a top symbol and the difference is that we're able to throw some kind of detection in the protocol to make sure that when the network is synchronous parties never output the top symbol and when the network is asynchronous parties never output the bottom symbol so now the way we can recover the previous construction is as follows when parties output the bottom symbol they will take as output of the whole iteration simply the value of the common coin and when the parties output the top symbol they will simply take their original input as output of the whole iteration now remember that when the network is asynchronous we only care for weak validity so this makes sure that if parties have pre-agreement they will all output either the pre-agreed upon bit or the top symbol and in either case they will take their original input as output of the iteration and preserve the pre-agreement through successive iterations so next i'm gonna present our construction one of our constructions for such a weak consensus protocol try to go into some details and also argue informally about the security of such a protocol but i hope that the way this protocol fits into the bigger picture is now clear the protocol is actually quite short and simple in this we assume that parties have access to a public key infrastructure which allows them to sign messages but most importantly allows to forward cryptographic evidence that a certain message was received by another party in a previous round one of the big challenges in designing these protocols is that if the network condition is not known when parties begin the protocol then if a message is not received that that was supposed to be received by a party this party has no way to know whether the message was dropped by the adversary because the network is asynchronous for example or if the party sending the message is corrupted by the adversary and did not send the message in the first place so the high level idea of how to deal with these is to carefully consider the thresholds of messages that a party needs to receive in order to decide that the network is synchronous in this protocol at the beginning each party signs their bit using their private key and send this signed bit to all other parties and then the parties collect the messages they receive and divide them into two sets the messages that were received with bit one and the messages that were received with bit zero so the first thing parties do is to look at the total number of messages they received and if the total number of messages they received is below a cut off which is set to n minus ts and remember ta and ts in this case are parameters for the protocol then they simply set their intended output to top and they don't do any of the following steps if instead they received enough messages that is at least n minus ts then they check if they received a bit enough times and enough times we mean at least n minus ts minus ta times if this is the case they set their intended output to this bit and they collect all the signatures they received on this bit and they send the set of signatures to all other parties then if they receive no collection of signatures on the opposite bit of the one they receive they simply output the bits they decided and otherwise if they do receive a collection of signatures on the opposite bit to the one they decided then they set their intended output to the bottom symbol and they output the bottom symbol so why does this construction work when we argue about the security of protocols that are run alternatively in synchronous and asynchronous networks we always need to consider both cases separately decide which properties we require from our protocols in the synchronous case and in the asynchronous case and then indeed prove that if this assumption holds then the desired properties are achieved when we argue in asynchronous networks we're going to assume that at most ta parties are corrupted in execution of the protocol and when we argue in synchronous networks we're going to assume that at most ts parties are corrupted in an execution of the protocol and we're also going to keep the assumption that I'm going to discuss later that ta plus 2 ts is smaller than n and that ta is smaller or equal than ts and under these assumptions now I'm going to argue about the security of the protocol let's start by considering the synchronous case so let's first assume the network is a synchronous the properties we want to prove is validity of this protocol and weak consistency of this protocol and also we require them when the network is a synchronous parties do not output the symbol top so let's first check that when the network is a synchronous parties do not output the symbol top if the network is a synchronous then in step two each party is going to send a validly signed message which means that in step three the amount of messages each party receives it's going to be at least n minus ts which means that parties are going to set the intent output to bottom and since there's no other part in the protocol after these where parties might set their input to top then this property holds let's check now that if parties have pre-agreement on a certain bit and the network is a synchronous then indeed they will output this bit so if parties have pre-agreement let's say on bit one without loss of generality then in step two each part is going to send a validly signed bit one to other parties which means that in step three not only will parties receive enough values one that is n minus ts but they will also receive enough values so that they set their intended output to one because n minus ts is greater or equal than n minus ts minus ta and please notice that there is no way that corrupted parties can generate enough signatures on the opposite bit to convince honest parties to output the symbol bottom in step four because this would mean that ts is actually greater or equal than n minus ts minus ta and the assumption we have on our thresholds actually guaranteed that this is not true so indeed when the network is asynchronous validity holds up to ts corruptions let's now check that when the network is synchronous and at most ts parties are corrupted then the weak consistency property holds remember that weak consistency means that if a certain party outputs a bit then no party will output the opposite bit this property holds because let's assume a party outputs one without loss of generality this means that they received at least n minus ts messages minus ta with bit one in step three which means they collect the signatures on these messages and they send them to all other parties in the following step so even if a party had decided on the opposite bit in step three then in step four they're gonna set their output to bottom because indeed these are valid signatures on bit one and these guarantees that no honest parties output contradicting bits this concludes the security when the network is asynchronous now when network is asynchronous we still care about the weak validity property and let's assume the network is asynchronous that at most ta parties are corrupted in an execution of this protocol then we can easily check that if all parties have pre-agreement on a certain bit then they're gonna set their output to top and the only way they set their output to something other than top if it's in step three they receive at least n minus ts messages since of these messages at least n minus ts minus ta are gonna come from honest parties since there are only ta corrupted parties then if indeed they do set their output to something other than bottom then they're gonna set this output to the to the grid upon bit and also these honest parties do not have the power to generate enough signatures on the opposite bit to convince honest parties in step four to output the bottom symbol because this would mean then ta is greater or equal than n minus ts minus ta and this is false thanks to the assumptions we made under thresholds plugging this construction for weak consensus into the high level construction we described before these already yields a ba protocol which is secure both in synchronous and asynchronous networks and that can run alternatively in fixed rounds or in expected constant rounds even though i'm not gonna go into detail of any other construction we provide in the paper we did investigate some other problems for example we investigated the optimality of the threshold assumptions we've just described when instead of asking full security in both synchronous and asynchronous networks for example we weaken the validity guarantees we require in asynchronous networks and indeed we prove that in this case these threshold assumptions are too strong and that one can actually achieve protocols with weaker threshold assumptions and this is interesting because sometimes these protocols with only weak validity can be used in bigger construction such as for example mpc or protocols that try to achieve different security guarantees in both synchronous and asynchronous networks we also provided some insight into the equivalents of the broadcast problem and the Byzantine agreement protocol which indeed holds when the networks are synchronous and which is known not to hold when the networks are asynchronous and we show how to achieve respectively Byzantine and broadcast protocols with this weak validity guarantees in asynchronous networks from one another does solving this equivalents problem to finish we also worked in the mpc setting where we improved on on previous results by providing the first mpc protocol which is a secure both in synchronous and asynchronous networks and that only requires a number of broadcast rounds all to all broadcast rounds which is independent of the multiplicative depth of the circuit to evaluate to achieve these we used previous known results due to bloom the uzang and loss and also some known results about garbling circuits in the multi-party setting and indeed if we implement the broadcast channels in this protocol using our construction for broadcast which is secure in both synchronous and asynchronous networks then these broadcast channels can be implemented in such a way that the number of rounds required is constant in the number of parties participating in the protocol so this is it for this presentation thank you for listening so far it was a pleasure for me to be able to present this work here at tcc and please refer to the full version of these papers for all details and feel free to email me about questions and discussions about this work thank you very much


Now everybody wants to be a cool kid and have all this gadgets and a gun. Okay, you carry a gun, especially if you're in the private sector. You're not a soldier, you're not, you know, in law enforcement. If you carry a gun with a light on it, when's the last time you needed that? And most people, if they're honest with you, well, not really.  But you know that's happened. Oh, I listen, I've seen, I remember seeing a picture in a newspaper of it was an accident scene. Individual was being treated by the the medics and here's a police officer with his pistol light on doing this so they can see what they're doing. And I looked at, I remember I cut out the paper. I don't know where it's at, but I thought, okay, this is what you're not supposed to do. Yeah. I mean, pull it off, make it a handheld, put the whole, and yeah, well, the bottom line is, I think lights in today's world are extremely overrated. Hey, everyone, Dylan Chumacher, Citadel Defense, and that is a short little excerpt pulled from a little chat between Ken Hackathorn and Paul Howe. Ken Hackathorn, if you don't know, is the guy with the mustache, Paul Howe is the other guy. I'm a big fan of Paul Howe. You should follow him on YouTube if you're not already. I've also read several of his books, Paul Howe's books that are viewed on this channel. I'm a big, big fan of Paul Howe. Ken Hackathorn, to be honest, I don't know as much about. He I know is a founding member of the IDPA and he's created some other drills and he's been around in the world for a very long time, very prominent figure. So I pulled this little excerpt and like I said, I have not seen the whole interview so there could be more context or something else that I'm missing from this. However, this little video I ran into on Twitter and Ken Hackathorn was just getting wrecked in the comments, somewhat appropriately so, and I want to talk about it. So the first thing and the obvious practical thing that everybody has pointed out is if someone breaks into your house at 3 a.m., it's pitch dark. You can't see. You need a light in order to positive ID that target before you start to send rounds, you know, in your house. So obviously, me every day as a normal person, I need a flashlight for that very practical, very real purpose and that's a very good and valid point. But what I thought about this clip and what I want to talk about was something just a level deeper than the actual practical use, which when it comes to the actual practical use, all those people are correct. Ken Hackathorn is 1,000% incorrect. You should have a light on your gun, particularly if it's your defensive gun or rifle. So again, at night, you can see. But the level deeper here, and in my opinion, the real, the real issue is what I perceive and I could be wrong, what I perceive Ken's presuppositions to be. Ken talks about, okay, you're an everyday civilian, you're not a soldier, you're not a police officer, therefore, you don't need the same capability that they need. And I would categorically disagree with that statement. I'm just an everyday guy, but I absolutely want the same capability as a police officer, as a soldier, absolutely I want that capability. There's a reason I own night vision and have suppressors and chest rigs and gear and study tactics and stuff like that. There's a very good reason for that. Side note, I did design a chest rig and it's coming out in April, so you should go over to my website and check those out. The reason I want the same capability or greater than a police officer or a soldier is because we have the Second Amendment in this country and the Second Amendment was designed around the idea that everyday civilians, you, me, everybody else, should be able, should be capable, like have the gear, skills, equipment, mindset, etc., to fight and win wars. That's the whole point of the Second Amendment. So of course I need the same capability as them or greater because I, as an everyday American who embraces my martial American heritage, should of course be equipped and compelled to, if necessary, fight and win wars. That's why we have the Second Amendment. That's why this whole gun culture thing exists. That's why we have gun companies that do millions and millions of dollars in this country because we have a very robust gun culture and it's founded on that bedrock of Americans being equipped, ready, able to fight and win wars. And I'm not talking about the American military, the American government and how we've outsourced that to these other departments of the government that we pay ridiculous taxes to and they overspend anyway. That's not what I'm talking about. I'm talking about you, me, and everyday other people, right? That's how this country was founded. That's how this country was expanded and that's how this country should continue to exist. It's based on this concept that everyday people have the skills, gear, equipment, etc. to be able to fight and win wars. So when you say a statement like, well, you're not a police officer or you're not a soldier, you therefore don't need that capability, that always just kind of puzzles me a bit because I'm like, well, I don't think we're starting from the same presupposition here on what the Second Amendment means or what the heritage of being a martial American means or any of that. I don't think we're understanding what that is. Now, practically my police officer, my wrestling felons on a day-to-day basis and having to make house entries and go into domestic disputes and am I doing night patrols? No, I'm not doing any of that on a day-to-day basis. Yes, on that very practical need, I guess I don't need it for that. However, like I noted before, I still have a practical need for it because nighttime still exists for everybody around the world. I think this argument and the argument that it uses along the lines of, well, you know, it's not practical, therefore, you know, it's just overrated. I think you could use that exact same argument over the gun.  Zero, zero times. There's been a lot of times I've been happy that I've had it, but I've had to pull it out zero times. Does that mean, therefore, that I should not carry a gun? Does that mean that we should just forget this whole thing and close up shop? Well, no, of course not, right? If you're only going to argue on a practical need, well, you don't practically need that, that's one of the arguments they use to ban assault rifles, right? Assault rifles. That's one of the arguments they can use, right? Well, you don't practically need that. Nobody, you know, deer aren't wearing Kevlar vests, as our president likes to say. Deer aren't wearing Kevlar vests out there.  No, I'm serious. So this argument based on practicality, I just don't think it's a very good argument when it comes to equipment, deer, guns, tactic stuff because this is far deeper than a practical argument. This isn't about what you need or don't need. This is about what are the founding principles of this nation? What are the founding principles that the gun culture are built on, right? And when you get down to that founding principle level and you're going to agree with me, and maybe you won't, but you're going to agree that Americans should be equipped, ready, and able to fight and win wars as everyday people. Because we have, we are the militia, right? If you're going to agree to that principle, then this idea of what you practically do and don't need, it honestly becomes kind of obsolete and kind of silly. So I don't, of course, mean any disrespect to Mr. Ken or Paul Howe or anybody else who participated in this thing. But I do think we need to look at the founding principle here. And we need to say, well, wait a second, what is it that we actually believe about the right to own guns in America? Why do we have that? And therefore then, practically we can talk about how that works out.  You can say that because people fought with guns, everyday people fought with guns to defend that. Then that's totally fine. But I'm just saying, I think this is a statement that isn't grounded in any principle. It's just grounded in pragmatism. Well, you don't need it on a practical basis, so why bother having it? And I understand that people can overload their guns with things. But I'll tell you right now, my everyday carry pistol, right? I have a optic on there and I have a light on there. Why? Because it makes it easier to use and it allows me to positively identify what I may or may not have to shoot. So boys, carry a light on your gun. Remember that when you carry that light on your gun, you're carrying it on there because you have a bedrock foundation of embracing your martial American heritage. And you are ready, equipped, and able to fight and win wars should the need arise. Do brave deeds and endure.