March 22nd, 2026
posted by [syndicated profile] apod_feed at 05:10am on 22/03/2026

Spiral NGC 1300 and elliptical NGC 1297 are galaxies that Spiral NGC 1300 and elliptical NGC 1297 are galaxies that


posted by [syndicated profile] post_secret_feed at 12:07am on 22/03/2026

Posted by Frank

Frank –
I sent that postcard MONTHS ago. We hadn’t spoken in a year. Tonight, he called me from rehab. Tomorrow, he gets his 90 days of sobriety. I think that accident may have saved his life. He’s going to be okay.

The post Sunday Secrets appeared first on PostSecret.

posted by [syndicated profile] post_secret_feed at 12:05am on 22/03/2026

Posted by Frank

Dear Frank,

It has been many years, since my secret was featured on PostSecret, but I have never forgotten about it.

It was a hugely transformative moment in my life. I recently decided to share the story on a podcast. Here’s the link.

After my story was shared on the podcast, I got a tattoo to remind me of this whole story, and to symbolize my resilience throughout all of this. I am so grateful that I had my opportunity to share my secret with the world. I am also thankful that I am in a place where it is not a secret anymore. Thank you for providing the space to share. 

The post PostSecret Podcast Episode appeared first on PostSecret.

March 21st, 2026
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
posted by [personal profile] ysabetwordsmith at 11:42pm on 21/03/2026 under , , , ,
My seeds arrived from Select Seeds.


Painted Tongue 'Select Superbissima Mix' (seeds)

Yarrow 'Flowerburst Red Shades' (seeds)

Coreopsis 'Corusco Cream-Red' (seeds)
Mood:: 'busy' busy
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
posted by [personal profile] ysabetwordsmith at 11:37pm on 21/03/2026 under , , , ,
My Prairie Moon seed order arrived today. :D


Early Figwort (seed)

Late Figwort (seed)

Common Ironweed (seed)

Purple Love Grass (seed)

Lead Plant (seed)
Mood:: 'busy' busy

Posted by cks

In yesterday's entry I described a lingering duplicate system and how it had taken us a long time to get rid of it, but I got too distracted by the story to write down the general thoughts I had on how this sort of thing happens and keeps happening (also, the story turned out to be longer than I expected). We've had other long running duplicate systems, and often they have more or less the same story as yesterday's disk space usage tracking system.

The first system built is a basic system. It's not a bad system, but it's limited and you know it. You can only afford to gather disk usage information once a day and you have nowhere to put it other than in the filesystem, which makes it easy to find and independent of anything else but also stops it updating when the filesystem fills up. Over time you may improve this system (cheaper updates that happen more often, a limited amount of high resolution information), but the fundamental issues with it stick around.

After a while it becomes possible to build a different, better system (you gather disk usage information every few minutes and put it in your new metrics system), or maybe you just realize how to do a better version from scratch. But often the initial version of this new system has its own limitations or works a bit differently or both, or you've only implemented part of what you'd need for a full replacement of the first system. And maybe you're not sure it will fully work, that it's really the right answer, or if you'll be able to support it over the long term (perhaps the cardinality of the metrics will be too overwhelming).

(You may also be wary of falling victim to the "second system effect", since you know you're building a second system.)

Usually this means that you don't want to go through the effort and risk of immediately replacing the old system with the new system (if it's even immediately possible without more work on the new system). So you use the new system for new stuff (providing dashboards of disk space usage) and keep the old system for the old stuff (the officially supported commands that people know). The old system is working so it's easier to have it stay "for now". Even if you replace part of the use of the old system with the new system, you don't replace all of it.

(If your second system started out as only a partial version of the old system, you may also not be pushed to evolve it so that it could fully replace the old system, or that may only happen slowly. In some ways this is a good thing; you're getting practical experience with the basic version of the new system rather than immediately trying to build the full version. This is a reasonable way to avoid the "second system effect", and may lead you to find out that in the new system you want things to operate differently than the old one.)

Since both the old system and the new system are working, you now generally have little motivation to do more work to get rid of the old system. Until you run into clear limitations of the old system, moving back to only having one system is (usually) cleanup work, not a priority. If you wanted to let the new system run for a while to prove itself, it's also easy to simply lose track of this as a piece of future work; you won't necessarily put it on a calendar, and it's something that might be months or a year out even in the best of circumstances.

(The times when the cleanup is a potential priority are when the old system is using resources that you want back, including money for hardware or cloud stuff, or when the old system requires ongoing work.)

A contributing factor is that you may not be sure about what specific behaviors and bits of the old system other things are depending on. Some of these will be actual designed features that you can perhaps recover from documentation, but others may be things that simply grew that way and became accidentally load bearing. Figuring these out may take careful reverse engineering of how the system works and what things are doing with it, which takes work, and when the old system is working it's easier to leave it there.

kaffy_r: A wonderful group of Lemurs. (Lemurs!)
posted by [personal profile] kaffy_r at 10:42pm on 21/03/2026 under , , ,
Mice. More Mice, Damnit.

The headline says it all. 

I got up at 5:15 a.m. in order to watch the first BTS concert since all seven of the members got out of the military.  Their last concert was four years ago, and they played this free event at Gwanghwamun Square in central Seoul, which is seen as the city's spiritual heart and most prominent gathering space. Thousands of fans watched in person, and millions more watched via Netflix, which is what I did. 

The concert was short, just an hour long; they performed every song on their new album "Arirang" and about four of their earlier most popular songs. They really are a mesmerizing group to watch in full flight, although I was forced to wonder about bad omens; their leader, Kim Nam Joon (stage name RM) badly hurt an ankle during rehearsals, and had to spend much of the concert performing on a stool. 

ARMY didn't mind, and perhaps the joy I saw reflected in the faces of fans watching did, as the young men told those fans, power everything that was happening on stage. With that kind of support, perhaps an injured ankle will be of little import. 

I enjoyed the concert and was about to get up and get my second cup of coffee when I discovered that, having successfully mouse-proofed the south larder closet in our office, the  little monsters fellas had decided that they could come in from the north side larder, closest to our furnace room (which isn't really a room, it's a tiny closet where the furnace is placed, but we call it a room, so there you go).

How do I know? Carter, who's been acting very "I know there are mousies there" for the past day or so, abruptly tried to push his head under the base of one of the northern larders shelving units. As I prepared to look under the shelving unit myself, a tiny grey blur shot out between Carter and me, and disappeared somewhere in the wilds of the office, or perhaps out the office door and into the rest of the house.

At this point, after the initial confrontation, during which I shrieked almost loud and high enough to crack glass, all I could do was shake my head and laugh. Just a tiny laugh, mind you, but what else could I do? Beyond the inevitable cleaning job, I mean.

It's frustrating. Nearly every foodstuff we have in both the north and south larders has been stored in hard plastic bins now, but they will apparently try to feast on anything I hadn't yet gotten into said bins. They also tried to feed on the plastic surrounding some artwork that's in the north larder because there's no room for them elsewhere.

They haven't made too much of a mess, so I can only assume they just discovered the new route over the past couple of days. Cue tremendous sighs, and a wish that I could wave a wand and keep them out for good. I keep a clean place, people, and yet here they are. 

By the end of today, Bob and I had visited one of our favorite hardware stores to get mouse shield foam and yet more steel wool. We've been there so often, at least a few of cashiers can kibbutz with us as they ring us up.

While I was out getting some more plastic storage containers at yet another of our favorite hardware stores, Bob deployed the foam and steel wool all around the furnace, after I'd vacuumed out far too much dust in the cubby. I really do keep a clean house; the problem is that I forget about the furnace cubby. So at least I can thank the mice for reminding me that I need to regularly vacuum around the furnace. 

Positivity, that's the name of the game.

But I'm still looking around for that little grey blur; I just know he or she is lurking somewhere, preparing to scare the living bejesus out of me again. 
Music:: DPR Ian"Peanut Butter and Tears"
Mood:: 'amused' amused
location: the home office
maevedarcy: van gogh's sunflowers (van gogh)
posted by [personal profile] maevedarcy at 09:23pm on 21/03/2026 under , , ,
I've been looking for communities that want to center Latinx culture in their posting but haven't found any so I made one!

[community profile] latam is a new community for people to come together to talk about latinamerican music, films, food, culture, fandom, and more!

Everyone's welcome, no matter where you're posting from! And you can also post in your language (official languages of the community are Spanish, Portuguese and English!)

Come make friends! We have a friending meme going on right now :)
eiffel_71: The Big Match opening title (Default)
posted by [personal profile] eiffel_71 at 10:48pm on 21/03/2026
Today, finally, Fareham Town played a match back at Cams Alders. 133 days since we last played there. Bedfont Sports the visitors, the sun shining, news of new owners, a newly signed forward Joe Chidyausiku and a decent turn-out. Catch up chats with Paul, Ken, and Glyn and Jackie, finally back from their unexpectedly extended trip to Dubai. A bottle of Creek Cider in the bar.

I was amused to see one of the match reports in the programme say ‘Fareham switched to 4-4 ******* 2’. Our match reporter’s obviously a Mike Bassett fan.

With the teams about to come out, the PA played Peters and Lee’s Welcome Home. Fitting, though I wish they’d found room for the Tourists’ So Good To Be Back Home Again as well.

Being back on home turf seemed to work magic on Fareham. We dominated the early stages and were 2-0 up within 12 minutes through a sublime Semi strike and Matt Pates converting a Charlie Cole cross.

Just after the half hour, Semi at the far post headed a cross down for Charlie to drill a shot along the ground and home for Fareham’s third.

An excellent bacon roll at half time. From the restart Toure Williams, just inside the halfway line, hit an almighty lob that sailed over the keeper. 4-0 up. The season we’ve been having that was the stuff of dreams.

Ten minutes later Bedfont were awarded a penalty for what many of us thought was a dive. Bedfont scored, but surely it could only be a consolation?

From then on Bedfont turned the screw and got on top and on 75 minutes they made it two. Soon after, Dan Bennett gave away a penalty. Bedfont scored. 4-3. Suddenly every Fareham fan became all too aware of how often we’ve let leads slip this season. Were we going to end up only drawing or even losing after all?

Thankfully, all Bedfont’s efforts in the closing minutes were shot wide or over the bar or gathered or cleared by the Fareham keeper and defence. At last the final whistle blew and Fareham had a rare win.

Fingers crossed for more of the same on Tuesday.
Music:: So Good To Be Back Home Again by The Tourists
Mood:: 'okay' okay
posted by [personal profile] cosmolinguist at 11:06pm on 21/03/2026 under

On a single tube train alone the other day, I saw two people in black thin-rimmed aviators and all I could thin was well now I know what I want my next pair of glasses to look like!

Never felt so much like a dad, possibly because that style always reminded me of my dad since that's what he wore when I was a little kid.

But one of these two people was a young person of ambiguous gender presentation, so I have hope that such things can become fashionable among the queers.

I'm due an eye test, and presumably new glasses, so I've been keeping an eye out for what kind of frames I might want (since the narrow rectangular thick-framed "hipster glasses" that seem to suit me best are not as readily available as they once were! the frames I have now are boring as hell, too big and too round for me even though they're not as much of either as has been popular lately).

posted by [syndicated profile] mjg59_codon_feed at 12:38pm on 21/03/2026

When you’re looking at source code it can be helpful to have some evidence indicating who wrote it. Author tags give a surface level indication, but it turns out you can just lie and if someone isn’t paying attention when merging stuff there’s certainly a risk that a commit could be merged with an author field that doesn’t represent reality. Account compromise can make this even worse - a PR being opened by a compromised user is going to be hard to distinguish from the authentic user. In a world where supply chain security is an increasing concern, it’s easy to understand why people would want more evidence that code was actually written by the person it’s attributed to.

git has support for cryptographically signing commits and tags. Because git is about choice even if Linux isn’t, you can do this signing with OpenPGP keys, X.509 certificates, or SSH keys. You’re probably going to be unsurprised about my feelings around OpenPGP and the web of trust, and X.509 certificates are an absolute nightmare. That leaves SSH keys, but bare cryptographic keys aren’t terribly helpful in isolation - you need some way to make a determination about which keys you trust. If you’re using someting like GitHub you can extract that information from the set of keys associated with a user account1, but that means that a compromised GitHub account is now also a way to alter the set of trusted keys and also when was the last time you audited your keys and how certain are you that every trusted key there is still 100% under your control? Surely there’s a better way.

SSH Certificates

And, thankfully, there is. OpenSSH supports certificates, an SSH public key that’s been signed by some trusted party and so now you can assert that it’s trustworthy in some form. SSH Certificates also contain metadata in the form of Principals, a list of identities that the trusted party included in the certificate. These might simply be usernames, but they might also provide information about group membership. There’s also, unsurprisingly, native support in SSH for forwarding them (using the agent forwarding protocol), so you can keep your keys on your local system, ssh into your actual dev system, and have access to them without any additional complexity.

And, wonderfully, you can use them in git! Let’s find out how.

Local config

There’s two main parameters you need to set. First,

1
git config set gpg.format ssh

because unfortunately for historical reasons all the git signing config is under the gpg namespace even if you’re not using OpenPGP. Yes, this makes me sad. But you’re also going to need something else. Either user.signingkey needs to be set to the path of your certificate, or you need to set gpg.ssh.defaultKeyCommand to a command that will talk to an SSH agent and find the certificate for you (this can be helpful if it’s stored on a smartcard or something rather than on disk). Thankfully for you, I’ve written one. It will talk to an SSH agent (either whatever’s pointed at by the SSH_AUTH_SOCK environment variable or with the -agent argument), find a certificate signed with the key provided with the -ca argument, and then pass that back to git. Now you can simply pass -S to git commit and various other commands, and you’ll have a signature.

Validating signatures

This is a bit more annoying. Using native git tooling ends up calling out to ssh-keygen2, which validates signatures against a file in a format that looks somewhat like authorized-keys. This lets you add something like:

1
* cert-authority ssh-rsa AAAA…

which will match all principals (the wildcard) and succeed if the signature is made with a certificate that’s signed by the key following cert-authority. I recommend you don’t read the code that does this in git because I made that mistake myself, but it does work. Unfortunately it doesn’t provide a lot of granularity around things like “Does the certificate need to be valid at this specific time” and “Should the user only be able to modify specific files” and that kind of thing, but also if you’re using GitHub or GitLab you wouldn’t need to do this at all because they’ll just do this magically and put a “verified” tag against anything with a valid signature, right?

Haha. No.

Unfortunately while both GitHub and GitLab support using SSH certificates for authentication (so a user can’t push to a repo unless they have a certificate signed by the configured CA), there’s currently no way to say “Trust all commits with an SSH certificate signed by this CA”. I am unclear on why. So, I wrote my own. It takes a range of commits, and verifies that each one is signed with either a certificate signed by the key in CA_PUB_KEY or (optionally) an OpenPGP key provided in ALLOWED_PGP_KEYS. Why OpenPGP? Because even if you sign all of your own commits with an SSH certificate, anyone using the API or web interface will end up with their commits signed by an OpenPGP key, and if you want to have those commits validate you’ll need to handle that.

In any case, this should be easy enough to integrate into whatever CI pipeline you have. This is currently very much a proof of concept and I wouldn’t recommend deploying it anywhere, but I am interested in merging support for additional policy around things like expiry dates or group membership.

Doing it in hardware

Of course, certificates don’t buy you any additional security if an attacker is able to steal your private key material - they can steal the certificate at the same time. This can be avoided on almost all modern hardware by storing the private key in a separate cryptographic coprocessor - a Trusted Platform Module on PCs, or the Secure Enclave on Macs. If you’re on a Mac then Secretive has been around for some time, but things are a little harder on Windows and Linux - there’s various things you can do with PKCS#11 but you’ll hate yourself even more than you’ll hate me for suggesting it in the first place, and there’s ssh-tpm-agent except it’s Linux only and quite tied to Linux.

So, obviously, I wrote my own. This makes use of the go-attestation library my team at Google wrote, and is able to generate TPM-backed keys and export them over the SSH agent protocol. It’s also able to proxy requests back to an existing agent, so you can just have it take care of your TPM-backed keys and continue using your existing agent for everything else. In theory it should also work on Windows3 but this is all in preparation for a talk I only found out I was giving about two weeks beforehand, so I haven’t actually had time to test anything other than that it builds.

And, delightfully, because the agent protocol doesn’t care about where the keys are actually stored, this still works just fine with forwarding - you can ssh into a remote system and sign something using a private key that’s stored in your local TPM or Secure Enclave. Remote use can be as transparent as local use.

Wait, attestation?

Ah yes you may be wondering why I’m using go-attestation and why the term “attestation” is in my agent’s name. It’s because when I’m generating the key I’m also generating all the artifacts required to prove that the key was generated on a particular TPM. I haven’t actually implemented the other end of that yet, but if implemented this would allow you to verify that a key was generated in hardware before you issue it with an SSH certificate - and in an age of agentic bots accidentally exfiltrating whatever they find on disk, that gives you a lot more confidence that a commit was signed on hardware you own.

Conclusion

Using SSH certificates for git commit signing is great - the tooling is a bit rough but otherwise they’re basically better than every other alternative, and also if you already have infrastructure for issuing SSH certificates then you can just reuse it4 and everyone wins.


  1. Did you know you can just download people’s SSH pubkeys from github from https://github.com/<username>.keys? Now you do ↩︎

  2. Yes it is somewhat confusing that the keygen command does things other than generate keys ↩︎

  3. This is more difficult than it sounds ↩︎

  4. And if you don’t, by implementing this you now have infrastructure for issuing SSH certificates and can use that for SSH authentication as well. ↩︎

sholio: (B5-station)
posted by [personal profile] sholio at 11:59am on 21/03/2026 under , ,
I posted some more Babylon 5 fic in the last couple of days: a new Londo/G'Kar fake dating fic plus a new chapter of the B5 catacomb WIP.

It's been a year this month since I started watching the show - my first post under the B5 tag was posted March 3, 2025 after watching the first couple of episodes. Still completely gone on it! I regret nothing!

In other news, NYT gift link to an article about Paul Brainerd, creator of Aldus PageMaker and inventor of the term "desktop publishing." This was a fascinating nostalgia read for me because, while I had no idea of the actual history, this guy (and Adobe and Apple) created the professional world of my young adulthood. My first job out of college in (I think) 1998 was working in the layout department of a newspaper that had just recently (last few years) gone from paste-up to an all-Mac layout room using a program similar to PageMaker from a third-party software maker that no longer exists. PageMaker - which I also learned to use in the college computer lab, and later at work - was the direct predecessor of InDesign, widely used even today. It's interesting to think back on those old newspaper days and how thoroughly they shaped me and continue to shape me. The computer/layout/marketing experience I got as a layout artist in the late 90s and 2000s has been immensely useful for my current self-publishing career.

It continues to be horrendously cold. We've been sitting under a high-pressure ridge and have had gorgeous sunny days that are absolutely freezing. It was -20F when I got up this morning and it's 0F out there right now. My husband's (uni-age) students are over here today because they wanted to help him dig out an ancient non-working snowblower that someone gave us ages ago from a snowbank and try to get it working again. (We do actually have TWO other snowblowers. This is just for fun.)

I took this picture on a walk up our driveway to the highway to get the mail a couple of days ago:

a long expanse of snow-covered road with piles of snow on each side

At least at this time of year, the sun warms it up SOMEWHAT during the day - in January it can sit at -40 24/7 for weeks; at this time of year we're still experiencing 20-40 degree increases during the day .... which is still barely enough to push us above 0F. The 10-day forecast shows that it will be glacially (haha) warming up, but still may not have crawled into above-freezing temps by the end of the month. UGH, I'M READY FOR SPRING.
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
posted by [personal profile] ysabetwordsmith at 02:39pm on 21/03/2026 under , , , ,
This crocodile ran like a greyhound across prehistoric Britain 200 million years ago

A newly discovered Triassic reptile from the UK looked more like a racing greyhound than a crocodile, built for speed on land. With long legs and a lightweight body, it hunted small animals in a dry, upland environment millions of years ago. Scientists identified it as a new species after spotting key differences in its fossils. It’s also a tribute to an inspiring teacher who helped spark a future scientist’s curiosity
.


Peculiar Obligations has several such species called galloping crocodiles, hoofed crocodiles, or hoofers.
Mood:: 'busy' busy
calimac: (Default)
posted by [personal profile] calimac at 12:23pm on 21/03/2026
1. It was still officially winter until Friday, but the weather out here skipped spring and went straight into summer. Temperatures were around 90, hotter in LA. The cats were lying on the linoleum.

2. My car was in the shop for repairs after the stupid U Haul driver clipped me a couple weeks ago. They said it was a 4-day job, so I brought it in Monday morning, but I wasn't able to pick it up until literally ten minutes before they closed for the weekend on Friday. I'd been able to survive the week without a rental (which I'd have had to pay for myself), making necessary errands in B's car, but I'll need my own this weekend, so it's good that's over. The shop did do a very nice job, and cleaned up the interior too.

2a. In the shop's waiting area were magazines to browse, some of them issues of a body shop trade journal called Fender Bender. Most of its contents were about the economics of the trade, but each issue has a puff profile of a shop. One of these is in San Francisco, and the article said it had a branch in Moraine County. That's "moraine" as in what a glacier leaves behind. It's actually Marin.

3. I can't get into the Social Security website to download my 1099. They've changed their login to require a smartphone to jump through the hoops, and like a lot of older Social Security recipients, I have a dumb phone. They don't tell you that you need a smartphone, of course. First is the two-factor ID, so they text you a code. That a dumbphone can handle, but it's the last thing. Then they want you to snap a photo of your ID, but there's actually an option at the bottom, "I don't have a smartphone." That's the last time you'll see that. It offers an upload. So off to FedEx to make a PDF. Then when you try to upload it, they tell you it doesn't take PDFs, only JPGs. Find a site that converts them. Then they tell you your files are too small. Find a site that promises to increase the size of your files. Discover that it reduces them instead. Find another site that actually does as it promises. Upload the files. Then you have to click on a verification URL the site sends to your phone. I can't do that, I don't have a smartphone, remember? I already told you that. Painstakingly copy the long link text to my desktop browser. Get in and answer the questions, but then it says the link has expired because I took too long.
At this point I give up, having not even gotten to the promised final step, which is "a brief video call." I can do video calls, I do them all the time on Zoom, but by now I suspect it will only accept your cell phone number, and I can't do video calls on a dumb phone.
Go to the pre-login part of the SSA website. Tells me I can get the 1099 online. No I can't. Get address of local office. Will go in on Monday morning.
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
posted by [personal profile] ysabetwordsmith at 02:10pm on 21/03/2026 under , , , , ,
Today is sunny and hot.

I fed the birds. I've seen a small mixed flock of sparrows and house finches.

I put out water for the birds.

EDIT 3/21/26 -- I put topsoil in the four large pots that sit on the ground along the north side of the picnic table.

I also put the indoor flats of tree sprouts and squash sprouts outside to get some sun and air.

It is so hot outside as to limit my activity. In mid-March. This annoys me.

EDIT 3/21/26 -- I put topsoil in the four large pots that sit on the ground along the south side of the picnic table. There is just a little left now.

It's 81°F now. :/

EDIT 3/21/26 -- I spread the last of the topsoil in other pots around the new picnic table.

It's 82°F now. Fuck climate change.

EDIT 3/21/26 -- I did a bit of work around the patio.

I've seen two mourning doves in the forest garden.

EDIT 3/21/26 -- I did more work around the patio.

I am done for the night.
Mood:: 'busy' busy
sovay: (Lord Peter Wimsey: passion)
posted by [personal profile] sovay at 02:58pm on 21/03/2026
The afternoon's mail brought my contributor's copy of Not One of Us #86, containing my poem "Northern Comfort." I wrote it out of my discoveries of the ghost-ground that has been directly underfoot all my life and longer, from King Philip's War to Pomp's Wall, and this administration and its murderous terror of history. It shares a page and an issue of emptiness with a precisely targeted incantation by Gwynne Garfinkle as well the equally hollowing fiction and poetry of Kris Schokrowsky, Penny Durham, Carsten Cheung, Jennifer Crow, and more. I almost referred to the covert art by John and Flo Stanton, obscured by shattered webs of negative space or the rust-light of abandoned industries. Subscribe! Contribute! Make the right kind of strangeness in this world. I am off to South Station to collect one north-traveling seal.
Music:: Jake Blount & Mali Obomsawin, "The Green Road"

September

SunMonTueWedThuFriSat
  1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21 22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30