Legal Notice
Registered Office
Munster Rugby
Irish Independent Park
Cork
Ireland
Privacy Policy
MUNSTER BRANCH IRFU DATA PROTECTION NOTICE
- PURPOSE AND SCOPE OF NOTICE
As the body with overall responsibility for managing rugby union in the province of Munster, we at the Munster Branch Irish Rugby Football Union (“Munster Rugby“, “we“, “our” and “us“) will often have reason to process information (“Personal Data“) of those who interact with us directly and others who are involved in the game at various levels in the province (“you” or “your”). We respect and value your privacy. That is why we have set out in this Data Protection Notice (this “Notice“) how and why Personal Data relating to you will be collected and processed by Munster Rugby and/or on our behalf by our third party service providers.
Please review the sections of this Notice which are relevant to you based on your interactions with Munster Rugby:
- when you are involved with Munster Rugby (see section 1);
- for purchase, subscription and marketing purposes (see section 2); and
- when you visit munsterrugby.ie (our “Website“) (see section 1.3).
For the purposes of this notice, the controller of your Personal Data is the Munster Branch Irish Rugby Football Union of Irish Independent Park, Tramore Road, Cork, Ireland.
- PROCESSING YOUR PERSONAL DATA WHEN YOU ARE INVOLVED WITH MUNSTER RUGBY(e.g. registered club player, volunteer, coach, committee member, club or school)
- How we process your Personal Data when you are involved with Irish rugby
There are many ways in which you can become involved with Irish rugby. This could be when you play, volunteer or coach with a rugby club; when you attend one of our events or seminars; or when you or your organisation enquire about how you can contribute to or collaborate with Munster Rugby.
- What Personal Data we process when you are involved with Munster Rugby
We may collect and process the following Personal Data about you, which we may obtain either directly from you or from the third parties listed in section 1.1.6:
| Individual Details | This may include general Personal Data about who you are, such as your name, address, contact details, gender, date of birth and occupation. |
| Hospitality Information | This may include any dietary preferences or requirements you have, or any mobility assistance you may require. |
| Query Information | You may choose to give us information such as your name, address, e-mail address, telephone number and other details when you contact us or a body with which we are affiliated. Top of Form |
| Club Registration Information | Individuals who play rugby with a recognised club must be registered with Munster Rugby. Many rugby clubs use the Clubhouse system for purposes of club administration and to register and manage players. Clubhouse accounts may also be created for coaches and volunteers. Personal Data processed through Clubhouse can include your name, address, gender, date of birth, nationality, your image, your next of kin and your contact details. |
| Device Information | When logging-on to any of the Wi-Fi services we offer at our offices, stadiums or events, we may collect information about your device such as the IP address, hardware model, operating system and version, software and file names and versions, preferred language, unique device identifier, advertising identifiers, serial number, device motion information and mobile network information.
|
We may collect and process the following special category of Personal Data about you which we may obtain either directly from you or from the third parties listed in section 1.1.6:
| Health | This may include any information relating to any injuries you receive while playing rugby at any level, general fitness information, information on any pre-existing medical conditions you may have, information obtained in the course of conducting our anti-doping measures and information on any disability or mobility requirements you may have. |
We may also collect and process the following Personal Data relating to criminal convictions and offences, which we may obtain either directly from you or from the third parties listed in section 1.1.6:
| Criminal | This may include information relating to any criminal convictions you may have or cases pending against you which you are obliged to legally disclose to us in the course of completing the Garda Vetting process if you are assuming any role of responsibility with Munster Rugby or an affiliated organisation (such as a rugby club) in relation to persons aged under 18. It may also include information obtained in the course of conducting our anti-doping measures or obtained as result of any disciplinary matter to which you are a party. |
We shall only ever process this special category Personal Data or data relating to criminal convictions on the basis of your (or where you are under 18, your parent’s) explicit consent or where such processing is necessary for the establishment, exercise or defence of legal claims or on the basis of reasons of substantial public interest in accordance with applicable law.
- Legal Basis
The following table details the legal bases under which (“Legal Basis“) and the reasons why (“Purposes“) we collect, obtain and process your Personal Data:
| Legal Basis
|
Purpose(s) |
| Legitimate Interests
It is in our legitimate interests to collect and process your Personal Data for a range of operational, business and organisational purposes.
When we process your Personal Data based on our legitimate interests, we make sure to consider and balance any potential impact on you and your data protection rights. We will not process your Personal Data for activities where our interests are overridden by the impact on you. |
Administration of Rugby Union in Munster
· Tracking statistics and performance details across all rugby union matches played in Munster; and · maintaining records of those involved with rugby union at all levels in Munster, including referees, coaches, volunteers and others engaged in the running of clubs, including preparing public facing directories of certain of this information. · Preparing handbooks of contact information of committee members and others involved in the administration of rugby at a provincial level.
Clubhouse · To register you as a player or volunteer with your club; and · to maintain your registration within the database of registered players.
Business and Operational · To develop and maintain our relationship with you or your organisation; · to invite you to and host you at our events and meetings; and · to conduct administrative and operational processes within Munster Rugby and our associated organisations.
Communication · To process and respond to any enquiries, requests and complaints you may submit to us.
|
| Compliance with a Legal Obligation
We may process your Personal Data where it is necessary to comply with legal obligations to which we are subject. |
· To comply with our obligations under Irish and EU laws, including but not limited to safeguarding and complying with law enforcement requests; and
· in particular to comply with our obligations under the National Vetting Bureau (Children and Vulnerable Persons) Acts 2012-2016. |
| To Defend, Establish or be a Party to Legal Claims
We may process your Personal Data as necessary in order for us to establish, investigate, exercise or defend a legal claim to which you are a party. |
· To file legal proceedings; and
· to investigate, establish, exercise or defend a legal claim. |
- Sharing and Disclosure of your Personal Data
We will disclose your personal data to other members of our group which means our subsidiaries, our ultimate holding company and its subsidiaries, as well as to provincial branches, rugby clubs and other bodies affiliated with Munster Rugby (the “IRFU Group“).
We will only disclose your personal information to third parties outside Munster Rugby Group in the following circumstances:
| Recipient(s) | Purpose(s)
|
| Munster Rugby subcontractors, service providers and third party partners | · For the purpose of inviting you to and hosting you at events and meetings; and
· to allow you access to matches and other events. |
| Regulatory Authorities, Law Enforcement Agencies, Public Bodies and Third Party Companies | · To comply with any applicable legal obligation, court order, summons, search warrants, or any other legal or regulatory obligation or request to which Munster Rugby is subject;
· to protect the rights, property or safety of Munster Rugby, our customers, or others. This includes exchanging information with other companies and organisations for the purposes of fraud protection and credit risk reduction; and · to enforce or apply the Terms and other agreements or to investigate potential breaches. |
| Teams, competition organisers and international rugby organisations | · To facilitate rugby games and competitions at a national and international level. |
- Data Retention
In accordance with our policy on data retention we shall keep your Personal Data which we process on the basis of your involvement with Munster Rugby for a period of time after your engagement with Munster Rugby which depends on why you have interacted with us. Please contact<EMAIL_ADDRESS>for further information about our retention periods.
Please note that in certain circumstances, we may hold your Personal Data for a longer period, for example, if we are processing an ongoing claim or believe in good faith that the law or a relevant regulator may reasonably in our view expect or require us to preserve your Personal Data. Where you have registered as a rugby player, we may also retain some of your Personal Data within our player registration database unless you request us to delete such information.
- Third Party Sources
We may obtain Personal Data about you from the following third parties:
| Social Media Information | We may receive information about you from social media platforms, such as Facebook, Twitter, LinkedIn and Instagram, when you interact with us via such platforms. This includes information which you provide to us or otherwise make available via such platforms. |
| Rugby Clubs | If you play, volunteer or are otherwise involved with a rugby club we may be provided with your Personal Data in our role as the body managing rugby union in the province of Munster. |
| Event Organisers | We will often engage the services of third parties to assist us in running and operating events. When you attend or express an interest in such an event we will often be provided with your Personal Data. |
| Businesses and Organisation | If you work for or are otherwise involved in a business or other organisation (such as a charity, school or voluntary group) that seeks to collaborate with, contribute to or otherwise become involved with Munster Rugby or one of our affiliated bodies then we may be provided with your Personal Data. |
- PROCESSING YOUR PERSONAL DATA FOR PURCHASE, SUBSCRIPTION AND MARKETING PURPOSES
- How we process your Personal Data for Purchase, Subscription and Marketing Purposes
We may process your Personal Data in connection with purchase, subscription and marketing purposes whenever you purchase match tickets, merchandise or other products from Munster Rugby or our authorised sellers; when you subscribe to Munster Rugby Newsletter; when you sign up for the Munster Rugby Supporters Club; or when you enter a competition with Munster Rugby or one of our affiliated bodies.
- What Personal Data we process for Purchase, Subscription and Marketing Purposes
We may collect and process the following Personal Data about you, which we may obtain either directly from you or from the third parties listed in section 1.2.6:
| Individual Details | · This may include general Personal Data about who you are, such as your name, address, contact details, gender, date of birth and occupation. |
| Customer Account Information | · This is information that you provide to us when creating a customer account on the Website shop and subsequently using it to make purchases. This information may include your name, date of birth, phone number, email address, billing address, shipping address, phone number and credit card information.
· If you choose to purchase an item on the Website shop for a third party beneficiary, you need to provide us with information about the beneficiary during the purchase process. In such circumstances, it is your responsibility to make sure the beneficiary or beneficiaries would have no objection to you sharing their Personal Data for the purposes set out in this Notice. |
| Purchase Information | · Details of any products, services or match, event or season tickets that you purchase from us, or the provincial branches or clubs, or from our authorised sellers and retailers. |
| Supporters Club Information | · Information you provide in the course of registering to join the Munster Rugby Supporters Club and to gain access to the Members Only Area on the Website. This information may include your email address, chosen username, chosen password, title, name, gender, date of birth, address and phone number(s). |
| Subscription Information | · Information you provide in the course of subscribing to Munster Rugby Newsletter. This information may include your email address, your name, your age range, the province you support and your address.
· We also collect information in the course of providing you with Munster Rugby Newsletter and any marketing material you subscribe to, or consent to receiving, on the Website. |
| 10 Year Ticket or Season Ticket Holder Information | · If you purchase a 10 Year Ticket or Season ticket we may process copies of documentation from which you can be identified. |
| Device Information | · When logging-on to any of the Wi-Fi services we offer at our offices, stadiums or events, we may collect information about your device such as the IP address, hardware model, operating system and version, software and file names and versions, preferred language, unique device identifier, advertising identifiers, serial number, device motion information and mobile network information. |
- Legal Basis
The following table details the legal bases under which (“Legal Basis“) and the reasons why (“Purposes“) we collect, obtain and process your Personal Data:
| Legal Basis
|
Purpose(s) |
| Contract
It is necessary to process this Personal Data to enter into and perform our contract(s) with you.
This could be a contract for tickets or products that you purchase from us, for access to our Website, for setting up a customer account or for becoming a member according to the applicable terms, etc.
If you do not wish to provide us with your Personal Data for these purposes, we will not be able to enter into or perform our contract(s) with you. |
Fulfilling your Orders and Requests
· To provide you with information and items that you request from us and to fulfil orders you place with us; · to process your purchases; · to process your subscription to the Munster Rugby Supporters Club; · to personalise products and services we provide you; · to process your payments through our third party payment providers; · to process your purchase of tickets to matches; · to enter you into competitions and contests; · grant access to tickets, products and/or special offers as part of the package of offers provided to season ticket holders pursuant to a season ticket contract; and · to prevent the fraudulent use of gift vouchers.
Customer Account · To create your online customer account for you to use on the Website; · to process your purchases through this account; and · to otherwise manage and administer your customer account.
Munster Rugby Newsletter · To subscribe you to, and send you, Munster Rugby Newsletter.
Munster Rugby Supporters Club · To enrol you into the Munster Rugby Supporters Club and to provide you with the associated benefits, such as access to the Members Area of the Website.
Payment · To receive payment in exchange for the products, services and tickets you purchase from us; · to refund you any sums that may be owed to you; and · to resolve any issues that may arise if an order is lost, processed incorrectly or otherwise encounters difficulty.
10 Year Ticket or Season Ticket · To process your purchase of a 10 Year Ticket or Season ticket; · to assign your identity to a 10 Year ticket or Season ticket; · to check and verify your identity matches your ticket; and · to prevent fraudulent use of a 10 Year ticket or Season ticket.
Registered Rugby Player · To register you as a rugby union player; and · to maintain your registration within the registered player database. |
| Legitimate Interests
It is in our legitimate interests to collect and process your Personal Data for a range of operational, business and organisational purposes.
When we process your Personal Data based on our legitimate interests, we make sure to consider and balance any potential impact on you and your data protection rights. We will not process your Personal Data for activities where our interests are overridden by the impact on you. |
Marketing
· To send you marketing material provided you have not opted-out of receiving this during the collection of your Personal Data (please note that you may opt-out of receiving such marketing material by contacting us at<EMAIL_ADDRESS>or following the unsubscribe instructions in any marketing communication we send you; and · to keep you updated on news, competitions and events provided you have not objected to receiving this information during the collection of your Personal Data.
Notification and Information · To notify you about changes to the Website and/or our services; · to notify you of changes to this or another Data Protection Notice or any terms and conditions to which you may be a party; and · to provide you with updates and information such as fixture changes and where and how you can collect tickets.
Responding to Queries and Complaints · To process and respond to any queries, requests and complaints you may submit to us.
Market Research · To gain an insight into the preferences and behaviour of our supporters; · to conduct surveys, which you can opt-out of; · to better understand where we can make improvements; and · to invite you to give feedback and to analyse same. |
| Compliance with a Legal Obligation
We may process your Personal Data where it is necessary to comply with legal obligations to which we are subject. |
· To comply with our obligations under Irish and EU laws, including but not limited to safeguarding and complying with law enforcement requests. |
| To Defend, Establish or be a Party to Legal Claims
We may process your Personal Data as necessary in order for us to establish, investigate, exercise or defend a legal claim to which you are a party. |
· To file legal proceedings; and
· to investigate, establish, exercise or defend a legal claim. |
- Sharing and Disclosure of your Personal Data
We will disclose your Personal Data to other members of the Munster Rugby ecosystem such as clubs and rugby organisations based outside of Ireland.
We will only disclose your personal information to third parties outside the above organisations in the following circumstances:
| Recipient(s) | Purpose(s)
|
| Munster Rugby subcontractors, service providers, ticketing providers and third party partners
1.1 |
· to assist Munster Rugby in providing you products and services;
· for logistical and IT service purposes, including but not limited to, ticketing services providers; · to send you promotional or direct marketing material (in circumstances where you expressly consented to receiving any such material from third party partners); · to allow for access to matches and other events; and · to send you surveys or polls. |
| Regulatory Authorities, Law Enforcement Agencies, Public Bodies and Third Party Companies | · To comply with any applicable legal obligation, court order, summons, search warrants, or any other legal or regulatory obligation or request to which Munster Rugby is subject;
· to protect the rights, property or safety of Munster Rugby, our customers, or others. This includes exchanging information with other companies and organisations for the purposes of fraud protection and credit risk reduction; and · to enforce or apply the Terms and other agreements or to investigate potential breaches. |
- Data Retention
In accordance with our policy on data retention we shall keep your Personal Data which we process on the basis of your involvement with Munster rugby for a period of time after your engagement with Munster Rugby which depends on why you have interacted with us. Please contact<EMAIL_ADDRESS>for further information about our retention periods.
Please note that in certain circumstances, we may hold your Personal Data for a longer period, for example, if we are processing an ongoing claim or believe in good faith that the law or a relevant regulator may reasonably in our view expect or require us to preserve your Personal Data.
- Third Party Sources
We may obtain Personal Data about you from the following third parties:
| Social Media Information | We may receive information about you from social media platforms, such as Facebook, Twitter, LinkedIn and Instagram, when you interact with us via such platforms. This includes information which you provide to us or otherwise make available via such platforms. |
| Marketing Information | We may receive information about you from other third parties where we offer co-branded services or engage in joint-marketing activities. |
| Ticket Sellers | When you buy match tickets from one of our authorised sellers we may be provided with your Personal Data. |
| Event Organisers | We will often engage the services of third parties to assist us in running and operating events. When you attend or express an interest in such an event we will often be provided with your Personal Data. |
| Licensees of our Brand | We may receive your Personal Data from licensees of our brand such as retail outlets, sponsors and vendors where you opt-in to receive information from us. |
| Stadia and Match Venues | We may receive your Personal Data from stadiums and match venues when you attend matches. |
- PROCESSING YOUR PERSONAL DATA WHEN YOU USE OUR WEBSITE
- How we process your Personal Data when you use our Website
For information about how we collect your Personal Data when you visit our Website, please see our Cookie Policy.
- What Personal Data we Process when you visit our Website
We may collect and process the following Personal Data about you when you use our Website:
| Technical Information | · When using our Website and availing of services through our Website, we may collect Personal Data about you from you and by using cookies and web analytics technology. This includes information about:
· your device type, operating system, browser, IP address and other information derived from cookies used on the Website. Please see our Cookies Policy for further information on our use of cookies; and · details of your visits to the Website such as traffic data, location data and the resources, advertisements and linked websites that you access through the Website. |
| Customer Account Information | · This is information that you provide to us when creating a customer account on the Website shop and subsequently using it to make purchases. This information may include your name, date of birth, phone number, email address, billing address, shipping address, phone number and credit card information.
· If you choose to purchase an item on the Website shop for a third party beneficiary, you need to provide us with information about the beneficiary during the purchase process. In such circumstances, it is your responsibility to make sure the beneficiary or beneficiaries would have no objection to you sharing their Personal Data for the purposes set out in this Notice. |
| Payment Information | · This includes your payment card details plus any other information necessary for billing purposes such as your billing address or your bank account information. |
| Supporters Club Information | · Information you provide in the course of registering to join the Munster Rugby Supporters Club and to gain access to the Members Only Area on the Website. This information may include your email address, chosen username, chosen password, title, name, gender, date of birth, address and phone number(s). |
| Subscription Information | · Information you provide in the course of subscribing to Munster Rugby Newsletter. This information may include your email address, your name, your age range, the province you support and your address.
· We also collect information in the course of providing you with Munster Rugby Newsletter and any marketing material you subscribe to, or consent to receiving, on the Website. |
- Legal Basis
The following table details the legal bases under which (“Legal Basis“) and the reasons why (“Purposes“) we collect, obtain and process your Personal Data:
| Legal Basis
|
Purpose(s) |
| Contract
It is necessary to process this Personal Data to enter into and perform our contract(s) with you.
This could be a contract for tickets or products that you purchase from us, for access to our Website, for setting up a customer account or for becoming a member according to the applicable terms, etc.
If you do not wish to provide us with your Personal Data for these purposes, we will not be able to enter into or perform our contract(s) with you. |
Fulfilling your Orders and Requests
· To provide you with information and items that you request from us and to fulfil orders you place with us; · to process your purchases; · to process your subscription to the Munster Rugby Supporters Club; · to personalise products and services we provide you; · to process your payments through our third party payment providers; · to process your purchase of tickets to matches; · to enter you into competitions and contests; and · to prevent the fraudulent use of gift vouchers.
Customer Account · To create your online customer account for you to use on the Website; · to process your purchases through this account; and · to otherwise manage and administer your customer account.
Payment · To receive payment in exchange for the products, services and tickets you purchase from us; · to refund you any sums that may be owed to you; and · to resolve any issues that may arise if an order is lost, processed incorrectly or otherwise encounters difficulty.
|
| Legitimate Interests
It is in our legitimate interests to collect and process your Personal Data for a range of operational, business and organisational purposes.
When we process your Personal Data based on our legitimate interests, we make sure to consider and balance any potential impact on you and your data protection rights. We will not process your Personal Data for activities where our interests are overridden by the impact on you. |
Improving Website Functionality & Efficiency
· To provide, improve, test and monitor the effectiveness of the Website; · to monitor metrics such as total number of visitors, traffic data and demographic patterns; · to personalise and improve your experience on our digital platforms; and · to ensure the content on the Website is presented in the most effective manner for you and to enhance your use of the Website.
|
- Sharing and Disclosure of your Personal Data
We will disclose your Personal Data to other members of the Munster rugby ecosystem such as clubs and rugby organisations based outside of Ireland.
We will only disclose your personal information to third parties outside the above organisations in the following circumstances:
| Recipient(s) | Purpose(s)
|
| Munster Rugby subcontractors, service providers and third party partners | · For logistical and IT service purposes. |
| Regulatory Authorities, Law Enforcement Agencies, Public Bodies and Third Party Companies | · To comply with any applicable legal obligation, court order, summons, search warrants, or any other legal or regulatory obligation or request to which Munster Rugby is subject;
· to protect the rights, property or safety of Munster Rugby, our customers, or others. This includes exchanging information with other companies and organisations for the purposes of fraud protection and credit risk reduction; and · to enforce or apply our website terms and other agreements or to investigate potential breaches. |
- Data Retention
For information about how long we retain Personal Data collected when you visit our Website for, please see our Cookie Policy. In accordance with our policy on data retention we shall keep your Personal Data which we process on the basis of your involvement with Munster rugby for a period of time after your engagement with Munster Rugby which depends on why you have interacted with us. Please contact<EMAIL_ADDRESS>for further information about our retention periods.
Please note that in certain circumstances, we may hold your data for a longer period, for example, if we are processing an ongoing claim or believe in good faith that the law or a relevant regulator may reasonably in our view expect or require us to preserve your data.
- IF YOU ARE UNDER 16 OR A PARENT/LEGAL GUARDIAN
If you are under the age of 16, you should always speak to your parent or legal guardian before you send us an email or information, ask us to send you any information, subscribe to our Newsletter, join the Munster Rugby Supporters Club, purchase anything from us or provide us Personal Data in any other way. We will need the consent of your parent or legal guardian before we can allow you to access the Munster Rugby Supporters Club content on our Website.
If you are a parent or legal guardian of a child whose Personal Data we are processing, then you may at any time request that we stop processing the Personal Data of your child in so far as we are able, or exercise the rights listed below at section 4 over your child’s Personal Data by emailing us at<EMAIL_ADDRESS>Please note that before we disclose or otherwise process a child’s Personal Data on the basis of such a request we may first request that you provide reasonable information about yourself and your child for identification purposes.
- STORING OF AND TRANSFERS OF YOUR PERSONAL DATA
Your Personal Data may be stored and transferred inside or outside the European Economic Area (“EEA“). We only transfer your Personal Data outside the EEA where the EU Commission has decided that the third country in question ensures an adequate level of protection in line with EU data protection standards or if there are appropriate safeguards in place to protect your Personal Data. Where we transfer Personal Data to a third country, we may do so on the basis of Standard Contractual Clauses which are a form of data processing contract approved by the European Commission. You can find a copy of these clauses here.
If you would like to find out more about the appropriate safeguards that we have in place to govern the transfer of your Personal Data you can contact us at<EMAIL_ADDRESS>Unfortunately, the transmission of information via the internet is not completely secure. Although we will always do our best to protect your Personal Data, we cannot guarantee the security of any information you transmit to us; any transmission is at your own risk. Once we have received your information, we will endeavour to use strict procedures and security features to try to prevent unauthorised access.
- YOUR RIGHTS AND HOW TO EXERCISE THEM
This section sets out the rights which you have to address any concerns or queries with us about our processing of your Personal Data. Note that in certain circumstances, these rights may not be absolute:
| Right | Further Information |
| Right of Access
|
· You have the right to request a copy of the Personal Data held by us about you and to access the following information in relation to the processing of your Personal Data:
(1) the purposes of processing; (2) the categories of Personal Data concerned; (3) the recipients of your Personal Data; (4) the period for which your Personal Data will be stored; (5) the existence of your right to lodge a complaint with the Data Protection Commission; and (6) the source of your Personal Data. · We will only charge you for making an access request where we feel your request is unjustified or excessive. |
| Right to Rectification | · You have the right to request that we amend any inaccurate Personal Data that we have about you. |
| Right to Erasure | · You have the right to ask us to erase your Personal Data where:
(1) it is no longer necessary to perform our contract with you; (2) you withdraw your consent and there is no other legal basis permitting us to process your Personal Data; (3) you object and we have no overriding legitimate interest; (4) your Personal Data has been unlawfully processed; or (5) it must be erased to comply with a legal obligation. · Please note that erasure may not be complete or immediate to the extent that some of your Personal Data is necessary for the purpose for which it was collected. |
| Right to Restriction of Processing | · You have the right to ask us to restrict processing your Personal Data in the following situations:
(1) where you contest the accuracy of your Personal Data; (2) where the processing is unlawful and you do not want us to delete your Personal Data; (3) where we no longer need your Personal Data for the purposes of processing but you require the data in relation to a legal claim; or (4) where you have objected to us processing your Personal Data pending verification as to whether or not our legitimate interests override your interests or in connection with legal proceedings. · When you exercise this right we may only store your Personal Data and may not further process it unless you consent or the processing is necessary in relation to a legal claim or to protect the rights of another person or legal person or for reasons of important public interest. |
| Right to Data Portability | · You may request us to provide you with your Personal Data which you have given us in a structured, commonly used and machine-readable format and you may request us to transmit your Personal Data directly to another data controller where this is technically feasible.
· This right only arises where: (1) we process your Personal Data with your consent or where it is necessary to perform our contract with you; and (2) the processing is carried out by automated means. |
| Right to Object | · You have a right to object at any time to our processing of your Personal Data where we process your Personal Data on the legal basis of pursuing our legitimate interests. |
You can exercise any of these rights by submitting a request to our Data Protection Executive whose contact details are set out in section 5 of this Notice.
We will provide you with information on any action taken upon your request in relation to any of these rights without undue delay and at the latest within one month of receiving your request. We may extend this timeframe by one more month if necessary having regard to the circumstances of the request. However we will inform you if this arises.
- QUESTIONS AND COMPLAINTS
If you have any concerns about the way your Personal Data are being used or processed by Munster Rugby, please contact our Data Protection Executive at<EMAIL_ADDRESS>If you have any concern in relation to how your Personal Data is used or processed, you have the right to lodge a complaint with your national data protection regulator. For further information and to find your national data protection regulator, please see here.
- CHANGES TO THIS NOTICE
If we amend this notice, in whole or part, at our sole discretion, any changes will be effective immediately upon communicating the revised notice to you.
If at any time we decide to use your Personal Data in a manner significantly different from that stated in this notice, or otherwise disclosed to you at the time it was collected, we will notify you and you will have a choice as to whether or not we use your information in the new manner.


If you'd like us to review a new article or paper, please let us know by submitting a new GitHub issue at CTIL/TLA issues


{% extends "layout_bootstrap.html" %} {% set active_page = "/" %} {% block content %}
Welcome To Restock.io! We hope we can help during these challenging times. Enter your name, email, and an item's link on Amazon's website and we will send you regular updates!
{% endblock %}


Python with the Google Maps API
The Google Maps Platform offers a number of APIs to get maps, routes, and places information. In this example, I will demonstrate how to get coordinates of an address using the Geocoding API.
Google Maps API
While access to the Google Maps APIs used to be free for small requests, since July 2018 you must provide billing information and register for an API key. Not to worry, for small requests this should still be free.
First navigate to the Google Maps Platform page and select "Get Started". Follow the steps to get your API key, something that will look like this: AIzaSyAqDsnMnOTAyNKXKt3HRuIvLTCctaFVCLQ
(note this API key has been disabled, so you will need to provide your own). Save this API key in a .txt
file for later use.
In the Google Cloud Platform dashboard you can see the APIs you have access to. To get the coordinates of an address we will use the Geocoding API. If the Geocoding API is not show in your list of In Use APIs select it from Unused APIs and select "Enable".
As shown in the Geocoding API, we can get information about an address by accessing a URL of the form: https://maps.googleapis.com/maps/api/geocode/json?address=1600+Pennsylvania+Ave,+Washington,+DC&key=YOUR_API_KEY
If you replace YOUR_API_KEY
in the above with your actual API key and drop the URL in a browser you will get a result like this:
Scrolling down you'll notice that this contains the coordinates data we want. Great! Now we just need to automate getting this information with Python.
Geocoding API with Python
Using the Python requests library we can quickly get the coordinates for multiple addresses. We can write a get_lat_lng
function that constructs the URL given an address and the API key and returns the latitude and longitude. Note that we read the API key from a local file to keep it private.
The full google-maps-geocoding.py
script is below:
def get_lat_lng(apiKey, address):
"""
Returns the latitude and longitude of a location using the Google Maps Geocoding API.
API: https://developers.google.com/maps/documentation/geocoding/start
# INPUT -------------------------------------------------------------------
apiKey [str]
address [str]
# RETURN ------------------------------------------------------------------
lat [float]
lng [float]
"""
import requests
url = ('https://maps.googleapis.com/maps/api/geocode/json?address={}&key={}'
.format(address.replace(' ','+'), apiKey))
try:
response = requests.get(url)
resp_json_payload = response.json()
lat = resp_json_payload['results'][0]['geometry']['location']['lat']
lng = resp_json_payload['results'][0]['geometry']['location']['lng']
except:
print('ERROR: {}'.format(address))
lat = 0
lng = 0
return lat, lng
if __name__ == '__main__':
# get key
fname = '/Desktop/GoogleMapsAPIKey.txt'
file = open(fname, 'r')
apiKey = file.read()
# get coordinates
address = '1 Rocket Road, Hawthorne, CA'
lat, lng = get_lat_lng(apiKey, address)
print('{} Coordinates:\nLatitude: {}°\nLongitude: {}°'.format(address,lat, lng))
Running this script produces the following output:
$ python google-maps-api.py
1 Rocket Road, Hawthorne, CA Coordinates:
Latitude: 33.9206814°
Longitude: -118.3280263°
Distance Matrix API with Python
Similarly, we can get information about the distance or drive time between locations using the Google Maps Distance Matrix API.
The full google-maps-distance.py
script is below:
def get_drive_time(apiKey, origin, destination):
"""
Returns the driving time between using the Google Maps Distance Matrix API.
API: https://developers.google.com/maps/documentation/distance-matrix/start
# INPUT -------------------------------------------------------------------
apiKey [str]
origin [str]
destination [str]
# RETURN ------------------------------------------------------------------
drive_tim [float] (minutes)
"""
import requests
url = ('https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins={}&destinations={}&key={}'
.format(origin.replace(' ','+'),
destination.replace(' ','+'),
apiKey
)
)
try:
response = requests.get(url)
resp_json_payload = response.json()
drive_time = resp_json_payload['rows'][0]['elements'][0]['duration']['value']/60
except:
print('ERROR: {}, {}'.format(origin, destination))
drive_time = 0
return drive_time
if __name__ == '__main__':
# get key
fname = '/Users/matthewkudija/Desktop/GoogleMapsAPIKey.txt'
file = open(fname, 'r')
apiKey = file.read()
# get coordinates
origin = '1 Rocket Road, Hawthorne, CA'
destination = '1 Rocket Road, McGregor, TX'
drive_time = get_drive_time(apiKey, origin, destination)
print('Origin: {}\nDestination: {}\nDrive Time: {} hr'.format(origin, destination, drive_time/60))
Running this script produces the following output:
$ python google-maps-distance.py
Origin: 1 Rocket Road, Hawthorne, CA
Destination: 1 Rocket Road, McGregor, TX
Drive Time: 20.6625 hr
- You can view the original code and files.
Versions:
Python 3.6.3


I took a note about multi languages in iOs few days before. Multi languages can’t be finished from iOS/Android or Web only, but need help from server. Without support from server, users can face to messages in English while using Vietnamese, or notifications in Vietnamese, but app language is in English.
Ogenii is fully supported i18n from client to server. It’s not an easy task for me, because I’m just a newbie in backend. I believe this is not the best way to do but it’s a good way I can find and do at this time. Main idea is separation all texts to languages objects and get the values by the keys.
I support English and Vietnamese in Ogenii, so I add 2 new files en.js
and vi.js
and move texts to object texts
en.js
module.exports.texts = {
err_401: "Your login is expired. Login again and keep learning.",
verification_sent: 'Your verification will be processed in 2-4 hours',
clazz_created: "Your class is created and under review. It'll be live soon."
}
vi.js
module.exports.texts = {
err_401: "Phiên đăng nhập đã hết hạn. Đăng nhập lại và tiếp tục học thôi",
verification_sent: 'Thông tin xác thực của bạn sẽ được xử lý xong trong 2 - 4 giờ tới',
clazz_created: "Lớp của bạn đã được tạo thành công và đang được xem xét. Lớp sẽ sớm online thôi"
}
Don’t connect language files directly to others, I make a file as a center to connect all supported languages to other files and name it LangCenter.js
.
LangCenter
let En = require('./en')
let Vi = require('./vi')
Add all language to an object like this. So don’t care how many languages will support.
let supported_langs = {
"en": En,
"vi": Vi
}
texts
in en.js
and vi.js
.
module.exports.keys = {
err_401: "err_401",
verification_sent: "verification_sent",
clazz_created: "clazz_created"
}
supported_lang
, we don’t need condition to get the requested language texts here, much easier.
/**
* @desc Get string by language
* @param key of the text
* @param lang If param `lang` is a String, it's a language name. If it's an object, it is a request from client. param `lang` is in the request header.
* @return String in selected language
*/
function getText(key, lang) {
if (typeof lang !== 'string') {
lang = lang.headers['lang']
}
let dict = supported_langs[lang].texts
return dict[key]
}
module.exports.getText = getText
Okay, it’s done for all messages from server. Any messages we need to send to client, just add to language files and keys
objects in LangCenter.js
This is not fully supported yet. Notification still is 1 language only. I saved the notification content to database, and it can’t be dynamic for multi languages. I had to change. Just save elements to generate notification content only. Depend on elements, I can get text by language.
One example to generate message.
/**
* @desc Generate text to tell Master when Genius book his class
* @desc Text structure: Genius `<genius_name>` has just booked your class `<clazz_title>`
* @param data: `genius_name`, `clazz_title`
* @param lang
* @return Meaningful String
*/
function getClazzBookedToMasterText(data, lang) {
let booked = Lang.getText(LangCenter.keys.clazz_booked_to_master, lang)
return `Genius ${data.genius_name} ${booked} ${data.clazz_title}`
}
I make functions to generate messages, because I need these functions several times.
NodeJS is not as strict as Swift, so that, I put lot of comments in my code, especially for params. It helps me easier to get back or fix bugs.
Now, the code is 95% flexible for multi languages. Server now returns notification content by client requested language.
Final step is push notification in multi language. Push notification is dynamic from server, when data meets some conditions. Genius books a class and server pushes notification to Master, for instance. No request from Master, so I don’t know the Master’s current language. I have to save user language to database and get it when push notification is needed. Then generate content by functions above and push to users.
That’s all I do with multi languages in Ogenii backend. It’s 98% flexible. There is one more edge case I have no solution at this time. User has multi devices, and in every device, he selects a different language.
Hope I find solution to solve this edge case soon. Any suggestion to solve it, please drop me a message on Skype.
Hope this can help.


Arsenal manager Unai Emery has been fired after 18 months with the Premier League club
by EndPlayLONDON - LONDON (AP) - Arsenal manager Unai Emery has been fired after 18 months with the Premier League club.
LONDON - LONDON (AP) - Arsenal manager Unai Emery has been fired after 18 months with the Premier League club.


package exceptions
Type Members
-
class
DiscardedEvaluationException extends RuntimeException
Exception that indicates an evaluation of a property should be discarded, because a condition required by a property was not met by the passed values.
Exception that indicates an evaluation of a property should be discarded, because a condition required by a property was not met by the passed values.
This exception is thrown by the
whenever
method defined in traitWhenever
when the given condition is false. TheforAll
methods defined in traitPropertyChecks
catch theDiscardedEvaluationException
and ignore it, moving on to try the next set of parameter values it is checking th property against. -
class
DuplicateTestNameException extends StackDepthException
Exception that indicates an attempt was made to register a test that had the same name as a test already registered in the same suite.
Exception that indicates an attempt was made to register a test that had the same name as a test already registered in the same suite. The purpose of this exception is to encapsulate information about the stack depth at which the line of code that made this attempt resides, so that information can be presented to the user that makes it quick to find the problem line of code. (In other words, the user need not scan through the stack trace to find the correct filename and line number of the offending code.)
- Exceptions thrown
NullArgumentException
iftestName
isnull
-
class
GeneratorDrivenPropertyCheckFailedException extends PropertyCheckFailedException
Exception that indicates a ScalaCheck property check failed.
Exception that indicates a ScalaCheck property check failed.
- Exceptions thrown
NullArgumentException
if any parameter isnull
orSome(null)
.
-
trait
ModifiableMessage[T <: Throwable] extends AnyRef
Trait implemented by exception types that can modify their detail message.
Trait implemented by exception types that can modify their detail message.
This trait facilitates the
withClue
construct provided by traitAssertions
. This construct enables extra information (or "clues") to be included in the detail message of a thrown exception. Although bothassert
andexpect
provide a way for a clue to be included directly,assertThrows
,intercept
, and ScalaTest matcher expressions do not. Here's an example of clues provided directly inassert
:assert(1 + 1 === 3, "this is a clue")
and in
expect
:expect(3, "this is a clue") { 1 + 1 }
The exceptions thrown by the previous two statements will include the clue string,
"this is a clue"
, in the exceptions detail message. To get the same clue in the detail message of an exception thrown by a failedassertThrows
call requires usingwithClue
:withClue("this is a clue") { assertThrows[IndexOutOfBoundsException] { "hi".charAt(-1) } }
Similarly, to get a clue in the exception resulting from an exception arising out of a ScalaTest matcher expression, you need to use
withClue
. Here's an example:withClue("this is a clue") { 1 + 1 should === (3) }
Exception types that mix in this trait have a
modifyMessage
method, which returns an exception identical to itself, except with the detail message option replaced with the result of invoking the passed function, supplying the current detail message option as the loneString
parameter. -
trait
ModifiablePayload[T <: Throwable] extends AnyRef
Trait implemented by
PayloadField
exception types that can modify their payload.Trait implemented by
PayloadField
exception types that can modify their payload.This trait facilitates the
withPayload
construct provided by traitPayloads
. This construct enables a payload object (or modified payload object) to be included as the payload of a thrown exception. The payload can then be included in the ScalaTest event that results from that exception. For example, the payload included in aTestFailedException
will be included as the payload of the resultingTestFailed
event. Here's an example in which a GUI snapshot is included as a payload when a test fails:withPayload(generateGUISnapshot()) { 1 + 1 should === (3) }
Exception types that mix in this trait have a
modifyPayload
method, which returns an exception identical to itself, except with the payload option replaced with the result of invoking the passed function, supplying the current payload option as the loneOption[Any]
parameter. -
class
NotAllowedException extends StackDepthException
Exception that indicates something was attempted in test code that is not allowed.
Exception that indicates something was attempted in test code that is not allowed. For example, in a
FeatureSpec
, it is not allowed to nest afeature
clause inside anotherfeature
clause. If this is attempted, the construction of that suite will fail with aNotAllowedException
.- Exceptions thrown
NullArgumentException
if eithermessage
orfailedCodeStackDepthFun
isnull
-
trait
PayloadField extends AnyRef
Trait implemented by exception types that carry an optional payload.
Trait implemented by exception types that carry an optional payload.
Many ScalaTest events include an optional "payload" field that can be used to pass information to a custom reporter. This trait facilitates such customization, by allowing test code to include a payload in an exception (such as
TestFailedException
). ScalaTest looks for this trait and fires any payloads it finds in the relevant ScalaTest event stimulated by the exception, such as aTestFailed
event stimulated by aTestFailedException
. (Although in its initial release there is only two subclasses ofPayloadField
in ScalaTest,TestFailedException
andTestCanceledException
, in future version of ScalaTest, there could be more)For an example of how payloads could be used, see the documentation for trait
Payloads
. -
abstract
class
PropertyCheckFailedException extends TestFailedException
Exception that indicates a property check failed.
Exception that indicates a property check failed.
- Exceptions thrown
NullArgumentException
if any parameter isnull
orSome(null)
.
-
trait
StackDepth extends AnyRef
Trait that encapsulates the information required of an exception thrown by ScalaTest's assertions and matchers, which includes a stack depth at which the failing line of test code resides.
Trait that encapsulates the information required of an exception thrown by ScalaTest's assertions and matchers, which includes a stack depth at which the failing line of test code resides.
This trait exists so that it can be mixed into two exception superclasses,
StackDepthException
, from which extend several exceptions that do not depend on JUnit, andJUnitTestFailedError
, which does depend on JUnit. The latter, which requires JUnit be in the classpath, ensures failed ScalaTest assertions are reported as "failures," not "errors," by JUnit. -
abstract
class
StackDepthException extends RuntimeException with StackDepth
Exception class that encapsulates information about the stack depth at which the line of code that failed resides, so that information can be presented to the user that makes it quick to find the failing line of code.
Exception class that encapsulates information about the stack depth at which the line of code that failed resides, so that information can be presented to the user that makes it quick to find the failing line of code. (In other words, the user need not scan through the stack trace to find the correct filename and line number of the problem code.) Having a stack depth is more useful in a testing environment in which test failures are implemented as thrown exceptions, as is the case in ScalaTest's built-in suite traits.
- Exceptions thrown
NullArgumentException
if eithermessageFun
,cause
orfailedCodeStackDepthFun
isnull
, orSome(null)
.
-
class
TableDrivenPropertyCheckFailedException extends PropertyCheckFailedException
Exception that indicates a table-driven property check failed.
Exception that indicates a table-driven property check failed.
For an introduction to using tables, see the documentation for trait TableDrivenPropertyChecks.
- Exceptions thrown
NullArgumentException
if any parameter isnull
orSome(null)
.
-
class
TestCanceledException extends StackDepthException with ModifiableMessage[TestCanceledException] with PayloadField with ModifiablePayload[TestCanceledException]
Exception thrown to indicate a test has been canceled.
Exception thrown to indicate a test has been canceled.
A canceled test is one that is unable to run because a needed dependency, such as an external database, is missing.
Canceled tests are ones that complete abruptly with a
TestCanceledException
after starting. -
class
TestFailedDueToTimeoutException extends TestFailedException with TimeoutField
Subclass of
TestFailedException
representing tests that failed because of a timeout.Subclass of
TestFailedException
representing tests that failed because of a timeout.This exception is thrown by the
failAfter
method of traitTimeouts
, theeventually
method of traitEventually
, and theawait
methods of traitAsyncAssertions
.- Exceptions thrown
NullArgumentException
if eithermessageFun
,cause
orfailedCodeStackDepthFun
isnull
, orSome(null)
.
-
class
TestFailedException extends StackDepthException with ModifiableMessage[TestFailedException] with PayloadField with ModifiablePayload[TestFailedException]
Exception that indicates a test failed.
Exception that indicates a test failed.
One purpose of this exception is to encapsulate information about the stack depth at which the line of test code that failed resides, so that information can be presented to the user that makes it quick to find the failing line of test code. (In other words, the user need not scan through the stack trace to find the correct filename and line number of the failing test.)
Another purpose of this exception is to encapsulate a payload, an object to be included in a
TestFailed
event as its payload, so it can be consumed by a custom reporter that understands the payload. For example, tests could take a screen shot image of a GUI when a test fails, and include that as a payload. A custom reporter could listen for such payloads and display the screen shots to the user.- Exceptions thrown
NullArgumentException
if eithermessageFun
,cause
orfailedCodeStackDepthFun
isnull
, orSome(null)
.
-
class
TestPendingException extends RuntimeException
Exception thrown to indicate a test is pending.
Exception thrown to indicate a test is pending.
A pending test is one that has been given a name but is not yet implemented. The purpose of pending tests is to facilitate a style of testing in which documentation of behavior is sketched out before tests are written to verify that behavior (and often, the before the behavior of the system being tested is itself implemented). Such sketches form a kind of specification of what tests and functionality to implement later.
To support this style of testing, a test can be given a name that specifies one bit of behavior required by the system being tested. The test can also include some code that sends more information about the behavior to the reporter when the tests run. At the end of the test, it can call method
pending
, which will cause it to complete abruptly withTestPendingException
. Because tests in ScalaTest can be designated as pending withTestPendingException
, both the test name and any information sent to the reporter when running the test can appear in the report of a test run. (In other words, the code of a pending test is executed just like any other test.) However, because the test completes abruptly withTestPendingException
, the test will be reported as pending, to indicate the actual test, and possibly the functionality, has not yet been implemented. -
class
TestRegistrationClosedException extends StackDepthException
Exception that indicates an action that is only allowed during a suite's test registration phase, such as registering a test to run or ignore, was attempted after registration had already closed.
Exception that indicates an action that is only allowed during a suite's test registration phase, such as registering a test to run or ignore, was attempted after registration had already closed.
In suites that register tests as functions, such as
FunSuite
andFunSpec
, tests are normally registered during construction. Although it is not the usual approach, tests can also be registered after construction by invoking methods that register tests on the already constructed suite so long asrun
has not been invoked on that suite. As soon asrun
is invoked for the first time, registration of tests is "closed," meaning that any further attempts to register a test will fail (and result in an instance of this exception class being thrown). This can happen, for example, if an attempt is made to nest tests, such as in aFunSuite
:test("this test is fine") { test("but this nested test is not allowed") { } }
This exception encapsulates information about the stack depth at which the line of code that made this attempt resides, so that information can be presented to the user that makes it quick to find the problem line of code. (In other words, the user need not scan through the stack trace to find the correct filename and line number of the offending code.)
- Exceptions thrown
NullArgumentException
if eithermessage
orfailedCodeStackDepthFun
isnull
-
trait
TimeoutField extends AnyRef
Trait mixed into exceptions thrown due to a timeout, which offers a
timeout
field providing aSpan
representing the timeout that expired.Trait mixed into exceptions thrown due to a timeout, which offers a
timeout
field providing aSpan
representing the timeout that expired.This trait is used by trait
TimeLimitedTests
to detect exceptions thrown because of timeouts, and for such exceptions, to modify the message to more clearly indicate a test timed out. (Although in its initial release there is only one subclass ofTimeoutField
in ScalaTest,TestFailedDueToTimeoutException
, in future version of ScalaTest, there could be more)


Make Your Bet
EVEN
NONE
UNEVEN
START
Result
For more explanation please visit -
different use of OR Wiki


Before Change
fetch_stanford_hardi()
img, gtab = read_stanford_hardi()
data = img.get_data()
You can verify the b-values of the dataset by looking at the attribute
``gtab.bvals``. Now that a datasets with multiple gradient directions is
After Change
from dipy.io.gradients import read_bvals_bvecs
from dipy.io.image import load_nifti
hardi_fname, hardi_bval, hardi_bvec = get_fnames("stanford_hardi")
data, affine = load_nifti(hardi_fname)
bvals, bvecs = read_bvals_bvecs(hardi_bval, hardi_bvec)


What is self-isolation
Self-isolation is when you do not leave your home because you have or might have coronavirus (COVID-19). This helps stop the virus spreading to other people.
The dos and dont's of self-isolation
Don't
-
do not go to work, school or public places - work from home if you can
-
do not go on public transport or use taxis
-
do not go out to get food and medicine - order it online or by phone, or ask someone to bring it to your home
-
do not have visitors in your home, including friends and family - except for people providing essential care
-
do not go out to exercise - exercise at home or in your garden, if you have one
Do
-
wash your hands with soap and water often, for at least 20 seconds
-
use hand sanitiser gel if soap and water are not available
-
cover your mouth and nose with a tissue or your sleeve (not your hands) when you cough or sneeze
-
put used tissues in the bin immediately and wash your hands afterwards
-
clean objects and surfaces you touch often (such as door handles, kettles and phones) using your regular cleaning products
-
consider wearing a face covering when in shared spaces
-
keep windows open in the room you're staying in and shared spaces as much as possible
Law and penalties about self-isolation
It's a legal requirement to self-isolate if you test positive for Covid-19 or are told to self-isolate by NHS Test and Trace. You could be fined if you do not self-isolate.
The difference between self-isolation, lockdown rules and shielding
Self-isolation is different to:
- lockdown rules - rules for your area's covid-19 tier.
- shielding - advice for people at high risk from coronavirus
Page last reviewed: 21 December 2020
Next review due: 21 December 2020


yo deadsquid
How's the hangover? (p.s. congrats)
About this entry
You"re currently reading "yo deadsquid," an entry on a crick in the net
- Published:
- 08.27.06 / 8pm
- Category:
- Circular File
--- layout: post title: yo deadsquid categories: Circular File published: 2006-08-27 08:00:00 ---
How's the hangover? (p.s. congrats)
You"re currently reading "yo deadsquid," an entry on a crick in the net


Before Change
@property
def action_space(self, *args, **kwargs):
return self._env.action_space
def step(self, action, *args, **kwargs):
// TODO(hartikainen): refactor this to always return OrderedDict,
// such that the observation for all the envs is consistent. Right now
After Change
@property
def action_space(self, *args, **kwargs):
action_space = self._env.action_space
if len(action_space.shape) > 1:
raise NotImplementedError(
"Action space ({}) is not flat, make sure to check the"
" implemenation. ".format(action_space))
return action_space
def step(self, action, *args, **kwargs):
// TODO(hartikainen): refactor this to always return OrderedDict,
// such that the observation for all the envs is consistent. Right now