collections {
   group {
      name: "animations_group";
      min: 100 80;

      parts {
         part {
            name: "part_one";
            type: RECT;
            scale: 1;
            description {
               min: 50 50;
               state: "default" 0.0;
               color: 0 0 0 255; /* black */
               rel1.relative: 0.0 0.0;
               rel2.relative: 0.33 1.0;
            }
            description {
               state: "invert" 1.0;
               inherit: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 0.33;
            }
         }

         part {
            name: "part_two";
            type: RECT;
            scale: 1;
            description {
               min: 50 50;
               state: "default" 0.0;
               color: 255 255 0 255; /* yellow */
               rel1.relative: 0.33 0.0;
               rel2.relative: 0.66 1.0;
            }
            description {
               state: "invert" 1.0;
               inherit: "default" 0.0;
               rel1.relative: 0.0 0.66;
               rel2.relative: 1.0 1.0;
            }
         }

         part {
            name: "part_three";
            type: RECT;
            description {
               state: "default" 0.0;
               color: 255 0 0 255; /* red */
               rel1.relative: 0.66 0.0;
               rel2.relative: 1.0 1.0;
            }
            description {
               state: "invert" 1.0;
               inherit: "default" 0.0;
               rel1.relative: 0.0 0.33;
               rel2.relative: 1.0 0.66;
            }
         }
      }

      program {
         signal: "load";
         source: "";
         in: 2.0 0.0;
         after: "animation,state1";
      }
      program {
         name: "animation,state1";
         signal: "animation,start";
         source: "";
         in: 1.0 0.0;
         action: STATE_SET "invert" 1.0;
         target: "part_one";
         target: "part_two";
         target: "part_three";
         transition: LINEAR 0.6;
         after: "animation,state2";
      }
      program {
         name: "animation,state2";
         signal: "animation,start";
         source: "";
         in: 1.0 0.0;
         action: STATE_SET "default" 0.0;
         target: "part_one";
         target: "part_two";
         target: "part_three";
         transition: LINEAR 0.6;
         after: "animation,state1";
   }
}
