text:
<?php

namespace Google\Service\DataCatalog\Resource;

use Google\Service\DataCatalog\DatacatalogEmpty;
use Google\Service\DataCatalog\GetIamPolicyRequest;
use Google\Service\DataCatalog\GoogleCloudDatacatalogV1TagTemplate;
use Google\Service\DataCatalog\Policy;
use Google\Service\DataCatalog\SetIamPolicyRequest;
use Google\Service\DataCatalog\TestIamPermissionsRequest;
use Google\Service\DataCatalog\TestIamPermissionsResponse;

/**
 * The "tagTemplates" collection of methods.
 * Typical usage is:
 *  <code>
 *   $datacatalogService = new Google\Service\DataCatalog(...);
 *   $tagTemplates = $datacatalogService->tagTemplates;
 *  </code>
 */
class ProjectsLocationsTagTemplates extends \Google\Service\Resource
{
  /**
   * Creates a tag template. You must enable the Data Catalog API in the project
   * identified by the `parent` parameter. For more information, see [Data Catalog
   * resource project] (https://cloud.google.com/data-catalog/docs/concepts
   * /resource-project). (tagTemplates.create)
   *
   * @param string $parent Required. The name of the project and the template
   * location [region](https://cloud.google.com/data-
   * catalog/docs/concepts/regions).
   * @param GoogleCloudDatacatalogV1TagTemplate $postBody
   * @param array $optParams Optional parameters.
   *
   * @opt_param string tagTemplateId Required. The ID of the tag template to
   * create. The ID must contain only lowercase letters (a-z), numbers (0-9), or
   * underscores (_), and must start with a letter or underscore. The maximum size
   * is 64 bytes when encoded in UTF-8.
   * @return GoogleCloudDatacatalogV1TagTemplate
   */
  public function create($parent, GoogleCloudDatacatalogV1TagTemplate $postBody, $optParams = [])
  {
    $params = ['parent' => $parent, 'postBody' => $postBody];
    $params = array_merge($params, $optParams);
    return $this->call('create', [$params], GoogleCloudDatacatalogV1TagTemplate::class);
  }
  /**
   * Deletes a tag template and all tags that use it. You must enable the Data
   * Catalog API in the project identified by the `name` parameter. For more
   * information, see [Data Catalog resource project](https://cloud.google.com
   * /data-catalog/docs/concepts/resource-project). (tagTemplates.delete)
   *
   * @param string $name Required. The name of the tag template to delete.
   * @param array $optParams Optional parameters.
   *
   * @opt_param bool force Required. If true, deletes all tags that use this
   * template. Currently, `true` is the only supported value.
   * @return DatacatalogEmpty
   */
  public function delete($name, $optParams = [])
  {
    $params = ['name' => $name];
    $params = array_merge($params, $optParams);
    return $this->call('delete', [$params], DatacatalogEmpty::class);
  }
  /**
   * Gets a tag template. (tagTemplates.get)
   *
   * @param string $name Required. The name of the tag template to get.
   * @param array $optParams Optional parameters.
   * @return GoogleCloudDatacatalogV1TagTemplate
   */
  public function get($name, $optParams = [])
  {
    $params = ['name' => $name];
    $params = array_merge($params, $optParams);
    return $this->call('get', [$params], GoogleCloudDatacatalogV1TagTemplate::class);
  }
  /**
   * Gets the access control policy for a resource. May return: * A`NOT_FOUND`
   * error if the resource doesn't exist or you don't have the permission to view
   * it. * An empty policy if the resource exists but doesn't have a set policy.
   * Supported resources are: - Tag templates - Entry groups Note: This method
   * doesn't get policies from Google Cloud Platform resources ingested into Data
   * Catalog. To call this method, you must have the following Google IAM
   * permissions: - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
   * templates. - `datacatalog.entryGroups.getIamPolicy` to get policies on entry
   * groups. (tagTemplates.getIamPolicy)
   *
   * @param string $resource REQUIRED: The resource for which the policy is being
   * requested. See [Resource
   * names](https://cloud.google.com/apis/design/resource_names) for the
   * appropriate value for this field.
   * @param GetIamPolicyRequest $postBody
   * @param array $optParams Optional parameters.
   * @return Policy
   */
  public function getIamPolicy($resource, GetIamPolicyRequest $postBody, $optParams = [])
  {
    $params = ['resource' => $resource, 'postBody' => $postBody];
    $params = array_merge($params, $optParams);
    return $this->call('getIamPolicy', [$params], Policy::class);
  }
  /**
   * Updates a tag template. You can't update template fields with this method.
   * These fields are separate resources with their own create, update, and delete
   * methods. You must enable the Data Catalog API in the project identified by
   * the `tag_template.name` parameter. For more information, see [Data Catalog
   * resource project](https://cloud.google.com/data-catalog/docs/concepts
   * /resource-project). (tagTemplates.patch)
   *
   * @param string $name The resource name of the tag template in URL format.
   * Note: The tag template itself and its child resources might not be stored in
   * the location specified in its name.
   * @param GoogleCloudDatacatalogV1TagTemplate $postBody
   * @param array $optParams Optional parameters.
   *
   * @opt_param string updateMask Names of fields whose values to overwrite on a
   * tag template. Currently, only `display_name` and `is_publicly_readable` can
   * be overwritten. If this parameter is absent or empty, all modifiable fields
   * are overwritten. If such fields are non-required and omitted in the request
   * body, their values are emptied. Note: Updating the `is_publicly_readable`
   * field may require up to 12 hours to take effect in search results.
   * @return GoogleCloudDatacatalogV1TagTemplate
   */
  public function patch($name, GoogleCloudDatacatalogV1TagTemplate $postBody, $optParams = [])
  {
    $params = ['name' => $name, 'postBody' => $postBody];
    $params = array_merge($params, $optParams);
    return $this->call('patch', [$params], GoogleCloudDatacatalogV1TagTemplate::class);
  }
  /**
   * Sets an access control policy for a resource. Replaces any existing policy.
   * Supported resources are: - Tag templates - Entry groups Note: This method
   * sets policies only within Data Catalog and can't be used to manage policies
   * in BigQuery, Pub/Sub, Dataproc Metastore, and any external Google Cloud
   * Platform resources synced with the Data Catalog. To call this method, you
   * must have the following Google IAM permissions: -
   * `datacatalog.tagTemplates.setIamPolicy` to set policies on tag templates. -
   * `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
   * (tagTemplates.setIamPolicy)
   *
   * @param string $resource REQUIRED: The resource for which the policy is being
   * specified. See [Resource
   * names](https://cloud.google.com/apis/design/resource_names) for the
   * appropriate value for this field.
   * @param SetIamPolicyRequest $postBody
   * @param array $optParams Optional parameters.
   * @return Policy
   */
  public function setIamPolicy($resource, SetIamPolicyRequest $postBody, $optParams = [])
  {
    $params = ['resource' => $resource, 'postBody' => $postBody];
    $params = array_merge($params, $optParams);
    return $this->call('setIamPolicy', [$params], Policy::class);
  }
  /**
   * Gets your permissions on a resource. Returns an empty set of permissions if
   * the resource doesn't exist. Supported resources are: - Tag templates - Entry
   * groups Note: This method gets policies only within Data Catalog and can't be
   * used to get policies from BigQuery, Pub/Sub, Dataproc Metastore, and any
   * external Google Cloud Platform resources ingested into Data Catalog. No
   * Google IAM permissions are required to call this method.
   * (tagTemplates.testIamPermissions)
   *
   * @param string $resource REQUIRED: The resource for which the policy detail is
   * being requested. See [Resource
   * names](https://cloud.google.com/apis/design/resource_names) for the
   * appropriate value for this field.
   * @param TestIamPermissionsRequest $postBody
   * @param array $optParams Optional parameters.
   * @return TestIamPermissionsResponse
   */
  public function testIamPermissions($resource, TestIamPermissionsRequest $postBody, $optParams = [])
  {
    $params = ['resource' => $resource, 'postBody' => $postBody];
    $params = array_merge($params, $optParams);
    return $this->call('testIamPermissions', [$params], TestIamPermissionsResponse::class);
  }
}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(ProjectsLocationsTagTemplates::class, 'Google_Service_DataCatalog_Resource_ProjectsLocationsTagTemplates');


text:
9-year-old Malaysian's spacesuit toilet design allows astronauts to pee in peace
By Danial Martinus 2 months, 1 week
Pooping in space has never been a graceful act for astronauts.
In fact, it's kinda weird and a little scary for us regular earth-dwellers. If you don't know what a space toilet looks like, just watch this video.
But back in June, the U.S. National Aeronautics and Space Administration (NASA) announced it had plans to send people back to the moon by 2024. And because astronauts are regular humans like you and, NASA needed to design a toilet solution perfect for the microgravity of space, as well as the moon.
Dubbed the Lunar Loo Challenge, the design competition was split into two categories, adults and children (junior).
After studying nearly 900 submissions in the Junior category, NASA has picked a winner – 9-year-old Malaysian, Zyson Kang.
IMAGE: New Straits Times
Kang's 'Spacesuit Lunar Toilet' is designed to fit inside an astronaut's spacesuit, as the name implies.
In the microgravity of space, the toilet device creates a vacuum to suck up any liquids (yes, pee and all) that the astronaut releases.
IMAGE: IDiscoveryWorld / Facebook
All the astronaut really needs to do is move their leg, which will then channel their urine into a container stored in their boots.
The best part of it all is the fact that the device doesn't need batteries or a supply of electricity to function, which makes for a perfectly lightweight and cheap way to answer nature's call in space.
According to the Kang's coach at the I-Discovery World science center in Selangor, Malaysia, the boy has always had a knack for inventing.
"He is an avid reader with an extremely curious mind. Science simply excites him, especially astronomy," says I-Discovery World's Chong Soo Sheong.
Chong and Kang started on the project in June, and submitted it to NASA's Lunar Loo panel of judges in August.
Kang (top right) presenting his model in a webinar with the NASA panel. IMAGE: IDiscoveryWorld / Facebook
"On October 29, NASA invited him to present his model at a webinar. The NASA team was impressed by the simplicity of his model," says Chong.
Kang managed to beat over 897 participants from 85 countries, solidifying the boy's place on the global young innovation stage.
Kang's spacesuit toilet could have other use-cases, especially for medical professionals in emergency situations.
I can't imagine how much it would suck to have to go to the bathroom while you're dealing with a medical emergency. How would doctors relieve themselves?
"For instance, medical personnel will normally have to remove or change out of their Personal Protective Equipment (PPE) if they have to go the toilet while handling COVID-19 patients," Chong explains.
"Zyson's compact toilet model will allow doctors and nurses to catch their toilet breaks during an emergency without having to change or remove their PPE gowns."
Good job, Zyson!
Read more NASA stories:
NASA's new discovery of water on the moon could aid future missions
The moon will soon have better cell phone reception than your house
NASA releases wallpaper-worthy images of our universe and they're mesmerizing
Cover image sourced from New Straits Times and NASA.
TOPICS: Science, Malaysia, prodigy, Nasa, astronauts, Spacesuit
3 in 4 recovered COVID-19 patients suffer from symptoms 6 months later
Philippines green-lights Pfizer vaccine, but there are some challenges
Singapore has already vaccinated over 6,200 people against COVID-19
KFC Singapore rolls out meat-free chicken burger that isn't vegan or vegetarian
Fascinating graphics show how far we've come with COVID-19 vaccine rollout, and how far we have to go

redpajama_set_name: RedPajamaCommonCrawl


text:
Flight history for HiSky Europe flight H4484
FROM Milan (BGY)
TO Chisinau (KIV)
03 Feb 2023 Milan (BGY) Chisinau (KIV) 320 — 08:10 — 10:25
TO Cluj-Napoca (CLJ)
30 Jan 2023 Milan (BGY) Cluj-Napoca (CLJ) 320 — 14:45 — 17:00
ER-SKY
27 Jan 2023 Milan (BGY) Chisinau (KIV) A319 (ER-SKY) 2:00 08:10 08:06 10:25
More than 7 days of H4484 history is available with an upgrade to a Silver (90 days), Gold (1 year), or Business (3 years) subscription.


The best way to show Google that a part of your website is relevant to a particular country is to create an independent website for the country.For example, Amazon.de is for Germany, Amazon.co.uk is for the United Kingdom. Google recommends dedicated country code top level domains as the preferred options for websites that are available in different languages.
If you don't want to use country code top level domains, you can create a unique sub domain for each language. For example, you could use en.amazon.com, de.amazon.com, fr.amazon.com, etc.Technically, a sub domain is totally independent from the main domain and it is relatively easy for search engine crawlers to index the sub domain as a country specific part of your website.
Theoretically, you could use sub directories (amazon.com/en/, amazon.com/de/, etc.) or URL parameters (&lang=de, &lang=en) to direct search engine robots to the different language versions of your website.
This method, however, often confuses search engine robots and it can happen that your web pages get lower rankings than they should.
When you create different versions of your website for different languages, do not just translate the content of your web pages. Different countries have different cultures. Things that work well in one country might not work in another.


Chic versatility is absolutely assured with this sleeveless dress from G.I.L.I. Lace insets add ultra-feminine detail, while the cutout V-neckline gives it a little bit of edge. From G.I.L.I. got it love it(R).
Length: missy petite length 37-1/2" to 38-7/8"; plus petite length 39-1/4" to 40"
G.I.L.I. Petite Sleeveless Dress with Lace Insets is rated 5.0 out of 5 by 3.
Rated 5 out of 5 by qvcprincess from Perfect for Summer Evening Event A year ago, I ordered this dress in Regular 4 Vanilla, because Petite sizes were not offered. I am 5'0. Although I really liked it, I returned it, because it was too long, and the back of the neck yoke bunched up because of the extra fabric. But now when I was looking for a navy dress to wear to a formal, indoor, summer evening event, I noticed that this dress was available in Petite. So I ordered the navy this time, and voila! It fit perfectly. It's very snug and form-fitting, so if you're not comfortable showing your curves, I wouldn't recommend this dress. The sewing and thick fabric are of good quality, the dress is mostly lined, and the specially designed neckline and lace panels add that fancier, dressier touch. I also think that the vanilla contrasts nicely with darker complexioned women, and the navy with lighter complexioned.
Rated 5 out of 5 by pippixxxx from Pretty Remarkable I ordered this because of how the models looked. This dress is true to the description. I'm 36DD and the neckline on this is lovely. I ordered the 14. It is a substantial dress, definitely hugs the curves, has stretch but is thick. I'm not really someone who wears dresses often. When I saw how good the models looked I thought I should try it. I bought the blue. I look great in it!


text:
Sony Pictures Television: Update
We're proud to announce that Creative Director Pete Chatmon was selected to shadow on Sony's hit show "The Blacklist", airing 9pm Thursday's on NBC. At the conclusion of the six week program, five directors were chosen to observe on Sony...
Updates From the Sony Backlot
by d7i | Oct 3, 2015 | Blog Category, Campfire
Creative Director Pete Chatmon has shared a few photos via his instagram feed (@double7) from his most recent trip to Los Angeles for the Sony Pictures Television Diverse Directors Program. Details from left to right, row by row, starting at the top: 1) Pete with...
Sony Pictures Television Diverse Directors Program
by d7i | Sep 20, 2015 | Blog Category, Campfire, Squad Projects
We are proud to announce that Pete Chatmon was recently selected by Sony Pictures Television as 1 of 15 emerging directors for its Diverse Directors Program! SPT is the studio behind many hits across multiple networks, including Breaking Bad, Masters of Sex, The...


Still not convinced that the iPad Mini is coming? Well then, you might want to check out the upcoming product line-ups of accessory manufacturers like Belkin, Zagg and Devicewear because they've all got stuff ready for Apple's rumored 7.85-inch wonder.
What's even more interesting is that the Brenthaven website already gives dimensions for the device — 7.5? W x 4.8? H x .75? D.
These are certainly not the first accessories we've spotted for the iPad Mini. But when bigger companies are already offering for products for a device that's yet to launch, then you know something's got to be up.
Do you agree that this proof we'll be seeing an official unveiling of the iPad Mini shortly? Do you already have a case picked out for the device? Share your favorites in the comments below!


text:
Q: How can I get image data from a server side perl program and display in a div using javascript I have done a lot of searching and either the answer doesn't work or it's not a good solution.  The solution of just putting a reference into the html like:

Has two problems, one is the image will change and it'll get cached.  I know that I can put a random parameter on the call and get around the problem, but the other problem is that the program runs for a few seconds.  I use javascript, setInterval, to loop.  The perl program reads an image file and annotates it.  This take a while, 3 or 4 seconds and the display blanks out during that time, so I have two divs, one is hidden while the other is being displayed.  The logic is that I'll load the hidden one with an image and when the load is complete, I'll hide the first and display the second, next pass, vice versa.  There seems to be no event I can trap at "load completion".  None I saw in the debugger at any rate.
The ajax call brings in the data but I can't figure out how to display it.  I base64 encode it in the perl script.  Here's the javascript.
$.ajax({ type: 'GET',
url: 'http://localhost/cgi-bin/fdmap/image.pl',
success: function(data)
{
    $('#img1').html('header("image/jpg;base64");
open INP,"pcb.jpg";
my $it;
while(<INP>) {
    my $in = $_;
    $it.=$in;
}
my $encoded = encode_base64($it);
print $encoded;

I'm just using a small jpg file for testing.  Once I figure out how to display the image data I"ll generate the image dynamically.
When I run the perl script from the console I get the following (truncated) output.

Content-Type: image/jpg;base64^M
  ^M
  /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP
  ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e
  Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAF9AZwDASIA

If I look at the data received via the javascript debugger I see:

HTTP/1.1 200 OK
  Date: Sun, 05 May 2013 15:28:43 GMT
  Server: Apache/2.2.14 (Ubuntu)
  Keep-Alive: timeout=15, max=99
  Connection: Keep-Alive
  Transfer-Encoding: chunked
  Content-Type: image/jpg;base64

And the data in the response looks the same as the data dumped on the console.
However nothing is displayed and there are no error messages to be seen.  Just a blank screen.  I've been working on this for many hours.  Thanks for any help you can give me.
Oh and I could care less if it works in IE or not.

A: Only with quick scan, so i'm not sure, but - are you sure than
$('#img1').html('<img src="data:image/jpg;base64,'+data+'"');
                                                          ^
                             //not missing the tag-end?---+

because you get
<img src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASAB....."

and need (IMHO)

redpajama_set_name: RedPajamaStackExchange


This the text, more or less, of the talk I gave at NDF2013. It's draws heavily on earlier posts, especially Project calabash and the pompously titled Open letter to cultural collecting organisations.
I have to preface this talk by saying that I'll be talking about one very simple idea – linking a couple of sites to each other – and some more complicated ideas. They're not really fully formed and aren't really mine.
But they're ideas that are floating around – what Virginia Gow refers to as shared ideas, or just ideas whose time has come and that we're all kind of thinking about. And they're not ideas I have solutions for, but they seem like problems that are staring us in the face and we should try to solve them.
The Web Team at the Ministry for Culture and Heritage (MCH) looks after all the Ministry's websites, including our two largest sites, Te Ara – the encyclopedia of New Zealand, and NZ History – New Zealand History Online.
Unlike a lot of the organisations involved with NDF, MCH isn't a collecting institution. We write text, a lot of it, both in print and online. Te Ara has maybe 3.5 million words; NZ History at least another million.
Where we intersect with collecting institutions is in the thousands of images that illustrate our stories.
We're probably one of the country's biggest collection users – Te Ara has 25 to 30000 resources, most from collecting institutions; NZ History has maybe 4 or 5000.
When it comes to collections items, like this gourd, or calabash, or hue from Te Papa, our sites explain their significance and place them in the context of stories that demonstrate their relevance to other items.
I'll come back to that idea of relevance later, but for now I want to talk about a very simple linking project that we're working on with Te Papa.
We source images and other media from institutions like Te Papa. Most of these items are available on Te Papa's website. What we're doing isn't rocket science: we'll be providing links between the two sites based on the item. So if you see it on Te Papa's site you can go and read more on Te Ara, and if you're on Te Ara you can find the original version on Te Papa's site.
Before I get to why we're doing this, I should say why are we using Te Papa as a test case.
A big part of it is down to people, and I have to name check Adrian Kingston for coming up with this idea, and seeing this as something that was possible, relatively easy, and worth the effort.
Partly it's also the synergy between what the two organisations and our websites do: we both take a national view, and in the case of Te Ara, we also take an encyclopedic view and try to cover all aspects of New Zealand culture and history in much the same way that Te Papa's collections span history, culture, natural sciences and so on.
It's also partly that the number of Te Papa images used on Te Ara is relatively small, about 500, so we've got a manageable set to work with manually. And Te Papa uses persistent identifiers for items on Collections Online. We can't do this without persistent IDs that will be there forever.
The process is currently manual. It's basically a spreadsheet of Te Papa images and where they appear on Te Ara. Te Papa staff are going through the spreadsheet and identifying the corresponding IDs and URLs.
With 500 items that's not a major hassle, but at some point I hope we're going to have to think about how to scale is beyond 500 images and automate. It's a pilot so maybe we'll never have to ask that question, but I'd love to be applying this to some of the larger collections we use like the several thousand images from the Alexander Turnbull Library.
So we're basically making item-to-item links. Well so what? You can look at this image on Te Ara or you can look at it on Te Papa. Surely if you've seen one image you've seen them all. But not quite.
What you're getting from Te Ara is information on the item's significance. It's in the story on traditional Māori warfare; it illustrates the page about preparations and entering into battle; and from the caption you learn about its use in this context. Te Ara provides the context that signals why this item is important.
From Te Papa on the other hand you can find out that it's also called a taha huahua, or calabash, it's made of harakeke, muka, gourd, dye and was purchased in 1905. You can see the collection it belongs to and what it was influenced by. And all those underlined words link to more items that share those classifications.
So what we're doing is helping people find the information that's relevant to them. If they're interested in the story behind something, get it in one place; if they're interested in the detail about it, get it from another. What you get in each place is what's most relevant to where you are but you can easily find other information if that's what you're interested in.
I just want to mention a couple of other examples that probably bring this into sharper relief.
This is Abel Tasman. Eric Ketelaar from the University of Amsterdam spoke earlier this year at the GLAM symposium held at Victoria University. I'm hazy on the details but he was talking about the many copies of Tasman's journals that exist around the world.
Some exist as simple scans; others as transcripts of the Dutch; others as translations. Duplication isn't the issue; as archivists tell us, lots of copies keep stuff safe. The issue is that none of these copies are linked to the others.
The copy you happen to stumble across directly affects your experience and ability to use the materials.
If you can't read long-hand the scans are no good to you; if you can't read Dutch, the transcripts won't help; if you can't read English, you might be better off with the Dutch. It wouldn't be hard to link them together – they're on the web so it's just hyperlinks that are needed – so if you find one copy you can get to the copy that works for you.
Another example is images like this one from what's called the H series – a collection of World War One photographss commissioned by the New Zealand government and taken by Henry Armytage Sanders. The Alexander Turnbull Library holds the original glass plate negatives and copies are held by other organisations around the country.
Auckland Museum for example has copies in photo albums, and that points to story of how the images were originally used. They were put into albums with captions, and the albums were distributed around the country so that soldiers and their families could order prints. This is why they're all numbered so people knew which photo to order.
Again linking the originals to the albums gives people the chance to experience and use the images in different ways. If you want a hi-res copy, the best place to go is the Turnbull; if you want to experience what it was like for a nation to see what the war had been like in page after page of photos, you can view the albums. Making that simple link makes those things possible.
Back to Te Ara and the relevance of items to other items. I've written a bit over the last few years about the way that something like Te Ara – but any publication really that uses collection items – is kind of like the meat in the sandwich between collections. Where a publication uses items from different collections it's effectively creating an inferred relationship between the items and the collections.
I keep coming back to the calabash. Its many names are part of the complexity, as are its many uses. As we've seen, it illustrates the story about traditional Māori warfare, but it also illustrates the story about rongoa, or the medicinal use of plants.
Within that story it's suggesting relationships with items as diverse as other plants to an engraving of a Māori warrior, a Lindauer portrait of the tohunga, Tūhoto Ariki, and a cartoon of Māui.
Through that one story we have inferred relationships forming between Te Papa, Turnbull, Auckland Art Gallery, the Department for Conservation and Godwit Publishing.
Some of these links even start to get a little playful, in the way that Cath Styles talked about in her game Sembl last year, where you let your user make the connections between items.
Just to get a little meta about it, Te Ara's story on collecting brings together a really wonderful assortment of subjects from Turnbull himself and his book plates to firearms and Barbie dolls. It starts to coalesce around a subject that an institution might not think of, but once it's in a user's hands, those connections start to form.
Where else can we go with this? At a simple level item-to-item linking opens up a few options. We can potentially share our content more easily with other organisations if they want it – that saves them the effort of writing new content about their items.
We can also use it as a hook to update copyright or other information when the institution changes their record. Or we could look at pulling their descriptions of items in as alt text for screen readers to use.
We're also interested in sharing our content with third parties to build new publications, websites or apps. Currently we can only share the text as that's our copyright, but if we have a direct link to an item, then it's easier for a third party to find sources of images and be able to negotiate re-use rights directly with the holding institution. Services like Digital NZ could also use the information and map our stories to institution records and expose those relationships through their API.
But more than all that, we could as Adrian Kingston suggests start to use the items to catalogue the stories they illustrate.
Te Ara subjects are at a very high level – the story title and page title is in effect the main subject. That's fair enough, it's an encyclopedia after all, so the title is a headword, and a headword by default is a subject. But what if we used the items to infer more specific subjects that the story might relate to?
…is also a story about woodcarving and the use of materials like feathers, dog hair and flax in Māori society through Te Papa's catalogue record.
And through that connection is related to thousands of items in their collection. Not all the Te Papa subjects will be directly relevant to Ta Ara's story, but by being able to choose which ones are, we can make direct links from a story to a much larger pool of related items on Te Papa's site.
And where this starts to head is towards an idea that Virginia Gow threw at me recently which picks up on some work in the Netherlands. The National History Museum there joined up with some other websites and created what's basically a trusted network of sites. When one site links to another site in the network, the links gets reciprocated automatically. It's the sort of thing you could start letting your users do for you.
It shouldn't be impossible. It's the kind of thing Facebook does when it lets you tag someone in a post or photo, or that WordPress does when you allow pingbacks to a blog post. What they're doing is building a system that's aware of the network it's part of and letting users take advantage of the network.
Simply linking items to items is going to take some work, and it's obvious we'll need to work out ways of doing it automatically when we look at a set larger than the Te Ara Te Papa set. Could we let our users do it? Could we just start sharing our data with each other in such a way that machines can start making the matches for us?
It plays into the work that Chris McDowall demoed yesterday – making matches across collections based on people. That sort of thing can be done automatically, by the right person with the right tools. All we need to do is let people like Chris use our websites and collections and see what they can do.
People are easy – ish; so are places, and even some events. They're hooks that can connect our websites, and connect our content. Subjects and classifications are potentially no different. A little more ambiguous at times but not impossible.
One of the things you notice when you look at collections is they're never as comprehensive as you'd hope. They're riddled with historical accidents. No institution has everything related to a subject or person or place. Or think of the Treaty of Waitangi – held by Archives New Zealand, soon to be housed in the building of the National Library, but arguably as relevant to Te Papa's collection.
Look at any significant artist and see how their works are scattered across museums and galleries around the country (if not the world).
That's history – different things get picked up by different institutions at different times, and we can't change it. But for the user it's infuriating. Why can't I see all of someone's work in one place? Or everything on a particular event all together?
The beauty of linking all our content together is that it creates a layer of meaning and use that sits above individual collections. It lets us all play to our strengths. Organisations can maintain their own web presence that talks to their mission, their collection, and their community, but it lets a much wider community tell their own stories that cross-walk all the separate institutions and collections. Through that we and our users could create truly national stories using all the different parts held in different institutions around the country.
That's taken us away from the simple idea of linking items to items. That network is hard but we need to do it. At the same time, let's not forget about doing the simple stuff. If there's stuff you can connect your collection items to, just do that. It's a start, and if it gives more use and meaning to your users then you're doing something right.
But keep the hard stuff in mind – agitate for it, remind people why it's worth doing, do it if you can and share the results with as much of the network as possible. That way we build a richer digital ecosystem for developers and our users.
All text on this blog is licensed under a Creative Commons attribution licence. Where available, images are available under the same license where marked.


1. Encyclopedia of world dress and fashion.
Joanne B. Eicher, Sandra Lee Evenson, Hazel A. Lutz.
New York : Fairchild Publications, c2000.
edited by Joanne B. Eicher.
Oxford ; Washington, D.C. : Berg, 1995.
edited by Mary Ellen Roach-Higgins, Joanne B. Eicher, Kim K.P. Johnson.
New York : Fairchild Publications, c1995.
edited by Ruth Barnes and Joanne B. Eicher.
New York : Berg : Distributed exclusively in the US and Canada by St. Martin's Press, 1992.
edited by Mary Ellen Roach [and] Joanne Bubolz Eicher.


9804XXXXXXClick Here to see Contact No.
Do you want to receive special deals and offers from Flying Squirrel Holidays?
Daily Download limit reached! Do you want to alert Flying Squirrel Holidays to receive Catalogue?


text:
Home / πολιτική / Μέχρι τη ρίζα θέλουν να τσακίσουν τους 'Ελληνες!
Μέχρι τη ρίζα θέλουν να τσακίσουν τους 'Ελληνες!
Διαβάσαμε το τρομακτικό άρθρο στα αγγλικά που αναπαράγουμε αυτούσιο στη συνέχεια. Αν κάποιος αναγνώστης μπορεί, ας το μεταφράσει στα ελληνικά. Δεν μπορούμε να επιβεβαιώσουμε ανεξάρτητα την ακρίβεια όσων αναφέρει. Με δεδομένο όμως το τι η Τρόικα των Πιστωτών, όργανο του παγκόσμιου χρηματιστικού κεφαλαίου και των υποτελών σε αυτό δυτικών ελίτ, έχει ήδη επιβάλλει στην Ελλάδα, με τη συνδρομή των εγχώριων οργάνων και συμμάχων της, δεν θεωρούμε τίποτα απίθανο. Το αντίθετο!
Μόνο κινητοποιούμενος ξανά με πολύ μεγάλη σοβαρότητα, μαζικότητα και αποφασιστικότητα, και μη εμπιστευόμενος κανέναν απολύτως εκτός του εαυτού του, του δικού του μυαλού και της δικής του θέλησης, ο ελληνικός λαός έχει ίσως μια ελπίδα να σωθεί. Εναποθέτοντας τη σωτηρία του στους υπάρχοντες πολιτικούς οργανισμούς, τους διάφορους καραγκιόζηδες-σωτήρες που κυκλοφορούν, αριστερά και δεξιά, τους διεθνείς οργανισμούς, τη Θεία Πρόνοια ή την τύχη, ο ελληνικός λαός και η Ελλάδα μοιάζουν οριστικά καταδικασμένοι σε ένα οδυνηρό και εξευτελιστικό τέλος, μάλλον σύντομα.
ΔΚ
Greeks Beware of a Silent Operation Mercury II
We publish below an extremely interesting and important article by Phil Butler.. We are not in position to confirm the veracity of the claims contained in it in an independent way, still we consider them quite logical. Especially on the light of the quite extremist, unbelievable and catastrophic measures the "Troika of Creditors" (EC, ECB and IMF and, behind them, the "Empire of Finance" and German and European elites) have already imposed to Greece.
The state of world geopolitics today does not bring to mind any historical context. There seems to be no precedent for the clash of nations and peoples, even though many compare the situation to pre-war Europe in the 1930s, or to some span of time during the Cold War. The state of the world today is a brand-new kind of dangerous. In this report, I'd like to call the reader's attention to this peculiar state of affairs and to warm my Greek friends of a silent war being waged upon them.
"THE WORLD WAR II BATTLE OF CRETE, OR OPERATION MERCURY (UNTERNEHMEN MERKUR), WAS A NAZI HAMMER STRIKE AIRBORNE ONSLAUGHT, THE LIKES OF WHICH THE WORLD HAD NEVER SEEN BEFORE."
It has occurred to me that our inquiries into the world's state of affairs need to take on a new complexion. Since decades, maybe even for centuries, the people of the world have tried to identify, gauge, and classify civilization and our systems using various forms of quasi-science. We hash and rehash what our political philosophers and leaders tell us is news and data. Then, at the dawn of a new century, we find ourselves in what seems like the same predicament as before. We are in a constant state that reminds me of an old saying, "All the world's a stage." Only no one is asking the most sentient question of all – "Who is the director?" All we see are the actors. There is no apparent Hitler or Mussolini or Tojo villain, only mysterious groups of investors and well-insulated elites to point to and say, "You did it!"
US President Donald Trump is a leading man. France's embattled President Emmanuel Macron is a supporting actor, and so are evil villains like billionaire George Soros, Amazon's Jeff Bezos, and an all-star cast of supporting villains like News Corp's Rupert Murdoch, the boys at Google, and members of the board of directors at 500 Fortune companies. Nobody is calling to the Academy Awards of diabolical world domination, the award-winning director of a Broadway or Hollywood production that has 7 billion in the audience captivated and spellbound. I am focused on this orchestrator because of a waking dream I had. By the way, you can know the world is an unfolding drama when as an analyst you wake up at 4 a.m. thinking about how something seemingly insignificant is really a key piece of evidence in the biggest crime in human history. Bear with me, while I explain.
The Big Plot
Some research I was doing last week concerning the Greeks and their bids for UNESCO World Heritage status for several iconic cultural landmarks, it turned up still more coincidences that cannot really be coincidental at all. I'll cut to the chase rather than carrying the reader on my quest to help Crete get its Minoan Civilization treasures listed. You can research how come the Minoan Palace at Knossos is not a World Heritage landmark, and you'll find a rat's nest of bureaucracy and vested interests. You will also discover that Europe's most advanced Bronze Age society has no place whatsoever in the United Nations' chartered attempt to bring our worlds together. Before I go on, here is what the UNESCO charter says on "listing" our cultures and our heritage, Article I, number 1 of the Constitution of signed in 1946:
"THE PURPOSE OF THE ORGANIZATION IS TO CONTRIBUTE TO PEACE AND SECURITY BY PROMOTING COLLABORATION AMONG THE NATIONS THROUGH EDUCATION, SCIENCE AND CULTURE IN ORDER TO FURTHER UNIVERSAL RESPECT FOR JUSTICE, FOR THE RULE OF LAW AND FOR THE HUMAN RIGHTS AND FUNDAMENTAL FREEDOMS WHICH ARE AFFIRMED FOR THE PEOPLES OF THE WORLD, WITHOUT DISTINCTION OF RACE, SEX, LANGUAGE OR RELIGION, BY THE CHARTER OF THE UNITED NATIONS."
The UNESCO constitution, like most well-meaning social contracts in the western world, is a noble gesture at its core. Unfortunately, all such gestures are hijacked now. Let me illustrate how this new "plot" leads to the final ending.
The Big Misdirect
A story I wrote about this "Knossos battle" for recognition obviously tweaked some tail feathers. I own a not-so-well-known travel news site, where I posted how ridiculous it is for the Germans to get a Nazi steel mill listed at UNESCO when the first city of Europe has been turned down multiple times in the last two decades. When I emailed UNESCO, and then received a call from their head of media, George Papagiannis in Paris, I was interested to find out how the "Knossos" affair was even possible. The "coincidences" that followed led me to write this story – especially after a lay awake this morning with ethereal clues as to the meanings.
Long story short, the PR genius Papagiannis almost managed to not only get UNESCO off the hook, he also managed to excuse the Greek politicians and ministers from "messing up" the bid of the western hemisphere's most important heritage monuments. When I asked the UNESCO mouthpiece who was to blame for Crete having ZERO UNESCO monuments, he told me it is "the community's fault" because of their lack of investiture in fixing these sites. This not only puzzled me, it infuriated me and spurred me to investigate further. Greece is in such a sad fix with austerity and economic woes; I figured UNESCO and the rest of Europe would be helping out. Boy, was I wrong? My answers came when I investigate just who this UNESCO PR man is, and when I questioned why he would call to talk to little old me for almost an hour. Here's some "coincidence" I found.
George Papagiannis, it just so happens, was the communications director for the current Speaker of the House of Representatives, Nancy Pelosi. Not only was he in charge of her PR, he was also on the job during a crucial time in America. I will quote directly from his LinkedIn profile, from which you will hopefully see something significant.
"WHEN THE OPENING GAVEL OF THE 105TH SESSION OF THE U.S. CONGRESS CAME DOWN IN JANUARY 1997, IT SOUNDED A DISCORDANT NOTE. THIS WOULD BE THE CONGRESS THAT WOULD IMPEACH U.S. PRESIDENT BILL CLINTON. AS DIRECTOR OF COMMUNICATIONS AND SPOKESPERSON, I WAS PART OF THE HOUSE DEMOCRATS MESSAGE TEAM. OUR CHALLENGE WAS TO FIND THE MESSAGE THAT WOULD BE CRITICAL OF THE PRESIDENT'S AFFAIR WITH AN INTERN WHILE DEFENDING HIM AND PROTECTING THE INSTITUTION OF THE PRESIDENCY."
You read it correctly. It appears it was Papagiannis' job, the team's job, to see to it that former President Bill Clinton got off the hook, while saving face for the House of Representatives too. They "crafted" a message that got everybody in the clear, just like UNESCO and the Greek politicians are in the clear. It turns out, Papagiannis is another actor in the drama unfolding. After the Pelosi stent, the veteran media man worked as Director of Radio Operations and Journalism Training for Internews, in developing independent media "post-war authoritarian regimes" in Afghanistan, Burma, Chad, Pakistan, Cambodia, Indonesia, Uzbekistan, Armenia, Kazakhstan, and many other nations in upheaval. For those who are unaware, Internews is a non-profit that has trained more than 80,000 in 70 countries at "media skills." Now, plug this into the current state of propaganda and so-called "fake news" and you catch up with my current waking nightmare.
The Truth in the Sub-plot
Now get this, Internews has the look of a shadow functionary of the U.S. State Department or even the CIA. Nobody reading this will know, I certainly did not, that it was Internews that created the first-ever Twitter campaign to cover elections in Ukraine. And out of Washington D.C., no less, in April of 2011. Internews was also in Egypt about the time Arab Spring shit hit the fan, and the organization played critical roles "re-creating" media in other tumultuous places around the globe. It is also worth noting that our old friends at Google chose to co-fund this new-media expansion. So, finding out that Papagiannis worked for the same folks funded by the World Bank Institute and the Brookings Institution and supported by the Bill & Melinda Gates Foundation – well, you can imagine how "coincidence" began to fade from my reality indexes. Papagiannis on the horn with me for that length of time, the Knossos affair, and what the World Bank and others are up to – let's just say it all makes more sense now.
Now, the 4,000 to 5,000-year-old Minoan palaces in UNESCO limbo, Greece under the jackboot of the IMF, the World Bank, and the international economic pirates, and Greek politicians selling their countrymen out by privatizing all of Greece for sale to the highest Luxembourg, London, Berlin, or Beijing bidder, it all comes together with the fact that these Minoan treasures were about to go on the bidding block to pay off a western debt bankers created for Greeks! Yes, it is my belief that the "Director" of this worldwide takeover game had issued orders to sell off priceless cultural treasures like Knossos, Phaistos, Malia, Zakros, Kydonia, and many other irreplaceable properties of the Greek people. Other "timing coincidences" create a circumstantial case for the whole Greece economic situation being an act of economic warfare against the innocent Greek public. 2009, a former World Bank executive, Ekaterini Tzitzikosta, turns into the President of the Hellenic Commission for UNESCO, who just so happens to have turned down the Knossos bid in 2009. Right after the 2008 collapse? Then, if not for Greeks rising up in protest, the government has Knossos on the sale list until January of this year? While Greek officials have vehemently denied there was any intention to sell off these treasures, there's evidence to the contrary.
A story on ROAR Magazine entitled "A struggle to save Europe's soul from privatization," framed well the German sentiment toward the Greeks as the debt crisis hit home in 2010. Roos, who is a Fellow in International Political Economy at the London School of Economics, pulled no punches in his report on the way the Greeks were being set up. Germany's Bild tabloid splashed headlines onto every bakery and lunch counter in Germany proclaiming "Sell your islands, you bankrupt Greeks!" This was when the anti-Greek propaganda began. "And sell the Acropolis too!" – the headlines ran on and on, even poking Greeks in the eyes with "We give you cash, you give us Corfu." But the German propaganda plan was launched in coordination with Greek lawmakers putting a lot more than archaeological sites on the bidding block. No one reading this will be aware of the diabolical plan to take over everything of value in Greece. Let me first quote from Roos' story; then I will lay out what I believe is happening now.
"THEN, IN MAY, THE GOVERNMENT UPPED THE ANTE BY PROPOSING A BILL THAT WOULD EFFECTIVELY OVERTURN DECADES-OLD CONSTITUTIONAL PROTECTIONS OF THE COUNTRY'S COASTLINE THAT RESTRICT DEVELOPMENT AND GUARANTEE OPEN ACCESS TO THE BEACH. THE GREEK PRIVATIZATION FUND TAIPED SUBSEQUENTLY MARKED 110 BEACHES FOR PRIVATIZATION, INCLUDING SUCH GEMS AS ELAFONISOS, HOME TO THE VALUABLE MARINE ARCHEOLOGICAL SITE PAVLOPETRI."
Greece is the world's last great unspoiled tourism Mecca, though few reports will tell of this. Unlike Spain, where the coastline is an endless sea of commercialization, Greece has had in place laws that prohibit unlimited development on its precious shoreline. Elafonisos, which Roos mentions, is one of the world's most beautiful and pristine beaches, and her on Crete where I live. Right now it is absolutely unspoiled, in the middle of a wilderness with only a taverna and some drink stands standing out. Put just one all-inclusive resort on it, and it is over. Already, Crete has a horde of big all-inclusive resorts that cater (get this) mostly to lower middle-class Germans TUI flies here for the cost of a schnitzel. TUI is already ruining the traditional Cretan charm, and my sources tell me they plan to take over a lot more. This is another part of what I believe is a cohesive plan. Roos continues by citing the "World Wildlife Fund (WWF) warning that a Spanish-style construction of holiday apartments would cover the Greek coastline in concrete." Here is where things get really interesting.
What UNESCO's head of media must know is that the budget of the Culture Ministry has been slashed by more than 50% since 2010. Informing me the Cretan or Greek community must pay, knowing full well they cannot, is a big piece of subterfuge in my book. Europe's most valuable cultural treasures are at risk, and the Germans want to ride in on a white horse and pretend to rescue the poor Greeks. (Time Magazine on saving Greek treasures) All the while, the IMF, the World Bank, the Frankfurt bankers have already greatly reducing the available funds to maintain and protect archeological sites and run public museums. Like I said, it's a diabolical plan – a Fourth Reich invading Crete for a second time, only now with economic dive bombers. Dr. Jerome Roos encapsulates it better than I ever could:
"WHILE THE SHEER SIZE OF THE PRIVATIZATION PROGRAM AND THE AGGRESSIVENESS WITH WHICH IT IS BEING PURSUED ARE UNPRECEDENTED IN EUROPEAN HISTORY — ECLIPSING EVEN THE DISASTROUS FIRE-SALE PRIVATIZATIONS IN EASTERN EUROPE FOLLOWING THE COLLAPSE OF THE SOVIET UNION."
Roos' warnings were timely, just as the Society of Greek Archaeologists' warnings late in 2018 that the government still had plans to sell off Greece's heritage are. Factor in this report on how most of UNESCO's budget is doled out for six figure salaries, and that malfeasance in those offices is probably rampant, and you get a feel for what the Greeks are really experiencing.
Snap! Take-Two Directed by Carlyle Group
Now I know why UNESCO was keen to smooth over the Knossos affair. First, let me call on the laws of probability. What are the chances, would you say, that an independent analyst investigating the current state of Russophobia ends up getting a call from a UNESCO PR man who has endorsements from USAID in Ukraine? A billion to one? Well, the head of talk-talk for the United Nations' cultural/peacekeeping force is a poster boy for USAID, and others loosely or directly tied to the globalist hegemony. The UNESCO media chief has been "training" media people in places like Chad (2006) where Exxon and other oil interests link arm and arm with the World Bank consortium to "change" governments. The United States Institute for Peace speaks of UNESCO's spokesperson as if he is Lawrence of Arabia. And we all know that USIP gets funds from Congress, the Department of State, USAID, and the Department of Defense. Some would label a "spook" – albeit a very nice one. And now I can understand Papagiannis' detached tone as he described Crete, where he said he has relatives. And I thought UNESCO people loved and embraced all our cultural and historic treasures. And, for those of you who think Greek heritage is the only target, a 2007 study entitled "Privatization of State-owned Cultural Heritage: a Critique of Recent Trends in Europe," by Gaetano Palumbo cautioned us all about the time Knossos Palace was first under consideration. At the end of his report, we find our old investment friends, the Carlyle Group involved in the sale of the buildings of the state-owned tobacco company, Manifatture Tabacchi. Another coincidence, oh my. Here you can see how the investors intend making profits off privatization. Carlyle Group invested in this cultural monument back in the early 2000s, and nearly 20 years later their "vision" is not yet complete. Citing from a report on Italian privatization and the Carlyle Group investments by Roland Benedikter at the International Journal of Heritage Studies back in 2004 :
"SO FAR, NONE OF THE PURCHASERS HAVE INCLUDED CULTURAL INSTITUTIONS, AND INSTEAD HAVE BEEN INTERNATIONAL REAL ESTATE AND ECONOMIC INVESTORS, WHO OPERATE AT A PROFIT."
In that report Benedikter listed Carlyle Group purchases including; Villa Manzoni, Rome (19th century); Manifattura Tabacchi, Florence (20th century); Archivio di Stato di Bari (19th century); Palazzo Correr, Venice (16th century); Palazzo Via dei Cambiatori, Reggio Emilia (1901); Palazzo Piazza del Monte, Reggio Emilia (1671); Palazzo Via Balbi, Genoa (1677). And from what I gather, most of these are being turned into for-profit ventures like hotels. What's most interesting (or diabolical) about these Carlyle Group ventures are the dirt cheap prices these billionaires spent for priceless Italian heritage. For instance, instead of being put on a UNESCO list, Villa Manzoni near Rome sold to Carlyle for just over €230,000 euro. This is a little less than I have my small family home in Germany listed for. Now get this, Villa Manzoni property, which is built on top of a Roman villa, is described as follows:
"THE BUILDING OF 3,000 SQUARE METERS SURROUNDED BY A 90,000 SQUARE METER PARK IS LOCATED AT NUMBER 471, ON VIA CASSIA, AT THE HEIGHT OF THE NERONE TOMB, WHICH THE VARIOUS MAYORS OF ROME AND CULTURE MINISTERS REPEATEDLY DECLARED THE INTENTION TO BUY AND TRANSFORM INTO A PUBLIC GARDEN. SITUATED ALMOST AT THE CENTER OF THE CITY, ITS LOCATION IS HIGHLY ESTEEMED FEATURING MAINLY RESIDENTIAL BUILDINGS. THE REAL-ESTATE COMPLEX CONSISTS OF THREE DIFFERENT BUILDINGS: THE VILLA PRINCIPLE [MAIN VILLA], THE EXVILLINO [AT THE TIME A SMALL VILLA FOR THE GARDENER] AND THE EX STALLE [AT THE TIME THE STABLES]. THE AREA IS USED ABOVE ALL FOR RESIDENTIAL, RECREATIONAL AND PRIVATE PURPOSES."
Is it fair for me to say here that Carlyle Group pirated (stole) some of Italy's most precious heritage?
I apologize for not being able to supply the reader with the name, rank, and serial number of the Globalist Chairman of the Board here. Maybe he or she is in charge of the Carlyle Group? Whatever we think, we are only one step closer to proving who is calling for scenes to be redone, for new set locations, and who tells the actors which side of their mouths they speak out of? Again, we only have more clues, but this USIP organization mentioned here, it has been called a kind of asymmetrical aggression lab by Z Magazine writers Sarah Diamond and Richard Hatch. Greece under duress, the traditions of the civilizations of the western hemisphere for sale, the names that keep revolving around across every discipline – the director's cast act out an unbelievably well-choreographed play. We are living inside a skit with a predictable ending.
We are the audience instead of the actors, in a diabolical production where U.S. National Security Advisors come from Internews, where UNESCO World Heritage spokespersons rub elbows with counterinsurgency warfare specialists, and where a vast stable of globalist puppets work to secure the Academy Award for world control. We live in a world where the generals have been put in charge of peace, and where media professionals become the world's best liars. The world stage's director is still the unseen hand though; I am sorry to say. Maybe it's Lord Rothschild, or the King of Denmark, perhaps the Queen Mother still holds that much sway? But rest assured, there is a chairman of the board of evil directors, there is a director, this is the way their minds work. I just wish the one calling the shots had the courage to stand up like Hitler or Mussolini or Satan even, to take the credit.
Before my next report, I urge the reader to look into something called the "Shock Doctrine," in order to find out what is really going on in Greece.
Phil Butler, is a policy investigator and analyst, a political scientist and expert on Eastern Europe, he's an author of the recent bestseller "Putin's Praetorians" and other books. He writes exclusively for the online magazine "New Eastern Outlook."https://journal-neo.org/2019/02/24/greeks-beware-of-a-silent-operation-mercury-ii/
konstantakopoulos


The city of Saskatoon is a world leader in the field of science and technology and is the leading center in biotechnology in Canada. It is also the growing center for environmental technology, information technology, advanced manufacturing, metal and fabrication, mining, multimedia and film, transportation and housing.
Saskatchewan province grows over half of Canada's export crops, and Saskatoon provides important services to the mining and agricultural sectors. Saskatoon is one of the world's largest exporters of uranium and is responsible for producing nearly two-thirds of the world's recoverable potash.
In the past year, Saskatoon created 20,000 new jobs, an increase that gave the city the highest employment growth rate in the country. Whether you are looking for the corner office, or just starting out, Saskatoon has plenty of opportunities for everyone.
The health care sector in Saskatoon offers some of the best job opportunities, ranging from nurses to doctors, dentists, lab technicians, occupational therapists, and physiotherapists, to name just a few.
The new jobs are being created due to the growth in population and increased health demands related to ageing. Positions are available across the city with incentive programs created to help attract workers in certain occupations in the health industry. The building of new facilities in the children's hospital in Saskatoon is also expected to increase the need for health professionals. The availability of diverse job opportunities in Saskatoon means the city is one of the best options for new immigrants to Canada seeking employment.
The types of jobs available in this sector include; estimators, inspectors, and laborers with the highest in demand being those in the skilled trades, like electricians, plumbers, and welders. The province of Saskatchewan as a whole has seen remarkable investments in the construction sector mainly by the private sector, and as the largest city in the province, Saskatoon has been at the center of this economic boom. It is estimated that private capital investments in the province tripled from $ 5.9 billion in 2003 to over $ 17.5 billion in 2015. With a strong economy and a positive long-term future, the province has attracted an increased number of major infrastructure construction projects. When there are these types of investments in a province and the city of Saskatoon, in particular, there is a need for a huge number of construction workers needed. There are major projects currently underway and others scheduled to start in the New Year, such as the construction of new potash mines in Humboldt and Bethune, two new bridges, and nearly 20 schools across the province with 8 of them in Saskatoon, not to mention a new stadium in the city.
A unique sector that has a variety of jobs available, such as equipment operators, labourers, drillers, supervisors and trades people. The mining, oil, and gas sectors are a huge source of revenue for the province of Saskatchewan and it is responsible for 21 percent of the overall revenue in the city of Saskatoon.
Saskatchewan is the second largest oil producer and third largest natural gas producer, and as a result, Saskatoon has the third largest petroleum workforce among the countries city. The Mining Industry Human Resources Council expects the mining workforce in Saskatoon to double by the year 2021. With uranium and potash projects as well as other extraction projects for resources like diamonds, gold, and metals in the city's plans for the next few years, there is going to be a need for labourers and skilled workers.
The city of Saskatoon is favourably placed, with the South Saskatchewan River winding through it. An increasingly active city, residents, and visitors flock to the Meewasin Valley trails, the city's youthful energy and cultural richness are evident in every neighbourhood.
The growth of the economy has meant the city is flooding with visitors and tourists throughout the year, this has, in turn, helped create a variety of job opportunities in the tourism industry. A vibrant arts community means there are festivals and events taking place regularly, the city has a variety of boutiques, challenging golf courses and fresh local cuisine.
The city of Saskatoon has developed a successfully diverse manufacturing sector by creating products that are specifically designed for the city's local needs, but also for export to international markets. Local manufacturers have created unique and innovative products from satellite communications technology, dry land farming equipment, to robotic mining equipment. The manufacturing industry is currently responsible for employing over 15 percent of the city's labor market, and with the industry expected to continue growing, more job opportunities will become available.


The system was originally designed for rail vehicles, to prevent wear between wheel and rail. Also, the noise should be minimized. This lubrication system can be optimally used for rails and wheels of cranes.
The effect is up to 10 times longer durability of wheel and rail.
– Measured coating lubricant supplied from the pump.
– Compressed air and lubricant are mixed in a ratio of 9:1 and transported to the nozzles.
– The precise amount of lubricant is sprayed with nozzles on both rail sides.
– Coated only while crane wheels are moving.
– The control system ensures optimum coating of the wheel / rail interface edges.
– The spray amount from each nozzle can be adjusted separately.
– Used in any shape of rail and wheel with non-contact method.
– Specially developed lubricant with a high content of solid lubricant.
– Despite extreme pressure reduces the wear and friction between the surfaces by the formation of a solid film.
– More adhesion, better grip of the wheels and heads the overheating occurs faster.
– New thickening system, no deposition of solid lubricant components.
– Increased productivity through time savings due to fewer large substitutions of wheel and rail.
– The reduction of wear between wheel and rail of cranes, reduced the replacement up to 10 times.
– Rail can be used long time without replacement.
– Through economical application of the lubricant film, dirt or other contaminants to prevent.


Small country inns, trattorias, country restaurants, the best the area can offer related to food and drinks. One day is not enough, maybe two, three, four days - depending on your time and wishes. It is proven that at the end of the tour you would like to come back to Marche just to eat and drink!


text:
#include "precomp.h"
#include "vioinput.h"
#include "Hid.h"

#if defined(EVENT_TRACING)
#include "Hid.tmh"
#endif

//
// HID descriptor based on this structure is returned by the mini driver in response
// to IOCTL_HID_GET_DEVICE_DESCRIPTOR.
//
static const HID_DESCRIPTOR G_DefaultHidDescriptor =
{
    0x09,   // length of HID descriptor
    0x21,   // descriptor type == HID  0x21
    0x0100, // hid spec release
    0x00,   // country code == Not Specified
    0x01,   // number of HID class descriptors
    {              // DescriptorList[0]
        0x22,      // report descriptor type 0x22
        0x0000     // total length of report descriptor
    }
};

VOID
EvtIoDeviceControl(
    WDFQUEUE   Queue,
    WDFREQUEST Request,
    size_t     OutputBufferLength,
    size_t     InputBufferLength,
    ULONG      IoControlCode)
{
    NTSTATUS        status;
    BOOLEAN         completeRequest = TRUE;
    WDFDEVICE       device = WdfIoQueueGetDevice(Queue);
    PINPUT_DEVICE   pContext = GetDeviceContext(device);
    ULONG           uReportSize;
    HID_XFER_PACKET Packet;
    WDF_REQUEST_PARAMETERS params;
    UNREFERENCED_PARAMETER(OutputBufferLength);
    UNREFERENCED_PARAMETER(InputBufferLength);

    TraceEvents(TRACE_LEVEL_VERBOSE, DBG_IOCTLS,
                "--> %s, code = %d\n", __FUNCTION__, IoControlCode);

    switch (IoControlCode)
    {
    case IOCTL_HID_GET_DEVICE_DESCRIPTOR:
        TraceEvents(TRACE_LEVEL_VERBOSE, DBG_IOCTLS, "IOCTL_HID_GET_DEVICE_DESCRIPTOR\n");
        //
        // Return the device's HID descriptor.
        //
        ASSERT(pContext->HidDescriptor.bLength != 0);
        status = RequestCopyFromBuffer(Request,
            &pContext->HidDescriptor,
            pContext->HidDescriptor.bLength);
        break;

    case IOCTL_HID_GET_DEVICE_ATTRIBUTES:
        TraceEvents(TRACE_LEVEL_VERBOSE, DBG_IOCTLS, "IOCTL_HID_GET_DEVICE_ATTRIBUTES\n");
        //
        // Return the device's attributes in a HID_DEVICE_ATTRIBUTES structure.
        //
        status = RequestCopyFromBuffer(Request,
            &pContext->HidDeviceAttributes,
            sizeof(HID_DEVICE_ATTRIBUTES));
        break;

    case IOCTL_HID_GET_REPORT_DESCRIPTOR:
        TraceEvents(TRACE_LEVEL_VERBOSE, DBG_IOCTLS, "IOCTL_HID_GET_REPORT_DESCRIPTOR\n");
        //
        // Return the report descriptor for the HID device.
        //
        status = RequestCopyFromBuffer(Request,
            pContext->HidReportDescriptor,
            pContext->HidDescriptor.DescriptorList[0].wReportLength);
        break;

    case IOCTL_HID_READ_REPORT:
        TraceEvents(TRACE_LEVEL_VERBOSE, DBG_IOCTLS, "IOCTL_HID_READ_REPORT\n");
        //
        // Queue up a report request. We'll complete it when we actually
        // receive data from the device.
        //

        status = WdfRequestForwardToIoQueue(
            Request,
            pContext->HidQueue);
        if (NT_SUCCESS(status))
        {
            completeRequest = FALSE;
        }
        else
        {
            TraceEvents(TRACE_LEVEL_ERROR, DBG_IOCTLS,
                        "WdfRequestForwardToIoQueue failed with 0x%x\n", status);
        }
        break;

    case IOCTL_HID_WRITE_REPORT:
        TraceEvents(TRACE_LEVEL_VERBOSE, DBG_IOCTLS, "IOCTL_HID_WRITE_REPORT\n");
        //
        // Write a report to the device, commonly used for controlling keyboard
        // LEDs. We'll complete the request after the host processes all virtio
        // buffers we add to the status queue.
        //

        WDF_REQUEST_PARAMETERS_INIT(&params);
        WdfRequestGetParameters(Request, &params);

        if (params.Parameters.DeviceIoControl.InputBufferLength < sizeof(HID_XFER_PACKET))
        {
            status = STATUS_BUFFER_TOO_SMALL;
        }
        else
        {
            RtlCopyMemory(&Packet, WdfRequestWdmGetIrp(Request)->UserBuffer,
                          sizeof(HID_XFER_PACKET));
            WdfRequestSetInformation(Request, Packet.reportBufferLen);

            status = ProcessOutputReport(pContext, Request, &Packet);
            if (NT_SUCCESS(status))
            {
                completeRequest = FALSE;
            }
        }
        break;

    default:
        TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTLS,
                    "Unrecognized IOCTL %d\n", IoControlCode);
        status = STATUS_NOT_IMPLEMENTED;
        break;
    }

    if (completeRequest)
    {
        WdfRequestComplete(Request, status);
    }

    TraceEvents(TRACE_LEVEL_VERBOSE, DBG_IOCTLS, "<-- %s\n", __FUNCTION__);
}

static VOID
CompleteHIDQueueRequest(
    PINPUT_DEVICE pContext,
    PINPUT_CLASS_COMMON pClass)
{
    WDFREQUEST request;
    NTSTATUS status;

    if (!pClass->bDirty)
    {
        // nothing to do
        return;
    }

    status = WdfIoQueueRetrieveNextRequest(pContext->HidQueue, &request);
    if (NT_SUCCESS(status))
    {
        status = RequestCopyFromBuffer(
            request,
            pClass->pHidReport,
            pClass->cbHidReportSize);
        WdfRequestComplete(request, status);
        if (NT_SUCCESS(status))
        {
            pClass->bDirty = FALSE;
        }
    }
}

VOID
ProcessInputEvent(
    PINPUT_DEVICE pContext,
    PVIRTIO_INPUT_EVENT pEvent)
{
    ULONG i;

    TraceEvents(
        TRACE_LEVEL_VERBOSE,
        DBG_READ,
        "--> %s TYPE: %d, CODE: %d, VALUE: %d\n",
        __FUNCTION__,
        pEvent->type,
        pEvent->code,
        pEvent->value);

    if (pEvent->type == EV_SYN)
    {
        // send report(s) up
        for (i = 0; i < pContext->uNumOfClasses; i++)
        {
            CompleteHIDQueueRequest(pContext, pContext->InputClasses[i]);
        }
    }

    // ask each class to translate the input event into a HID report
    for (i = 0; i < pContext->uNumOfClasses; i++)
    {
        pContext->InputClasses[i]->EventToReportFunc(
            pContext->InputClasses[i],
            pEvent);
    }

    TraceEvents(TRACE_LEVEL_VERBOSE, DBG_READ, "<-- %s\n", __FUNCTION__);
}

NTSTATUS
ProcessOutputReport(
    PINPUT_DEVICE pContext,
    WDFREQUEST Request,
    PHID_XFER_PACKET pPacket)
{
    NTSTATUS status = STATUS_NONE_MAPPED;
    ULONG i;

    TraceEvents(TRACE_LEVEL_VERBOSE, DBG_WRITE, "--> %s\n", __FUNCTION__);

    for (i = 0; i < pContext->uNumOfClasses; i++)
    {
        PINPUT_CLASS_COMMON pClass = pContext->InputClasses[i];
        if (pClass->uReportID == pPacket->reportId)
        {
            if (pClass->ReportToEventFunc)
            {
                status = pClass->ReportToEventFunc(
                    pClass,
                    pContext,
                    Request,
                    pPacket->reportBuffer,
                    pPacket->reportBufferLen);
            }
            break;
        }
    }

    TraceEvents(TRACE_LEVEL_VERBOSE, DBG_WRITE, "<-- %s\n", __FUNCTION__);
    return status;
}

VOID HIDAppend1(PDYNAMIC_ARRAY pArray, UCHAR tag)
{
    DynamicArrayAppend(pArray, &tag, sizeof(tag));
}

VOID HIDAppend2(PDYNAMIC_ARRAY pArray, UCHAR tag, LONG value)
{
    if (value >= -MINCHAR && value <= MAXCHAR)
    {
        HIDAppend1(pArray, tag | 0x01);
        DynamicArrayAppend(pArray, &value, 1);
    }
    else if (value >= -MINSHORT && value <= MAXSHORT)
    {
        HIDAppend1(pArray, tag | 0x02);
        DynamicArrayAppend(pArray, &value, 2);
    }
    else
    {
        HIDAppend1(pArray, tag | 0x03);
        DynamicArrayAppend(pArray, &value, 4);
    }
}

BOOLEAN DecodeNextBit(PUCHAR pBitmap, PUCHAR pValue)
{
    ULONG Index;
    BOOLEAN bResult = BitScanForward(&Index, *pBitmap);
    if (bResult)
    {
        *pValue = (unsigned char)Index;
        *pBitmap &= ~(1 << Index);
    }
    return bResult;
}

static void DumpReportDescriptor(PHID_REPORT_DESCRIPTOR pDescriptor, SIZE_T cbSize)
{
    SIZE_T i = 0;

    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "HID report descriptor begin\n");
    while (i < cbSize)
    {
        CHAR buffer[20];
        switch (pDescriptor[i] & 0x03)
        {
        case 0x00:
        {
            sprintf_s(buffer, sizeof(buffer), "%02x", pDescriptor[i]);
            i++;
            break;
        }
        case 0x01:
        {
            sprintf_s(buffer, sizeof(buffer), "%02x %02x",
                      pDescriptor[i], pDescriptor[i + 1]);
            i += 2;
            break;
        }
        case 0x02:
        {
            sprintf_s(buffer, sizeof(buffer), "%02x %02x %02x",
                      pDescriptor[i], pDescriptor[i + 1], pDescriptor[i + 2]);
            i += 3;
            break;
        }
        case 0x03:
        {
            sprintf_s(buffer, sizeof(buffer), "%02x %02x %02x %02x %02x",
                      pDescriptor[i], pDescriptor[i + 1], pDescriptor[i + 2],
                      pDescriptor[i + 3], pDescriptor[i + 4]);
            i += 5;
            break;
        }
        }
        TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "%s\n", buffer);
    }
    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "HID report descriptor end\n");
}

static u8 SelectInputConfig(PINPUT_DEVICE pContext, u8 cfgSelect, u8 cfgSubSel)
{
    u8 size = 0;

    VirtIOWdfDeviceSet(
        &pContext->VDevice, offsetof(struct virtio_input_config, select),
        &cfgSelect, sizeof(cfgSelect));
    VirtIOWdfDeviceSet(
        &pContext->VDevice, offsetof(struct virtio_input_config, subsel),
        &cfgSubSel, sizeof(cfgSubSel));

    VirtIOWdfDeviceGet(
        &pContext->VDevice, offsetof(struct virtio_input_config, size),
        &size, sizeof(size));
    return size;
}

BOOLEAN InputCfgDataHasBit(PVIRTIO_INPUT_CFG_DATA pData, ULONG bit)
{
    if (pData->size <= (bit / 8))
    {
        return FALSE;
    }
    return (pData->u.bitmap[bit / 8] & (1 << (bit % 8)));
}

static BOOLEAN InputCfgDataEmpty(PVIRTIO_INPUT_CFG_DATA pCfgData)
{
    UCHAR i;
    for (i = 0; i < pCfgData->size; i++)
    {
        if (pCfgData->u.bitmap[i] != 0)
        {
            return FALSE;
        }
    }
    return TRUE;
}

static UINT64 ComputeHash(PUCHAR pData, SIZE_T Length)
{
    UINT64 hash = 0;
    SIZE_T i;

    for (i = 0; i < Length / sizeof(UINT64); i++)
    {
        hash ^= *(PUINT64)pData;
        pData += sizeof(UINT64);
    }
    for (i = 0; i < (Length & 7); i++)
    {
        hash ^= (UINT64)*pData << (i * sizeof(UCHAR));
        pData++;
    }
    return hash;
}

NTSTATUS
VIOInputBuildReportDescriptor(PINPUT_DEVICE pContext)
{
    DYNAMIC_ARRAY ReportDescriptor = { NULL };
    NTSTATUS status = STATUS_SUCCESS;
    VIRTIO_INPUT_CFG_DATA KeyData, RelData, AbsData, LedData;
    SIZE_T cbReportDescriptor;
    UCHAR i, uReportID = 0;

    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "--> %s\n", __FUNCTION__);

    // key/button config
    KeyData.size = SelectInputConfig(pContext, VIRTIO_INPUT_CFG_EV_BITS, EV_KEY);
    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "Got EV_KEY bits size %d\n", KeyData.size);
    for (i = 0; i < KeyData.size; i++)
    {
        VirtIOWdfDeviceGet(
            &pContext->VDevice, offsetof(struct virtio_input_config, u.bitmap[i]),
            &KeyData.u.bitmap[i], 1);
    }

    // relative axis config
    RelData.size = SelectInputConfig(pContext, VIRTIO_INPUT_CFG_EV_BITS, EV_REL);
    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "Got EV_REL bits size %d\n", RelData.size);
    for (i = 0; i < RelData.size; i++)
    {
        VirtIOWdfDeviceGet(
            &pContext->VDevice, offsetof(struct virtio_input_config, u.bitmap[i]),
            &RelData.u.bitmap[i], 1);
    }

    // absolute axis config
    AbsData.size = SelectInputConfig(pContext, VIRTIO_INPUT_CFG_EV_BITS, EV_ABS);
    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "Got EV_ABS bits size %d\n", AbsData.size);
    for (i = 0; i < AbsData.size; i++)
    {
        VirtIOWdfDeviceGet(
            &pContext->VDevice, offsetof(struct virtio_input_config, u.bitmap[i]),
            &AbsData.u.bitmap[i], 1);
    }

    // if we have any relative axes, we'll expose a mouse device
    // if we have any absolute axes, we may expose a mouse as well
    if (!InputCfgDataEmpty(&RelData) || !InputCfgDataEmpty(&AbsData))
    {
        status = HIDMouseProbe(
            pContext,
            &ReportDescriptor,
            &RelData,
            &AbsData,
            &KeyData);
        if (!NT_SUCCESS(status))
        {
            goto Exit;
        }
    }

    // if we have any absolute axes left, we may expose a joystick
    if (!InputCfgDataEmpty(&AbsData))
    {
        status = HIDJoystickProbe(
            pContext,
            &ReportDescriptor,
            &AbsData,
            &KeyData);
        if (!NT_SUCCESS(status))
        {
            goto Exit;
        }
    }

    // if we have any absolute axes left, we'll expose a tablet device
    if (!InputCfgDataEmpty(&AbsData))
    {
        status = HIDTabletProbe(
            pContext,
            &ReportDescriptor,
            &AbsData,
            &KeyData);
        if (!NT_SUCCESS(status))
        {
            goto Exit;
        }
    }

    // if we have any keys left, we'll expose a keyboard device
    if (!InputCfgDataEmpty(&KeyData))
    {
        // LED config
        LedData.size = SelectInputConfig(pContext, VIRTIO_INPUT_CFG_EV_BITS, EV_LED);
        TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "Got EV_LED bits size %d\n", LedData.size);
        for (i = 0; i < LedData.size; i++)
        {
            VirtIOWdfDeviceGet(
                &pContext->VDevice, offsetof(struct virtio_input_config, u.bitmap[i]),
                &LedData.u.bitmap[i], 1);
        }

        status = HIDKeyboardProbe(
            pContext,
            &ReportDescriptor,
            &KeyData,
            &LedData);
        if (!NT_SUCCESS(status))
        {
            goto Exit;
        }
    }

    // if we still have any keys left, we'll check for a consumer device
    if (!InputCfgDataEmpty(&KeyData))
    {
        status = HIDConsumerProbe(
            pContext,
            &ReportDescriptor,
            &KeyData);
        if (!NT_SUCCESS(status))
        {
            goto Exit;
        }
    }

    if (DynamicArrayIsEmpty(&ReportDescriptor))
    {
        // we are not exposing any device
        pContext->HidReportDescriptor = NULL;
    }
    else
    {
        // initialize the HID descriptor
        pContext->HidReportDescriptor = (PHID_REPORT_DESCRIPTOR)DynamicArrayGet(
            &ReportDescriptor,
            &cbReportDescriptor);
        if (!pContext->HidReportDescriptor)
        {
            status = STATUS_INSUFFICIENT_RESOURCES;
        }
        else
        {
            pContext->HidDescriptor = G_DefaultHidDescriptor;
            pContext->HidDescriptor.DescriptorList[0].wReportLength = (USHORT)cbReportDescriptor;

            pContext->HidReportDescriptorHash = ComputeHash(pContext->HidReportDescriptor, cbReportDescriptor);

            DumpReportDescriptor(pContext->HidReportDescriptor, cbReportDescriptor);
        }
    }

Exit:
    TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "<-- %s (%08x)\n", __FUNCTION__, status);
    return status;
}

VOID
GetAbsAxisInfo(
    PINPUT_DEVICE pContext,
    ULONG uAbsAxis,
    struct virtio_input_absinfo *pAbsInfo)
{
    UCHAR uSize, i;

    RtlZeroMemory(pAbsInfo, sizeof(struct virtio_input_absinfo));
    if (uAbsAxis <= MAXUCHAR)
    {
        uSize = SelectInputConfig(pContext, VIRTIO_INPUT_CFG_ABS_INFO, (UCHAR)uAbsAxis);
        TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT, "Got abs axis %d info size %d\n", uAbsAxis, uSize);
        for (i = 0; i < uSize && i < sizeof(struct virtio_input_absinfo); i++)
        {
            VirtIOWdfDeviceGet(
                &pContext->VDevice, offsetof(struct virtio_input_config, u.bitmap[i]),
                (PUCHAR)pAbsInfo + i, 1);
        }
    }
}

NTSTATUS
RegisterClass(
    PINPUT_DEVICE pContext,
    PINPUT_CLASS_COMMON pClass)
{
    if (pContext->uNumOfClasses >= MAX_INPUT_CLASS_COUNT)
    {
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    // allocate HID report buffer
    if (pClass->pHidReport == NULL)
    {
        pClass->pHidReport = VIOInputAlloc(pClass->cbHidReportSize);
        if (pClass->pHidReport == NULL)
        {
            return STATUS_INSUFFICIENT_RESOURCES;
        }
    }

    // insert the class into our array
    pContext->InputClasses[pContext->uNumOfClasses++] = pClass;
    return STATUS_SUCCESS;
}

NTSTATUS
RequestCopyFromBuffer(
    WDFREQUEST Request,
    PVOID      SourceBuffer,
    size_t     NumBytesToCopyFrom)
{
    NTSTATUS  status;
    WDFMEMORY memory;
    size_t    outputBufferLength;

    TraceEvents(TRACE_LEVEL_VERBOSE, DBG_READ, "--> %s\n", __FUNCTION__);

    status = WdfRequestRetrieveOutputMemory(Request, &memory);
    if (!NT_SUCCESS(status))
    {
        TraceEvents(TRACE_LEVEL_INFORMATION, DBG_READ, "<-- %s\n", __FUNCTION__);
        return status;
    }

    WdfMemoryGetBuffer(memory, &outputBufferLength);
    if (outputBufferLength < NumBytesToCopyFrom)
    {
        status = STATUS_INVALID_BUFFER_SIZE;
        TraceEvents(TRACE_LEVEL_ERROR, DBG_READ,
                    "RequestCopyFromBuffer: buffer too small. Size %d, expect %d\n",
                    (int)outputBufferLength, (int)NumBytesToCopyFrom);
        return status;
    }

    status = WdfMemoryCopyFromBuffer(memory,
        0,
        SourceBuffer,
        NumBytesToCopyFrom);
    if (!NT_SUCCESS(status))
    {
        TraceEvents(TRACE_LEVEL_ERROR, DBG_READ,
                    "WdfMemoryCopyFromBuffer failed 0x%x\n", status);
        return status;
    }

    WdfRequestSetInformation(Request, NumBytesToCopyFrom);

    TraceEvents(TRACE_LEVEL_VERBOSE, DBG_READ, "<-- %s\n", __FUNCTION__);
    return status;
}

redpajama_set_name: RedPajamaGithub


text:
Single Mom Has Absolute Parental Authority of Illegitimate Child
by Atty. Joseph Plazo | Aug 27, 2017 | Civil Law
Legal Query:
I lived eight years with my boyfriend and from this partnership we have one gift from God who is now two years old. This year he surprised me with the declaration that he must return to his wife as the annulment proceedings failed. I love him and understand his position as he supported me for several years. The sad thing is he wants to take our son with him.
I know I can support our son as I currently lead the entire IT department at a leading property firm. Can he take my son away?
Who has parental authority of an unemancipated, illegitimate child .
You, as the mother have sole parental authority.
The recent case of Daisie David vs. CA, et al. (G.R. No. 111180,16 November 1995) clarified that an illegitimate child is under the parental authority of his or her mother, who, as a consequence of such authority, is entitled to have custody of the child. The pertinent passages follow
"In the case at bar, Christopher J. is an illegitimate child since at the time of his conception, his father, private respondent Ramon R. Villar, was married to another woman other than the child's mother. As such, pursuant to Art. 176 of the Family Code, Christopher J. is under the parental authority of his mother, the herein petitioner, who, as a consequence of such authority, is entitled to have custody of him. Since, admittedly, petitioner has been deprived of her rightful custody of her child by private respondent, she is entitled to issuance of the writ of habeas corpus.
Indeed, Rule 1021 §1 makes no distinction between the case of a mother who is separated from her husband and is entitled to the custody of her child and that of a mother of an illegitimate child who, by law, is vested with sole parental authority, but is deprived of her rightful custody of her child.
The fact that private respondent has recognized the minor child may be a ground for ordering him to give support to the latter, but not for giving him custody of the child. Under Art. 213 of the Family Code, "no child under seven years of age shall be separated from the mother unless the court finds compelling reasons to order otherwise."
The natural right and duty of parents over their unemancipated children includes rearing for civic consciousness and efficiency as well as the development of their moral, mental and physical character and well-being. (Articles 209-210, Family Code).
Hence the aforementioned facts make it clear that you, as the mother of your illegitimate and unemancipated child, are his sole guardian and you are entitled to keep him in your custody.
13 Search Engines


Note: If possible, buy whole whitefish. Have it boned and wrap the bones, heads and skin separately, for the fish broth. If you're lucky, you may find roe inside the fish, or you can purchase the roe, poach it with the fish balls, and serve separately. This updated version of Grandma Gene's Gefilte Fish gets better and easier to make every year. Use the fish bones, heads and skin of the whitefish for the broth.
Step 1In a large pot, place the onions, onion peels, carrot, celery tops, fish bones, heads and skin, and salt and pepper. Add water to cover and bring to a boil. Simmer for about 1 hour, adding additional water if needed. When the broth is flavorful, strain out the fish bones and vegetables and discard. Keep the broth warm.
Step 2Wet your hands with cold water and shape the fish mixture into oval balls. Bring the broth to a boil over high heat, and place the fish balls in the broth. Cover, reduce the heat to medium high, and cook until the fish is tender, about 1 hour; do not overcook. Cool, transfer to a shallow glass bowl, cover with plastic wrap and foil, and refrigerate about 2 hours.
Step 3To serve, arrange a lettuce leaf on each plate; top with fish and garnish with cucumbers and horseradish sauce. Makes about 50 fish balls.
234 calories; 130 mg sodium; 128 mg cholesterol; 9 grams fat; 1 gram saturated fat; 10 grams carbohydrates; 27 grams protein; 1.08 grams fiber.
Saturday night, the first night of Passover this year, will mark our 100th family Seder. When we were married just one year, my husband Marvin and I decided to observe the first two Seder nights of Passover in our own home, and we have done so ever since.
The house we lived in 50 years ago was very small, but we borrowed chairs and bought new dishes to accommodate our family and friends, and to create a meaningful Passover.
Although Passover requires a lot of preparation, it is my favorite of all the Jewish celebrations, and the one I look forward to the most each year. It brings our family together in a special way, and gives us a chance to share thoughts and memories as we participate in the Seder.
The menu always includes several recipes that were given to me by my mother, Molly Tannes, and my mother-in-law, Gene Zeidler. I think they were handed down to them in the same manner, never written, but carefully explained. That is probably why there is always a slightly different taste to each dish; sometimes measurements got changed with the new interpretation.
When our children were growing up they always helped prepare Passover food. It was the task of the oldest to help Grandma Gene prepare the cold egg soup, making sure it had the correct amount of salt ... usually too much.
Our son Marc directed Dad as he grated the raw horseradish by hand, and Zeke helped prepare the different types of charoset that we served. Susan and Kathy loved to help bake the Passover cakes and cookies, and Paul was always there to fill in when anyone needed an extra hand.
Over the years many new recipes became part of our Passover menu. We borrowed the idea of serving green onions, a symbolic food that Sephardic Jews use during their Seder service. And we now include steamed new potatoes dipped in salt as the first vegetable of the season.
This year I decided to ask our children which Seder dishes they enjoyed the most, and what memories the food brought to mind. I wanted to include everyone's favorite tastes. Last year I omitted lamb shanks and there were some very disappointed people.
The first call was to our oldest daughter, Susan. She lives in Portland, Ore., with her family, but they never miss Passover in Los Angeles. Her answer was that she loves all the Passover desserts, as long as they are covered with chocolate. Her husband Leo said, "The matzo balls are what I like best. It is OK to skip the chicken soup, but be sure and serve plenty of matzo balls."
Marc, the family gourmet, said he likes everything we serve for Passover, but his favorite dish is the salty hard-boiled egg soup because it is eaten at the conclusion of the Seder service, which means that dinner will soon be served. He also remembered that when he was in charge of this dish, he enjoyed adding extra salt to the egg soup, which prompted complaints of it always being "too salty."
Kathy, a gifted artist, always brings a colorful hand-crafted centerpiece for the Passover table. And when asked what her favorite Passover food is, her answer was, "Of course, all of the charosets, and especially the Greek one," which is a blend of dates, raisins, nuts and sweet wine. One of Kathy's tasks is to design labels with the name of each charoset and its country of origin.
Paul had several favorite dishes but if he had to choose one, he said it would be Grandma Molly's vegetable stuffing, either baked in the turkey or served as a casserole. The combination of vegetables, matzo meal and sweet raisins is so delicious, I always double the recipe and bake half of it in a casserole, because no matter how large the turkey, there is never enough stuffing.
Zeke was quick to respond, "Oh, that's easy: Grandma Gene's gefilte fish, but I'm sure everyone's answer will be the same." When he was little he recalls watching Grandma Gene grind and chop the fish by hand. He also remembers the smell of the gefilte fish simmering in the broth, and usually Grandma would give him a taste right from the pot.
So this year, everyone's favorite dish will be served as part of our Passover menu, and no one will be disappointed. When the evening is over, they will take home leftovers to enjoy the next day.


text:
Костёл Свято́го Лавре́нтия — памятник архитектуры и культуры в городе Жолква (Львовская область, Украина), находится на площади Вечевой, 18.

Костёл строился в 1606—1618 годах на искусственной насыпи, заложенной плененными турками, как усыпальница семьи Жолкевских и пантеон рыцарской славы. В подземелье похоронен основатель Жолквы, польский военачальник Станислав Жолкевский, его жена с сыном. Среди похороненных в костеле также семья Даниловичей, Якуб Собеский (отец короля Яна Собеского), королевичи, государственные секретари, настоятели и меценаты храма. По количеству и значимости погребений выдающихся деятелей польского государства костёл часто называют «Малым Вавелем», в противоположность королевскому замку Вавель, который находится в Кракове.

Этот храм считается наибольшим, самым красивым и богатейшим сооружением Жолквы. Его колокольня получила название «малой Пизанской башни», поскольку она немного наклонена. Костёл строили Павел Счастливый, а после его смерти в 1610 году — Павел Римлянин и Амброзий Прихильный. Латинский крест увенчан византийским куполом, характерным для украинских деревянных церквей, украшенный скульптурным фризом, многими декоративными элементами, скульптурой Архангела Михаила на фронтоне и сигнатурой над алтарной частью. Главный вход обрамлен белокаменным резным порталом с изображением апостолов Петра и Павла, святого Лаврентия и Станислава, евангелистов и Христа Вседержителя в окружении ангельских головок и орнаментов. Этот портал считается одним из наилучших ренессансных порталов Украины и Польши.

Ещё одним аргументом в пользу построения храма как пантеона рыцарской славы служат живописные полотна XVII столетия авторства Ш. Богушовича, А. Стеха и М. Альтамонте, которые изображали боевые подвиги С. Жолкевского и Яна ІІІ Собеского. Сейчас они находятся в экспозиции музея «Олесский замок».

В настоящее время костёл принадлежит приходу Украинской римокатолической церкви. Костёл находится в хорошем состоянии, в частности благодаря опеке польской армии и отдела реставрации Варшавской политехники.

Литература

 Лильо І. М., Лильо-Откович З. М. Прогулянка Львовом. Путівник — К.: Балтія Друк, 2005. — 224 с.: іл.

Здания и сооружения Жолквы
Католические храмы Украины
Наклонные башни Украины
Жолква
Жолква
Здания и сооружения, заложенные в 1606 году
Здания и сооружения, построенные в 1618 году
Храмы, построенные в XVII веке

redpajama_set_name: RedPajamaWikipedia


text:
Justin Sarachik
Jarry Manna – Legends of Lotus Waver
indie tribe. member Jarry Manna dropped his new album Legends of Lotus Waver. It's the follow-up to Holy Weapon 3.
Purchase or stream here.
Listen to Jarry Manna Below:
TagsJarry Manna
Steven Malcolm – The Second City
J. Crum – Villains
Justin is the Editor-in-Chief of Rapzilla.com and co-owner of NewH2O.com. He has been a journalist for 9 years and has written or edited for Relevant, Christian Post, BREATHEcast, CCM, Broken Records Magazine, & more. When not writing he's on stage rhyming as the frontman of Process of Fusion. He also likes to work with indie artists to develop their brands & marketing strategies. Catch him interviewing artists on Survival of the Artist Podcast.
'Let's Talk About Our Feelings' – An Emotional Breakdown (Mogli the Iceburg)
Exclusive Free Download: Davis Absolute – The Body (Remix) ft. Oscar Urbina, Jarry Manna, Dezzy Yates & Shiwan
Jarry Manna Releases 'Legends of Lotus Waver 2'
Free Download: Chris Hulvey – Fired Up ft. Jarry Manna
Ty Brasel Announces Record Deal
Domingo Guyton 'The New School' EP Cover & Tracklisting
Christian hip hop's favorite actor Kel Mitchell freestyles on Jimmy Fallon 'Good Burger' reunion sketch
Todd Bangz is Back!
'Faith-Based' Film Satires 'Christians Blindly Supporting' Anything with Jesus in it [INTERVIEW]
Have you heard of the film "Faith-Based"? Breitbart and FOX News are calling it an attack on Christians and Christianity. The film, creators, cast and crew have been the focus of vitriol and rage in comment sections across Conservative media. But here's the thing…no one has seen it and no one knows what it's really about. Rapzilla does, and we spoke to one of the film's creators – Luke Barnett. We have a feeling this film is less about making fun of Christianity as it is showing Christians the absurdity of some of the things Christians support because "JESUS." The […]
In the Darkness of Our Deepest Prayers, God Peeks in to 'Illuminate' (Song Breakdown)
Go with me to Gethsemane. There are twisted olive trees with trunks bigger than you can wrap your arms around. Magical, mythical looking things with branches that reach out into the calmest shade of green. Sprinkles of plants and flowers can be found throughout. Then out past the roots begin a path covered in dust and stone stretching out between each section of trees, dividing them into their own rectangles. To us today, the path is cut. Yet, imagine Jesus here all that time ago – accepting the reality of His own murder. He's 'overwhelmed with sorrow' as He stops […]
First Look at adidas Yeezy 350 V2 "Marsh" Unveiled
As posted by NiceKicks, a number of images of the new "Marsh" Yeezy 350 V2 have released. The sneaker features a monochromatic tan look with a contrasting set of laces, heel tab, and side stipe. This particular model follows in the line of many previous Yeezy 350s, using neutral tones to create a natural flow. Nonetheless, some say that this look has been overdone with the Yeezy 350. Is this the year the sneaker loses its last bit of popularity? Check out NiceKicks' images of the 350 V2 "Marsh" here.
Star Wars – The Mandalorian (Review)
The Mandalorian Disney+ series delivers a fun ride out across the galaxy. It's highly enjoyable without a deep immersion in any previous films. It has a plot that's easy to follow, that can be played and paused at your own discretion while still enjoying the submersion of a galaxy far far away. The Mandalorian (Pedro Pascal) does a great job of showing a wide range of emotions from empathy to desperation all behind the iconic bounty hunter mask. A powerful protagonist is followed without diminishing the enemies and challenges faced throughout the series. Add in an adorable competitor to Guardian of […]
Lecrae, Rapper, Author, and Weatherman?
Lecrae is a man who can do a lot of things. We know he raps. He helps run Reach Records. The busy artist has also written a book and he's even acted a bit. Now, he's doing the weather. Even though this news is a bit old, the clip of Lecrae is gold! He made an appearance on FOX 5 Atlanta for Good Day Atlanta and did…or t least tried to do, the weather. Weatherman Ryan Beesley's day job seems safe for now. However, we expect that next time, Lecrae will be ready to go! Watch Lecrae Below: View this […]


'Soorma 2018' This is a motivating genuine story of the triumph of the human soul, about a player who confronted a brush with death when he was at his pinnacle however rose successful by his sheer assurance, diligent work and tenacious enthusiasm for the game. Sandeep Singh, a punishment corner authority in the Indian Hockey group from Shahbad, Haryana stood out as truly newsworthy when he was hit in the spine by a unintentional gunfire while venturing out on a prepare to join the national group that was to travel to Germany for the World Cup in 2006. The damage left him deadened, with the restorative network giving him a remote possibility of consistently strolling once more. Be that as it may, did Sandeep recoup from it as well as made a rebound and restored himself as the best drag-glint, going ahead to chief the Indian national hockey group in January 2009. Here you can watch more moviescounter online without any time limit and cost.