% \iffalse meta-comment
%
% osda.ins
% Copyright 2023-2024 by Christian Krieg (christian@osda.ws)
%
% This work (excluding the OSDA logo) may be distributed and/or modified under
% the conditions of the LaTeX Project Public License, either version 1.3 of this
% license or (at your option) any later version.  The latest version of this
% license is in http://www.latex-project.org/lppl.txt and version 1.3 or later
% is part of all distributions of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% 
% The Current Maintainer of this work is Christian Krieg.
%
% This work consists of the files osda.dtx and osda.ins
% and the derived file osda.sty.
%
% The OSDA logo is a trademark of Christian Krieg and may only be used and/or
% distributed in order to refer to the Workshop on Open-Source Design
% Automation.  Any other use is subject to prior written permission.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{osda.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{osda}
%<*package>
    [2024/05/01 v1.4.0 OSDA copyright notice generator]
%</package>
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{parskip}
\usepackage{hyperref}
\usepackage{listings}
\lstset
{
  language=[LaTeX]TeX,
  basicstyle=\linespread{1}\small\ttfamily,
  commentstyle=\linespread{1}\small\itshape,
  keywordstyle=\linespread{1}\small\bfseries,
  escapeinside={(*@}{@*)},
  frame=single, numbers=left,
  xleftmargin=15pt,
  xrightmargin=5pt,
  numbersep=5pt,
  breaklines=true,
  moredelim=**[is][\ttfamily\bfseries\color{red}]{(*}{*)},
}
\usepackage[
    2024,
    cc-by,
    pages={1}{6},
    url=https://osda.ws/r/0slLz,
    doi=10.1000/182,
]{osda}
\usepackage{cleveref}
\PassOptionsToClass{a4paper}{article}
\AtBeginDocument{\OnlyDescription}
\AtBeginDocument{\CodelineIndex\EnableCrossrefs\RecordChanges}
\AtBeginDocument{\RecordChanges}
\AtEndDocument{\DocInput{osda.dtx}}
\AtEndDocument{\PrintChanges}
%%\AtEndDocument{\PrintIndex}
\begin{document}
\end{document}
%</driver>
% \fi
%
% \CheckSum{0}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
%
% \changes{v1.0.0}{2023/03/30}{Initial version}
% \changes{v1.1.0}{2023/04/03}{Adding 'auto' option}
% \changes{v1.2.0}{2023/04/03}{Updating README}
% \changes{v1.3.0}{2023/04/04}{
%     Adding presets for the years 2019 and 2020,
%     adding inline OSDA logo
% }
% \changes{v1.4.0}{2024/05/01}{Adding preset for 2020}
%
% \GetFileInfo{osda.sty}
%
% \DoNotIndex{\newcommand,\newenvironment,\providecommand,\def}
% 
% \def\F{F}
%
% \title{The \textsf{osda} package: \\
%        OSDA Copyright Notice Generator\thanks{This document
%        corresponds to \textsf{osda}~\fileversion, dated \filedate.}
% }
% \author{Christian Krieg\\ Workshop on Open-Source Design Automation (OSDA) \\
%     \texttt{christian@osda.ws}
% }
% \date{May 01, 2024}
%
% \newcommand{\Example}{\vspace{1em}\noindent\textbf{Example:}\vspace{1em}}
%
% \maketitle
%
% \section{Introduction}
%
% This package automatically places a copyright notice as an un-numbered
% footnote on the title page of a document that calls |\maketitle|, indicating
% the information on the workshop where the paper was presented, along with
% additional information on the host conference, the license under which the
% document is published, and a link to the corresponding web page of the paper.
% The generated copyright notice contains a logo of the workshop, and a QR code
% that points to the paper's web page (to lead to further material). For cases
% when the copyright notice is not automatically set in the title page's
% footnote, the copyright notice can be set manually as well.
%
% \section{Usage}
%
% For the most basic use case, we just load the package, while giving a basic
% set of package options: the year of the workshop, the license under which the
% document is published, start/end pages of the paper in the workshop
% proceedings, a paper URL under which further information on the paper is
% available, and a Digital Object Identifier (DOI) that uniquely identifies the
% publication. \Cref{lst:usage-example} shows the command to load the package
% with options that generates the copyright notice visible on the title page of
% this document.
%
% \begin{lstlisting}[gobble=6,float=tb,label=lst:usage-example,caption={An
%     example for the most-frequent use case to use this package}]
%     \usepackage[
%         2024,
%         cc-by,
%         pages={1}{6},
%         url=https://osda.ws/r/0slLz,
%         doi=10.1000/182,
%     ]{osda}
% \end{lstlisting}
%
% When loading the package, the |\maketitle| command is re-defined such that
% when it is called, an un-numbered footnote is automatically placed at the
% title page. Besides the package options, all key/value pairs given in the
% sections below can be passed as options to the package when loaded.
%
% \DescribeMacro{\osdafootnote}
% For documents that do not define |\maketitle|, the footnote can be explicitly
% set with |\osdafootnote| as shown in \Cref{lst:usage-footnote}.
% |\osdafootnote| accepts all options as the package when loaded (i.e., all
% presets and all key/value pairs given below).

%
% \begin{lstlisting}[gobble=6,label=lst:usage-footnote,caption={
%     Explicitly generating an un-numbered footnote containing the copyright
%     notice}]
%     \osdafootnote
% \end{lstlisting}
%
% \DescribeMacro{\osdanotice}
% For cases where the copyright notice shall not be placed in a footnote, but in
% body text or some other paragraph, the package also provides the command
% |\osdanotice|, which renders the copyright notice at the place from where it
% is called (see \Cref{lst:usage-notice}). |\osdanotice| accepts all options as
% the package when loaded (i.e., all presets and all key/value pairs given
% below).
%
% \begin{lstlisting}[gobble=6,label=lst:usage-notice,caption={
%     Place the copyright notice here}]
%     \osdanotice
% \end{lstlisting}
%
% \DescribeMacro{\osdaset}
% Alternatively to the method given in \Cref{lst:usage-example}, we can load the
% package without options, and explicitly set the values with |\osdaset|, as
% shown in \Cref{lst:usage-osdaset}. |\osdaset| accepts all options as
% the package when loaded (i.e., all presets and all key/value pairs given
% below).

%
% \begin{lstlisting}[gobble=6,float=tb,label=lst:usage-osdaset,caption={Explicitly
%   setting package options}]
%     \usepackage[auto=false]{osda}
%     \osdaset{
%         2024,
%         cc-by,
%         pages={1}{6},
%         url=https://osda.ws/r/0slLz,
%         doi=10.1000/182,
%     }
% \end{lstlisting}
%
% \section{Package Options}
%
% \subsection{Automatically setting a footnote}
%
% \DescribeMacro{auto}
% The default behavior when loading this package is that an unnumbered footnote
% containing a copyright notice is automatically inclued when |\maketitle| is
% called. If this behavior is not desired, it can be switched off setting the
% |auto| package option to |false| (see \Cref{lst:option-auto}).
%
% \begin{lstlisting}[gobble=6, label=lst:option-auto, caption={Do not
%     automatically place a footnote with a copyright notice}]
%     \usepacakge[auto=false]{osda}
% \end{lstlisting}
%
% \subsection{Workshop information}
%
% \DescribeMacro{<year>}
% This option defines presets for all relevant options to the values valid for
% the year the workshop was held:
%
% \begin{itemize}
%       \item{|proceedings/title|}
%       \item{|workshop/counter|}
%       \item{|workshop/longname|}
%       \item{|workshop/acronym|}
%       \item{|location/city|}
%       \item{|location/country|}
%       \item{|date/month|}
%       \item{|date/day|}
%       \item{|date/year|}
%       \item{|hostconference/longname|}
%       \item{|hostconference/acronym|}
% \end{itemize}
%
% We replace |<year>| with the actual year when the paper was presented. An
% example is given in \Cref{lst:option-year}.
%
% \begin{lstlisting}[gobble=6, label=lst:option-year, caption={Setting all
%     workshop-related options for the year 2024}]
%     \osdaset{2024}
% \end{lstlisting}
%
% Currently, presets for the following years are available:
% |2024|, |2023|, |2020|, |2019|
%
% \subsection{Paper license}
%
% \DescribeMacro{cc-by}
% \DescribeMacro{cc-by-sa}
% \DescribeMacro{cc-by-nc-sa}
% \DescribeMacro{cc-by-nc-nd}
% \DescribeMacro{cc-by-arXiv}
% \DescribeMacro{cc0}
% These options define the license under which the paper is published. In the
% example given in \Cref{lst:option-license}, the paper license is set to |CC0|.
% The options are presets that set the values of the corresponding license
% options:
%
% \begin{itemize}
%     \item{|license/long|}
%     \item{|license/short|}
%     \item{|license/version|}
%     \item{|license/url|}
% \end{itemize}
%
% \begin{lstlisting}[gobble=6, label=lst:option-license, caption={Setting the
%     paper's license to CC0}]
%     \osdaset{cc0}
% \end{lstlisting}
%
% \subsection{Pages}
%
% \DescribeMacro{pages}
% This option sets the page numbers of the paper as published in the workshop
% proceedings. We provide start and end page as |pages={<start>}{<end>}|, which
% sets the follwoing options:
%  
% \begin{itemize}
%     \item{|proceedings/startpage|}
%     \item{|proceedings/endpage|}
% \end{itemize}
%
% An example is given in \Cref{lst:option-pages}.
%
% \begin{lstlisting}[gobble=6, label=lst:option-pages, caption={Setting the
%     paper's page numbers as given by the workshop proceedings}]
%     \osdaset{pages={16}{22}}
% \end{lstlisting}
%
% \subsection{Paper URL}
%
% \DescribeMacro{url}
% This option specifies the URL that leads to a web page at the workshop's
% website, where additional information and material related to the paper can be
% found (\Cref{lst:option-url} shows an example). Setting |url| updates the
% value of the following key:
%
% \begin{itemize}
%     \item{|paper/url|}
% \end{itemize}
% 
%
% \begin{lstlisting}[gobble=6, label=lst:option-url, caption={Setting the
%     paper's URL to its web page on the workshop website}]
%     \osdaset{url=https://osda.ws/r/0slLz}
% \end{lstlisting}
%
% \subsection{Digital Object Identifier (DOI)}
%
% \DescribeMacro{doi}
% This option specifies the paper's Digital Object Identifier (DOI) which is
% issued on publication. Setting |doi| updates the value of the following key:
%
% \begin{itemize}
%     \item{|paper/doi|}
% \end{itemize}
%
% \section{Configuration Options}
%
% In the \Cref{tbl:package-options}, we document all configuration options that
% can be set either when loading the package with |usepackage|, or when using
% |\osdafootnote|, |\osdanotice|, and |\osdaset|. This package uses |pgfkeys|
% for managing the keys, and for processing key/value pairs.
%
% \begin{table}
% \caption{Package options}
% \label{tbl:package-options}
% \begin{tabular}{lp{7cm}}
%   Key & Description \\
%   \hline
%   \hline
%
%   |auto|
%   & Enabling/Disabling auto-setting an un-numbered footnote
%     containing a copyright notice when calling |\maketitle|. Default: |true|
%   \\
%
%   \hline
%
%   |paper/url|
%   & A URL that points to the web page of the paper on the workshop website.
%     It can be used to provide additional information and/or supplementing
%     material. Also, the link to the workshop website proves that the paper is
%     authentic.
%   \\
%
%   |paper/doi|
%   & The digital object identifier that is issued to the paper on
%     publication
%   \\
%
%   |url| & A short cut to |paper/url| \\
%   |doi| & A short cut to |paper/doi| \\
%
%   \hline
%
%   |license/long|
%   & The long form of the name of the license under whose terms the paper is
%     published
%   \\
%
%   |license/short|
%   & The short form, or acronym, of the paper's license
%   \\
%
%   |license/version|
%   & The version of the paper's license
%   \\
%
%   |license/url|
%   & A URL that points to the paper's license terms
%   \\
%   \hline
%
%   |proceedings/title|
%   & The title of the workshop's proceedings
%   \\
%
%   |proceedings/startpage|
%   & The first page of the paper in the proceedings
%   \\
%
%   |proceedings/endpage|
%   & The first page of the paper in the proceedings
%   \\
%   |pages|
%   & A shortcut to |proceedings/startpage| and |proceedings/endpage|
%     that takes two arguments (e.g., |pages={26}{31}|)
%   \\
%
%   \hline
%
%   |workshop/counter|
%   & Specifies the number of the workshop's edition (e.g., |3rd|)
%   \\
%
%   |workshop/longname|
%   & The long name of the workshop
%   \\
%
%   |workshop/acronym|
%   & The workshop's acronym
%   \\
%
%   \hline
%
%   |location/city|
%   & The city in which the workshop took place
%   \\
%
%   |location/country|
%   & The country in which the workshop took place
%   \\
%
%   \hline
%
%   |date/month|
%   & The month in which the workshop took place
%   \\
%
%   |date/day|
%   & The day on which the workshop took place
%   \\
%
%   |date/year|
%   & The year in which the workshop took place
%   \\
%
%   \hline
%
%   |hostconference/longname|
%   & The long name of the conference at which the workshop was co-hosted
%   \\
%
%   |hostconference/acronym|
%   & The acronym of the conference at which the workshop was co-hosted
%   \\
% \end{tabular}
% \end{table}
%
% \section{Useful commands}
%
% \subsection{Inline logo}
%
% \DescribeMacro{\osda}
% This command prints the OSDA logo inline as shown in the following examples at
% different font sizes (\Cref{lst:inline-logo}):
% 
% \begin{lstlisting}[gobble=6, label=lst:inline-logo, caption={Inline OSDA logo}]
%     Hello there, \osda{} is the place to be
%
%     {\large I agree, \osda{} is the place to be!}
%
%     {\small I agree, \osda{} is the place to be!}
%
%     {\Huge I agree, \osda{} is the place to be!}
%
%     {\tiny I agree, \osda{} is the place to be!}
% \end{lstlisting}
%
% Hello there, \osda{} is the place to be
%
% {\large I agree, \osda{} is the place to be!}
%
% {\small I agree, \osda{} is the place to be!}
%
% {\Huge I agree, \osda{} is the place to be!}
%
% {\tiny I agree, \osda{} is the place to be!}
%
%
% \StopEventually{}
% 
% \section{Implementation}
%
% \subsection{Initialization macros}
%
% Here, the package dependencies are defined, along with setting up the packages
% once loaded.
%
% \begin{macrocode}%%
\RequirePackage[hang,flushmargin]{footmisc}%
\RequirePackage{flushend}%
\RequirePackage{ifthen}%
\RequirePackage{qrcode}%
\RequirePackage{xcolor}%
\RequirePackage{hyperref}%
\hypersetup{%
	colorlinks = true,%
	allcolors  = black,%
}%
\RequirePackage{tikz}%
\RequirePackage{pgfopts}%

% \end{macrocode}
% \begin{macro}{\osdaset}
%
% |\osdaset|
%
% Command to set options for this package.
%
% Usage:
%
%     |\osdaset{key1=value1, key2=value2, ...}|
%
% Example:
%
%     \begin{verbatim}
%     \osdaset{
%         paper/url=https://osda.ws,
%         license/long = XYZ license,
%         license/short = XYZ,
%         license/version = 1.0,
%         license/url = https://xyz.org/license
%     }
%     \end{verbatim}
% \begin{macrocode}
%
\newcommand{\osdaset}[1]{\pgfkeys{/osda/.cd,#1}}
%
% \end{macrocode}
% \end{macro}
% \begin{macrocode}

%%
%% Specify booleans
%%
\newif\ifosda@auto
%%
%% Define keys to manage package and command options
%%
\pgfkeys {
    /osda/.cd,
    paper/url/.store in = \osda@paper@url,
    url/.forward to = /osda/paper/url,
    paper/doi/.store in = \osda@paper@doi,
    doi/.forward to = /osda/paper/doi,
    license/version/.store in = \osda@license@version,
    license/url/.store in = \osda@license@url,
    license/long/.store in = \osda@license@long,
    license/short/.store in = \osda@license@short,
    proceedings/title/.store in = \osda@proceedings@title,
    proceedings/startpage/.store in = \osda@proceedings@startpage,
    proceedings/endpage/.store in = \osda@proceedings@endpage,
    pages/.code 2 args={\osdaset{proceedings/startpage=#1,proceedings/endpage=#2}},
    workshop/counter/.store in = \osda@workshop@counter,
    workshop/longname/.store in = \osda@workshop@longname,
    workshop/acronym/.store in = \osda@workshop@acronym,
    location/city/.store in = \osda@location@city,
    location/country/.store in = \osda@location@country,
    date/month/.store in = \osda@date@month,
    date/day/.store in = \osda@date@day,
    date/year/.store in = \osda@date@year,
    hostconference/longname/.store in = \osda@hostconference@longname,
    hostconference/acronym/.store in = \osda@hostconference@acronym,
}
%%
%% Set boolean flags
%%
\pgfkeys {
    /osda/.cd,
    auto/.is if=osda@auto,
}
%
% \end{macrocode}
%%
%% Specify default values
%%
% \begin{macrocode}
%
\pgfkeys {
    /osda/.cd,
    auto = true,
    license/version = ,
    license/url = ,
    license/long = \textbf{\textcolor{red}{{Please specify a license}}},
    license/short = ,
    proceedings/startpage = ,
    proceedings/endpage = ,
    paper/url = https://please.specify.the/url/here,
    paper/doi = ,
}
%
% \end{macrocode}
%%
%% Define some useful styles
%%
% \begin{macrocode}
%
\pgfkeys {
    /osda/.cd,
    %
    % Default values for specific editions of OSDA
    %
    2024/.style={
        proceedings/title = Proceedings of the 4th Workshop on Open-Source Design Automation (OSDA),
        workshop/counter = 4th,
        workshop/longname = Workshop on Open-Source Design Automation,
        workshop/acronym = OSDA,
        location/city = Valencia,
        location/country = Spain,
        date/month = March,
        date/day = 25,
        date/year = 2024,
        hostconference/longname = {Design, Automation, and Test in Europe Conference},
        hostconference/acronym = DATE,
    },
    2023/.style={
        proceedings/title = Proceedings of the 3rd Workshop on Open-Source Design Automation (OSDA),
        workshop/counter = 3rd,
        workshop/longname = Workshop on Open-Source Design Automation,
        workshop/acronym = OSDA,
        location/city = Antwerp,
        location/country = Belgium,
        date/month = April,
        date/day = 17,
        date/year = 2023,
        hostconference/longname = {Design, Automation, and Test in Europe Conference},
        hostconference/acronym = DATE,
    },
    2020/.style={
        proceedings/title = Proceedings of the 2nd Workshop on Open-Source Design Automation (OSDA),
        workshop/counter = 2nd,
        workshop/longname = Workshop on Open-Source Design Automation,
        workshop/acronym = OSDA,
        location/city = Grenoble,
        location/country = France,
        date/month = March,
        date/day = 13,
        date/year = 2020,
        hostconference/longname = {Design, Automation, and Test in Europe Conference},
        hostconference/acronym = DATE,
    },
    2019/.style={
        proceedings/title = Proceedings of the 1st Workshop on Open-Source Design Automation (OSDA),
        workshop/counter = 1st,
        workshop/longname = Workshop on Open-Source Design Automation,
        workshop/acronym = OSDA,
        location/city = Florence,
        location/country = Italy,
        date/month = March,
        date/day = 29,
        date/year = 2019,
        hostconference/longname = {Design, Automation, and Test in Europe Conference},
        hostconference/acronym = DATE,
    },
    %
    % Licenses
    %
    cc-by/.style={
        license/version = 4.0,
        license/url = https://creativecommons.org/licenses/by/4.0,
        license/long = Creative Commons Attribution license,
        license/short = CC BY,
    },
    cc-by-sa/.style={
        license/version = 4.0,
        license/url = https://creativecommons.org/licenses/by-sa/4.0,
        license/long = Creative Commons Attribution-ShareAlike license,
        license/short = CC BY-SA,
    },
    cc-by-nc-sa/.style={
        license/version = 4.0,
        license/url = https://creativecommons.org/licenses/by-nc-sa/4.0,
        license/long = Creative Commons Attribution-Noncommercial-ShareAlike license,
        license/short = CC BY-NC-SA,
    },
    cc-by-nc-nd/.style={
        license/version = 4.0,
        license/url = https://creativecommons.org/licenses/by-nc-nd/4.0,
        license/long = Creative Commons Attribution-Noncommercial-NoDerivatives license,
        license/short = CC BY-NC-ND,
    },
    arXiv/.style={
        license/version = 1.0,
        license/url = https://arxiv.org/licenses/nonexclusive-distrib/1.0,
        license/long = {arXiv.org perpetual, non-exclusive license},
        license/short =,
    },
    cc0/.style={
        license/version =,
        license/url = https://creativecommons.org/share-your-work/public-domain/cc0,
        license/long = Public Domain license,
        license/short = CC0,
    },
}
%
% \end{macrocode}
%%
%% We now process the options passed to the package.
%%
% \begin{macrocode}
%
\ProcessPgfOptions{/osda}
%
% \end{macrocode}
%%
%% The margin defines the space between the logo's right/QR code's left side and
%% the text of the copyright notice
%%
% \begin{macrocode}
%
\newlength{\osda@margin}
%
% \end{macrocode}
%
% \begin{macro}{\WrapLR}
%%
%% |\WrapLR|
%%
%% Command to place two figures wrapped around text; we use it here for the OSDA
%% logo and the QR code that links to the paper in the acknowledgments box in the
%% footnote of the title page
%%
%% Usage:
%%
%%     \WrapLR{\includegraphics[height=1.2in]{example-image-a}}%
%%         {\includegraphics[height=1.2in]{example-image-b}}%
%%         {\noindent Text to wrap around images}
%%
%% Adapted from: https://tex.stackexchange.com/a/455612
%%
%%
% \begin{macrocode}
%
\newcommand*{\WrapLR}[3]% #1=left image, #2=right image, #3=text (1 paragraph)
{\bgroup
  \sbox0{\raisebox{-\height}{#1}}% align tops
  \sbox1{\raisebox{-\height}{#2}}% measure width and height (depth)
  \sbox2{\raisebox{\depth}{\makebox[\columnwidth]{\usebox0\hfill\usebox1}}}% total height
  \par\noindent\usebox2\vspace{\dimexpr \ht\strutbox-\ht2-\baselineskip-\parskip}\par% overlay pictures
  \setlength{\osda@margin}{2ex}
  \dimen0=\dimexpr \wd0+.5\osda@margin\relax% indent
  \dimen1=\dimexpr \columnwidth-\wd0-\wd1-\osda@margin\relax% width
  \edef\shape{\the\dimen0 \the\dimen1}% set up \parshape arguments in loop
  \dimen2=\ht\strutbox
  \dimen4=\dimexpr \ht2-.5\baselineskip\relax
  \count1=2
  \loop\ifdim\dimen2<\dimen4
    \advance\dimen2 by \baselineskip
    \ifdim\dimen2>\dp0\relax% end of left image
      \dimen0=0pt
      \dimen1=\dimexpr \columnwidth-\wd1-.5\osda@margin\relax
    \fi
    \ifdim\dimen2>\dp1\relax% end of right image
      \dimen1=\dimexpr \columnwidth-\wd0-.5\osda@margin\relax
    \fi
    \advance\count1 by 1
    \edef\shape{\shape\space\the\dimen0 \the\dimen1}%
  \repeat
  \edef\shape{\the\count1 \space\shape\space 0pt \the\columnwidth}%
  \parshape=\shape
  #3\par
\egroup}
%
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\blfootnote}
%
%% |\blfootnote|
%%
%% Set footnotes without marks
%%
%% Usage:
%%
%%     |\blfootnote{footnotetext}|
%%
%% From: https://tex.stackexchange.com/a/30726
%%
% \begin{macrocode}
%
\newcommand\blfootnote[1]{%
  \begingroup
  \renewcommand\thefootnote{}\footnote{#1}%
  \addtocounter{footnote}{-1}%
  \endgroup
}
%
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\osdalogo}
%%
%% |\osdalogo|
%%
%% Draws the OSDA logo at a given height
%%
%% Usage:
%%
%%     |\osdalogo{height}|
%%
%% Example:
%%
%%     |\osdalogo{2\baselineskip}|
%%
% \begin{macrocode}
%
\usetikzlibrary{svg.path}
\newcommand{\osdalogo}[1]{\scalebox{1}[-1]{\resizebox*{!}{#1}{%
\begin{tikzpicture}%
    \pgfpathsvg{m 41.493525,114.88969 c -4.235403,-0.0951 -5.244524,4.38987 -4.853967,7.74446 0.06465,11.92294 -0.129872,23.85884 0.09828,35.77361 0.660896,3.83742 4.80625,4.07909 7.908947,3.87335 36.559883,0 73.119765,0 109.679645,0 4.2354,0.0951 5.24452,-4.38987 4.85397,-7.74445 -0.0647,-11.92294 0.12987,-23.85884 -0.0983,-35.77361 -0.6609,-3.83742 -4.80625,-4.07909 -7.90895,-3.87336 -36.55988,0 -73.119759,0 -109.679642,0 z m 15.406294,9.3338 c 7.083699,-0.16814 13.650363,5.59034 14.408423,12.6354 0.773555,-7.32725 7.848415,-13.19963 15.192447,-12.61203 5.305345,0.24729 10.291595,3.68656 12.407418,8.55802 -4.449622,-0.0531 -9.052306,0.10604 -13.406456,-0.0794 -0.839139,-2.90692 -5.235964,-3.40946 -6.707523,-0.76424 -1.678739,2.40924 0.506129,6.05789 3.422128,5.71655 1.497283,-0.0812 2.873132,-1.15803 3.311785,-2.59192 4.718573,0 9.43715,0 14.155724,0 0.08339,-2.35529 -0.165262,-4.8569 0.121518,-7.12255 5.339507,-5.05446 14.506947,-4.9329 19.710957,0.26069 2.32206,2.20209 3.8742,5.19535 4.33608,8.36202 0.90939,-7.27195 8.02238,-12.99336 15.31906,-12.32891 7.37799,0.33186 13.674,7.07245 13.50245,14.45591 0.0496,5.18443 -2.94531,10.24647 -7.51324,12.69897 -1.2907,-3.10635 -2.86729,-6.27677 -3.98135,-9.34353 2.57226,-2.09161 1.63297,-6.69649 -1.5515,-7.61542 -3.0763,-1.19911 -6.61783,1.86093 -5.86635,5.08096 0.22078,1.22057 0.97501,2.33122 2.02814,2.98654 -1.33651,3.06304 -2.67302,6.12607 -4.00953,9.18911 -4.21173,-2.03739 -7.27498,-6.23733 -7.9282,-10.87014 -0.9141,7.33051 -8.13486,13.07383 -15.48271,12.31672 -3.21287,-0.24801 -6.32487,-1.6114 -8.68532,-3.8051 0,-2.30873 0,-4.61746 0,-6.92619 -1.727782,7.19313 -9.563391,12.09549 -16.787442,10.50764 -4.612862,-0.86727 -8.678534,-4.13841 -10.513216,-8.45867 4.434157,0.0533 9.021826,-0.10629 13.360463,0.0794 0.820198,2.82501 5.042639,3.41435 6.604149,0.92056 1.808231,-2.33495 -0.226145,-6.10845 -3.171246,-5.87992 -1.550448,0.0211 -3.007434,1.11568 -3.459292,2.59898 -4.701352,0 -9.402702,0 -14.104054,0 -0.258707,-1.27682 -0.309266,-2.11823 -0.532659,-0.32786 -1.436394,7.22593 -9.014468,12.43124 -16.274501,11.17924 -7.328434,-0.91683 -13.068091,-8.13653 -12.311164,-15.48257 0.464997,-7.3576 7.032469,-13.43953 14.405011,-13.33826 z m 52.620561,9.99112 c -0.96292,0.0502 -2.60046,0.17595 -2.09755,1.57043 0.0567,2.29818 -0.11186,4.73381 0.0816,6.94851 2.876,1.60884 6.79391,-0.92082 6.51013,-4.20444 -0.0576,-2.3593 -2.13312,-4.35301 -4.49417,-4.3145 z m -52.58387,5.3e-4 c -3.299763,-0.14891 -5.665574,3.88662 -3.923721,6.69319 1.479497,2.95488 6.158026,3.05141 7.757886,0.15973 1.863071,-2.9074 -0.372921,-6.91859 -3.834165,-6.85292 z}%
    \pgfusepath{fill}%
    \pgfusepath{stroke}%
\end{tikzpicture}%
}}}
%
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\osda}
%%
%% |\osda|
%%
%% This command prints the OSDA logo inline at a height of 1ex
%%
%% Usage:
%%
%%     |\osda{}|
%%
% \begin{macrocode}
%
\newcommand{\osda}{\raisebox{.6\baselineskip}{\osdalogo{.7\baselineskip}}}
%
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\osdanotice}
%%
%% |\osdanotice|
%%
%% This command sets the OSDA copyright notice, taking a URL as argument to set
%% links to the paper's web page, and to create a QR code from.
%%
%% Usage:
%%
%%     |\osdanotice{url}|
%%
%% Example:
%%
%%     |\osdanotice{https://osda.ws}|
%%
% \begin{macrocode}
%
\newcommand{\osdanotice}[1][]{
\osdaset{#1}
\WrapLR%
    {\href{\osda@paper@url}{\osdalogo{1.8\baselineskip}}}
    {\qrcode[height=3.8\baselineskip,level=L,version=1]{\osda@paper@url}}
    {\noindent%
        This work was presented at the \emph{\osda@workshop@counter{}
        \osda@workshop@longname{} (\osda@workshop@acronym) \osda@date@year{}},
        \ifthenelse{\isundefined{\osda@hostconference@longname}}{%
        }{%
            co-hosted with \emph{\osda@hostconference@longname} %
            \ifthenelse{\isundefined{\osda@hostconference@acronym}}{%
            }{%
                \emph{(\osda@hostconference@acronym)}
            }%
            \ifthenelse{\isundefined{\osda@date@year}}{%
            }{%
                \emph{\osda@date@year}
            }%
        }%
        in \osda@location@city{}, \osda@location@country{}, on
        \osda@date@month{} \osda@date@day{}, \osda@date@year{}.  For further
        information and material, please visit the paper's web page on the
        workshop website at \href{\osda@paper@url}{\textbf{\osda@paper@url}}
        (just scan the QR code on the right).
        %
        % Copyright and license information
        %
        The copyright is retained by the authors.
        This work is licensed under the terms of the
        \osda@license@long
        \ifthenelse{\isundefined{\osda@license@short} \or \equal{\osda@license@short}{}}{%
        }{ %
            (\osda@license@short)%
        }%
        \ifthenelse{\isundefined{\osda@license@version} \or \equal{\osda@license@version}{}}{%
        }{, %
            version \osda@license@version%
        }%
        \ifthenelse{\isundefined{\osda@license@url} \or \equal{\osda@license@url}{}}{%
        }{, %
            see \href{\osda@license@url}{\osda@license@url}%
        }%
        %
        .
        \emph{\osda@proceedings@title},
        Pages \osda@proceedings@startpage--\osda@proceedings@endpage, \osda@date@year.
        \ifthenelse{\isundefined{\osda@paper@doi} \or \equal{\osda@paper@doi}{}}{%
        }{%
            DOI: \href{https://doi.org/\osda@paper@doi}{\osda@paper@doi}%
        }%
    }%
}
%
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\osdafootnote}
%%
%% |\osdafootnote|
%%
%% This command sets the OSDA copyright notice in an un-numbered footnote.
%%
%% Usage:
%%
%%     |\osdafootnote{url}|
%%
%% Example:
%%
%%     |\osdafootnote{https://osda.ws}|
%%
% \begin{macrocode}
%
\newcommand{\osdafootnote}[1][]{
    \osdaset{#1}
    \blfootnote{\osdanotice\vspace{-1.5\baselineskip}}%
    
}
%
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\maketitle}
%%
%% |\maketitle|
%%
%% Re-defining the \maketitle command to automatically place the copyright notice
%% once the paper title is generated
%%
% \begin{macrocode}
%
%\let\maketitle@orig\maketitle
%\renewcommand{\maketitle}{%
%    \ifthenelse{\boolean{\ifosda@auto}}{%
%        \maketitle@orig\osdafootnote%
%    }{%
%        \maketitle@orig%
%    }%
%}
\let\maketitle@orig\maketitle
\renewcommand{\maketitle}{%
    \ifosda@auto%
        \maketitle@orig\osdafootnote%
    \else%
        \maketitle@orig%
    \fi%
}
%
% \end{macrocode}
% \end{macro}
\endinput
